Pages

Saturday, January 19, 2013

Overly precise arithmetic

Bit-twiddling in the name of numerical accuracy, and speed, don't mix.  This matters mainly for quantum chemistry and similar numerical theoretical physics (where numerical error actually limits result accuracy), and n-body simulations.  I happen to need the latter to know what Iskandra's year is, rather than handwave it.  (It's also a credibility check for a proposed climax for the biographical novel about Zaitharak, the Iskandran Badger Copernicus/Galileo/Kepler.)

As Python's memory management model requires extreme contortions to minimize thrashing the garbage collector, it's technically disqualified even though it has arbitrary-precision floating point.  That leaves Ruby (speed factor of two slower than C for the Maya n-body simulator), and C++ .

The distraction for today was a first draft of a C++ class to wrap the algebraic manipulations needed to minimize subtractive cancellation errors, evade overflow, etc.  I suspect it will build on some prior work from 2006.  The medium-term objective is to guarantee calculating the Lorentz metric of a (four-dimensional) vector (x,y,z,t) in Minkowski space with maximal accuracy.

Sunday, January 6, 2013

Science fantasy: editing progress

Two weeks of editing finally paid off last night: one chapter of working-title "Ill-Starred Romance" restructured properly, with a thoroughly inevitable complication documented.

But not properly expanded yet.  I wasn't medically literate enough to push the new draft to a stable version.