Skip to content

Latest commit

 

History

History
51 lines (33 loc) · 1.69 KB

TODO.md

File metadata and controls

51 lines (33 loc) · 1.69 KB

TODO:

  • Fix (expt 0 0) in maint branches as per the example in R6RS.

  • Backport fix: (angle 1.0) must be inexact.

  • Decimal: Test and debug.

  • Leemon Baird BigInt wrapper: optimize. Add exactIntegerSqrt.

  • Provide a choice among different implementations of complex numbers and inexact reals.

  • Support primitive numbers as exact values using conditionals, typeof, and lifting as in js-numbers.

  • Create integer and rational implementations using the GMP plug-in. Consider hybrid implementations with runtime optimal threshold discovery, since the plugin may be out-of-process, incurring 100x per-call overhead. Implement lazy evaluation using expression objects that batch operations into scripts.

  • Consider avoidance or mitigation of GMP calls to abort(), division-by-zero, square-root-of-negative, anything else?

  • Add MPFR functions to the GMP plugin. Create a high-precision inexact number implementation on MPFR.

  • Reimplement the performance benefit of using Number.prototype for inexact, but make it optional.

  • Implement (rnrs arithmetic bitwise) functions.

  • Think about what to do with "#e1@1".

  • Consider supporting a configuration where inexact reals are returned as primitive numbers but Number.prototype is not used.

  • Consider supporting primitive numbers as exact values using Number.prototype.

  • Avoid "x in y" out of concern for Object.prototype use.

  • Consider supporting continuation-passing style for the benefit of Scheme(?) and PPAPI.

  • Consider merging the plugin architecture into D. Yoo's js-numbers.

  • Consider type implementations that dynamically measure usage and change representations on-the-fly to improve performance (run-time optimization).