
=encoding utf8

=head1 NAME

Sidef::Types::Number::Quadratic

=head1 DESCRIPTION

This class implements ...

=head1 SYNOPSIS

    var x = Quadratic(3, 4, 5)  # represents: 3 + 4*sqrt(5)
    var y = Quadratic(6, 1, 2)  # represents: 6 + sqrt(2)

    say x**10       #=> (29578174649, 13203129720, 5)
    say y**10       #=> (253025888, 176008128, 2)

    say x.powmod(100, 97)   #=> (83, 42, 5)
    say y.powmod(100, 97)   #=> (83, 39, 2)

=head1 INHERITS

Inherits methods from:

       * Sidef::Types::Number::Number

=head1 METHODS

=head2 !=

    a != b

Returns the

Aliases: I<ne>

=cut

=head2 %

    a % b

Returns the

Aliases: I<mod>

=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 a

    Quadratic.a()

Returns the

Aliases: I<re>, I<real>

=cut

=head2 abs

    Quadratic.abs()

Returns the

=cut

=head2 b

    Quadratic.b()

Returns the

Aliases: I<im>, I<imag>

=cut

=head2 ceil

    Quadratic.ceil()

Returns the

=cut

=head2 conj

    Quadratic.conj()

Returns the

=cut

=head2 dump

    Quadratic.dump()

Returns the

=cut

=head2 eval

    Quadratic.eval()

Returns the

=cut

=head2 float

    Quadratic.float()

Returns the

=cut

=head2 floor

    Quadratic.floor()

Returns the

=cut

=head2 inv

    Quadratic.inv()

Returns the

=cut

=head2 invmod

    Quadratic.invmod()

Returns the

=cut

=head2 is_coprime

    Quadratic.is_coprime()

Returns the

=cut

=head2 is_mone

    Quadratic.is_mone()

Returns the

=cut

=head2 is_one

    Quadratic.is_one()

Returns the

=cut

=head2 is_zero

    Quadratic.is_zero()

Returns the

=cut

=head2 neg

    Quadratic.neg()

Returns the

=cut

=head2 new

    Quadratic.new()

Returns the

Aliases: I<call>

=cut

=head2 norm

    Quadratic.norm()

Returns the

=cut

=head2 parts

    Quadratic.parts()

Returns the

=cut

=head2 powmod

    Quadratic.powmod()

Returns the

=cut

=head2 reals

    Quadratic.reals()

Returns the

=cut

=head2 round

    Quadratic.round()

Returns the

=cut

=head2 sgn

    Quadratic.sgn()

Returns the

=cut

=head2 sqr

    Quadratic.sqr()

Returns the

=cut

=head2 stringify

    Quadratic.stringify()

Returns the

=cut

=head2 to_c

    Quadratic.to_c()

Returns the

Aliases: I<to_n>

=cut

=head2 to_s

    Quadratic.to_s()

Returns the

=cut

=head2 w

    Quadratic.w()

Returns the

Aliases: I<order>

=cut
