69 inherited::read_archive(
n, sym_lst);
73 if (
n.find_unsigned(
"param", u, i))
84 inherited::archive(
n);
87 n.add_unsigned(
"param", *i);
118 c.s <<
"\\partial_{";
127 c.s <<
"^{" <<
order <<
"}";
145 c.s << std::string(level,
' ') << class_name() <<
" "
147 << std::hex <<
", hash=0x" <<
hashvalue <<
", flags=0x" <<
flags << std::dec
148 <<
", nops=" <<
nops()
154 c.s << *i << std::endl;
156 i.print(
c, level +
c.delta_indent);
157 c.s << std::string(level +
c.delta_indent,
' ') <<
"=====" << std::endl;
195 for (
size_t i=0; i<
seq.size(); i++) {
196 ex arg_diff =
seq[i].diff(s);
214 return inherited::compare_same_type(o);
225 return inherited::is_equal_same_type(o);
Archiving of GiNaC expressions.
#define GINAC_ASSERT(X)
Assertion macro for checking invariances.
This class stores all properties needed to record/retrieve the state of one object of class basic (or...
This class is the ABC (abstract base class) of GiNaC's class hierarchy.
unsigned hashvalue
hash value
unsigned flags
of type status_flags
virtual void print(const print_context &c, unsigned level=0) const
Output to stream.
const basic & hold() const
Stop further evaluation.
virtual ex series(const relational &r, int order, unsigned options=0) const
Default implementation of ex::series().
virtual int compare_same_type(const basic &other) const
Returns order relation between two objects of same type.
Wrapper template for making GiNaC classes out of STL containers.
virtual void printseq(const print_context &c, char openbracket, char delim, char closebracket, unsigned this_precedence, unsigned upper_precedence=0) const
Print sequence of contained elements.
const_iterator end() const
size_t nops() const override
Number of operands/members.
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
Lightweight wrapper for GiNaC's symbolic objects.
This class represents the (abstract) derivative of a symbolic function.
void do_print_latex(const print_context &c, unsigned level) const
const paramset & derivatives() const
Expose this object's derivative structure.
void do_print(const print_context &c, unsigned level) const
ex derivative(const symbol &s) const override
Implementation of ex::diff() for derivatives.
bool match_same_type(const basic &other) const override
Returns true if the attributes of two objects are similar enough for a match.
ex series(const relational &r, int order, unsigned options=0) const override
The series expansion of derivatives falls back to Taylor expansion.
ex thiscontainer(const exvector &v) const override
fderivative(unsigned ser, unsigned param, const exvector &args)
Construct derivative with respect to one parameter.
void do_print_tree(const print_tree &c, unsigned level) const
ex eval() const override
Perform automatic non-interruptive term rewriting rules.
bool is_equal_same_type(const basic &other) const override
Returns true if two objects of same type are equal.
paramset parameter_set
Set of parameter numbers with respect to which to take the derivative.
void do_print_csrc(const print_csrc &c, unsigned level) const
void print(const print_context &c, unsigned level=0) const override
Output to stream.
void archive(archive_node &n) const override
Archive the object.
void read_archive(const archive_node &n, lst &syms) override
Load (deserialize) the object from an archive node.
The class function is used to implement builtin functions like sin, cos... and user defined functions...
static std::vector< function_options > & registered_functions()
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
ex pderivative(unsigned diff_param) const
Base class for print_contexts.
Base context for C source 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 abstract derivatives of functions.
std::multiset< unsigned > paramset
print_func< print_context >(&varidx::do_print). print_func< print_latex >(&varidx
GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(add, expairseq, print_func< print_context >(&add::do_print). print_func< print_latex >(&add::do_print_latex). print_func< print_csrc >(&add::do_print_csrc). print_func< print_tree >(&add::do_print_tree). print_func< print_python_repr >(&add::do_print_python_repr)) add
GINAC_IMPLEMENT_REGISTERED_CLASS_OPT_T(lst, basic, print_func< print_context >(&lst::do_print). print_func< print_tree >(&lst::do_print_tree)) template<> bool lst GINAC_BIND_UNARCHIVER(lst)
Specialization of container::info() for lst.
std::vector< ex > exvector
Interface to GiNaC's overloaded operators.
Interface to several small and furry utilities needed within GiNaC but not of any interest to the use...