78 set_name(
"unnamed_function",
"\\mbox{unnamed}");
103 std::string
const & tn)
106 if (tn==std::string())
1133 unsigned assoc_size,
1163 std::cerr <<
"WARNING: " <<
name <<
"(): number of parameters ("
1164 <<
n <<
") differs from number set before ("
1165 <<
nparams <<
")" << std::endl;
1204 :
exprseq{param1}, serial(ser)
1208 :
exprseq{param1, param2}, serial(ser)
1212 :
exprseq{param1, param2, param3}, serial(ser)
1216 :
exprseq{param1, param2, param3, param4}, serial(ser)
1220 :
exprseq{param1, param2, param3, param4, param5}, serial(ser)
1224 :
exprseq{param1, param2, param3, param4, param5, param6}, serial(ser)
1228 :
exprseq{param1, param2, param3, param4, param5, param6, param7}, serial(ser)
1232 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8}, serial(ser)
1235function::function(
unsigned ser,
const ex & param1,
const ex & param2,
const ex & param3,
const ex & param4,
const ex & param5,
const ex & param6,
const ex & param7,
const ex & param8,
const ex & param9)
1236 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9}, serial(ser)
1239function::function(
unsigned ser,
const ex & param1,
const ex & param2,
const ex & param3,
const ex & param4,
const ex & param5,
const ex & param6,
const ex & param7,
const ex & param8,
const ex & param9,
const ex & param10)
1240 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10}, serial(ser)
1243function::function(
unsigned ser,
const ex & param1,
const ex & param2,
const ex & param3,
const ex & param4,
const ex & param5,
const ex & param6,
const ex & param7,
const ex & param8,
const ex & param9,
const ex & param10,
const ex & param11)
1244 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11}, serial(ser)
1247function::function(
unsigned ser,
const ex & param1,
const ex & param2,
const ex & param3,
const ex & param4,
const ex & param5,
const ex & param6,
const ex & param7,
const ex & param8,
const ex & param9,
const ex & param10,
const ex & param11,
const ex & param12)
1248 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12}, serial(ser)
1251function::function(
unsigned ser,
const ex & param1,
const ex & param2,
const ex & param3,
const ex & param4,
const ex & param5,
const ex & param6,
const ex & param7,
const ex & param8,
const ex & param9,
const ex & param10,
const ex & param11,
const ex & param12,
const ex & param13)
1252 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13}, serial(ser)
1255function::function(
unsigned ser,
const ex & param1,
const ex & param2,
const ex & param3,
const ex & param4,
const ex & param5,
const ex & param6,
const ex & param7,
const ex & param8,
const ex & param9,
const ex & param10,
const ex & param11,
const ex & param12,
const ex & param13,
const ex & param14)
1256 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14}, serial(ser)
1285 inherited::read_archive(
n, sym_lst);
1287 unsigned np =
seq.size();
1289 if (
n.find_string(
"name", s)) {
1290 unsigned int ser = 0;
1298 throw (std::runtime_error(
"unknown function '" + s +
1299 "' with " + std::to_string(np) +
" parameters in archive"));
1301 throw (std::runtime_error(
"unnamed function in archive"));
1307 inherited::archive(
n);
1330 unsigned id = pc_info->
options.get_id();
1331 if (
id >= pdt.size() || pdt[
id] ==
nullptr) {
1335 if (parent_pc_info) {
1336 pc_info = parent_pc_info;
1341 if (is_a<print_tree>(
c)) {
1343 c.s << std::string(level,
' ') << class_name() <<
" "
1344 << opt.
name <<
" @" <<
this
1345 << std::hex <<
", hash=0x" <<
hashvalue <<
", flags=0x" <<
flags << std::dec
1346 <<
", nops=" <<
nops()
1348 unsigned delta_indent =
static_cast<const print_tree &
>(
c).delta_indent;
1349 for (
size_t i=0; i<
seq.size(); ++i)
1351 c.s << std::string(level + delta_indent,
' ') <<
"=====" << std::endl;
1353 }
else if (is_a<print_csrc>(
c)) {
1356 std::string lname = opt.
name;
1357 size_t num = lname.size();
1358 for (
size_t i=0; i<num; i++)
1359 lname[i] = tolower(lname[i]);
1363 }
else if (is_a<print_latex>(
c)) {
1407 ((
print_funcp_10)(pdt[
id]))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
c);
1410 ((
print_funcp_11)(pdt[
id]))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
c);
1413 ((
print_funcp_12)(pdt[
id]))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
c);
1416 ((
print_funcp_13)(pdt[
id]))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
c);
1419 ((
print_funcp_14)(pdt[
id]))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
seq[13],
c);
1423 throw(std::logic_error(
"function::print(): invalid nparams"));
1442 if (sig != std::numeric_limits<int>::max()) {
1450 if (opt.
eval_f==
nullptr) {
1451 return this->
hold();
1496 eval_result = ((
eval_funcp_11)(opt.
eval_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10]);
1499 eval_result = ((
eval_funcp_12)(opt.
eval_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11]);
1502 eval_result = ((
eval_funcp_13)(opt.
eval_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12]);
1505 eval_result = ((
eval_funcp_14)(opt.
eval_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
seq[13]);
1509 throw(std::logic_error(
"function::eval(): invalid nparams"));
1527 eseq.reserve(
seq.size());
1528 for (
auto & it :
seq) {
1529 eseq.push_back(it.evalf());
1554 return ((
evalf_funcp_7)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6]);
1556 return ((
evalf_funcp_8)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6], eseq[7]);
1558 return ((
evalf_funcp_9)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6], eseq[7], eseq[8]);
1560 return ((
evalf_funcp_10)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6], eseq[7], eseq[8], eseq[9]);
1562 return ((
evalf_funcp_11)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6], eseq[7], eseq[8], eseq[9], eseq[10]);
1564 return ((
evalf_funcp_12)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6], eseq[7], eseq[8], eseq[9], eseq[10], eseq[11]);
1566 return ((
evalf_funcp_13)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6], eseq[7], eseq[8], eseq[9], eseq[10], eseq[11], eseq[12]);
1568 return ((
evalf_funcp_14)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6], eseq[7], eseq[8], eseq[9], eseq[10], eseq[11], eseq[12], eseq[13]);
1571 throw(std::logic_error(
"function::evalf(): invalid nparams"));
1581 return seq.begin()->eval_ncmul(v);
1587 for (
size_t i=0; i<
nops(); i++) {
1682 res = ((
series_funcp_8)(opt.
series_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
r,
order,
options);
1689 res = ((
series_funcp_9)(opt.
series_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
r,
order,
options);
1696 res = ((
series_funcp_10)(opt.
series_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
r,
order,
options);
1703 res = ((
series_funcp_11)(opt.
series_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
r,
order,
options);
1710 res = ((
series_funcp_12)(opt.
series_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
r,
order,
options);
1717 res = ((
series_funcp_13)(opt.
series_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
r,
order,
options);
1724 res = ((
series_funcp_14)(opt.
series_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
seq[13],
r,
order,
options);
1731 throw(std::logic_error(
"function::series(): invalid nparams"));
1741 return conjugate_function(*this).hold();
1771 return ((
conjugate_funcp_11)(opt.
conjugate_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10]);
1773 return ((
conjugate_funcp_12)(opt.
conjugate_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11]);
1775 return ((
conjugate_funcp_13)(opt.
conjugate_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12]);
1777 return ((
conjugate_funcp_14)(opt.
conjugate_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
seq[13]);
1780 throw(std::logic_error(
"function::conjugate(): invalid nparams"));
1818 return ((
real_part_funcp_11)(opt.
real_part_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10]);
1820 return ((
real_part_funcp_12)(opt.
real_part_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11]);
1822 return ((
real_part_funcp_13)(opt.
real_part_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12]);
1824 return ((
real_part_funcp_14)(opt.
real_part_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
seq[13]);
1827 throw(std::logic_error(
"function::real_part(): invalid nparams"));
1865 return ((
imag_part_funcp_11)(opt.
imag_part_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10]);
1867 return ((
imag_part_funcp_12)(opt.
imag_part_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11]);
1869 return ((
imag_part_funcp_13)(opt.
imag_part_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12]);
1871 return ((
imag_part_funcp_14)(opt.
imag_part_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
seq[13]);
1874 throw(std::logic_error(
"function::imag_part(): invalid nparams"));
1883 if (opt.
info_f==
nullptr) {
1912 return ((
info_funcp_10)(opt.
info_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9], inf);
1914 return ((
info_funcp_11)(opt.
info_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10], inf);
1916 return ((
info_funcp_12)(opt.
info_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11], inf);
1918 return ((
info_funcp_13)(opt.
info_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12], inf);
1920 return ((
info_funcp_14)(opt.
info_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
seq[13], inf);
1923 throw(std::logic_error(
"function::info(): invalid nparams"));
1941 size_t num =
seq.size();
1942 for (
size_t i=0; i<num; i++) {
1943 arg_diff =
seq[i].diff(s);
2000 return seq.begin()->return_type();
2016 return make_return_type_t<function>();
2018 return seq.begin()->return_type_tinfo();
2041 current_serial = serial;
2065 return ((
derivative_funcp_10)(opt.
derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], diff_param);
2067 return ((
derivative_funcp_11)(opt.
derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], diff_param);
2069 return ((
derivative_funcp_12)(opt.
derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], diff_param);
2071 return ((
derivative_funcp_13)(opt.
derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], seq[12], diff_param);
2073 return ((
derivative_funcp_14)(opt.
derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], seq[12], seq[13], diff_param);
2088 current_serial = serial;
2112 return ((
expl_derivative_funcp_10)(opt.
expl_derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], s);
2114 return ((
expl_derivative_funcp_11)(opt.
expl_derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], s);
2116 return ((
expl_derivative_funcp_12)(opt.
expl_derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], s);
2118 return ((
expl_derivative_funcp_13)(opt.
expl_derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], seq[12], s);
2120 return ((
expl_derivative_funcp_14)(opt.
expl_derivative_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], seq[12], seq[13], s);
2125 throw(std::logic_error(
"function::expl_derivative(): explicit derivation is called, but no such function defined"));
2135 current_serial = serial;
2151 return ((
power_funcp_6)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], power_param);
2153 return ((
power_funcp_7)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], power_param);
2155 return ((
power_funcp_8)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], power_param);
2157 return ((
power_funcp_9)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], power_param);
2159 return ((
power_funcp_10)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], power_param);
2161 return ((
power_funcp_11)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], power_param);
2163 return ((
power_funcp_12)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], power_param);
2165 return ((
power_funcp_13)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], seq[12], power_param);
2167 return ((
power_funcp_14)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], seq[7], seq[8], seq[9], seq[10], seq[11], seq[12], seq[13], power_param);
2206 return ((
expand_funcp_10)(opt.
expand_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
options);
2208 return ((
expand_funcp_11)(opt.
expand_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
options);
2210 return ((
expand_funcp_12)(opt.
expand_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
options);
2212 return ((
expand_funcp_13)(opt.
expand_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
options);
2214 return ((
expand_funcp_14)(opt.
expand_f))(
seq[0],
seq[1],
seq[2],
seq[3],
seq[4],
seq[5],
seq[6],
seq[7],
seq[8],
seq[9],
seq[10],
seq[11],
seq[12],
seq[13],
options);
2227 static std::vector<function_options> rf = std::vector<function_options>();
2245 size_t same_name = 0;
2247 if (i.name==opt.
name) {
2255 std::cerr <<
"WARNING: function name " << opt.
name
2256 <<
" already in use!" << std::endl;
2276 if (it.get_name() == name && it.get_nparams() == nparams)
2280 throw (std::runtime_error(
"no function '" + name +
"' with " + std::to_string(nparams) +
" parameters defined"));
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.
const basic & clearflag(unsigned f) const
Clear some status_flags.
virtual ex imag_part() const
const basic & setflag(unsigned f) const
Set some status_flags.
virtual bool info(unsigned inf) const
Information about the object.
unsigned hashvalue
hash value
unsigned flags
of type status_flags
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 ex real_part() const
virtual int compare_same_type(const basic &other) const
Returns order relation between two objects of same type.
class_info * get_parent() const
Get pointer to class_info of parent class (or nullptr).
Wrapper template for making GiNaC classes out of STL containers.
bool is_equal_same_type(const basic &other) const override
Returns true if two objects of same type are equal.
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.
size_t nops() const override
Number of operands/members.
ex op(size_t i) const override
Return operand/member at position i.
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
Exception class thrown by classes which provide their own series expansion to signal that ordinary Ta...
Lightweight wrapper for GiNaC's symbolic objects.
@ expand_function_args
expands the arguments of functions
This class represents the (abstract) derivative of a symbolic function.
function_options & info_func(info_funcp_1 e)
function_options & overloaded(unsigned o)
bool real_part_use_exvector_args
function_options & set_name(std::string const &n, std::string const &tn=std::string())
function_options & set_symmetry(const symmetry &s)
expl_derivative_funcp expl_derivative_f
bool conjugate_use_exvector_args
std::vector< print_funcp > print_dispatch_table
bool info_use_exvector_args
unsigned functions_with_same_name
conjugate_funcp conjugate_f
function_options & set_return_type(unsigned rt, const return_type_t *rtt=nullptr)
function_options & remember(unsigned size, unsigned assoc_size=0, unsigned strategy=remember_strategies::delete_never)
bool expand_use_exvector_args
function_options & eval_func(eval_funcp_1 e)
function_options & power_func(power_funcp_1 e)
unsigned remember_assoc_size
function_options & evalf_func(evalf_funcp_1 e)
function_options & conjugate_func(conjugate_funcp_1 e)
bool series_use_exvector_args
bool power_use_exvector_args
function_options & real_part_func(real_part_funcp_1 e)
return_type_t return_type_tinfo
void test_and_set_nparams(unsigned n)
bool derivative_use_exvector_args
imag_part_funcp imag_part_f
unsigned remember_strategy
void set_print_func(unsigned id, print_funcp f)
bool print_use_exvector_args
bool imag_part_use_exvector_args
real_part_funcp real_part_f
function_options & expand_func(expand_funcp_1 e)
bool evalf_use_exvector_args
function_options & expl_derivative_func(expl_derivative_funcp_1 e)
function_options & do_not_evalf_params()
bool expl_derivative_use_exvector_args
bool eval_use_exvector_args
function_options & latex_name(std::string const &tn)
derivative_funcp derivative_f
function_options & series_func(series_funcp_1 e)
function_options & imag_part_func(imag_part_funcp_1 e)
function_options & derivative_func(derivative_funcp_1 e)
The class function is used to implement builtin functions like sin, cos... and user defined functions...
bool match_same_type(const basic &other) const override
Returns true if the attributes of two objects are similar enough for a match.
unsigned calchash() const override
Compute the hash value of an object and if it makes sense to store it in the objects status_flags,...
return_type_t return_type_tinfo() const override
void store_remember_table(ex const &result) const
ex imag_part() const override
Implementation of ex::imag_part for functions.
ex evalf() const override
Evaluate object numerically.
ex eval_ncmul(const exvector &v) const override
This method is defined to be in line with behavior of function::return_type()
ex power(const ex &exp) const
ex derivative(const symbol &s) const override
Implementation of ex::diff() for functions.
ex thiscontainer(const exvector &v) const override
bool is_equal_same_type(const basic &other) const override
Returns true if two objects of same type are equal.
bool info(unsigned inf) const override
Implementation of ex::info for functions.
std::string get_name() const
Return the print name of the function.
static unsigned register_new(function_options const &opt)
bool lookup_remember_table(ex &result) const
static unsigned find_function(const std::string &name, unsigned nparams)
Find serial number of function by name and number of parameters.
ex series(const relational &r, int order, unsigned options=0) const override
Implementation of ex::series for functions.
static std::vector< function_options > & registered_functions()
ex eval() const override
Perform automatic non-interruptive term rewriting rules.
ex real_part() const override
Implementation of ex::real_part for functions.
static unsigned current_serial
This can be used as a hook for external applications.
ex conjugate() const override
Implementation of ex::conjugate for functions.
ex expl_derivative(const symbol &s) const
void print(const print_context &c, unsigned level=0) const override
Output to stream.
void read_archive(const archive_node &n, lst &syms) override
Construct object from archive_node.
ex expand(unsigned options=0) const override
Expand expression, i.e.
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
unsigned return_type() const override
void archive(archive_node &n) const override
Archive the object.
ex pderivative(unsigned diff_param) const
Base class for print_contexts.
Context for tree-like output for debugging.
This class holds a relation consisting of two expressions and a logical relation between them.
The remember table is organized like an n-fold associative cache in a microprocessor.
static std::vector< remember_table > & remember_tables()
@ expanded
.expand(0) has already done its job (other expand() options ignore this flag)
@ evaluated
.eval() has already done its job
@ hash_calculated
.calchash() has already done its job
This class describes the symmetry of a group of indices.
Interface to GiNaC's light-weight expression handles.
Interface to abstract derivatives of functions.
Interface to class of symbolic functions.
Interface to GiNaC's initially known functions.
Definition of GiNaC's lst.
ex(* evalf_funcp_3)(const ex &, const ex &, const ex &)
ex(* eval_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* conjugate_funcp_3)(const ex &, const ex &, const ex &)
void(* print_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* power_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* series_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
void(* print_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* series_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
bool(* info_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* expl_derivative_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* power_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_exvector)(const exvector &, unsigned)
ex(* derivative_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* imag_part_funcp_1)(const ex &)
ex(* real_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
unsigned golden_ratio_hash(uintptr_t n)
Truncated multiplication with golden ratio, for computing hash values.
ex(* eval_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* series_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
bool(* info_funcp_3)(const ex &, const ex &, const ex &, unsigned)
ex(* eval_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* eval_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
void(* print_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* expl_derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* power_funcp_4)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* conjugate_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* power_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* evalf_funcp_1)(const ex &)
ex(* imag_part_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_2)(const ex &, const ex &, unsigned)
ex(* power_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* expl_derivative_funcp_1)(const ex &, const symbol &)
ex(* conjugate_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_1)(const ex &)
bool(* info_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
bool(* info_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
bool(* info_funcp_exvector)(const exvector &, unsigned)
void(* print_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* expl_derivative_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* imag_part_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* power_funcp_1)(const ex &, const ex &)
ex(* evalf_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* power_funcp_2)(const ex &, const ex &, const ex &)
ex(* imag_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
bool(* info_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* series_funcp_2)(const ex &, const ex &, const relational &, int, unsigned)
ex(* real_part_funcp_2)(const ex &, const ex &)
ex(* real_part_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* real_part_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* imag_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_exvector)(const exvector &)
bool(* info_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* expl_derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* derivative_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* real_part_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* real_part_funcp_exvector)(const exvector &)
ex(* series_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* expl_derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
bool(* info_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* series_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* imag_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* imag_part_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* evalf_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* real_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* real_part_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_3)(const ex &, const ex &, const ex &, unsigned)
ex(* evalf_funcp_2)(const ex &, const ex &)
ex(* series_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* conjugate_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* expand_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* expand_funcp_2)(const ex &, const ex &, unsigned)
ex(* eval_funcp_3)(const ex &, const ex &, const ex &)
ex(* expand_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* real_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* real_part_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* real_part_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
void(* print_funcp_exvector)(const exvector &, const print_context &)
ex(* expl_derivative_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* evalf_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_exvector)(const exvector &, unsigned)
ex(* evalf_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* real_part_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* evalf_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
void(* print_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* conjugate_funcp_2)(const ex &, const ex &)
ex(* power_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* imag_part_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* power_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
void(* print_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* power_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* series_funcp_1)(const ex &, const relational &, int, unsigned)
void(* print_funcp_1)(const ex &, const print_context &)
ex(* imag_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* imag_part_funcp_exvector)(const exvector &)
bool(* info_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
bool(* info_funcp_1)(const ex &, unsigned)
void(* print_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* eval_funcp_2)(const ex &, const ex &)
ex(* expl_derivative_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* series_funcp_3)(const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* conjugate_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
static unsigned make_hash_seed(const std::type_info &tinfo)
We need a hash function which gives different values for objects of different types.
unsigned rotate_left(unsigned n)
Rotate bits of unsigned value by one bit to the left.
ex(* imag_part_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
void(* print_funcp_2)(const ex &, const ex &, const print_context &)
ex(* expand_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* derivative_funcp_2)(const ex &, const ex &, unsigned)
ex(* expand_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* conjugate_funcp_exvector)(const exvector &)
ex(* series_funcp_4)(const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* real_part_funcp_1)(const ex &)
ex(* evalf_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_1)(const ex &)
ex(* imag_part_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_3)(const ex &, const ex &, const ex &, unsigned)
ex(* series_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* evalf_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* eval_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
void(* print_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* evalf_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* imag_part_funcp_3)(const ex &, const ex &, const ex &)
ex(* imag_part_funcp_2)(const ex &, const ex &)
ex(* evalf_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* series_funcp_exvector)(const exvector &, const relational &, int, unsigned)
ex(* real_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
int canonicalize(exvector::iterator v, const symmetry &symm)
Canonicalize the order of elements of an expression vector, according to the symmetry properties defi...
ex(* power_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp_exvector)(const exvector &, const symbol &)
ex(* series_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* conjugate_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* evalf_funcp_exvector)(const exvector &)
ex(* series_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* conjugate_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* power_funcp_exvector)(const exvector &, const ex &)
ex(* expl_derivative_funcp)()
ex(* power_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_1)(const ex &, unsigned)
ex(* expl_derivative_funcp_2)(const ex &, const ex &, const symbol &)
ex(* eval_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_1)(const ex &, unsigned)
void(* print_funcp_3)(const ex &, const ex &, const ex &, const print_context &)
ex(* derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
void(* print_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
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.
ex(* expand_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
void(* print_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
void(* print_funcp_4)(const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* imag_part_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* power_funcp_3)(const ex &, const ex &, const ex &, const ex &)
ex(* expand_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* real_part_funcp_3)(const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp_3)(const ex &, const ex &, const ex &, const symbol &)
std::vector< ex > exvector
ex(* derivative_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* evalf_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* series_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* evalf_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* power_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex expand(const ex &thisex, unsigned options=0)
Interface to GiNaC's overloaded operators.
Interface to GiNaC's symbolic exponentiation (basis^exponent).
Definition of helper classes for expression output.
#define GINAC_IMPLEMENT_REGISTERED_CLASS(classname, supername)
Macro for inclusion in the implementation of each registered class.
Interface to helper classes for using the remember option in GiNaC functions.
To distinguish between different kinds of non-commutative objects.
Interface to GiNaC's symmetry definitions.
Interface to several small and furry utilities needed within GiNaC but not of any interest to the use...