3 ms·
I also wanted to point to Numworks as an alternative calculator. It uses a 216 MHz ARMv7-M Cortex-M7 microcontroller and is almost open-source (both the hardwar
by nsajko 6y ago
I also wanted to point to Numworks as an alternative calculator. It uses a 216 MHz ARMv7-M Cortex-M7 microcontroller and is almost open-source (both the hardware and the software, called Epsilon).
https://www.numworks.com/resources/engineering/ https://www.numworks.com/resources/engineering/
There was (and probably still is) a Numworks pet peeve of mine, though. As far as I understand, on many kinds of calculations (e.g., calculating a power of a number, or a derivative at a point) the Numworks software does an artificial "rounding" step with the purpose of presenting "nicer" results to high-schoolers in trivial cases. See https://github.com/numworks/epsilon/pull/1376 https://github.com/numworks/epsilon/pull/1376 and https://github.com/numworks/epsilon/issues/1373 https://github.com/numworks/epsilon/issues/1373 . It seems like the Numworks dudes have no concept of the accumulation of rounding errors :( ?
On top of removing precision intentionally being a weird choice, the implementation is too naive as far as I understand. This is basically what they do:
result = std::round(result / error) * error
See, e.g., https://github.com/numworks/epsilon/blob/c92b770112e38bd906ae2467d89e0e3cd02ec10b/poincare/src/derivative.cpp#L80 https://github.com/numworks/epsilon/blob/c92b770112e38bd906a...
Would it not be both faster and less destructive to numerical accuracy to just clear some least significant IEEE 754 bits?
EDIT: forgot to mention it is approved for the SAT and ACT already.
EDIT2: More relevant to this thread; one can not run assembly on the Numworks written from the Numworks (it would be hard to fit all the prerequisites on its RAM and/or flash, e.g. Epsilon does not even have a file system), but it is possible to write C++, C, or assembly on your Linux or Windows PC, compile it and push it to the Numworks.