# 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`.