Htam v0.2.1 Math View Source
Mathematical functions and constants.
Link to this section Summary
Functions
Equality-test for whether x and y are nearly equal.
Computes the arc cosine of x. (expressed in radians)
Computes the inverse hyperbolic cosine of x.
Computes the arc sine of x. (expressed in radians)
Computes the inverse hyperbolic sine of x.
Computes the arc tangent of x. (expressed in radians)
Computes the arc tangent given y and x. (expressed in radians)
Computes the inverse hyperbolic tangent of x.
Computes the cosine of x.
Computes the hyperbolic cosine of x (expressed in radians).
Converts degrees to radians
The mathematical constant ℯ (e).
Calculates ℯ to the xth power.
Calculates the factorial of n: 1 2 3 ... n
Calculates the Greatest Common divisor of two numbers.
Calculates the non-negative integer square root of x (rounded towards zero)
Calculates the k-combinations of n.
Calculates the k-permutations of n.
Calculates the Least Common Multiple of two numbers.
Calculates the natural logarithm (base ℯ
) of x.
Calculates the base-b logarithm of x
Calculates the common logarithm (base 10
) of x.
Calculates the binary logarithm (base 2
) of x.
Calculates the non-negative nth-root of x.
The mathematical constant π (pi).
Arithmetic exponentiation. Calculates x to the n -th power.
Converts radians to degrees
Computes the sine of x.
Computes the hyperbolic sine of x (expressed in radians).
Calculates the non-negative square root of x.
Computes the tangent of x (expressed in radians).
Computes the hyperbolic tangent of x (expressed in radians).
The mathematical constant τ (tau).
Link to this section Types
x()
View Source
x() :: number()
x() :: number()
y()
View Source
y() :: number()
y() :: number()
Link to this section Functions
x <~> y View Source
Equality-test for whether x and y are nearly equal.
This is useful when working with floating-point numbers, as these introduce small rounding errors.
Examples
iex> 2.3 - 0.3 == 2.0
false
iex> 2.3 - 0.3 <~> 2.0
true
acos(x) View Source
Computes the arc cosine of x. (expressed in radians)
acosh(x) View Source
Computes the inverse hyperbolic cosine of x.
asin(x) View Source
Computes the arc sine of x. (expressed in radians)
asinh(x) View Source
Computes the inverse hyperbolic sine of x.
atan(x) View Source
Computes the arc tangent of x. (expressed in radians)
atan2(y, x) View Source
Computes the arc tangent given y and x. (expressed in radians)
This variant returns the inverse tangent in the correct quadrant, as the signs of both x and y are known.
atanh(x) View Source
Computes the inverse hyperbolic tangent of x.
cos(x) View Source
Computes the cosine of x.
x is interpreted as a value in radians.
cosh(x) View Source
Computes the hyperbolic cosine of x (expressed in radians).
deg2rad(x) View Source
Converts degrees to radians
Examples
iex>Math.deg2rad(180)
3.141592653589793
e()
View Source
e() :: float()
e() :: float()
The mathematical constant ℯ (e).
exp(x) View Source
Calculates ℯ to the xth power.
factorial(n)
View Source
factorial(non_neg_integer()) :: pos_integer()
factorial(non_neg_integer()) :: pos_integer()
Calculates the factorial of n: 1 2 3 ... n
To make this function faster, values of n up to 1000
are precomputed at compile time.
Examples
iex> Math.factorial(1)
1
iex> Math.factorial(5)
120
iex> Math.factorial(20)
2432902008176640000
gcd(a, b)
View Source
gcd(integer(), integer()) :: non_neg_integer()
gcd(integer(), integer()) :: non_neg_integer()
Calculates the Greatest Common divisor of two numbers.
This is the largest positive integer that divides both a and b without leaving a remainder.
Also see Math.lcm/2
Examples
iex> Math.gcd(2, 4)
2
iex> Math.gcd(2, 3)
1
iex> Math.gcd(12, 8)
4
iex> Math.gcd(54, 24)
6
iex> Math.gcd(-54, 24)
6
isqrt(x) View Source
Calculates the non-negative integer square root of x (rounded towards zero)
Does not accept negative numbers as input.
Examples
iex> Math.isqrt(100)
10
iex> Math.isqrt(16)
4
iex> Math.isqrt(65536)
256
iex> Math.isqrt(10)
3
k_combinations(n, k)
View Source
k_combinations(non_neg_integer(), non_neg_integer()) :: non_neg_integer()
k_combinations(non_neg_integer(), non_neg_integer()) :: non_neg_integer()
Calculates the k-combinations of n.
Examples
iex> Math.k_combinations(10, 2)
45
iex> Math.k_combinations(5, 5)
1
iex> Math.k_combinations(3, 4)
0
k_permutations(n, k)
View Source
k_permutations(non_neg_integer(), non_neg_integer()) :: non_neg_integer()
k_permutations(non_neg_integer(), non_neg_integer()) :: non_neg_integer()
Calculates the k-permutations of n.
This is the number of distinct ways to create groups of size k from n distinct elements.
Notice that n is the first parameter, for easier piping.
Examples
iex> Math.k_permutations(10, 2)
90
iex> Math.k_permutations(5, 5)
120
iex> Math.k_permutations(3, 4)
0
lcm(a, b)
View Source
lcm(integer(), integer()) :: non_neg_integer()
lcm(integer(), integer()) :: non_neg_integer()
Calculates the Least Common Multiple of two numbers.
This is the smallest positive integer that can be divided by both a by b without leaving a remainder.
Also see Math.gcd/2
Examples
iex> Math.lcm(4, 6)
12
iex> Math.lcm(3, 7)
21
iex> Math.lcm(21, 6)
42
log(x) View Source
Calculates the natural logarithm (base ℯ
) of x.
See also Math.e/0
.
log(x, x) View Source
Calculates the base-b logarithm of x
Note that variants for the most common logarithms exist that are faster and more precise.
See also Math.log/1
, Math.log2/1
and Math.log10/1
.
Examples
iex> Math.log(5, 5)
1.0
iex> Math.log(20, 2) <~> Math.log2(20)
true
iex> Math.log(20, 10) <~> Math.log10(20)
true
iex> Math.log(2, 4)
0.5
iex> Math.log(10, 4)
1.6609640474436813
log10(x) View Source
Calculates the common logarithm (base 10
) of x.
See also Math.log/2
.
log2(x) View Source
Calculates the binary logarithm (base 2
) of x.
See also Math.log/2
.
nth_root(x, n) View Source
Calculates the non-negative nth-root of x.
Examples
iex> Math.nth_root(27, 3)
3.0
iex> Math.nth_root(65536, 8)
4.0
pi()
View Source
pi() :: float()
pi() :: float()
The mathematical constant π (pi).
The ratio of a circle's circumference to its diameter. The returned number is a floating-point approximation (as π is irrational)
pow(x, n) View Source
Arithmetic exponentiation. Calculates x to the n -th power.
When both x and n are integers and n is positive, returns an integer
.
When n is a negative integer, returns a float
.
When working with integers, the Exponentiation by Squaring algorithm is used, to allow for a fast and precise result.
When one of the numbers is a float, returns a float
by using erlang's :math.pow/2
function.
It is possible to calculate roots by choosing n between 0.0 and 1.0 (To calculate the p -th-root, pass 1/p to the function)
Examples
iex> Math.pow(2, 4)
16
iex> Math.pow(2.0, 4)
16.0
iex> Math.pow(2, 4.0)
16.0
iex> Math.pow(5, 100)
7888609052210118054117285652827862296732064351090230047702789306640625
iex> Math.pow(5.0, 100)
7.888609052210118e69
iex> Math.pow(2, (1 / 2))
1.4142135623730951
rad2deg(x) View Source
Converts radians to degrees
Examples
iex>Math.rad2deg(Math.pi)
180.0
sin(x) View Source
Computes the sine of x.
x is interpreted as a value in radians.
sinh(x) View Source
Computes the hyperbolic sine of x (expressed in radians).
sqrt(x) View Source
Calculates the non-negative square root of x.
tan(x) View Source
Computes the tangent of x (expressed in radians).
tanh(x) View Source
Computes the hyperbolic tangent of x (expressed in radians).
tau()
View Source
tau() :: float()
tau() :: float()
The mathematical constant τ (tau).
The ratio of a circle's circumference to its radius. Defined as 2 * π, but preferred by some mathematicians. The returned number is a floating-point approximation (as τ is irrational)