Happy New Year!
Finalize 1.8.2 release. Oh, and Happy New Year!
Happy New Year!
Happy New Year!
Happy New Year!
Happy New Year!
Happy New Year! Update copyright statements.
Happy New Year!
Fix make check with g++ -std=c++11. Our template function log() returning an object of type GiNaC::function turns out to compete with a template from a libstdc++ header. We have to help the compiler a bit.
Fix some apparent typos and misindentations.
Add test cases for improved abs(arg). Exam the evaluations abs(Âħsqrt(p)) -> sqrt(p) for p > 0.
Explicit derivation of functions. Some function cannot be cleanly differentiated through the chain rule. For example, it is natural to define derivative of the absolute value as (abs(f))'=(f'*f.conjugate()+f*f'.conjugate())/2/abs(f) This patch adds a possibility to define derivatives of functions in this way. In particular the derivative of abs(), Order(), real_part(), imag_part() and conjugate() are defined. For example, conjugate of a derivative with respect of a real symbol If x is real then U.diff(x)-I*V.diff(x) represents both conjugate(U+I*V).diff(x) and conjugate((U+I*V).diff(x)) Thus in this patch we use the rule conjugate(f)'=conjugate(f') for a derivative with respect to the real symbol. Signed-off-by: Vladimir V. Kisil <kisilv@maths.leeds.ac.uk>
Happy new year!
Update copyright statements.
[bugfix] log_series: avoid infinite recursion Check if the argument is on a branch cut check if it actually depends on the expansion variable before trying to expand around a different point in order to avoid the infinite recursion (or rather a segfault due to a stack overflow). Thanks to Mario Prausa for a bugreport.
log_eval: don't apply the log(x^p) -> p*log(x) rule. Automatically transforming log(p^2) into 2 log(p) might be quite annoying. Perhaps this transformation should be moved to expand() and applied only if expand_options::expand_transcendental is specified.
Expansion rules for exp(), log(), and abs(). exp(a + b) -> exp(a)*exp(b) log(a*b) -> log(a) + log(b) abs(z*w) -> abs(z)*abs(w) log and exp are transformed only if expand_options::expand_transcendental is given. Signed-off-by: Vladimir V. Kisil <kisilv@maths.leeds.ac.uk>
Make it possible to override info() for functions. Signed-off-by: Vladimir V. Kisil <kisilv@maths.leeds.ac.uk>
Improve abs_eval(): abs(conjugate(z)) => abs(z), ... ... abs(step(z)) => step(z) Signed-off-by: Vladimir V. Kisil <kisilv@maths.leeds.ac.uk>
More evaluation rules: abs(x^n) => abs(x)^n (x > 0, n is real). A simple test is added as well. Signed-off-by: Vladimir V. Kisil <kisilv@maths.leeds.ac.uk>