Skip to content

Latest commit

History

History
1073 lines (763 loc) 路 20.2 KB

number.md

File metadata and controls

1073 lines (763 loc) 路 20.2 KB
title
Number

Utilities for working with numbers.

Added in 0.4.0 No other changes yet.
from "number" include Number

Values

Functions and constants included in the Number module.

Number.pi

Added in 0.5.2 No other changes yet.
pi : Number

Pi represented as a Number value.

Number.tau

Added in 0.5.2 No other changes yet.
tau : Number

Tau represented as a Number value.

Number.e

Added in 0.5.2 No other changes yet.
e : Number

Euler's number represented as a Number value.

Number.(+)

Added in next
versionchanges
0.4.0Originally named `add`
(+) : (num1: Number, num2: Number) => Number

Computes the sum of its operands.

Parameters:

param type description
num1 Number The first operand
num2 Number The second operand

Returns:

type description
Number The sum of the two operands

Number.(-)

Added in next
versionchanges
0.4.0Originally named `sub`
(-) : (num1: Number, num2: Number) => Number

Computes the difference of its operands.

Parameters:

param type description
num1 Number The first operand
num2 Number The second operand

Returns:

type description
Number The difference of the two operands

Number.(*)

Added in next
versionchanges
0.4.0Originally named `mul`
(*) : (num1: Number, num2: Number) => Number

Computes the product of its operands.

Parameters:

param type description
num1 Number The first operand
num2 Number The second operand

Returns:

type description
Number The product of the two operands

Number.(/)

Added in next
versionchanges
0.4.0Originally named `div`
(/) : (num1: Number, num2: Number) => Number

Computes the quotient of its operands.

Parameters:

param type description
num1 Number The dividend
num2 Number The divisor

Returns:

type description
Number The quotient of the two operands

Number.(**)

Added in next
versionchanges
0.5.4Originally named `pow`
(**) : (base: Number, power: Number) => Number

Computes the exponentiation of the given base and power.

Parameters:

param type description
base Number The base number
power Number The exponent number

Returns:

type description
Number The base raised to the given power

Number.exp

Added in 0.5.4 No other changes yet.
exp : (power: Number) => Number

Computes the exponentiation of Euler's number to the given power.

Parameters:

param type description
power Number The exponent number

Returns:

type description
Number The Number.e value raised to the given power

Number.sqrt

Added in 0.4.0 No other changes yet.
sqrt : (x: Number) => Number

Computes the square root of its operand.

Parameters:

param type description
x Number The number to square root

Returns:

type description
Number The square root of the operand

Number.sign

sign : (x: Number) => Number

Determine the positivity or negativity of a Number.

Parameters:

param type description
x Number The number to inspect

Returns:

type description
Number -1 if the number is negative, 1 if positive, or 0 otherwise; signedness of -0.0 is preserved

Examples:

Number.sign(-10000) == -1
Number.sign(222222) == 1
Number.sign(0) == 0

Number.min

Added in 0.4.0
versionchanges
0.5.4Handle NaN properly
min : (x: Number, y: Number) => Number

Returns the smaller of its operands.

Parameters:

param type description
x Number The first operand
y Number The second operand

Returns:

type description
Number The smaller of the two operands

Number.max

Added in 0.4.0
versionchanges
0.5.4Handle NaN properly
max : (x: Number, y: Number) => Number

Returns the larger of its operands.

Parameters:

param type description
x Number The first operand
y Number The second operand

Returns:

type description
Number The larger of the two operands

Number.ceil

Added in 0.4.0
versionchanges
0.5.4Handle NaN and Infinity properly
ceil : (x: Number) => Number

Rounds its operand up to the next largest integer.

Parameters:

param type description
x Number The number to round

Returns:

type description
Number The next largest integer of the operand

Number.floor

Added in 0.4.0
versionchanges
0.5.4Handle NaN and Infinity properly
floor : (x: Number) => Number

Rounds its operand down to the largest integer less than the operand.

Parameters:

param type description
x Number The number to round

Returns:

type description
Number The previous integer of the operand

Number.trunc

Added in 0.4.0
versionchanges
0.5.4Handle NaN and Infinity properly
trunc : (x: Number) => Number

Returns the integer part of its operand, removing any fractional value.

Parameters:

param type description
x Number The number to truncate

Returns:

type description
Number The integer part of the operand

Number.round

Added in 0.4.0
versionchanges
0.5.4Handle NaN and Infinity properly
round : (x: Number) => Number

Returns its operand rounded to its nearest integer.

Parameters:

param type description
x Number The number to round

Returns:

type description
Number The nearest integer to the operand

Number.abs

Added in 0.4.0 No other changes yet.
abs : (x: Number) => Number

Returns the absolute value of a number. That is, it returns x if x is positive or zero and the negation of x if x is negative.

Parameters:

param type description
x Number The operand

Returns:

type description
Number The absolute value of the operand

Number.neg

Added in 0.4.0 No other changes yet.
neg : (x: Number) => Number

Returns the negation of its operand.

Parameters:

param type description
x Number The number to negate

Returns:

type description
Number The negated operand

Number.isFloat

Added in 0.5.3 No other changes yet.
isFloat : (x: Number) => Bool

Checks if a number is a floating point value.

Parameters:

param type description
x Number The number to check

Returns:

type description
Bool true if the value is a floating point number or false otherwise

Number.isInteger

Added in 0.5.3 No other changes yet.
isInteger : (x: Number) => Bool

Checks if a number is an integer.

Parameters:

param type description
x Number The number to check

Returns:

type description
Bool true if the value is an integer or false otherwise

Number.isRational

Added in 0.5.3 No other changes yet.
isRational : (x: Number) => Bool

Checks if a number is a non-integer rational value.

Parameters:

param type description
x Number The number to check

Returns:

type description
Bool true if the value is a non-integer rational number or false otherwise

Number.isFinite

Added in 0.4.0 No other changes yet.
isFinite : (x: Number) => Bool

Checks if a number is finite. All values are finite exept for floating point NaN, infinity or negative infinity.

Parameters:

param type description
x Number The number to check

Returns:

type description
Bool true if the value is finite or false otherwise

Number.isNaN

Added in 0.4.0 No other changes yet.
isNaN : (x: Number) => Bool

Checks if a number is the float NaN value (Not A Number).

Parameters:

param type description
x Number The number to check

Returns:

type description
Bool true if the value is NaN, otherwise false

Number.isInfinite

Added in 0.4.0 No other changes yet.
isInfinite : (x: Number) => Bool

Checks if a number is infinite, that is either of floating point positive or negative infinity. Note that this function is not the exact opposite of isFinite(Number) in that it doesn't return true for NaN.

Parameters:

param type description
x Number The number to check

Returns:

type description
Bool true if the value is infinite or false otherwise

Number.isClose

Added in next No other changes yet.
isClose :
  (a: Number, b: Number, ?relativeTolerance: Number,
   ?absoluteTolerance: Number) => Bool

Determines whether two values are considered close to each other using a relative and absolute tolerance.

Parameters:

param type description
a Number The first value
b Number The second value
?relativeTolerance Number The maximum tolerance to use relative to the larger absolute value a or b
?absoluteTolerance Number The absolute tolerance to use, regardless of the values of a or b

Returns:

type description
Bool true if the values are considered close to each other or false otherwise

Number.parseInt

Added in 0.4.5 No other changes yet.
parseInt : (string: String, radix: Number) => Result<Number, String>

Parses a string representation of an integer into a Number using the specified radix (also known as a number system "base").

If the string has a radix prefix (i.e. "0x"/"0X", "0o"/"0O", or "0b"/"0B" for radixes 16, 8, or 2 respectively), the supplied radix is ignored in favor of the prefix. Underscores that appear in the numeric portion of the input are ignored.

Parameters:

param type description
string String The string to parse
radix Number The number system base to use when parsing the input string

Returns:

type description
Result<Number, String> Ok(value) containing the parsed number on a successful parse or Err(msg) containing an error message string otherwise

Number.parseFloat

Added in 0.5.5 No other changes yet.
parseFloat : (string: String) => Result<Number, String>

Parses a string representation of a float into a Number. Underscores that appear in numeric portions of the input are ignored.

Parameters:

param type description
string String The string to parse

Returns:

type description
Result<Number, String> Ok(value) containing the parsed number on a successful parse or Err(msg) containing an error message string otherwise

Number.parse

Added in 0.5.5 No other changes yet.
parse : (input: String) => Result<Number, String>

Parses a string representation of an integer, float, or rational into a Number. Underscores that appear in the numeric portion of the input are ignored.

Parameters:

param type description
input String The string to parse

Returns:

type description
Result<Number, String> Ok(value) containing the parsed number on a successful parse or Err(msg) containing an error message string otherwise

Number.asin

Added in next No other changes yet.
asin : (angle: Number) => Number

Computes the inverse sine of the given angle.

Parameters:

param type description
angle Number A number between -1 and 1, representing the angle's sine value

Returns:

type description
Number The inverse sine (angle in radians between -pi/2 and pi/2) of the given angle or NaN if the given angle is not between-1 and 1

Number.acos

Added in next No other changes yet.
acos : (angle: Number) => Number

Computes the inverse cosine of the given angle.

Parameters:

param type description
angle Number A number between -1 and 1, representing the angle's cosine value

Returns:

type description
Number The inverse cosine (angle in radians between -pi/2 and pi/2) of the given angle or NaN if the given angle is not between-1 and 1

Number.atan

Added in next No other changes yet.
atan : (angle: Number) => Number

Computes the inverse tangent of the given angle.

Parameters:

param type description
angle Number A number between -1 and 1, representing the angle's tangent value

Returns:

type description
Number The inverse tangent (angle in radians between -pi/2 and pi/2) of the given angle or NaN if the given angle is not between-1 and 1

Number.atan2

Added in next No other changes yet.
atan2 : (y: Number, x: Number) => Number

Computes the angle between the positive x-axis and the ray from the origin to the point (x, y).

Parameters:

param type description
y Number The given y coordinate
x Number The given x coordinate

Returns:

type description
Number The angle in radians between the positive x-axis and the point (x, y)

Examples:

Number.atan2(0, 1) == Number.pi

Number.toRadians

Added in 0.5.4 No other changes yet.
toRadians : (degrees: Number) => Number

Converts degrees to radians.

Parameters:

param type description
degrees Number The value to convert

Returns:

type description
Number The value in radians

Number.toDegrees

Added in 0.5.4 No other changes yet.
toDegrees : (radians: Number) => Number

Converts radians to degrees.

Parameters:

param type description
radians Number The value to convert

Returns:

type description
Number The value in degrees

Number.clamp

Added in next No other changes yet.
clamp : (range: Range<Number>, input: Number) => Number

Constrains a number within the given inclusive range.

Parameters:

param type description
range Range<Number> The inclusive range to clamp within
input Number The number to clamp

Returns:

type description
Number The constrained number

Number.linearInterpolate

Added in next No other changes yet.
linearInterpolate : (range: Range<Number>, weight: Number) => Number

Maps a weight between 0 and 1 within the given inclusive range.

Parameters:

param type description
range Range<Number> The inclusive range to interpolate within
weight Number The weight to interpolate

Returns:

type description
Number The blended value

Throws:

InvalidArgument(String)

  • When weight is not between 0 and 1
  • When range is not finite
  • When range includes NaN

Number.linearMap

Added in next No other changes yet.
linearMap :
  (inputRange: Range<Number>, outputRange: Range<Number>, current: Number) =>
   Number

Scales a number from one inclusive range to another inclusive range. If the number is outside the input range, it will be clamped.

Parameters:

param type description
inputRange Range<Number> The inclusive range you are mapping from
outputRange Range<Number> The inclusive range you are mapping to
current Number The number to map

Returns:

type description
Number The mapped number

Throws:

InvalidArgument(String)

  • When inputRange is not finite
  • When inputRange includes NaN
  • When outputRange is not finite
  • When outputRange includes NaN