11 : name_{name} {SYMENGINE_ASSIGN_TYPEID()}
36#define DEFINE_CONSTANT(t, n, d) \
37 RCP<const t> n = []() { \
38 static const RCP<const t> c = d; \
68RCP<const Basic>
sqrt_(
const RCP<const Basic> &
arg)
70 return pow(
arg,
div(one, i2));
74DEFINE_CONSTANT(Basic, i3,
integer(3));
75DEFINE_CONSTANT(Basic, i5,
integer(5));
76DEFINE_CONSTANT(Basic, im2,
integer(-2));
77DEFINE_CONSTANT(Basic, im3,
integer(-3));
78DEFINE_CONSTANT(Basic, im5,
integer(-5));
80DEFINE_CONSTANT(Basic, sq3,
sqrt_(i3));
81DEFINE_CONSTANT(Basic, sq2,
sqrt_(i2));
82DEFINE_CONSTANT(Basic, sq5,
sqrt_(i5));
84DEFINE_CONSTANT(Basic, C0,
div(
sub(sq3, one),
mul(i2, sq2)));
85DEFINE_CONSTANT(Basic, C1,
div(one, i2));
86DEFINE_CONSTANT(Basic, C2,
div(sq2, i2));
87DEFINE_CONSTANT(Basic, C3,
div(sq3, i2));
88DEFINE_CONSTANT(Basic, C4,
div(
add(sq3, one),
mul(i2, sq2)));
92DEFINE_CONSTANT(Basic, mC0,
mul(minus_one, C0));
93DEFINE_CONSTANT(Basic, mC1,
mul(minus_one, C1));
94DEFINE_CONSTANT(Basic, mC2,
mul(minus_one, C2));
95DEFINE_CONSTANT(Basic, mC3,
mul(minus_one, C3));
96DEFINE_CONSTANT(Basic, mC4,
mul(minus_one, C4));
97DEFINE_CONSTANT(Basic, mC5,
mul(minus_one, C5));
98DEFINE_CONSTANT(Basic, mC6,
mul(minus_one, C6));
100#undef DEFINE_CONSTANT
Classes and functions relating to the binary operation of addition.
The lowest unit of symbolic representation.
static RCP< const Number > from_two_nums(const Number &re, const Number &im)
hash_t __hash__() const override
std::string name_
name of Constant
Constant(const std::string &name)
Constant Constructor.
int compare(const Basic &o) const override
bool __eq__(const Basic &o) const override
static RCP< const Infty > from_int(const int val)
Constructs Infty using sign of val
Main namespace for SymEngine package.
RCP< const Basic > div(const RCP< const Basic > &a, const RCP< const Basic > &b)
Division.
void hash_combine(hash_t &seed, const T &v)
RCP< const Basic > sub(const RCP< const Basic > &a, const RCP< const Basic > &b)
Substracts b from a.
RCP< const Basic > mul(const RCP< const Basic > &a, const RCP< const Basic > &b)
Multiplication.
RCP< const Basic > add(const RCP< const Basic > &a, const RCP< const Basic > &b)
Adds two objects (safely).
std::enable_if< std::is_integral< T >::value, RCP< constInteger > >::type integer(T i)
RCP< const Constant > constant(const std::string &name)
inline version to return Constant