Difference between revisions of "Math Module"
Jump to navigation
Jump to search
m (wikified... phew!) |
|||
Line 1: | Line 1: | ||
=Math Module= | =Math Module= | ||
− | + | 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 the <code>math:</code> prefix. Some of the functions have also been specified in the | |
− | [http://www.w3.org/TR/xpath-functions-11/ Functions and Operators Specification] of the upcoming XQuery 1.1 Recommendation. | + | [http://www.w3.org/TR/xpath-functions-11/ Functions and Operators Specification] of the upcoming XQuery 1.1 Recommendation. |
==math:pi== | ==math:pi== | ||
− | + | {| | |
− | + | | '''Signatures''' | |
− | + | | <code> '''math:pi'''() as xs:double</code> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the value of the mathematical constant π. | |
− | + | |- | |
− | + | | '''Rules''' | |
− | + | |This function returns the <code>xs:double</code> value whose lexical representation is 3.141592653589793. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | |The expression <code>2*math:pi()</code> returns <code>6.283185307179586e0</code>.The expression <code>60 * (math:pi() div 180)</code> converts an angle of 60 degrees to radians. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:e== | ==math:e== | ||
− | + | {| | |
− | + | | '''Signatures''' | |
− | + | | <code> '''math:e'''() as xs:double</code> | |
− | + | |- | |
− | + | | '''Summary''' | |
− | + | |Returns the value of the mathematical constant <i>e</i>. | |
− | + | |- | |
− | + | | '''Rules''' | |
− | + | |This function returns the <code>xs:double</code> value whose lexical representation is 2.718281828459045. | |
− | + | |- | |
− | + | | '''Examples''' | |
− | + | |The expression <code>5*math:e()</code> returns <code>13.591409142295225</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:sqrt== | ==math:sqrt== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:sqrt'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the square root of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the <code>xs:double</code> value of the mathematical square root of <code>$arg</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:sin== | ==math:sin== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:sin'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the sine of the argument, expressed in radians. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the sine of <code>$arg</code>, treated as an angle in radians. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:cos== | ==math:cos== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:cos'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the cosine of the argument, expressed in radians. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the cosine of <code>$arg</code>, treated as an angle in radians. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:tan== | ==math:tan== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:tan'''($ as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the tangent of the argument, expressed in radians. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the tangent of <code>$arg</code>, treated as an angle in radians. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:asin== | ==math:asin== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:asin'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the arc sine of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the arc sine of <code>$arg</code>, returned as an angle in radians in the range -π/2 to +π/2. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:acos== | ==math:acos== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:acos'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the arc cosine of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the arc cosine of <code>$arg</code>, returned as an angle in radians in the range 0 to +π. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:atan== | ==math:atan== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:atan'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the arc tangent of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the arc tangent of <code>$arg</code>, returned as an angle in radians in the range -π/2 to +π/2. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:atan2== | ==math:atan2== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:atan2'''($arg1 as xs:double?, $arg2 as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the arc tangent of the first argument divided by the second argument, the result being in the range -π/2 to +π/2 radians. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg1</code> is the empty sequence, the function returns the empty sequence.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 +π. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:pow== | ==math:pow== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:pow'''($arg1 as xs:double?, $arg2 as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the first argument raised to the power of the second argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg1</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the <code>$arg1</code> raised to the power of <code>$arg2</code>. | |
− | + | |- | |
− | + | |'''Examples''' | |
− | + | |The expression <code>math:pow(2, 3)</code> returns <code>8</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:exp== | ==math:exp== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:exp'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns <i>e</i> raised to the power of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the value of <i>e</i> raised to the power of <code>$arg</code>. | |
− | + | |- | |
− | + | |'''Examples''' | |
− | + | |The expression <code>math:exp(1)</code> returns <i>e</i>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:log== | ==math:log== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:log'''($arg as xs:double?) as xs:double?</code> | |
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the natural logarithm of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the natural logarithm (base <i>e</i>) of <code>$arg</code>. | |
− | + | |- | |
− | + | |'''Examples''' | |
− | + | |The expression <code>math:log(math:e())</code> returns <code>1</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:log10== | ==math:log10== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:log10'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the base 10 logarithm of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the base 10 logarithm of <code>$arg</code>. | |
− | + | |- | |
− | + | |'''Examples''' | |
− | + | |The expression <code>math:log(100)</code> returns <code>2</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:random== | ==math:random== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:random'''() as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns a random value. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |This function returns a random <code>xs:double</code> value between <code>0.0</code> and <code>1.0</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:sinh== | ==math:sinh== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:sinh'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the hyperbolic sine of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the hyperbolic sine of <code>$arg</code>. | |
− | + | |- | |
− | + | |'''Examples''' | |
− | + | |The expression <code>math:sinh(0)</code> returns <code>0</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:cosh== | ==math:cosh== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:cosh'''($arg as xs:double?) as xs:double?</code> | |
− | + | ||
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the hyperbolic cosine of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the hyperbolic cosine of <code>$arg</code>. | |
− | + | |- | |
− | + | |'''Examples''' | |
− | + | |The expression <code>math:cosh(0)</code> returns <code>1</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==math:tanh== | ==math:tanh== | ||
− | + | {| | |
− | + | |- | |
− | + | |'''Signatures''' | |
− | + | | <code> '''math:tanh'''($arg as xs:double?) as xs:double?</code> | |
− | + | |- | |
− | + | |'''Summary''' | |
− | + | |Returns the hyperbolic tangent of the argument. | |
− | + | |- | |
− | + | |'''Rules''' | |
− | + | |If <code>$arg</code> is the empty sequence, the function returns the empty sequence.Otherwise the result is the hyperbolic tangent of <code>$arg</code>. | |
− | + | |- | |
− | + | |'''Examples''' | |
− | + | |The expression <code>math:tanh(100)</code> returns <code>1</code>. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:XQuery]] | [[Category:XQuery]] | ||
− |
Revision as of 22:53, 9 December 2010
Contents
Math Module
The math module defines extension functions to perform mathematical operations, such as pi
, asin
and acos
. All functions are preceded by the math:
prefix. Some of the functions have also been specified in the
Functions and Operators Specification of the upcoming XQuery 1.1 Recommendation.
math:pi
Signatures | math:pi() as xs:double
|
Summary | Returns the value of the mathematical constant π. |
Rules | This function returns the xs:double value whose lexical representation is 3.141592653589793.
|
Examples | The expression 2*math:pi() returns 6.283185307179586e0 .The expression 60 * (math:pi() div 180) converts an angle of 60 degrees to radians.
|
math:e
Signatures | math:e() as xs:double
|
Summary | Returns the value of the mathematical constant e. |
Rules | This function returns the xs:double value whose lexical representation is 2.718281828459045.
|
Examples | The expression 5*math:e() returns 13.591409142295225 .
|
math:sqrt
Signatures | math:sqrt($arg as xs:double?) as xs:double?
|
Summary | Returns the square root of the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.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 argument, expressed in radians. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.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 the argument, expressed in radians. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.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 the argument, expressed in radians. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.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 the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.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 the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.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 the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.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 the first argument divided by the second argument, the result being in the range -π/2 to +π/2 radians. |
Rules | If $arg1 is the empty sequence, the function returns the empty sequence.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 the first argument raised to the power of the second argument. |
Rules | If $arg1 is the empty sequence, the function returns the empty sequence.Otherwise the result is the $arg1 raised to the power of $arg2 .
|
Examples | The expression 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 the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.Otherwise the result is the value of e raised to the power of $arg .
|
Examples | The expression math:exp(1) returns e.
|
math:log
Signatures | math:log($arg as xs:double?) as xs:double?
|
Summary | Returns the natural logarithm of the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.Otherwise the result is the natural logarithm (base e) of $arg .
|
Examples | The expression 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 the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.Otherwise the result is the base 10 logarithm of $arg .
|
Examples | The expression math:log(100) returns 2 .
|
math:random
Signatures | math:random() as xs:double?
|
Summary | Returns a random value. |
Rules | This function 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 the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.Otherwise the result is the hyperbolic sine of $arg .
|
Examples | The expression math:sinh(0) returns 0 .
|
math:cosh
Signatures | math:cosh($arg as xs:double?) as xs:double?
|
Summary | Returns the hyperbolic cosine of the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.Otherwise the result is the hyperbolic cosine of $arg .
|
Examples | The expression math:cosh(0) returns 1 .
|
math:tanh
Signatures | math:tanh($arg as xs:double?) as xs:double?
|
Summary | Returns the hyperbolic tangent of the argument. |
Rules | If $arg is the empty sequence, the function returns the empty sequence.Otherwise the result is the hyperbolic tangent of $arg .
|
Examples | The expression math:tanh(100) returns 1 .
|