Math
- Constants
- (Double) -> Bool
- (Double) -> Double
- (Double, Double) -> Double
- (Double, Int32) -> Double
- (Double, Double, [Double?]) -> Bool
- Functions for computing remainders
A set of wrappers around the functions from the libm library and the Yandex utilities.
Constants
List of functions
Math::Pi() -> DoubleMath::E() -> DoubleMath::Eps() -> Double
Examples
1. SELECT Math::Pi(); -- 3.141592654
2. SELECT Math::E(); -- 2.718281828
3. SELECT Math::Eps(); -- 2.220446049250313e-16

(Double) -> Bool
List of functions
Math::IsInf(Double{Flags:AutoMap}) -> BoolMath::IsNaN(Double{Flags:AutoMap}) -> BoolMath::IsFinite(Double{Flags:AutoMap}) -> Bool
Examples
1. SELECT Math::IsNaN(0.0/0.0); -- true
2. SELECT Math::IsFinite(1.0/0.0); -- false

(Double) -> Double
List of functions
Math::Abs(Double{Flags:AutoMap}) -> DoubleMath::Acos(Double{Flags:AutoMap}) -> DoubleMath::Asin(Double{Flags:AutoMap}) -> DoubleMath::Asinh(Double{Flags:AutoMap}) -> DoubleMath::Atan(Double{Flags:AutoMap}) -> DoubleMath::Cbrt(Double{Flags:AutoMap}) -> DoubleMath::Ceil(Double{Flags:AutoMap}) -> DoubleMath::Cos(Double{Flags:AutoMap}) -> DoubleMath::Cosh(Double{Flags:AutoMap}) -> DoubleMath::Erf(Double{Flags:AutoMap}) -> DoubleMath::ErfInv(Double{Flags:AutoMap}) -> DoubleMath::ErfcInv(Double{Flags:AutoMap}) -> DoubleMath::Exp(Double{Flags:AutoMap}) -> DoubleMath::Exp2(Double{Flags:AutoMap}) -> DoubleMath::Fabs(Double{Flags:AutoMap}) -> DoubleMath::Floor(Double{Flags:AutoMap}) -> DoubleMath::Lgamma(Double{Flags:AutoMap}) -> DoubleMath::Rint(Double{Flags:AutoMap}) -> DoubleMath::Sigmoid(Double{Flags:AutoMap}) -> DoubleMath::Sin(Double{Flags:AutoMap}) -> DoubleMath::Sinh(Double{Flags:AutoMap}) -> DoubleMath::Sqrt(Double{Flags:AutoMap}) -> DoubleMath::Tan(Double{Flags:AutoMap}) -> DoubleMath::Tanh(Double{Flags:AutoMap}) -> DoubleMath::Tgamma(Double{Flags:AutoMap}) -> DoubleMath::Trunc(Double{Flags:AutoMap}) -> DoubleMath::Log(Double{Flags:AutoMap}) -> DoubleMath::Log2(Double{Flags:AutoMap}) -> DoubleMath::Log10(Double{Flags:AutoMap}) -> Double
Examples
1. SELECT Math::Sqrt(256); -- 16
2. SELECT Math::Trunc(1.2345); -- 1

(Double, Double) -> Double
List of functions
Math::Atan2(Double{Flags:AutoMap}, Double{Flags:AutoMap}) -> DoubleMath::Fmod(Double{Flags:AutoMap}, Double{Flags:AutoMap}) -> DoubleMath::Hypot(Double{Flags:AutoMap}, Double{Flags:AutoMap}) -> DoubleMath::Pow(Double{Flags:AutoMap}, Double{Flags:AutoMap}) -> DoubleMath::Remainder(Double{Flags:AutoMap}, Double{Flags:AutoMap}) -> Double
Examples
1. SELECT Math::Atan2(1, 0); -- 1.570796327
2. SELECT Math::Remainder(2.1, 2); -- 0.1

(Double, Int32) -> Double
List of functions
Math::Ldexp(Double{Flags:AutoMap}, Int32{Flags:AutoMap}) -> DoubleMath::Round(Double{Flags:AutoMap}, [Int32?]) -> Double: The second argument indicates the power of 10 to which we round (it’s negative for decimal digits and positive for rounding to tens, thousands, or millions); the default value is 0
Examples
1. SELECT Math::Pow(2, 10); -- 1024
2. SELECT Math::Round(1.2345, -2); -- 1.23

(Double, Double, [Double?]) -> Bool
List of functions
Math::FuzzyEquals(Double{Flags:AutoMap}, Double{Flags:AutoMap}, [Double?]) -> Bool: Compares two Doubles for being inside the neighborhood specified by the third argument; the default value is 1.0e-13
Examples
1. SELECT Math::FuzzyEquals(1.01, 1.0, 0.05); -- true

Functions for computing remainders
List of functions
Math::Mod(Int64{Flags:AutoMap}, Int64) -> Int64?Math::Rem(Int64{Flags:AutoMap}, Int64) -> Int64?
These functions behave similarly to the built-in % operator in the case of non-negative arguments. The differences are noticeable in the case of negative arguments:
- Math::Mod preserves the sign of the second argument (the denominator).
- Math::Rem preserves the sign of the first argument (the numerator). Functions return null if the divisor is zero.
Examples
1. SELECT Math::Mod(-1, 7); -- 6
2. SELECT Math::Rem(-1, 7); -- -1

