77 set_name(
"unnamed_function",
"\\mbox{unnamed}");
102 std::string
const & tn)
105 if (
tn==std::string())
1132 unsigned assoc_size,
1162 std::cerr <<
"WARNING: " <<
name <<
"(): number of parameters ("
1163 <<
n <<
") differs from number set before ("
1164 <<
nparams <<
")" << std::endl;
1203 :
exprseq{param1}, serial(ser)
1207 :
exprseq{param1, param2}, serial(ser)
1211 :
exprseq{param1, param2, param3}, serial(ser)
1215 :
exprseq{param1, param2, param3, param4}, serial(ser)
1219 :
exprseq{param1, param2, param3, param4, param5}, serial(ser)
1223 :
exprseq{param1, param2, param3, param4, param5, param6}, serial(ser)
1227 :
exprseq{param1, param2, param3, param4, param5, param6, param7}, serial(ser)
1231 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8}, serial(ser)
1234function::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)
1235 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9}, serial(ser)
1238function::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)
1239 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10}, serial(ser)
1242function::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)
1243 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11}, serial(ser)
1246function::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)
1247 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12}, serial(ser)
1250function::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)
1251 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13}, serial(ser)
1254function::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)
1255 :
exprseq{param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14}, serial(ser)
1284 inherited::read_archive(
n, sym_lst);
1286 unsigned np =
seq.size();
1288 if (
n.find_string(
"name", s)) {
1289 unsigned int ser = 0;
1297 throw (std::runtime_error(
"unknown function '" + s +
1298 "' with " + std::to_string(np) +
" parameters in archive"));
1300 throw (std::runtime_error(
"unnamed function in archive"));
1306 inherited::archive(
n);
1329 unsigned id = pc_info->
options.get_id();
1330 if (
id >= pdt.size() || pdt[
id] ==
nullptr) {
1334 if (parent_pc_info) {
1335 pc_info = parent_pc_info;
1340 if (is_a<print_tree>(
c)) {
1342 c.s << std::string(level,
' ') << class_name() <<
" "
1343 << opt.
name <<
" @" <<
this
1344 << std::hex <<
", hash=0x" <<
hashvalue <<
", flags=0x" <<
flags << std::dec
1345 <<
", nops=" <<
nops()
1347 unsigned delta_indent =
static_cast<const print_tree &
>(
c).delta_indent;
1348 for (
size_t i=0; i<
seq.size(); ++i)
1350 c.
s << std::string(level + delta_indent,
' ') <<
"=====" << std::endl;
1352 }
else if (is_a<print_csrc>(
c)) {
1355 std::string lname = opt.
name;
1356 size_t num = lname.size();
1357 for (
size_t i=0; i<num; i++)
1358 lname[i] = tolower(lname[i]);
1362 }
else if (is_a<print_latex>(
c)) {
1406 ((
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);
1409 ((
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);
1412 ((
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);
1415 ((
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);
1418 ((
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);
1422 throw(std::logic_error(
"function::print(): invalid nparams"));
1441 if (sig != std::numeric_limits<int>::max()) {
1449 if (opt.
eval_f==
nullptr) {
1450 return this->
hold();
1495 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]);
1498 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]);
1501 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]);
1504 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]);
1508 throw(std::logic_error(
"function::eval(): invalid nparams"));
1526 eseq.reserve(
seq.size());
1527 for (
auto & it :
seq) {
1528 eseq.push_back(it.evalf());
1553 return ((
evalf_funcp_7)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6]);
1555 return ((
evalf_funcp_8)(opt.
evalf_f))(eseq[0], eseq[1], eseq[2], eseq[3], eseq[4], eseq[5], eseq[6], eseq[7]);
1557 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]);
1559 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]);
1561 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]);
1563 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]);
1565 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]);
1567 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]);
1570 throw(std::logic_error(
"function::evalf(): invalid nparams"));
1586 for (
size_t i=0; i<
nops(); i++) {
1681 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);
1688 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);
1695 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);
1702 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);
1709 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);
1716 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);
1723 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);
1730 throw(std::logic_error(
"function::series(): invalid nparams"));
1740 return conjugate_function(*this).hold();
1770 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]);
1772 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]);
1774 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]);
1776 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]);
1779 throw(std::logic_error(
"function::conjugate(): invalid nparams"));
1817 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]);
1819 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]);
1821 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]);
1823 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]);
1826 throw(std::logic_error(
"function::real_part(): invalid nparams"));
1864 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]);
1866 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]);
1868 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]);
1870 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]);
1873 throw(std::logic_error(
"function::imag_part(): invalid nparams"));
1882 if (opt.
info_f==
nullptr) {
1911 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);
1913 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);
1915 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);
1917 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);
1919 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);
1922 throw(std::logic_error(
"function::info(): invalid nparams"));
1940 size_t num =
seq.size();
1941 for (
size_t i=0; i<num; i++) {
1999 return seq.begin()->return_type();
2015 return make_return_type_t<function>();
2017 return seq.begin()->return_type_tinfo();
2040 current_serial = serial;
2064 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);
2066 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);
2068 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);
2070 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);
2072 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);
2087 current_serial = serial;
2111 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);
2113 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);
2115 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);
2117 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);
2119 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);
2124 throw(std::logic_error(
"function::expl_derivative(): explicit derivation is called, but no such function defined"));
2134 current_serial = serial;
2150 return ((
power_funcp_6)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], power_param);
2152 return ((
power_funcp_7)(opt.
power_f))(seq[0], seq[1], seq[2], seq[3], seq[4], seq[5], seq[6], power_param);
2154 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);
2156 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);
2158 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);
2160 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);
2162 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);
2164 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);
2166 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);
2205 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);
2207 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);
2209 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);
2211 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);
2213 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);
2219 return inherited::expand(
options);
2226 static std::vector<function_options> rf = std::vector<function_options>();
2244 size_t same_name = 0;
2246 if (i.name==opt.
name) {
2254 std::cerr <<
"WARNING: function name " << opt.
name
2255 <<
" already in use!" << std::endl;
2275 if (it.get_name() == name && it.get_nparams() == nparams)
2279 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.
const_iterator begin() const noexcept
ex diff(const symbol &s, unsigned nth=1) const
Compute partial derivative of an expression.
@ 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)
function_options & print_func(print_funcp_1 p)
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.
std::ostream & s
stream to output to
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 &)
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...