dart:math library
Properties
Functions
double log(num x) #
Converts x to a double and returns the natural logarithm of the value. Returns negative infinity if x is equal to zero. Returns NaN if x is NaN or less than zero.
external double log(num x);
double exp(num x) #
Converts x to a double and returns the natural exponent, E, to the power x. Returns NaN if x is NaN.
external double exp(num x);
double sqrt(num x) #
Converts x to a double and returns the positive square root of the value.
Returns -0.0 if x is -0.0, and NaN if x is otherwise negative or NaN.
external double sqrt(num x);
double atan(num x) #
Converts x to a dobule and returns the arc tangent of the vlaue. Returns a value in the range -PI/2..PI/2, or NaN if x is NaN.
external double atan(num x);
double asin(num x) #
Converts x to a double and returns the arc sine of the value. Returns a value in the range -PI..PI, or NaN if x is outside the range -1..1.
external double asin(num x);
double acos(num x) #
Converts x to a double and returns the arc cosine of the value.
Returns a value in the range -PI..PI, or NaN if x is outside the range -1..1.
external double acos(num x);
double tan(num x) #
Converts x to a double and returns the tangent of the value.
The tangent function is equivalent to sin(x)/cos(x) and may be
infinite (positive or negative) when cos(x) is equal to zero.
If
x is not a finite number, the result is NaN.
external double tan(num x);
double cos(num x) #
Converts x to a double and returns the cosine of the value.
If x is not a finite number, the result is NaN.
external double cos(num x);
double sin(num x) #
Converts x to a double and returns the sine of the value.
If x is not a finite number, the result is NaN.
external double sin(num x);
num pow(num x, num exponent) #
Returns x to the power of exponent.
If
x is an int and
exponent is a non-negative int, the result is
an int, otherwise the result it is a double.
Notice that an int result cannot overflow, but a double result might
be double.INFINITY.
external num pow(num x, num exponent);
double atan2(num a, num b) #
A variant of atan.
Converts both arguments to doubles.
Returns the angle between the positive x-axis and the vector ( b, a). The result, in radians, is in the range -PI..PI.
If
b is positive, this is the same as atan(b/a).
The result is negative when a is negative (including when a is the double -0.0).
If a is equal to zero, the vector ( b, a) is considered parallel to the x-axis, even if b is also equal to zero. The sign of b determines the direction of the vector along the x-axis.
Returns NaN if either argument is NaN.
external double atan2(num a, num b);
num max(num a, num b) #
Returns the larger of two numbers.
Returns NaN if either argument is NaN.
The larger of -0.0 and 0.0 is 0.0. If the arguments are
otherwise equal (including int and doubles with the same mathematical value)
then it is unspecified which of the two arguments is returned.
num max(num a, num b) {
if (a is num) {
// TODO(floitsch): merge this if into the previous one, once dart2js
// correctly propagates types for logical ands.
if (b is num) {
if (a > b) return a;
if (a < b) return b;
if (b is double) {
// Special case for NaN and -0.0. If one argument is NaN return NaN.
// [max] must also distinguish between -0.0 and 0.0.
if (a is double) {
if (a == 0.0) {
// a is either 0.0 or -0.0. b is either 0.0, -0.0, or NaN.
// The following returns 0.0 if either a or b is 0.0, and it
// returns NaN if b is NaN.
return a + b;
}
}
// Check for NaN.
if (b.isNaN) return b;
return a;
}
// max(-0.0, 0) must return 0.
if (b == 0 && a.isNegative) return b;
return a;
}
throw new ArgumentError(b);
}
throw new ArgumentError(a);
}
num min(num a, num b) #
Returns the lesser of two numbers.
Returns NaN if either argument is NaN.
The lesser of -0.0 and 0.0 is -0.0.
If the arguments are otherwise equal (including int and doubles with the
same mathematical value) then it is unspecified which of the two arguments
is returned.
num min(num a, num b) {
if (a is num) {
// TODO(floitsch): merge this if into the previous one, once dart2js
// correctly propagates types for logical ands.
if (b is num) {
if (a > b) return b;
if (a < b) return a;
if (b is double) {
// Special case for NaN and -0.0. If one argument is NaN return NaN.
// [min] must also distinguish between -0.0 and 0.0.
if (a is double) {
if (a == 0.0) {
// a is either 0.0 or -0.0. b is either 0.0, -0.0 or NaN.
// The following returns -0.0 if either a or b is -0.0, and it
// returns NaN if b is NaN.
return (a + b) * a * b;
}
}
// Check for NaN and b == -0.0.
if (a == 0 && b.isNegative || b.isNaN) return b;
return a;
}
return a;
}
throw new ArgumentError(b);
}
throw new ArgumentError(a);
}