Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
cadabra::Multiplier Class Reference

#include <Multiplier.hh>

Public Member Functions

 Multiplier ()
 Multiplier (mpz_class numerator, mpz_class denominator=1)
 Multiplier (const mpq_class &v)
 Multiplier (int v)
 Multiplier (unsigned int v)
 Multiplier (long v)
 Multiplier (unsigned long v)
 Multiplier (double v)
 Multiplier (const Multiplier &other)=default
Multiplieroperator= (const Multiplier &other)=default
Multiplieroperator= (const mpq_class &v)
Multiplieroperator= (const double &v)
bool is_rational () const
bool is_double () const
const mpq_class & get_rational () const
double get_double () const
void canonicalize ()
Multiplier operator+ (const Multiplier &other) const
Multiplier operator- (const Multiplier &other) const
Multiplier operator* (const Multiplier &other) const
Multiplier operator/ (const Multiplier &other) const
Multiplieroperator+= (const Multiplier &other)
Multiplieroperator-= (const Multiplier &other)
Multiplieroperator*= (const Multiplier &other)
Multiplieroperator/= (const Multiplier &other)
bool operator== (const Multiplier &other) const
bool operator!= (const Multiplier &other) const
bool operator< (const Multiplier &other) const
bool operator<= (const Multiplier &other) const
bool operator> (const Multiplier &other) const
bool operator>= (const Multiplier &other) const

Static Public Member Functions

static bool result_is_double (const Multiplier &a, const Multiplier &b)

Private Attributes

std::variant< mpq_class, double > value

Friends

std::ostream & operator<< (std::ostream &os, const Multiplier &m)

Constructor & Destructor Documentation

◆ Multiplier() [1/9]

cadabra::Multiplier::Multiplier ( )

◆ Multiplier() [2/9]

cadabra::Multiplier::Multiplier ( mpz_class numerator,
mpz_class denominator = 1 )

◆ Multiplier() [3/9]

cadabra::Multiplier::Multiplier ( const mpq_class & v)

◆ Multiplier() [4/9]

cadabra::Multiplier::Multiplier ( int v)

◆ Multiplier() [5/9]

cadabra::Multiplier::Multiplier ( unsigned int v)

◆ Multiplier() [6/9]

cadabra::Multiplier::Multiplier ( long v)

◆ Multiplier() [7/9]

cadabra::Multiplier::Multiplier ( unsigned long v)

◆ Multiplier() [8/9]

cadabra::Multiplier::Multiplier ( double v)

◆ Multiplier() [9/9]

cadabra::Multiplier::Multiplier ( const Multiplier & other)
default

Member Function Documentation

◆ canonicalize()

void cadabra::Multiplier::canonicalize ( )

◆ get_double()

double cadabra::Multiplier::get_double ( ) const

◆ get_rational()

const mpq_class & cadabra::Multiplier::get_rational ( ) const

◆ is_double()

bool cadabra::Multiplier::is_double ( ) const

◆ is_rational()

bool cadabra::Multiplier::is_rational ( ) const

◆ operator!=()

bool cadabra::Multiplier::operator!= ( const Multiplier & other) const

◆ operator*()

Multiplier cadabra::Multiplier::operator* ( const Multiplier & other) const

◆ operator*=()

Multiplier & cadabra::Multiplier::operator*= ( const Multiplier & other)

◆ operator+()

Multiplier cadabra::Multiplier::operator+ ( const Multiplier & other) const

◆ operator+=()

Multiplier & cadabra::Multiplier::operator+= ( const Multiplier & other)

◆ operator-()

Multiplier cadabra::Multiplier::operator- ( const Multiplier & other) const

◆ operator-=()

Multiplier & cadabra::Multiplier::operator-= ( const Multiplier & other)

◆ operator/()

Multiplier cadabra::Multiplier::operator/ ( const Multiplier & other) const

◆ operator/=()

Multiplier & cadabra::Multiplier::operator/= ( const Multiplier & other)

◆ operator<()

bool cadabra::Multiplier::operator< ( const Multiplier & other) const

◆ operator<=()

bool cadabra::Multiplier::operator<= ( const Multiplier & other) const

◆ operator=() [1/3]

Multiplier & cadabra::Multiplier::operator= ( const double & v)

◆ operator=() [2/3]

Multiplier & cadabra::Multiplier::operator= ( const mpq_class & v)

◆ operator=() [3/3]

Multiplier & cadabra::Multiplier::operator= ( const Multiplier & other)
default

◆ operator==()

bool cadabra::Multiplier::operator== ( const Multiplier & other) const

◆ operator>()

bool cadabra::Multiplier::operator> ( const Multiplier & other) const

◆ operator>=()

bool cadabra::Multiplier::operator>= ( const Multiplier & other) const

◆ result_is_double()

bool cadabra::Multiplier::result_is_double ( const Multiplier & a,
const Multiplier & b )
static

◆ operator<<

std::ostream & operator<< ( std::ostream & os,
const Multiplier & m )
friend

Member Data Documentation

◆ value

std::variant<mpq_class, double> cadabra::Multiplier::value
private

The documentation for this class was generated from the following files: