40 return dynallocate<add>(lh, rh);
51 return dynallocate<mul>(lh, rh);
53 return dynallocate<ncmul>(lh, rh);
60 return dynallocate<mul>(lh,
_ex_1);
113 return lh =
exadd(lh, rh);
123 return lh =
exmul(lh, rh);
282 static int i = std::ios_base::xalloc();
290 if (ev == std::ios_base::erase_event) {
292 s.pword(i) =
nullptr;
293 }
else if (ev == std::ios_base::copyfmt_event && p !=
nullptr)
294 s.pword(i) = p->duplicate();
312 long flags = s.iword(i);
440 throw (std::logic_error(
"expression input from streams not implemented"));
443std::ostream &
dflt(std::ostream & os)
450std::ostream &
latex(std::ostream & os)
468std::ostream &
tree(std::ostream & os)
474std::ostream &
csrc(std::ostream & os)
Interface to GiNaC's sums of expressions.
Lightweight wrapper for GiNaC's symbolic objects.
unsigned return_type() const
void print(const print_context &c, unsigned level=0) const
Print expression to stream.
This class is a wrapper around CLN-numbers within the GiNaC class hierarchy.
const numeric sub(const numeric &other) const
Numerical subtraction method.
const numeric mul(const numeric &other) const
Numerical multiplication method.
const numeric add(const numeric &other) const
Numerical addition method.
const numeric div(const numeric &other) const
Numerical division method.
This class holds a two-component object, a basis and and exponent representing exponentiation.
Base class for print_contexts.
unsigned options
option flags
Context for C source output using CLN numbers.
Context for C source output using double precision.
Context for C source output using float precision.
Context for default (ginsh-parsable) output.
Context for latex-parsable output.
@ print_index_dimensions
print the dimensions of indices
Context for python-parsable output.
Context for python pretty-print output.
Context for tree-like output for debugging.
This class holds a relation consisting of two expressions and a logical relation between them.
Interface to GiNaC's products of expressions.
std::ostream & operator<<(std::ostream &os, const archive_node &n)
Write archive_node to binary data stream.
std::ostream & python_repr(std::ostream &os)
static const ex exmul(const ex &lh, const ex &rh)
Used internally by operator*() to multiply two ex objects.
static const ex exadd(const ex &lh, const ex &rh)
Used internally by operator+() to add two ex objects.
std::map< ex, ex, ex_is_less > exmap
std::set< ex, ex_is_less > exset
const ex operator/(const ex &lh, const ex &rh)
std::ostream & dflt(std::ostream &os)
std::ostream & csrc_double(std::ostream &os)
static unsigned get_print_options(std::ios_base &s)
ex & operator*=(ex &lh, const ex &rh)
std::ostream & latex(std::ostream &os)
ex & operator++(ex &rh)
Expression prefix increment.
const relational operator==(const ex &lh, const ex &rh)
static const ex exminus(const ex &lh)
Used internally by operator-() and friends to change the sign of an argument.
ex & operator--(ex &rh)
Expression prefix decrement.
std::ostream & python(std::ostream &os)
const relational operator>(const ex &lh, const ex &rh)
std::ostream & index_dimensions(std::ostream &os)
const ex operator+(const ex &lh, const ex &rh)
const ex operator*(const ex &lh, const ex &rh)
std::ostream & csrc_cl_N(std::ostream &os)
static void set_print_options(std::ostream &s, unsigned options)
const relational operator!=(const ex &lh, const ex &rh)
std::ostream & tree(std::ostream &os)
static int my_ios_index()
static void my_ios_callback(std::ios_base::event ev, std::ios_base &s, int i)
static void set_print_context(std::ios_base &s, const print_context &c)
ex & operator+=(ex &lh, const ex &rh)
static print_context * get_print_context(std::ios_base &s)
const relational operator<=(const ex &lh, const ex &rh)
std::istream & operator>>(std::istream &is, archive_node &n)
Read archive_node from binary data stream.
std::ostream & csrc(std::ostream &os)
std::ostream & no_index_dimensions(std::ostream &os)
const relational operator<(const ex &lh, const ex &rh)
const relational operator>=(const ex &lh, const ex &rh)
ex & operator/=(ex &lh, const ex &rh)
std::ostream & csrc_float(std::ostream &os)
std::vector< ex > exvector
const ex operator-(const ex &lh, const ex &rh)
ex & operator-=(ex &lh, const ex &rh)
Interface to GiNaC's non-commutative products of expressions.
Makes the interface to the underlying bignum package available.
Interface to GiNaC's overloaded operators.
Interface to GiNaC's symbolic exponentiation (basis^exponent).
Definition of helper classes for expression output.
Interface to relations between expressions.
Interface to several small and furry utilities needed within GiNaC but not of any interest to the use...