Menu

History of Changes

Jan Rheinlaender
  • 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
    • Unicode support

Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.