
=encoding utf8

=head1 NAME

Sidef::Types::Number::Mod

=head1 DESCRIPTION

This class implements ...

=head1 SYNOPSIS

    var a = Mod(13, 19)

    a += 15         # Mod(9, 19)
    a *= 99         # Mod(17, 19)
    a /= 17         # Mod(1, 19)

    say a           # Mod(1, 19)

=head1 INHERITS

Inherits methods from:

       * Sidef::Types::Number::Number

=head1 METHODS

=head2 !

    a ! b

Returns the

Aliases: I<factorial>

=cut

=head2 !=

    a != b

Returns the

Aliases: I<ne>

=cut

=head2 &

    a & b

Returns the

Aliases: I<and>

=cut

=head2 *

    a * b

Returns the

Aliases: I<mul>

=cut

=head2 **

    a ** b

Returns the

Aliases: I<pow>

=cut

=head2 +

    a + b

Returns the

Aliases: I<add>

=cut

=head2 ++

    a ++ b

Returns the

Aliases: I<inc>

=cut

=head2 -

    a - b

Returns the

Aliases: I<sub>

=cut

=head2 --

    a -- b

Returns the

Aliases: I<dec>

=cut

=head2 /

    a / b

Returns the

Aliases: I<÷>, I<div>

=cut

=head2 <

    a < b

Returns the

Aliases: I<lt>

=cut

=head2 <<

    a << b

Returns the

Aliases: I<lsft>, I<shift_left>

=cut

=head2 <=>

    a <=> b

Returns the

Aliases: I<cmp>

=cut

=head2 ==

    a == b

Returns the

Aliases: I<eq>

=cut

=head2 >

    a > b

Returns the

Aliases: I<gt>

=cut

=head2 >>

    a >> b

Returns the

Aliases: I<rsft>, I<shift_right>

=cut

=head2 ^

    a ^ b

Returns the

Aliases: I<xor>

=cut

=head2 |

    a | b

Returns the

Aliases: I<or>

=cut

=head2 ≤

    a ≤ b

Returns the

Aliases: I<E<lt>=>, I<le>

=cut

=head2 ≥

    a ≥ b

Returns the

Aliases: I<E<gt>=>, I<ge>

=cut

=head2 chebyshevt

    Mod.chebyshevt()

Returns the

Aliases: I<chebyshevT>

=cut

=head2 chebyshevu

    Mod.chebyshevu()

Returns the

Aliases: I<chebyshevU>

=cut

=head2 chinese

    Mod.chinese()

Returns the

=cut

=head2 cyclotomic

    Mod.cyclotomic()

Returns the

=cut

=head2 eval

    Mod.eval()

Returns the

=cut

=head2 fib

    Mod.fib()

Returns the

Aliases: I<fibonacci>

=cut

=head2 inv

    Mod.inv()

Returns the

=cut

=head2 is_inf

    Mod.is_inf()

Returns the

=cut

=head2 is_mone

    Mod.is_mone()

Returns the

=cut

=head2 is_nan

    Mod.is_nan()

Returns the

=cut

=head2 is_neg

    Mod.is_neg()

Returns the

=cut

=head2 is_ninf

    Mod.is_ninf()

Returns the

=cut

=head2 is_one

    Mod.is_one()

Returns the

=cut

=head2 is_pos

    Mod.is_pos()

Returns the

=cut

=head2 is_real

    Mod.is_real()

Returns the

=cut

=head2 is_zero

    Mod.is_zero()

Returns the

=cut

=head2 lucas

    Mod.lucas()

Returns the

=cut

=head2 lucasu

    Mod.lucasu()

Returns the

Aliases: I<lucasU>

=cut

=head2 lucasv

    Mod.lucasv()

Returns the

Aliases: I<lucasV>

=cut

=head2 modulus

    Mod.modulus()

Returns the

=cut

=head2 neg

    Mod.neg()

Returns the

=cut

=head2 new

    Mod.new()

Returns the

Aliases: I<call>

=cut

=head2 norm

    Mod.norm()

Returns the

=cut

=head2 re

    Mod.re()

Returns the

Aliases: I<real>

=cut

=head2 sqrt

    Mod.sqrt()

Returns the

=cut

=head2 to_n

    Mod.to_n()

Returns the

Aliases: I<lift>

=cut

=head2 to_s

    Mod.to_s()

Returns the

Aliases: I<dump>

=cut

=head2 znorder

    Mod.znorder()

Returns the

=cut
