role Numeric

Number or object that can act as a number

Common role for numbers and types that can act as numbers.

Binary numeric operations return an object of the "wider" type:

So for example the product of a Rat and an Int is a Rat.

Unary operations that in pure math usually return an irrational number generally return Num in Perl 6.

Methods

method Numeric

Defined as:

The :D variant simply returns the invocant. The :U variant issues a warning about using an uninitialized value in numeric context and then returns self.new.

method Int

If this Numeric is equivalent to a Real, return the equivalent of calling truncate on that Real to get an Int. Fail with X::Numeric::Real otherwise.

method Rat

If this Numeric is equivalent to a Real, return a Rat which is within \$epsilon of that Real's value. Fail with X::Numeric::Real otherwise.

method Num

If this Numeric is equivalent to a Real, return that Real as a Num as accurately as is possible. Fail with X::Numeric::Real otherwise.

method narrow

Returns the number converted to the narrowest type that can hold it without loss of precision.

method ACCEPTS

Returns True if \$other can be coerced to Numeric and is numerically equal to the invocant (or both evaluate to NaN).

routine log

Calculates the logarithm to base \$base. Defaults to the natural logarithm. Returns NaN if \$base is negative. Throws an exception if \$base is 1.

routine log10

Calculates the logarithm to base 10. Returns NaN for negative arguments and -Inf for 0.

routine exp

Returns \$base to the power of the number, or e to the power of the number if called without a second argument.

method roots

Returns a list of the \$n complex roots, which evaluate to the original number when raised to the \$nth power.

routine abs

Returns the absolute value of the number.

routine sqrt

Returns a square root of the number. For real numbers the positive square root is returned.

On negative real numbers, sqrt returns NaN rather than a complex number, in order to not confuse people who are not familiar with complex arithmetic. If you want to calculate complex square roots, coerce to Complex first, or use the roots method.

method conj

Returns the complex conjugate of the number. Returns the number itself for real numbers.

method Bool

Returns False if the number is equivalent to zero, and True otherwise.

method succ

Returns the number incremented by one (successor).

method pred

Returns the number decremented by one (predecessor).