Go to the documentation of this file.
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)
1235 function::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)
1239 function::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)
1243 function::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)
1247 function::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)
1251 function::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)
1255 function::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++) {
1601 return function(
serial, v);
1606 return function(
serial, std::move(v));
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);
1959 const function & o =
static_cast<const function &
>(other);
1962 return serial < o.serial ? -1 : 1;
1970 const function & o =
static_cast<const function &
>(other);
1981 const function & o =
static_cast<const function &
>(other);
1983 return serial == o.serial;
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"));
Interface to GiNaC's initially known functions.
function_options & power_func(power_funcp_1 e)
bool is_equal_same_type(const basic &other) const override
Returns true if two objects of same type are equal.
bool match_same_type(const basic &other) const override
Returns true if the attributes of two objects are similar enough for a match.
unsigned golden_ratio_hash(uintptr_t n)
Truncated multiplication with golden ratio, for computing hash values.
ex(* power_funcp_7)(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 &)
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(* conjugate_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
static std::vector< remember_table > & remember_tables()
function_options & info_func(info_funcp_1 e)
bool real_part_use_exvector_args
ex(* imag_part_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
unsigned remember_strategy
ex(* expl_derivative_funcp_3)(const ex &, const ex &, const ex &, const symbol &)
void(* print_funcp_3)(const ex &, const ex &, const ex &, const print_context &)
ex conjugate() const override
Implementation of ex::conjugate for functions.
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)
The remember table is organized like an n-fold associative cache in a microprocessor.
ex(* real_part_funcp_1)(const ex &)
ex(* expl_derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* derivative_funcp_3)(const ex &, const ex &, const ex &, unsigned)
expl_derivative_funcp expl_derivative_f
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(* expand_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* evalf_funcp_exvector)(const exvector &)
ex(* eval_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
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 &)
static unsigned find_function(const std::string &name, unsigned nparams)
Find serial number of function by name and number of parameters.
function_options & set_name(std::string const &n, std::string const &tn=std::string())
unsigned hashvalue
hash value
ex(* eval_funcp_3)(const ex &, const ex &, const ex &)
@ expanded
.expand(0) has already done its job (other expand() options ignore this flag)
ex(* series_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex real_part() const override
Implementation of ex::real_part for functions.
ex(* expand_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
ex derivative(const symbol &s) const override
Implementation of ex::diff() for functions.
This class holds a relation consisting of two expressions and a logical relation between them.
ex(* imag_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Exception class thrown by classes which provide their own series expansion to signal that ordinary Ta...
ex(* derivative_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
bool eval_use_exvector_args
Base class for print_contexts.
ex(* series_funcp_3)(const ex &, const ex &, const ex &, const relational &, int, unsigned)
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
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 &)
void print(const print_context &c, unsigned level=0) const override
Output to stream.
Interface to GiNaC's symmetry definitions.
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(* real_part_funcp_2)(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(* real_part_funcp_3)(const ex &, const ex &, const ex &)
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(* derivative_funcp_1)(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(* real_part_funcp_exvector)(const exvector &)
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 &)
Interface to GiNaC's symbolic exponentiation (basis^exponent).
ex(* imag_part_funcp_5)(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 &)
std::vector< ex > exvector
bool(* info_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
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(* expl_derivative_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* expl_derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* derivative_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(* imag_part_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
@ evaluated
.eval() has already done its job
ex(* imag_part_funcp_2)(const ex &, const ex &)
ex(* evalf_funcp_3)(const ex &, const ex &, const ex &)
#define GINAC_IMPLEMENT_REGISTERED_CLASS(classname, supername)
Macro for inclusion in the implementation of each registered class.
ex(* derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* expl_derivative_funcp_2)(const ex &, const ex &, const symbol &)
void(* print_funcp_4)(const ex &, const ex &, const ex &, const ex &, const print_context &)
This class stores all properties needed to record/retrieve the state of one object of class basic (or...
ex(* imag_part_funcp_exvector)(const exvector &)
ex thiscontainer(const exvector &v) const override
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(* expand_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_4)(const ex &, const ex &, const ex &, const ex &, const symbol &)
int canonicalize(exvector::iterator v, const symmetry &symm)
Canonicalize the order of elements of an expression vector, according to the symmetry properties defi...
bool power_use_exvector_args
bool imag_part_use_exvector_args
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(* 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(* power_funcp_8)(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(* real_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* power_funcp_exvector)(const exvector &, const ex &)
ex(* expand_funcp_1)(const ex &, unsigned)
ex(* power_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
function_options & evalf_func(evalf_funcp_1 e)
ex(* eval_funcp_exvector)(const exvector &)
GINAC_BIND_UNARCHIVER(add)
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(* 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 &)
bool expand_use_exvector_args
bool is_equal_same_type(const basic &other) const override
Returns true if two objects of same type are equal.
ex(* series_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
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(* 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 &)
ex(* evalf_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
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 &)
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 &)
void(* print_funcp_2)(const ex &, const ex &, const print_context &)
bool(* info_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* evalf_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
const basic & clearflag(unsigned f) const
Clear some status_flags.
unsigned return_type() const override
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 eval() const override
Perform automatic non-interruptive term rewriting rules.
bool info_use_exvector_args
function_options & series_func(series_funcp_1 e)
virtual ex imag_part() const
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 &)
void store_remember_table(ex const &result) const
ex(* conjugate_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Interface to several small and furry utilities needed within GiNaC but not of any interest to the use...
ex(* eval_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, 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 &)
bool evalf_use_exvector_args
ex(* power_funcp_2)(const ex &, const ex &, const ex &)
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)
function_options & derivative_func(derivative_funcp_1 e)
ex(* real_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Lightweight wrapper for GiNaC's symbolic objects.
virtual bool info(unsigned inf) const
Information about the object.
Definition of GiNaC's lst.
virtual int compare_same_type(const basic &other) const
Returns order relation between two objects of same type.
ex(* expl_derivative_funcp_exvector)(const exvector &, const symbol &)
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(* 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(* expand_funcp_2)(const ex &, const ex &, unsigned)
ex(* imag_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
void archive(archive_node &n) const override
Archive the object.
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 series(const relational &r, int order, unsigned options=0) const override
Implementation of ex::series for functions.
ex(* power_funcp_3)(const ex &, const ex &, const ex &, const ex &)
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 &)
function_options & set_symmetry(const symmetry &s)
bool(* info_funcp_2)(const ex &, const ex &, unsigned)
unsigned functions_with_same_name
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 &)
void test_and_set_nparams(unsigned n)
function_options & latex_name(std::string const &tn)
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 &)
@ hash_calculated
.calchash() has already done its job
derivative_funcp derivative_f
This class represents the (abstract) derivative of a symbolic function.
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(* eval_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex expand(const ex &thisex, unsigned options=0)
Interface to GiNaC's light-weight expression handles.
const basic & hold() const
Stop further evaluation.
ex eval_ncmul(const exvector &v) const override
This method is defined to be in line with behavior of function::return_type()
ex(* eval_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool info(unsigned inf) const override
Implementation of ex::info for functions.
function_options & expl_derivative_func(expl_derivative_funcp_1 e)
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 &)
void(* print_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
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 op(size_t i) const override
Return operand/member at position i.
function_options & set_return_type(unsigned rt, const return_type_t *rtt=nullptr)
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_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 &)
Definition of helper classes for expression output.
real_part_funcp real_part_f
Interface to helper classes for using the remember option in GiNaC functions.
static std::vector< function_options > & registered_functions()
The class function is used to implement builtin functions like sin, cos...
ex(* series_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
function_options & imag_part_func(imag_part_funcp_1 e)
bool(* info_funcp_exvector)(const exvector &, unsigned)
ex(* conjugate_funcp_3)(const ex &, const ex &, const ex &)
ex(* series_funcp_1)(const ex &, const relational &, int, unsigned)
To distinguish between different kinds of non-commutative objects.
Context for tree-like output for debugging.
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(* 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 evalf() const override
Evaluate object numerically.
bool(* info_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
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(* series_funcp_2)(const ex &, const ex &, const relational &, int, 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(* 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 &)
bool derivative_use_exvector_args
ex(* conjugate_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* evalf_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool lookup_remember_table(ex &result) const
ex(* expand_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, 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)
unsigned rotate_left(unsigned n)
Rotate bits of unsigned value by one bit to the left.
ex(* derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
bool print_use_exvector_args
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 &)
void read_archive(const archive_node &n, lst &syms) override
Construct object from archive_node.
const basic & setflag(unsigned f) const
Set some status_flags.
ex(* evalf_funcp_4)(const ex &, const ex &, const ex &, const ex &)
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)
void(* print_funcp_1)(const ex &, const print_context &)
ex(* derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex power(const ex &exp) const
ex(* evalf_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Wrapper template for making GiNaC classes out of STL containers.
ex(* derivative_funcp_exvector)(const exvector &, unsigned)
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
Interface to class of symbolic functions.
ex pderivative(unsigned diff_param) const
ex(* imag_part_funcp_1)(const ex &)
bool(* info_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
bool expl_derivative_use_exvector_args
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 &)
function_options & real_part_func(real_part_funcp_1 e)
ex(* expl_derivative_funcp_1)(const ex &, const symbol &)
virtual ex series(const relational &r, int order, unsigned options=0) const
Default implementation of ex::series().
ex(* eval_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
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 &)
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.
static unsigned current_serial
This can be used as a hook for external applications.
void set_print_func(unsigned id, print_funcp f)
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 &)
ex(* evalf_funcp_1)(const ex &)
function_options & conjugate_func(conjugate_funcp_1 e)
imag_part_funcp imag_part_f
Archiving of GiNaC expressions.
This class describes the symmetry of a group of indices.
ex(* conjugate_funcp_exvector)(const exvector &)
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(* 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(* 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(* real_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
function_options & do_not_evalf_params()
ex(* conjugate_funcp_5)(const ex &, 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(* imag_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp)()
unsigned calchash() const override
Compute the hash value of an object and if it makes sense to store it in the objects status_flags,...
ex(* conjugate_funcp_1)(const ex &)
class_info * get_parent() const
Get pointer to class_info of parent class (or nullptr).
static unsigned register_new(function_options const &opt)
This class is the ABC (abstract base class) of GiNaC's class hierarchy.
ex(* conjugate_funcp_2)(const ex &, const ex &)
void(* print_funcp_exvector)(const exvector &, const print_context &)
ex(* evalf_funcp_2)(const ex &, const ex &)
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(* series_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, 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(* power_funcp_4)(const ex &, const ex &, const ex &, const ex &, const ex &)
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(* eval_funcp_4)(const ex &, const ex &, const ex &, const ex &)
bool series_use_exvector_args
ex(* eval_funcp_1)(const ex &)
function_options & eval_func(eval_funcp_1 e)
ex imag_part() const override
Implementation of ex::imag_part for functions.
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 &)
bool(* info_funcp_1)(const ex &, unsigned)
ex(* power_funcp_6)(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)
void(* print_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
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)
void(* print_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* series_funcp_exvector)(const exvector &, const relational &, int, unsigned)
@ expand_function_args
expands the arguments of functions
ex(* eval_funcp_2)(const ex &, const ex &)
ex(* expl_derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* series_funcp_4)(const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* real_part_funcp_8)(const ex &, 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)
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 &)
size_t nops() const override
Number of operands/members.
std::vector< print_funcp > print_dispatch_table
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 &)
unsigned flags
of type status_flags
ex expl_derivative(const symbol &s) const
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 &)
bool(* info_funcp_3)(const ex &, const ex &, const ex &, unsigned)
void(* print_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* expand_funcp_exvector)(const exvector &, unsigned)
std::string get_name() const
Return the print name of the function.
bool conjugate_use_exvector_args
ex(* power_funcp_1)(const ex &, const ex &)
Interface to abstract derivatives of functions.
ex(* conjugate_funcp_6)(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.
Interface to GiNaC's overloaded operators.
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(* conjugate_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
return_type_t return_type_tinfo
function_options & remember(unsigned size, unsigned assoc_size=0, unsigned strategy=remember_strategies::delete_never)
ex(* real_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
return_type_t return_type_tinfo() const override
virtual ex real_part() const
conjugate_funcp conjugate_f
#define GINAC_ASSERT(X)
Assertion macro for checking invariances.
function_options & expand_func(expand_funcp_1 e)
function_options & overloaded(unsigned o)
unsigned remember_assoc_size
ex(* eval_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex expand(unsigned options=0) const override
Expand expression, i.e.
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(* 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 &)
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(* 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)
This page is part of the GiNaC
developer's reference. It was generated automatically by doxygen. For
an introduction, see the tutorial.