- {"charpoly", fcn_desc(f_charpoly, 2)},
- {"coeff", fcn_desc(f_coeff, 3)},
- {"collect", fcn_desc(f_collect, 2)},
- {"content", fcn_desc(f_content, 2)},
- {"degree", fcn_desc(f_degree, 2)},
- {"denom", fcn_desc(f_denom, 1)},
- {"determinant", fcn_desc(f_determinant, 1)},
- {"diag", fcn_desc(f_diag, 0)},
- {"diff", fcn_desc(f_diff2, 2)},
- {"diff", fcn_desc(f_diff3, 3)},
- {"divide", fcn_desc(f_divide, 2)},
- {"eval", fcn_desc(f_eval1, 1)},
- {"eval", fcn_desc(f_eval2, 2)},
- {"evalf", fcn_desc(f_evalf1, 1)},
- {"evalf", fcn_desc(f_evalf2, 2)},
- {"expand", fcn_desc(f_expand, 1)},
- {"gcd", fcn_desc(f_gcd, 2)},
- {"has", fcn_desc(f_has, 2)},
- {"inverse", fcn_desc(f_inverse, 1)},
- {"is", fcn_desc(f_is, 1)},
- {"lcm", fcn_desc(f_lcm, 2)},
- {"lcoeff", fcn_desc(f_lcoeff, 2)},
- {"ldegree", fcn_desc(f_ldegree, 2)},
- {"lsolve", fcn_desc(f_lsolve, 2)},
- {"nops", fcn_desc(f_nops, 1)},
- {"normal", fcn_desc(f_normal1, 1)},
- {"normal", fcn_desc(f_normal2, 2)},
- {"numer", fcn_desc(f_numer, 1)},
- {"op", fcn_desc(f_op, 2)},
- {"power", fcn_desc(f_power, 2)},
- {"prem", fcn_desc(f_prem, 3)},
- {"primpart", fcn_desc(f_primpart, 2)},
- {"quo", fcn_desc(f_quo, 3)},
- {"rem", fcn_desc(f_rem, 3)},
- {"series", fcn_desc(f_series2, 2)},
- {"series", fcn_desc(f_series3, 3)},
- {"series", fcn_desc(f_series4, 4)},
- {"sqrfree", fcn_desc(f_sqrfree, 2)},
- {"sqrt", fcn_desc(f_sqrt, 1)},
- {"subs", fcn_desc(f_subs2, 2)},
- {"subs", fcn_desc(f_subs3, 3)},
- {"tcoeff", fcn_desc(f_tcoeff, 2)},
- {"time", fcn_desc(f_dummy, 0)},
- {"trace", fcn_desc(f_trace, 1)},
- {"transpose", fcn_desc(f_transpose, 1)},
- {"unassign", fcn_desc(f_unassign, 1)},
- {"unit", fcn_desc(f_unit, 2)},
- {NULL, fcn_desc(f_dummy, 0)} // End marker
+ {"charpoly", f_charpoly, 2},
+ {"coeff", f_coeff, 3},
+ {"collect", f_collect, 2},
+ {"collect_common_factors", f_collect_common_factors, 1},
+ {"collect_distributed", f_collect_distributed, 2},
+ {"content", f_content, 2},
+ {"convert_H_to_Li", f_convert_H_to_Li, 2},
+ {"decomp_rational", f_decomp_rational, 2},
+ {"degree", f_degree, 2},
+ {"denom", f_denom, 1},
+ {"determinant", f_determinant, 1},
+ {"diag", f_diag, 0},
+ {"diff", f_diff2, 2},
+ {"diff", f_diff3, 3},
+ {"divide", f_divide, 2},
+ {"eval", f_eval1, 1},
+ {"eval", f_eval2, 2},
+ {"evalf", f_evalf1, 1},
+ {"evalf", f_evalf2, 2},
+ {"evalm", f_evalm, 1},
+ {"eval_integ", f_eval_integ, 1},
+ {"expand", f_expand, 1},
+ {"find", f_find, 2},
+ {"fsolve", f_fsolve, 4},
+ {"gcd", f_gcd, 2},
+ {"has", f_has, 2},
+ {"integer_content", f_integer_content, 1},
+ {"integral", f_integral, 4},
+ {"inverse", f_inverse, 1},
+ {"iprint", f_dummy, 0}, // for Tab-completion
+ {"is", f_is, 1},
+ {"lcm", f_lcm, 2},
+ {"lcoeff", f_lcoeff, 2},
+ {"ldegree", f_ldegree, 2},
+ {"lsolve", f_lsolve, 2},
+ {"map", f_map, 2},
+ {"match", f_match, 2},
+ {"nops", f_nops, 1},
+ {"normal", f_normal1, 1},
+ {"normal", f_normal2, 2},
+ {"numer", f_numer, 1},
+ {"numer_denom", f_numer_denom, 1},
+ {"op", f_op, 2},
+ {"pow", f_pow, 2},
+ {"prem", f_prem, 3},
+ {"primpart", f_primpart, 2},
+ {"print", f_dummy, 0}, // for Tab-completion
+ {"print_csrc", f_dummy, 0}, // for Tab-completion
+ {"print_latex", f_dummy, 0}, // for Tab-completion
+ {"quo", f_quo, 3},
+ {"rank", f_rank, 1},
+ {"rem", f_rem, 3},
+ {"resultant", f_resultant, 3},
+ {"series", f_series, 3},
+ {"sprem", f_sprem, 3},
+ {"sqrfree", f_sqrfree1, 1},
+ {"sqrfree", f_sqrfree2, 2},
+ {"sqrt", f_sqrt, 1},
+ {"subs", f_subs2, 2},
+ {"subs", f_subs3, 3},
+ {"tcoeff", f_tcoeff, 2},
+ {"time", f_dummy, 0}, // for Tab-completion
+ {"trace", f_trace, 1},
+ {"transpose", f_transpose, 1},
+ {"unassign", f_unassign, 1},
+ {"unit", f_unit, 2},
+ {NULL, f_dummy, 0} // End marker
+};
+
+struct fcn_help_init {
+ const char *name;
+ const char *help;
+};
+
+static const fcn_help_init builtin_help[] = {
+ {"acos", "inverse cosine function"},
+ {"acosh", "inverse hyperbolic cosine function"},
+ {"asin", "inverse sine function"},
+ {"asinh", "inverse hyperbolic sine function"},
+ {"atan", "inverse tangent function"},
+ {"atan2", "inverse tangent function with two arguments"},
+ {"atanh", "inverse hyperbolic tangent function"},
+ {"beta", "Beta function"},
+ {"binomial", "binomial function"},
+ {"cos", "cosine function"},
+ {"cosh", "hyperbolic cosine function"},
+ {"exp", "exponential function"},
+ {"factorial", "factorial function"},
+ {"lgamma", "natural logarithm of Gamma function"},
+ {"tgamma", "Gamma function"},
+ {"log", "natural logarithm"},
+ {"psi", "psi function\npsi(x) is the digamma function, psi(n,x) the nth polygamma function"},
+ {"sin", "sine function"},
+ {"sinh", "hyperbolic sine function"},
+ {"tan", "tangent function"},
+ {"tanh", "hyperbolic tangent function"},
+ {"zeta", "zeta function\nzeta(x) is Riemann's zeta function, zetaderiv(n,x) its nth derivative.\nIf x is a GiNaC::lst, it is a multiple zeta value\nzeta(x,s) is an alternating Euler sum"},
+ {"Li2", "dilogarithm"},
+ {"Li3", "trilogarithm"},
+ {"Li", "(multiple) polylogarithm"},
+ {"S", "Nielsen's generalized polylogarithm"},
+ {"H", "harmonic polylogarithm"},
+ {"Order", "order term function (for truncated power series)"},
+ {"Derivative", "inert differential operator"},
+ {NULL, NULL} // End marker