Revise mnewton for greater simplicity and speed.
commit948258c68313accc7a33bfa3a0b12502ad09eaa1
authorRobert Dodier <robert_dodier@users.sourceforge.net>
Sun, 12 Mar 2023 06:32:54 +0000 (11 22:32 -0800)
committerRobert Dodier <robert_dodier@users.sourceforge.net>
Mon, 13 Mar 2023 15:47:45 +0000 (13 08:47 -0700)
tree5a0eecd7b9fac56134b0ac2d03c312c789dba65e
parente0fa9d4ba51587a2f2ce39de0ef93934a099dc5b
Revise mnewton for greater simplicity and speed.

In share/mnewton/mnewton.mac:

 * Call linsolve_by_lu directly instead of making a detour through
   augcoefmatrix -- we already have the coefficient matrix and
   right-hand side in hand, we don't need augcoefmatrix to undo the mess
   created by multiplying stuff together.

 * Calling linsolve_by_lu directly obviates the need for the list of
   symbols h. This also simplifies the list of increments.

 * Cut out keepfloat and numer. Those are not needed, and numer in
   particular causes expressions to become much larger, due to the
   presence of float exponents (1.5 instead of 3/2, etc.).
   The test cases in rtest_mnewton.mac now run much faster since the
   expressions involved are much smaller.

 * Additional debugging output: DF, Solutions, FuncList.

In share/mnewton/rtest_mnewton.mac:

 * Avoid kill(all) at start and end (kill only symbols used in
   equations), and load mnewton only if not already present.

 * Cut out now-irrelevant assignment to algexact and unused assignment
   to %start.

 * Move fpprec assignment to the place it is used.
share/mnewton/mnewton.mac
share/mnewton/rtest_mnewton.mac