perl6/doc/lib/Numeric
doc src
(title) role Numeric
role Numeric { ... }
Common role for numbers and types that can act as numbers.
Binary numeric operations return an object of the "wider" type:
Int narrowest
Rat
FatRat
Num
Complex widest
So for example the product of a L<Rat> and an L<Int> return a L<Rat>.
Unary operations that in pure math usually return an irrational number
generally return L<Num> in Perl 6.
Methods
(head2) Real
method Real(Numeric:D:) returns Real:D
If this Numeric is equivalent to a Real , return that Real .
Fail with X::Numeric::Real otherwise.
(head2) Int
method Int(Numeric:D:) returns Int:D
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.
(head2) Rat
method Rat(Numeric:D: Real $epsilon = 1.0e-6) returns Rat:D
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.
(head2) Num
method Num(Numeric:D:) returns Num:D
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.
(head2) ACCEPTS
multi method ACCEPTS(Numeric:D: $other)
Returns True if $other is numerically the same as the invocant.
(head2) log
multi sub log(Numeric:D, Numeric $base = e) returns Numeric:D
multi method log(Numeric:D: Numeric $base = e) returns Numeric:D
Calculates the logarithm to base $base . Defaults to the natural logarithm.
(head2) log10
multi sub log10(Numeric:D ) returns Numeric:D
multi method log10(Numeric:D:) returns Numeric:D
Calculates the logarithm to base 10.
(head2) exp
multi sub exp(Numeric:D, Numeric:D $base = e) returns Numeric:D
multi method exp(Numeric:D: Numeric:D $base = e) returns Numeric:D
Returns $base to the power of the number, or e to the power of the
number if called without a second argument.
(head2) roots
multi method roots(Numeric:D: Int:D $n) returns Positional
Returns a list of the $n complex roots, which evaluate to the original
number when raised to the $n th power.
(head2) abs
multi sub abs(Numeric:D ) returns Real:D
multi method abs(Numeric:D:) returns Real:D
Returns the absolute value of the number.
(head2) sqrt
mulit sub sqrt(Numeric:D) returns Numeric:D
mulit method sqrt(Numeric:D) returns Numeric:D
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 arithemtic.
If you want to calculate complex square roots, coerce to Complex first, or
use the roots method.
(head2) conj
multi method conj(Numeric:D) returns Numeric:D
Returns the complex conjugate of the number. Returns the number itself for
real numbers.
(head2) Bool
multi method Bool(Numeric:D:)
Returns False if the number is equivalent to zero, and True otherwise.
(head2) succ
method succ(Numerid:D:)
Returns the number incremented by one (successor).
(head2) pred
method pred(Numerid:D:)
Returns the number decremented by one (predecessor).