Camelia

role Numeric

src
    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

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.

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.

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.

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.

ACCEPTS

    multi method ACCEPTS(Numeric:D: $other)

 
Returns True if $other is numerically the same as the invocant.

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.

log10

    multi sub    log10(Numeric:D ) returns Numeric:D
    multi method log10(Numeric:D:) returns Numeric:D

 
Calculates the logarithm to base 10.

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.

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.

abs

    multi sub    abs(Numeric:D ) returns Real:D
    multi method abs(Numeric:D:) returns Real:D

 
Returns the absolute value of the number.

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.

conj

    multi method conj(Numeric:D) returns Numeric:D

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

Bool

    multi method Bool(Numeric:D:)

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

succ

    method succ(Numerid:D:)

 
Returns the number incremented by one (successor).

pred

    method pred(Numerid:D:)

 
Returns the number decremented by one (predecessor).

Perl 6 Tricks and Treats newsletter

Register to the free newsletter now, and get updates and news.
Email:
Name: