racket/collects/math/tests
Neil Toronto aed3b39546 Added flexp2', fllog2', `fllogb'; refactored and documented flonum testing
Note: With this refactoring, `math/utils' no longer depends on `rackunit'.

* (flexp2 x) computes (flexpt 2.0 x) but in about 1/3 the time for integer
  `x' using a lookup table. Written for exact argument reduction in `fllog2'
  after discovering that (flexpt 2.0 x) was the main performance bottleneck.

* (fllog2 x) computes (/ (fllog x) (fllog 2.0)) with near perfect accuracy.
  Invented an algorithm to compute it with at least 8 extra bits before
  final rounding; quite pleased with the result. Needed `fllog2' to ensure
  (fllogb 2.0 x) would be exact when `x' is a power of two.

* (fllogb b x) computes (/ (fllog x) (fllog b)) with better accuracy, and
  also handles limit values in a way that's consistent with the mathematical
  limits. When those are ambiguous, it's consistent with `flexpt', which
  follows IEEE 754 and C99. Otherwise returns +nan.0. See docs for details.

* `bflogb' is currently just for testing `fllogb'.

* Refactored FPU testing and documented it. So far, the only documented way
  to do it is by calling `test-floating-point', which runs a comprehensive
  deterministic+randomized suite of tests and returns a list representing
  failed tests. I'll document individual tests after I document flonum
  expansions and result/error functions like `fl+/error'.

* Added `fllog2' and `fllogb' to the flonum tests.
2013-01-28 17:44:33 -07:00
..
array-strictness-tests.rkt Made arrays strict by default; please merge to release 2013-01-15 13:53:28 -07:00
array-tests.rkt Made arrays strict by default; please merge to release 2013-01-15 13:53:28 -07:00
array-untyped-tests.rkt Made arrays strict by default; please merge to release 2013-01-15 13:53:28 -07:00
bigfloat-custodian.rkt ffi/unsafe/custodian: fix weak-reference problem 2012-12-11 09:30:15 -07:00
bigfloat-stress-test.rkt Split "mpfr.rkt" into "gmp.rkt" and "mpfr.rkt" 2012-12-03 22:45:31 -07:00
bigfloat-tests.rkt Added `array->list-array' 2012-12-06 22:52:22 -07:00
flonum-tests.rkt Added flexp2', fllog2', `fllogb'; refactored and documented flonum testing 2013-01-28 17:44:33 -07:00
function-tests.rkt Initial math library commit. The history for these changes is preserved 2012-11-16 11:39:51 -07:00
mandelbrot-test.rkt Made arrays strict by default; please merge to release 2013-01-15 13:53:28 -07:00
matrix-strictness-tests.rkt Fixed major performance issue with matrix arithmetic; please merge to 5.3.2 2013-01-21 22:04:04 -07:00
matrix-tests.rkt Added back partial pivoting to Gaussian elimination 2013-01-01 12:12:07 -07:00
matrix-untyped-tests.rkt `math/matrix' fixes; please merge to 5.3.2. 2013-01-16 16:40:43 -07:00
number-theory-tests.rkt Fixes for errors Pierpaolo Bernardi found by reviewing the docs; also, 2012-12-17 11:40:37 -07:00
statistics-tests.rkt Fixes, docs, and API changes for `math/statistics' 2012-12-10 16:45:18 -07:00
strictness-memory-leak-test.rkt Fixed memory leak in making arrays strict: doing so wouldn't clear 2012-12-02 22:21:28 -07:00
test-utils.rkt Reviewing and refactoring `math/matrix', part 1 2012-12-20 17:32:16 -07:00