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.
Remove 'level' argument of evalf(). The 'level' argument was modeled after that of the eval() methods (removed in 6c946d4c). It has never been very useful except for confusing developers. Moreover, I have no indication that it has ever been used.
Happy New Year!
Make .eval() evaluate top-level only. With the previous patch, some old workarounds have become unnecessary: If all expressions are evaluated, any object which is an aggregate of expressions will only ever have to evaluate the top level. As such, it has become pointless to evaluate child objects of an expression prior to doing its own term-rewriting. This patch removes the evaluation of children from all GiNaC objects. It also removes the now superfluous parameter 'level' of the eval methods.
Make ample use of the contextual keyword 'override'. This patch adds the C++11 contextual keyword 'override' to every overridden virtual function declaration except where that would incur macro duplications. Along the way, it fixes some comments about member functions 'virtuality'.
Standard header cleanup. Sanitize some standard headers, remove include directives of unused headers, complete configure check for used standard headers.
Use C++11 'nullptr' where applicable.
Remove 'discardable' option from ctors of container and derived classes. The whole idea of this was to allow the ctor to pilfer the data from the constructed-from object, which is precisely the move semantics which C++11 supports with rvalue references.
Replace use of NULL by C++11 nullptr.
Remove dependence on depreacted std::auto_ptr<T>. Most of the auto_ptr were introduced to avoid copying. C++11 supports move semantics for this. Some other can be replaced by std::unique_ptr<T>.
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.
Make it possible to override info() for functions. Signed-off-by: Vladimir V. Kisil <kisilv@maths.leeds.ac.uk>