Version 0.1: First version made accessible on SourceForge. All basic functionality implemented.
Version 0.2:
Updated SGML documentation
Added eqc-tour.tex example
Minor code enhancements
Version 0.3:
Minor code enhancements and bug squashing
Changed compile default to static linking because of problems with libginac, libcln, libgmp3
Added Precision_type in printing.h, modified printing of floats in printing.cpp
Better control of the format in which quantities are printed
Decimal marker is set to . or , according to the language specified
\preferredunits no longer adds the units to previously registered ones. The old units are now deleted and only the new ones used.
The \val macros now take an optional parameter to set the units for expressing a quantity.
Removed options thickspace, thickqspace for SIunits.sty in eqc.sty. The user should define his preferred spacing in SIunits.cfg.
Version 0.4:
Corrected Latex display of ',' as decimal marker by putting it in parentheses.
Added class expression to encapsulate the GiNaC ex class and make it possible to preserve the user's formatting of equations using the commands \raw and \eqc.
EQC now recognizes \verb and respects verbatim environments.
Version 0.5:
Minor code enhancements
Removed bug that caused EQC to crash if a file mentioned after \input could not be opened.
Enabled EQC to recognize if the left hand side of an equation becomes a symbol through an operator, a substitution or a reversal. The equation is then registered so that the value of the symbol can be computed if wished.
Manipulating an expression with +, -, *, / no sets the Latex representation (for \raw printing to an empty string since the former result was undesirable.
Added support of symbolic functions with the keywords \function and \deffunc. These functions can be defined at runtime.
Enabled EQC to parse vectors, i.e. {x;y}. This resulted in a change of equation list syntax because of the ambiguity of the ; in something like \eqsubst{"prev"}{x = 3; y = 4}. Equations in lists now have to be enclosed in brackets: \eqsubst{"prev"}{{x = 3}; {y = 4}}
Version 0.6:
Added keyword \eqpow.
Enabled parsing of keywords \lhs and \rhs inside expressions.
Implemented more flexible expression substitution and removed a bug concerning substitution of functions.
Changed scanner so that the extra brackets in equation lists are not necessary any more.
Added keywords \printeq, \deleq and \eqsimpf.
Added symbolic differentiation with the keyword \eqdiff.
Added function hints to \function to allow for nicer printing etc.
Version 0.7.0:
Port to g++-3.0 and GiNaC 1.2.1
Removed bug that omitted '-' sign when printing adds
Introduced concept of library equations
Added simplification type "eval" and "normal"
Added automatic normalization after division of expressions
Rewrite of the \val{} algorithm in order to speed things up
Rewrite of all message printing via the new class message
Removed using namespace std everywhere
Debianized the package
Version 0.8.0:
Added keywords aligneq, autoalign, noautoalign and dumpeq
The amsmath keywords tfrac and dfrac are now recognized (but not printed in eqc output)
Implemented keyword nesting (e.g., \eqsubst{z = x^2}{\eqadd{x-y = 4}{y}}, which would result in z = (4+y)^2)
Merged the equation and the file parser to simplify the code.
Implemented operators +, -, *, / and ^ for equations (e.g. \eqrev{"prev" + 3y}).
Added simplification type collect_common.
Added keywords \denom and \numer.
Added keyword \eqsolve.
Version 0.9.0:
Removed bug which did not print muls inside muls and adds inside adds.
Removed automatic expansion and normalization after divisions, this must be done manually now using \eqsimpf.
Changed \preferred_units to \preferredunits for LaTeX conformity.
Introduced dummy macros in eqc.sty to enable the raw tex file to be passed through LaTeX without generating too many errors. This allows the use of preview-latex in emacs, for example.
Added keyword \eqfunc to apply a function to both sides of the equation.
Added simplification type unsafe.
Added keyword\printoptions, this now replaces \autoalign. \raw and \eqc are now printing options eqraw and eqnoraw.
Trigonometric functions now evaluate automatically if possible (for example, \cos(\pi) becomes 0).
Made equation a subclass of GiNaC::relational and expression of GiNaC::ex, which allows a great deal of simplifications in the grammar.
Removed bug which prevented \val[\degree]{...} from working correctly.
Removed bug which prevented substitutions of user-defined functions from working correctly.
Changed the func::eval() routine so that it takes advantage of the simplification rules defined for GiNaC's hard-coded functions, e.g. \tan\arctan{x} = x.
Version 1.0.0:
Vectors can now be created with the syntax begin🔚step.
Port to gcc3.3.
Added wildcard function wild().
Made differentiation of functions work and print better.
Added keyword \diff to create derivatives. They can be evaluated (that is, the derivative can be explicitly calculated) by \eqsimpf{...}{diff}.
Added factorial function !.
Added the sum function \sum.
Added keyword \eqevalp to evaluate functions given in parameter form.
Added keyword \eqwrite to save equations to a file and reuse them in another document.
Added Taylor series creation of an expression with \tseries.
Optimized the value finding code for faster execution.
Added the AM_PATH_GINAC macro to configure.in
Cross-compiled EQC to windows (see section Compilation and Installation)
Added Digits = 12 globally to aleviate problems like x^(0.99999999999999995)
Version 1.1.0:
Added keywords \ceil and \floor.
In equations, i is now recognized as the imaginary unit (square root of -1).
Sorted out some autoconf/automake problems and updated the documentation. Cross-compiling to Windows now works with the configure/make commands (see that section for details).
\eqsolve now handles problems with denominators not equal to one.
Added command-line parsing of options (see eqc --help) (but not for the Windows version)
Combined all option keywords into the common syntax \eqcoptions {'key' = 'val'}
Automatic aligning of equations (formerly eqautoalign) is now always on. It can be overriden by specifying a certain alignment type, e.g. \eq[eqalign=none]{...}.
Version 1.2.0:
Minor bug fixes.
Any equations that do not have a user-defined label are not considered any more for finding values, except if they are a direct assignment to a symbol.
Added keywords \valwith, quantitywith, numvalwith and unitswith.
Some beautification for the LaTeX printing routine output.
Added simplification type gather-sqrt to combine single square roots into one root symbol.
Added option eqsplit and eqsplittext to split a long equation at a given operator.
Added option vecautosize to automatically size a vector (if the step count is given as 0).
Switched to using pkg-config instead of AM_PATH_GINAC, as required by ginac >= 1.3.7
Version 1.2.1:
Updated to use libginac 1.4 and libcln5
Version 1.3.0:
Added support for matrices
Removed confusion between the Euler-Mascheroni constant (0.57721...) and Euler's number (2.71828...)
Version 1.3.1:
Added support for integrals
Function hint no_bracket renamed to nobracket
Removed most globals to make linking as a shared library easier
Version 1.4.0:
The code was split to provide libeqc independently from the program eqc
Version 1.4.1:
Minor changes for use of libeqc with iMath
changed class Unit to use a factory for creating unit objects
changed \eqdiff to differentiate e.g. f(x) to d f(x)/dx instead of differentiating the function definition. The old behaviour can be achieved with the function hint defdiff'
Version 1.4.2:
Minor changes for use of libeqc with iMath
Version 1.4.3:
Better matrix support
Output file cleaning with option cleancomments
Controlling debug output with option debug
Switching between \tg and \tan with option tan_is_tg