Difference between revisions of "Math Module"
Jump to navigation
Jump to search
(Created page with "<p>The math module defines extension functions to perform mathematical operations, such as <code>pi</code>, <code>asin</code> and <code>acos</code>. All functions are preceded by...") |
|||
(54 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | The math [[Module Library|XQuery Module]] defines functions to perform mathematical operations, such as {{Code|pi}}, {{Code|asin}} and {{Code|acos}}. Most functions are specified in the [https://www.w3.org/TR/xpath-functions-31/ Functions and Operators Specification] of the upcoming XQuery 3.0 Recommendation, and some additional ones have been added in this module. | |
− | + | ||
− | < | + | =Conventions= |
− | < | + | |
− | + | All functions in this module are assigned to the <code><nowiki>http://www.w3.org/2005/xpath-functions/math</nowiki></code> namespace, which is statically bound to the {{Code|math}} prefix.<br/> | |
− | + | ||
− | + | =W3 Functions= | |
− | + | ||
− | + | ==math:pi== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:pi() as xs:double</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the {{Code|xs:double}} value of the mathematical constant π whose lexical representation is 3.141592653589793. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|2*math:pi()}} returns {{Code|6.283185307179586e0}}. | |
− | + | * {{Code|60 * (math:pi() div 180)}} converts an angle of 60 degrees to radians. | |
− | + | |} | |
− | + | ||
− | + | ==math:sqrt== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:sqrt( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the square root of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the {{Code|xs:double}} value of the mathematical square root of {{Code|$arg}}. | |
− | + | |} | |
− | + | ||
− | + | ==math:sin== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:sin( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the sine of the {{Code|$arg}}, expressed in radians.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the sine of {{Code|$arg}}, treated as an angle in radians. | |
− | + | |} | |
− | + | ||
− | + | ==math:cos== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:cos( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the cosine of {{Code|$arg}}, expressed in radians.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the cosine of {{Code|$arg}}, treated as an angle in radians. | |
− | + | |} | |
− | + | ||
− | + | ==math:tan== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:tan( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the tangent of {{Code|$arg}}, expressed in radians.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the tangent of {{Code|$arg}}, treated as an angle in radians. | |
− | + | |} | |
− | + | ||
− | + | ==math:asin== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:asin( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the arc sine of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the arc sine of {{Code|$arg}}, returned as an angle in radians in the range -π/2 to +π/2. | |
− | + | |} | |
− | + | ||
− | + | ==math:acos== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:acos( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the arc cosine of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the arc cosine of {{Code|$arg}}, returned as an angle in radians in the range 0 to +π. | |
− | + | |} | |
− | + | ||
− | + | ==math:atan== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:atan( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the arc tangent of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the arc tangent of {{Code|$arg}}, returned as an angle in radians in the range -π/2 to +π/2. | |
− | + | |} | |
− | + | ||
− | + | ==math:atan2== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:atan2( | |
− | + | $arg1 as xs:double?, | |
− | + | $arg2 as xs:double | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the arc tangent of {{Code|$arg1}} divided by {{Code|$arg2}}, the result being in the range -π/2 to +π/2 radians.<br/>If {{Code|$arg1}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the arc tangent of {{Code|$arg1}} divided by {{Code|$arg2}}, returned as an angle in radians in the range -π to +π. | |
− | + | |} | |
− | + | ||
− | + | ==math:pow== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:pow( | |
− | + | $arg1 as xs:double?, | |
− | + | $arg2 as xs:double | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns {{Code|$arg1}} raised to the power of {{Code|$arg2}}.<br/>If {{Code|$arg1}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the {{Code|$arg1}} raised to the power of {{Code|$arg2}}. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|math:pow(2, 3)}} returns {{Code|8}}. | |
− | + | |} | |
− | + | ||
− | + | ==math:exp== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:exp( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns <i>e</i> raised to the power of {{Code|$arg}}.<br/>If {{Code|$arg}} 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}}. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|math:exp(1)}} returns <i>e</i>. | |
− | + | |} | |
− | + | ||
− | + | ==math:log== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:log( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the natural logarithm of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the natural logarithm (base <i>e</i>) of {{Code|$arg}}. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|math:log(math:e())}} returns {{Code|1}}. | |
− | + | |} | |
− | + | ||
− | + | ==math:log10== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:log10( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the base 10 logarithm of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the base 10 logarithm of {{Code|$arg}}. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|math:log(100)}} returns {{Code|2}}. | |
− | + | |} | |
− | + | ||
− | + | =Additional Functions= | |
− | + | ||
− | + | ==math:e== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:e() as xs:double</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the {{Code|xs:double}} value of the mathematical constant <i>e</i> whose lexical representation is 2.718281828459045. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|5*math:e()}} returns {{Code|13.591409142295225}}. | |
− | + | |} | |
− | + | ||
− | + | ==math:sinh== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:sinh( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the hyperbolic sine of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the hyperbolic sine of {{Code|$arg}}. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|math:sinh(0)}} returns {{Code|0}}. | |
− | + | |} | |
− | + | ||
− | + | ==math:cosh== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:cosh( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the hyperbolic cosine of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the hyperbolic cosine of {{Code|$arg}}. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|math:cosh(0)}} returns {{Code|1}}. | |
− | + | |} | |
− | + | ||
− | + | ==math:tanh== | |
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:tanh( | |
− | + | $arg as xs:double? | |
− | + | ) as xs:double?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the hyperbolic tangent of {{Code|$arg}}.<br/>If {{Code|$arg}} is the empty sequence, the empty sequence is returned.<br/>Otherwise the result is the hyperbolic tangent of {{Code|$arg}}. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|math:tanh(100)}} returns {{Code|1}}. | |
− | + | |} | |
− | + | ||
− | + | ==math:crc32== | |
− | + | ||
− | + | {| width='100%' | |
− | + | |- | |
− | + | | width='120' | '''Signature''' | |
− | + | |<pre>math:crc32( | |
− | + | $string as xs:string? | |
− | + | ) as xs:hexBinary?</pre> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Calculates the CRC32 check sum of the given {{Code|$string}}.<br/>If an empty sequence is supplied, the empty sequence is returned. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | | | |
− | + | * {{Code|math:crc32("")}} returns {{Code|'00000000'}}. | |
− | + | * {{Code|math:crc32("BaseX")}} returns {{Code|'4C06FC7F'}}. | |
− | + | |} | |
− | + | ||
− | + | =Changelog= | |
− | + | ||
− | + | ; Version 9.1 | |
− | + | * Updated: {{Function||math:crc32}} can be called with empty sequence. | |
− | + | ||
− | + | ; Version 7.5 | |
− | + | * Moved: {{Code|math:random}} and {{Code|math:uuid}} have been moved to the [[Random Module]]. | |
− | + | ||
− | + | ; Version 7.3 | |
− | + | * Added: {{Function||math:crc32}} and {{Function||math:uuid}} have been adopted from the obsolete Utility Module. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 14:59, 9 March 2023
The math XQuery Module defines functions to perform mathematical operations, such as pi
, asin
and acos
. Most functions are specified in the Functions and Operators Specification of the upcoming XQuery 3.0 Recommendation, and some additional ones have been added in this module.
Conventions[edit]
All functions in this module are assigned to the http://www.w3.org/2005/xpath-functions/math
namespace, which is statically bound to the math
prefix.
W3 Functions[edit]
math:pi[edit]
Signature | math:pi() as xs:double |
Summary | Returns the xs:double value of the mathematical constant π whose lexical representation is 3.141592653589793.
|
Examples |
|
math:sqrt[edit]
Signature | 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[edit]
Signature | 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[edit]
Signature | 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[edit]
Signature | math:tan( $arg 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[edit]
Signature | 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[edit]
Signature | 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[edit]
Signature | 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[edit]
Signature | 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[edit]
Signature | 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:exp[edit]
Signature | 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:log[edit]
Signature | 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:log10[edit]
Signature | 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 |
|
Additional Functions[edit]
math:e[edit]
Signature | math:e() as xs:double |
Summary | Returns the xs:double value of the mathematical constant e whose lexical representation is 2.718281828459045.
|
Examples |
|
math:sinh[edit]
Signature | 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:cosh[edit]
Signature | 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:tanh[edit]
Signature | 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:crc32[edit]
Signature | math:crc32( $string as xs:string? ) as xs:hexBinary? |
Summary | Calculates the CRC32 check sum of the given $string .If an empty sequence is supplied, the empty sequence is returned. |
Examples |
|
Changelog[edit]
- Version 9.1
- Updated:
math:crc32
can be called with empty sequence.
- Version 7.5
- Moved:
math:random
andmath:uuid
have been moved to the Random Module.
- Version 7.3
- Added:
math:crc32
andmath:uuid
have been adopted from the obsolete Utility Module.