Add symbol::set_TeX_name(string) member function.

This allows setting a symbol's TeX-name after construction.
[bugfix] factor_univariate(): handle polinomials over rationals (no segfaults any more).
Add the case of c1=-1 and c2>0 to the rewriting rule of exponents: (x^c1)^c2 -> x^(c1 * c2)
Shut up recent automake warning.

'INCLUDES' was the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS').
Shut up recent texinfo warning.

It seems like dircategory has to come before the first node.
Add support for Texinfo-5.0.

Recent versions of Texinfo complained about misplaced @subsection.
Change them into @appendixsection.
Fix build from git repository.

To make automake aware of lex and yacc files, they must be renamed.
improve mul::info(): the product of two negative terms is positive, ...

... and the product of a positive and non-negative terms is non-negative.
[build] auto* tools based build: fix `make dist'.
[build] fix ginsh build for automake <=1.11.

automake <=1.11 and automake >=1.12 have different conventions for naming
C++ header files made by yacc.  To work with both, we write our own rule
rather than using automake's.
Add subdir-objects to Automake options.

This option is needed to keep automake 1.14 happy.
Introduce status_flags::{is_positive,is_negative,purely_indefinite}

Quite a number of transformations can be applied if the expression
is known to be positive (negative) (for instance, sqrt(x^2*y^2) = x*y
if x >= 0 and y >= 0). However the check itself might be quite expensive.
Hence a few status_flags are introduced to cache the result.
mul::info(): cache the result of the positiveness/negativeness checks, ...

... and use the cached result if possible.
Transform abs(x)^n => x^n if x is real and n is even.

While at it add some .hold() to returns which cannot be processed further.

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>
Functions can define a custom expand() now.

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>
Power with a real base and even exponent reports that it's non-negative

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>
abs() and conjugate() provide some info() now.