<?xml version="1.0" encoding="utf-8" standalone="no"?><?xml-stylesheet href="/mathmlc2p.xsl" type="text/xsl"?><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>2.4/changes</title>
</head>
<body>
<tt>
Changes in 2.4.18:<br/>
<br/>
+ improve mathml representation of prime chars<br/>
<br/>
Changes in 2.4.17:<br/>
<br/>
+ add xsl templates for boolean expressions<br/>
<br/>
Changes in 2.4.15:<br/>
<br/>
+ fix evaluation of fraction with numeric denominator<br/>
<br/>
Changes in 2.4.14:<br/>
<br/>
+ fix simplification of Vector/MatrixVariable<br/>
<br/>
Changes in 2.4.13:<br/>
<br/>
+ fix XSL transformation for unary minus (again)<br/>
<br/>
Changes in 2.4.12:<br/>
<br/>
+ add expand operator<br/>
+ do not evaluate exp(-x) to 1/exp(x) ; use simplify instead<br/>
+ do not simplify log(a*x) to log(a)+log(x) ; use elementary instead<br/>
+ fix simplification of comparison<br/>
<br/>
Changes in 2.4.9:<br/>
<br/>
+ fix MathML representation of nested polynomials<br/>
<br/>
Changes in 2.4.8:<br/>
<br/>
+ fix string representation of constants and functions with both primes and indices<br/>
+ expand parameters of graph and substitute<br/>
<br/>
Changes in 2.4.7:<br/>
<br/>
+ fix function add and multiply<br/>
<br/>
Changes in 2.4.6:<br/>
<br/>
+ implement taylor series<br/>
+ implement multiple factorials<br/>
+ fix XSL transformation for compound indices<br/>
+ fix XSL transformation for some exotic characters<br/>
+ fix XSL transformation for unary minus<br/>
<br/>
Changes in 2.4.4:<br/>
<br/>
+ fix XSL transformation for complex<br/>
<br/>
Changes in 2.4.2:<br/>
<br/>
+ fix euler phi<br/>
<br/>
Changes in 2.4.1:<br/>
<br/>
+ fixed bugs in XSL stylesheets<br/>
<br/>
Changes in 2.4:<br/>
<br/>
+ added a JSCL scripting engine<br/>
+ added functions for graphing<br/>
+ improved XSL stylesheets<br/>
+ improved MathML output<br/>
<br/>
Changes in 2.3_05:<br/>
<br/>
+ downgraded to jeuclid-3.0.3 patched against the sqrt issue in pdf<br/>
+ can run in 1.4, just with no MathML renderings<br/>
<br/>
Changes in 2.3_04:<br/>
<br/>
+ font size of MathML fractions increased, now readable<br/>
+ fixed endless loop when multiplying geo_buckets<br/>
+ txt extension added automatically at saveAs<br/>
+ Variable.valueOf(String[])<br/>
+ added version number in &quot;About&quot;<br/>
<br/>
Changes in 2.3_03:<br/>
<br/>
+ incorporated jeuclid 3.1.0 snapshot to solve square root pdf issue<br/>
+ font of various export formats set to monospace<br/>
<br/>
Changes in 2.3_02:<br/>
<br/>
+ export to TeX<br/>
+ upgraded to jeuclid-3.0.2 ; as a result meditor must now run on 1.6 ; export to PDF<br/>
+ swing GUI compiles under gcj<br/>
<br/>
Changes in 2.3_01:<br/>
<br/>
+ new interface with tree to navigate files<br/>
+ use of Java look and feel Graphics Repository icons<br/>
+ got rid of &quot;working&quot; dialog which refused to close in 1.6<br/>
+ trailing nulls in document when loading multibyte encodings : fixed<br/>
+ doubleVariable.symbolic()<br/>
<br/>
Changes in 2.3:<br/>
<br/>
+ Generic.powerValue() returns custom class instead of object array<br/>
+ JSCLInteger, Rational declared final<br/>
+ polynomial API reworked and put in a separate package<br/>
  + a Term class representing monomial+coef<br/>
  + polynomial head &amp; tail return term instead of monomial &amp; coef<br/>
  + polynomial.coefficient(monomial)<br/>
  + polynomial iterators<br/>
  + array polynomial declined by coef type<br/>
  + tree polynomial, list polynomial<br/>
  + Ordering class that extends Comparator<br/>
  + generalized use of Basis.compute() flags argument<br/>
  + a flag for Gebauer &amp; Moeller setting, set as default<br/>
+ math objects created by means of factories<br/>
+ ModularInteger, JSCLBoolean<br/>
+ parsers moved in text package<br/>
+ MathML moved in mathml package<br/>
+ two new interfaces : jscl.math.Field and jscl.math.polynomial.DegreeOrdering<br/>
+ Block selection strategy set to &quot;first pair&quot; when in non-degree ordering<br/>
<br/>
Changes in 2.2:<br/>
<br/>
+ protected access to various fields in Variable, Constant, Function, Root, ImplicitFunction, Operator<br/>
+ variable.name(), constant.prime(), constant.subscript(), function.parameters(), root.subscript(), implicitFunction.derivation(), implicitFunction.subscript(), operator.parameters()<br/>
+ GB computation defaulted to sugar/sloppy<br/>
+ polynomial code rewrite<br/>
+ MathML class gathering all MathML related stuff<br/>
+ compiles under gcj<br/>
+ an implementation of T Yan's GeoBuckets<br/>
<br/>
Changes in 2.1_02:<br/>
<br/>
+ integer fraction first in ordering<br/>
+ an implementation of JC Faugere's F4 algorithm<br/>
+ a new Groebner algorithm &quot;block&quot;<br/>
+ a new package &quot;groebner&quot;<br/>
+ rational and modular polynomial.normalize() make head coefficient equal to one<br/>
+ rational arithmetically compatible with expression<br/>
+ polynomial code reworked<br/>
+ substitute(x,list,list)<br/>
+ (-1)^x &quot;to mathml&quot; = -1^x fixed<br/>
+ integral of exp(a+b*x)<br/>
+ cubic(x) != x^(1/3) for x&lt;0.<br/>
<br/>
Changes in 2.1_01:<br/>
<br/>
+ solution of cubic equation in the positive discriminant case fixed<br/>
+ solution of quartic equation fixed<br/>
+ primitiveroots returns NullPointerException when there aren't any : fixed<br/>
<br/>
Changes in 2.1:<br/>
<br/>
+ Groebner Basis code completely reworked<br/>
+ code cleanup : remaining non Collection classes replaced<br/>
+ various API adjustments : JSCLInteger content made accessible, Rational made accessible, polynomial.monomial(literal) made accessible<br/>
<br/>
Changes in 2.0_04:<br/>
<br/>
+ math rendering of a[i] fixed<br/>
+ additional flags argument to Basis.compute()<br/>
+ x^(1/-2) &quot;expand/simplify&quot; NegativeArraySizeException fixed<br/>
+ (-1)^x &quot;expand/simplify&quot; = -1^x fixed<br/>
+ cotangent<br/>
<br/>
Changes in 2.0_03:<br/>
<br/>
+ factorization improved<br/>
+ anti-aliased math rendering<br/>
+ underscores '_' and periods '.' allowed in identifiers<br/>
<br/>
Changes in 2.0_02:<br/>
<br/>
+ integral(1/(2*(1+z)^2),z) = (-1)/(1+z) fixed<br/>
<br/>
Changes in 2.0_01:<br/>
<br/>
+ integral((x^4 + 2*x^2 + 2*x + 1) / x^3, x) fixed<br/>
+ geometric product in arbitrary Cl(p,q) algebra<br/>
+ reintroduced coef()<br/>
+ graph.bsh example fixed<br/>
+ Basis.compute() now static<br/>
<br/>
Changes in 2.0:<br/>
<br/>
+ graphical rendering of math expressions<br/>
+ complete redevelopment of the interface with netbeans<br/>
+ rewrite of the low-level engine (data structures)<br/>
+ the power operator ^ is right-associative as it should<br/>
+ powers fenced in MathML<br/>
+ functions with subscripts<br/>
+ switched primes and subscripts in constants<br/>
+ Constant.PRIMECHARS = 3 instead of 2<br/>
+ d'Alembertian operator added<br/>
+ conjugate(exp(x)) = exp(conjugate(x)) and the same for log<br/>
+ (-1)^(1/2)=NaN fixed<br/>
+ Complex.valueOf(0.,0.).pow(numeric) = NaN+NaN*sqrt(-1) fixed<br/>
+ 0^0.0 &quot;numeric&quot; = NaN now yields 1.0<br/>
+ 0^0.0 &quot;expand&quot; = 0 now yields 0^0.0<br/>
+ boolean GB computation fixed<br/>
+ conversion to xhtml : math tags replaced by double brackets as delimiters<br/>
+ &quot;copy to wiki&quot; operation<br/>
+ xhtml to LaTeX conversion utility (mmltex)<br/>
+ sqrt(-1) first in ordering<br/>
+ equations disabled as rendering input : the equal sign must stay outside of the rendered expressions<br/>
+ comparison functions<br/>
<br/>
Changes in 1.0_04:<br/>
<br/>
+ fixed a bug with greater than or equal operator<br/>
+ Export to XHTML converts the whole document into a XHTML file<br/>
+ implemented integral of f(a+b*x) where f=trigonometric function<br/>
+ the simplifier avoids using the trigonometric identities<br/>
<br/>
Changes in 1.0_03:<br/>
<br/>
+ avoided simplifying log(exp(x)) to x<br/>
+ FileReader not closed : fixed<br/>
+ can parse an EquationOrExpression with equal sign<br/>
<br/>
Changes in 1.0_02:<br/>
<br/>
+ subclasses of GenericVariable made non-public<br/>
+ subclasses of MultivariatePolynomial made non-public<br/>
+ implemented MultivariatePolynomial.divide and remainder<br/>
+ polynomial.remainderUpToCoefficient()<br/>
+ 81^(1/4) (expand) fails : fixed<br/>
+ some number-theoretic functions : modpow, modinv, eulerphi, primitiveroots<br/>
<br/>
Changes in 1.0_01:<br/>
<br/>
+ (1+x-x^5)*(1-x+x^5) (expand) (factorize) fails : fixed<br/>
<br/>
Changes in 1.0:<br/>
<br/>
+ a test suite for substitutions<br/>
+ some groebner benchmark timings<br/>
+ geometric product and differential operator (Feature Request item #890925)<br/>
+ fixed the quaternion product<br/>
<br/>
Changes in 1.0rc4:<br/>
<br/>
+ an exception is thrown when multiplying matrices without matrix() (Bug item #869813)<br/>
+ computation of nth roots<br/>
<br/>
Changes in 1.0rc3:<br/>
<br/>
+ a new Generic type which inherits from Arithmetic<br/>
+ Arithmetic limited to the 4 arithmetic operation and becomes an interface<br/>
+ polynomial.reduceCompletely() becomes polynomial.reduce(completely)<br/>
+ overloaded comparison and arithmetic methods<br/>
<br/>
Changes in 1.0rc2:<br/>
<br/>
+ added a command mode launcher : bin/jscl<br/>
+ symbolic parameters allowed in matrix etc. operators<br/>
+ a change of reduction strategy improves groebner performance<br/>
<br/>
Changes in 1.0rc1:<br/>
<br/>
+ file opening via drag and drop<br/>
+ fixed a mistake with anti/derivative of conjugate()<br/>
<br/>
Changes in 0.99:<br/>
<br/>
+ a conjugate() function<br/>
+ tested to work on jdistro<br/>
+ bug with scrollbar when resizing fixed<br/>
+ (2+2*x+y)*(2+x+2*y) (expand) (factorize) ClassCastException : fixed (Bug item #851149)<br/>
<br/>
Changes in 0.98:<br/>
<br/>
+ pseudo-NumericWrapper to enable latest version on MIDP<br/>
+ used mfenced mathml tag<br/>
+ a mathml to tex conversion howto (see docs)<br/>
+ various improvements<br/>
<br/>
Changes in 0.97:<br/>
<br/>
+ separated Numeric from Arithmetic<br/>
+ separated UnivariatePolynomial from MultivariatePolynomial<br/>
+ groebner() returns a vector<br/>
+ graphing (see examples)<br/>
<br/>
Changes in 0.96:<br/>
<br/>
+ fixed a performance problem with the factorization<br/>
<br/>
Changes in 0.95:<br/>
<br/>
+ java code generation<br/>
+ matinv replaced by 1/matrix<br/>
+ expand evaluates the functions<br/>
+ a numeric package<br/>
+ a nested polyonmial<br/>
<br/>
Changes in 0.90:<br/>
<br/>
+ numerics (except on MIDP which doesn't support floating point)<br/>
+ formalized the type conversions<br/>
+ complex and quaternion products<br/>
+ jacobian, laplacian<br/>
+ moved vector/matrix/product operations into a package of their own<br/>
<br/>
Changes in 0.80:<br/>
<br/>
+ the simplifier knows of some additional trigonometric identities<br/>
+ factorization code improved<br/>
+ Polynomial no more inherits from Arithmetic and becomes abstract<br/>
+ a new MultivariatePolynomial class<br/>
+ an own zaurus software package<br/>
+ fixed a bug with hyperbolic function names<br/>
+ added abs, sgn<br/>
+ added div, mod<br/>
+ renamed divg as diverg<br/>
+ implemented matrix inverse<br/>
<br/>
Changes in 0.77:<br/>
<br/>
+ developed some junit tests<br/>
+ replaced coef() by solve()<br/>
+ created a new Rational type<br/>
+ added kth-elimination ordering<br/>
+ changes in groebner() syntax and implementation<br/>
+ simplification improved<br/>
+ removed Factorized*, OptimizedExpression<br/>
+ moved trigonometric/hyperbolic functions into a package of their own<br/>
+ changed ch, sh, th, argch, argsh, argth into cosh, sinh, tanh, acosh, asinh, atanh<br/>
+ put parser/format related code in jscl.text package<br/>
+ &quot;modified&quot; status of the awt editor should now behave correctly under j2me-pp1.0<br/>
+ the factorization is recursive<br/>
+ fixed a limitation of antiderivative() with respect to integral+expand()<br/>
<br/>
Changes in 0.76:<br/>
<br/>
+ (3+x)*(4+x) (expand) (factorize) not working : fixed (Bug item #736503)<br/>
+ made use of the Java Collections Framework data structures<br/>
+ stopped using NotDivisibleException in monomial divisibility checks, resulting in performance improvement<br/>
+ a new distribution for Personal Java (jdk1.1) devices : meditor-pjava<br/>
<br/>
Changes in 0.75:<br/>
<br/>
+ FileNotFoundException's taken into account<br/>
+ (1+x)^(1/x) (simplify) infinite loop fixed<br/>
+ (1-x+x^5)^2 (expand) (factorize) = (1-x-a4*x^4+x^5)*(1-x+a4*x^4+x^5) fixed<br/>
+ packages renamed and re-organized<br/>
<br/>
Changes in 0.74:<br/>
<br/>
Jan 20 2003 integral(x/(1+x)^2,x) = 1/(1+x) fixed<br/>
Jan 13 2003 Expression and Variable.valueOf(String) throw ParseException<br/>
Nov  1 2002 integral(x/(x^3+1),x) NullPointerException fixed<br/>
Oct 12 2002 computations execute in a separate thread<br/>
Oct  8 2002 Ctrl+Z = Undo, Simplify = Ctrl+Q<br/>
Sep 21 2002 separated elementary function decomposition from simplification<br/>
Sep  7 2002 changed the notation for partial derivatives<br/>
Jun  7 2002 integral(x+7/5,x) = x*(7+5*x)/5 fixed<br/>
Jun  5 2002 Inv inherits from Frac<br/>
May 20 2002 &quot;!&quot; instead of fact, &quot;^&quot; instead of pow<br/>
Apr 20 2002 changed Arithmetic from interface to abstract class<br/>
Mar 29 2002 translated the whole API into english<br/>
Mar  8 2002 port on midp1.0<br/>
Mar  2 2002 renamed divergence as divg<br/>
Feb 18 2002 the modulo is a parameter instead of being global<br/>
Feb 16 2002 used &quot;/&quot; instead of inv and frac<br/>
Jun 11 2001 port on jdk1.3/swing<br/>
Mar 18 2001 added an undo command<br/>
Mar 11 2001 grammar simplification<br/>
Jan 24 2001 the classloading of Variable used to fail in modular mode : fixed<br/>
Jan  7 2001 runtime exceptions are handled at GUI level<br/>
Dec  7 2000 only one menu command (&quot;expand&quot;) and associated syntax changes<br/>
Dec  3 2000 important syntax changes toward compatibility with other software<br/>
Nov 29 2000 several GUI bug fixes<br/>
</tt>
</body>
</html>
