Difference between revisions of "Math Module"

From BaseX Documentation
Jump to navigation Jump to search
m (Text replace - "[[XQuery Modules" to "[[Module Library")
m (Text replace - "| valign='top' | " to "| ")
Line 7: Line 7:
 
|<code><b>math:pi</b>() as xs:double</code>
 
|<code><b>math:pi</b>() as xs:double</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the <code>xs:double</code> value  of the mathematical constant π whose lexical representation is 3.141592653589793.
 
|Returns the <code>xs:double</code> value  of the mathematical constant π whose lexical representation is 3.141592653589793.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>2*math:pi()</code> returns <code>6.283185307179586e0</code>.
 
* <code>2*math:pi()</code> returns <code>6.283185307179586e0</code>.
Line 22: Line 22:
 
|<code><b>math:e</b>() as xs:double</code>
 
|<code><b>math:e</b>() as xs:double</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the <code>xs:double</code> value of the mathematical constant <i>e</i> whose lexical representation is 2.718281828459045.
 
|Returns the <code>xs:double</code> value of the mathematical constant <i>e</i> whose lexical representation is 2.718281828459045.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>5*math:e()</code> returns <code>13.591409142295225</code>.
 
* <code>5*math:e()</code> returns <code>13.591409142295225</code>.
Line 36: Line 36:
 
|<code><b>math:sqrt</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:sqrt</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the square root of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the <code>xs:double</code> value of the mathematical square root of <code>$arg</code>.
 
|Returns the square root of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the <code>xs:double</code> value of the mathematical square root of <code>$arg</code>.
 
|}
 
|}
Line 46: Line 46:
 
|<code><b>math:sin</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:sin</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the sine of the <code>$arg</code>, expressed in radians.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the sine of <code>$arg</code>, treated as an angle in radians.
 
|Returns the sine of the <code>$arg</code>, expressed in radians.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the sine of <code>$arg</code>, treated as an angle in radians.
 
|}
 
|}
Line 56: Line 56:
 
|<code><b>math:cos</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:cos</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the cosine of <code>$arg</code>, expressed in radians.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the cosine of <code>$arg</code>, treated as an angle in radians.
 
|Returns the cosine of <code>$arg</code>, expressed in radians.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the cosine of <code>$arg</code>, treated as an angle in radians.
 
|}
 
|}
Line 66: Line 66:
 
|<code><b>math:tan</b>($ as xs:double?) as xs:double?</code>
 
|<code><b>math:tan</b>($ as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the tangent of <code>$arg</code>, expressed in radians.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the tangent of <code>$arg</code>, treated as an angle in radians.
 
|Returns the tangent of <code>$arg</code>, expressed in radians.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the tangent of <code>$arg</code>, treated as an angle in radians.
 
|}
 
|}
Line 76: Line 76:
 
|<code><b>math:asin</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:asin</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the arc sine of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the arc sine of <code>$arg</code>, returned as an angle in radians in the range -π/2 to +π/2.
 
|Returns the arc sine of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the arc sine of <code>$arg</code>, returned as an angle in radians in the range -π/2 to +π/2.
 
|}
 
|}
Line 86: Line 86:
 
|<code><b>math:acos</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:acos</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the arc cosine of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the arc cosine of <code>$arg</code>, returned as an angle in radians in the range 0 to +π.
 
|Returns the arc cosine of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the arc cosine of <code>$arg</code>, returned as an angle in radians in the range 0 to +π.
 
|}
 
|}
Line 96: Line 96:
 
|<code><b>math:atan</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:atan</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the arc tangent of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the arc tangent of <code>$arg</code>, returned as an angle in radians in the range -π/2 to +π/2.
 
|Returns the arc tangent of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the arc tangent of <code>$arg</code>, returned as an angle in radians in the range -π/2 to +π/2.
 
|}
 
|}
Line 106: Line 106:
 
|<code><b>math:atan2</b>($arg1 as xs:double?, $arg2 as xs:double) as xs:double?</code>
 
|<code><b>math:atan2</b>($arg1 as xs:double?, $arg2 as xs:double) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the arc tangent of <code>$arg1</code> divided by <code>$arg2</code>, the result being in the range -π/2 to +π/2 radians.<br/>If <code>$arg1</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the arc tangent of <code>$arg1</code> divided by <code>$arg2</code>, returned as an angle in radians in the range -π to +π.
 
|Returns the arc tangent of <code>$arg1</code> divided by <code>$arg2</code>, the result being in the range -π/2 to +π/2 radians.<br/>If <code>$arg1</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the arc tangent of <code>$arg1</code> divided by <code>$arg2</code>, returned as an angle in radians in the range -π to +π.
 
|}
 
|}
Line 116: Line 116:
 
|<code><b>math:pow</b>($arg1 as xs:double?, $arg2 as xs:double) as xs:double?</code>
 
|<code><b>math:pow</b>($arg1 as xs:double?, $arg2 as xs:double) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns <code>$arg1</code> raised to the power of <code>$arg2</code>.<br/>If <code>$arg1</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the <code>$arg1</code> raised to the power of <code>$arg2</code>.
 
|Returns <code>$arg1</code> raised to the power of <code>$arg2</code>.<br/>If <code>$arg1</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the <code>$arg1</code> raised to the power of <code>$arg2</code>.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>math:pow(2, 3)</code> returns <code>8</code>.
 
* <code>math:pow(2, 3)</code> returns <code>8</code>.
Line 130: Line 130:
 
|<code><b>math:exp</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:exp</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns <i>e</i> raised to the power of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the value of <i>e</i> raised to the power of <code>$arg</code>.
 
|Returns <i>e</i> raised to the power of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the value of <i>e</i> raised to the power of <code>$arg</code>.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>math:exp(1)</code> returns <i>e</i>.
 
* <code>math:exp(1)</code> returns <i>e</i>.
Line 144: Line 144:
 
|<code><b>math:log</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:log</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the natural logarithm of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the natural logarithm (base <i>e</i>) of <code>$arg</code>.
 
|Returns the natural logarithm of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the natural logarithm (base <i>e</i>) of <code>$arg</code>.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>math:log(math:e())</code> returns <code>1</code>.
 
* <code>math:log(math:e())</code> returns <code>1</code>.
Line 158: Line 158:
 
|<code><b>math:log10</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:log10</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the base 10 logarithm of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the base 10 logarithm of <code>$arg</code>.
 
|Returns the base 10 logarithm of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the base 10 logarithm of <code>$arg</code>.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>math:log(100)</code> returns <code>2</code>.
 
* <code>math:log(100)</code> returns <code>2</code>.
Line 172: Line 172:
 
|<code><b>math:random</b>() as xs:double?</code>
 
|<code><b>math:random</b>() as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns a random <code>xs:double</code> value between <code>0.0</code> and <code>1.0</code>.
 
|Returns a random <code>xs:double</code> value between <code>0.0</code> and <code>1.0</code>.
 
|}
 
|}
Line 182: Line 182:
 
|<code><b>math:sinh</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:sinh</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the hyperbolic sine of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the hyperbolic sine of <code>$arg</code>.
 
|Returns the hyperbolic sine of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the hyperbolic sine of <code>$arg</code>.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>math:sinh(0)</code> returns <code>0</code>.
 
* <code>math:sinh(0)</code> returns <code>0</code>.
Line 196: Line 196:
 
|<code><b>math:cosh</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:cosh</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the hyperbolic cosine of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the hyperbolic cosine of <code>$arg</code>.
 
|Returns the hyperbolic cosine of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the hyperbolic cosine of <code>$arg</code>.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>math:cosh(0)</code> returns <code>1</code>.
 
* <code>math:cosh(0)</code> returns <code>1</code>.
Line 210: Line 210:
 
|<code><b>math:tanh</b>($arg as xs:double?) as xs:double?</code>
 
|<code><b>math:tanh</b>($arg as xs:double?) as xs:double?</code>
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
 
|Returns the hyperbolic tangent of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the hyperbolic tangent of <code>$arg</code>.
 
|Returns the hyperbolic tangent of <code>$arg</code>.<br/>If <code>$arg</code> is the empty sequence, the empty sequence is returned.<br />Otherwise the result is the hyperbolic tangent of <code>$arg</code>.
 
|-
 
|-
| valign='top' | '''Examples'''
+
| '''Examples'''
 
|
 
|
 
* <code>math:tanh(100)</code> returns <code>1</code>.
 
* <code>math:tanh(100)</code> returns <code>1</code>.

Revision as of 00:42, 26 May 2012

The math XQuery Module defines functions to perform mathematical operations, such as pi, asin and acos. All functions are preceded by the math: prefix, which is linked to the statically declared http://www.w3.org/2005/xpath-functions/math namespace. Some of the functions have also been specified in the Functions and Operators Specification of the upcoming XQuery 3.0 Recommendation.

math:pi

Signatures math:pi() as xs:double
Summary Returns the xs:double value of the mathematical constant π whose lexical representation is 3.141592653589793.
Examples
  • 2*math:pi() returns 6.283185307179586e0.
  • 60 * (math:pi() div 180) converts an angle of 60 degrees to radians.

math:e

Signatures math:e() as xs:double
Summary Returns the xs:double value of the mathematical constant e whose lexical representation is 2.718281828459045.
Examples
  • 5*math:e() returns 13.591409142295225.

math:sqrt

Signatures math:sqrt($arg as xs:double?) as xs:double?
Summary Returns the square root of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the xs:double value of the mathematical square root of $arg.

math:sin

Signatures math:sin($arg as xs:double?) as xs:double?
Summary Returns the sine of the $arg, expressed in radians.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the sine of $arg, treated as an angle in radians.

math:cos

Signatures math:cos($arg as xs:double?) as xs:double?
Summary Returns the cosine of $arg, expressed in radians.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the cosine of $arg, treated as an angle in radians.

math:tan

Signatures math:tan($ as xs:double?) as xs:double?
Summary Returns the tangent of $arg, expressed in radians.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the tangent of $arg, treated as an angle in radians.

math:asin

Signatures math:asin($arg as xs:double?) as xs:double?
Summary Returns the arc sine of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the arc sine of $arg, returned as an angle in radians in the range -π/2 to +π/2.

math:acos

Signatures math:acos($arg as xs:double?) as xs:double?
Summary Returns the arc cosine of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the arc cosine of $arg, returned as an angle in radians in the range 0 to +π.

math:atan

Signatures math:atan($arg as xs:double?) as xs:double?
Summary Returns the arc tangent of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the arc tangent of $arg, returned as an angle in radians in the range -π/2 to +π/2.

math:atan2

Signatures math:atan2($arg1 as xs:double?, $arg2 as xs:double) as xs:double?
Summary Returns the arc tangent of $arg1 divided by $arg2, the result being in the range -π/2 to +π/2 radians.
If $arg1 is the empty sequence, the empty sequence is returned.
Otherwise the result is the arc tangent of $arg1 divided by $arg2, returned as an angle in radians in the range -π to +π.

math:pow

Signatures math:pow($arg1 as xs:double?, $arg2 as xs:double) as xs:double?
Summary Returns $arg1 raised to the power of $arg2.
If $arg1 is the empty sequence, the empty sequence is returned.
Otherwise the result is the $arg1 raised to the power of $arg2.
Examples
  • math:pow(2, 3) returns 8.

math:exp

Signatures math:exp($arg as xs:double?) as xs:double?
Summary Returns e raised to the power of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the value of e raised to the power of $arg.
Examples
  • math:exp(1) returns e.

math:log

Signatures math:log($arg as xs:double?) as xs:double?
Summary Returns the natural logarithm of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the natural logarithm (base e) of $arg.
Examples
  • math:log(math:e()) returns 1.

math:log10

Signatures math:log10($arg as xs:double?) as xs:double?
Summary Returns the base 10 logarithm of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the base 10 logarithm of $arg.
Examples
  • math:log(100) returns 2.

math:random

Signatures math:random() as xs:double?
Summary Returns a random xs:double value between 0.0 and 1.0.

math:sinh

Signatures math:sinh($arg as xs:double?) as xs:double?
Summary Returns the hyperbolic sine of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the hyperbolic sine of $arg.
Examples
  • math:sinh(0) returns 0.

math:cosh

Signatures math:cosh($arg as xs:double?) as xs:double?
Summary Returns the hyperbolic cosine of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the hyperbolic cosine of $arg.
Examples
  • math:cosh(0) returns 1.

math:tanh

Signatures math:tanh($arg as xs:double?) as xs:double?
Summary Returns the hyperbolic tangent of $arg.
If $arg is the empty sequence, the empty sequence is returned.
Otherwise the result is the hyperbolic tangent of $arg.
Examples
  • math:tanh(100) returns 1.