6 #ifndef SYMENGINE_INFINITY_H
7 #define SYMENGINE_INFINITY_H
22 RCP<const Number> _direction;
27 Infty(
const RCP<const Number> &direction);
30 static RCP<const Infty> from_direction(
const RCP<const Number> &direction);
32 static RCP<const Infty>
from_int(
const int val);
76 inline RCP<const Number> get_direction()
const
81 bool is_unsigned_infinity()
const;
82 bool is_positive_infinity()
const;
83 bool is_negative_infinity()
const;
87 return is_positive_infinity();
92 return is_negative_infinity();
97 return is_unsigned_infinity();
100 RCP<const Basic>
conjugate()
const override;
103 RCP<const Number>
add(
const Number &other)
const override;
104 RCP<const Number>
mul(
const Number &other)
const override;
105 RCP<const Number>
div(
const Number &other)
const override;
106 RCP<const Number>
pow(
const Number &other)
const override;
107 RCP<const Number> rpow(
const Number &other)
const override;
110 inline RCP<const Infty> infty(
int n = 1)
112 return make_rcp<Infty>(
integer(n));
115 RCP<const Infty> infty(
const RCP<const Number> &direction);
The base class for SymEngine.
#define IMPLEMENT_TYPEID(SYMENGINE_ID)
Inline members and functions.
The lowest unit of symbolic representation.
A class that will evaluate functions numerically.
RCP< const Number > pow(const Number &other) const override
Power.
bool __eq__(const Basic &o) const override
RCP< const Number > div(const Number &other) const override
Division.
bool is_negative() const override
hash_t __hash__() const override
bool is_canonical(const RCP< const Number > &num) const
Canonical when the direction is -1, 0 or 1.
Evaluate & get_eval() const override
Get Evaluate singleton to evaluate numerically.
bool is_positive() const override
bool is_one() const override
static RCP< const Infty > from_int(const int val)
Constructs Infty using sign of val
bool is_minus_one() const override
RCP< const Number > mul(const Number &other) const override
Multiplication.
vec_basic get_args() const override
Returns the list of arguments.
RCP< const Basic > conjugate() const override
int compare(const Basic &o) const override
Infty(const RCP< const Number > &direction)
Constructs Infty using the sign of _direction
bool is_exact() const override
bool is_zero() const override
bool is_complex() const override
RCP< const Number > add(const Number &other) const override
Addition.
Main namespace for SymEngine package.
std::enable_if< std::is_integral< T >::value, RCP< const Integer > >::type integer(T i)