Add evaluation of Order(x)^e -> Order(x^e) for positive integer e.
Happy New Year!
Finalize 1.8.2 release. Oh, and Happy New Year!
Happy New Year!
Revert "Improve diff(abs(x)) for real x." This reverts commit fa1ffcfdc9da97a6fb7cc2c9c36fe1fc45c808a9.
Improve diff(abs(x)) for real x.
Happy New Year!
Refactor module static helper functions to helper class. Functions symbolset and insert_symbols in inifcns.cpp are better written as a class, to improve readability.
Happy New Year!
Allow expreseq in the arguments of lsolve(eqns, vars). See <http://www.cebix.net/pipermail/ginac-list/2018-May/002201.html>.
Add Markowitz-ordered Gaussian elimination algorithm. This algorithm avoids the 'fill-in' problem of Gaussian elimination and significantly improves the times for solving large sparse systems. See: <https://www.ginac.de/pipermail/ginac-list/2018-May/002202.html>.
Happy New Year!
Happy New Year! Update copyright statements.
Happy New Year!
Remove info_flags::algebraic. It doesn't work, never has, and it is quire unclear how to fix it.
Merge some cosmetic patches. This is a collection of some minor optimizations and indentation fixes.
Improve method of setting status_flags::dynallocated. There seems to be no way to obsolete the need to mark an object derived from basic and handled by ex as being 'on the heap', at least none that doesn't have significant performance impact. Having said that, this patch aims at making this process simpler and more intuitive. Where, before, one would return from a function returning an ex with return (new mul(a, b))->setflag(status_flags::dynallocated); this patch lets us return with return dynallocate<mul>(a, b); which should be much clearer. In any case, it involves less typing. The two points where the status_flags::dynallocated are set are now * the dynallocate<B>(args...) template function and * the virtual duplicate() member functions. This patch rolls out the new functionality throughout the library.
Use initializer lists to construct container<>, lst. Add constructor of initializer_list<ex> to container<C<ex>>. In particular, this means that we can finally declare lst objects as lst{a,2*b,2}. Convert GiNaC to this syntax throughout. Deprecate the old constructors taking 1..16 ex parameters and the ones from comma seaparated lists (without braces).
Replace static const variables with constexpr, where applicable.
Move ctors for classes matrix and pseries.