The Racket repository
Go to file
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
collects Added flexp2', fllog2', `fllogb'; refactored and documented flonum testing 2013-01-28 17:44:33 -07:00
doc scribble/latex-properties: add `command-extras' 2013-01-24 06:43:10 -05:00
man/man1 Remove old packages 2012-07-13 15:43:59 -04:00
src fix problem with --enable-shared and CGC install 2013-01-25 12:10:36 -07:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Moved default location for compiled-root for easier tab-completion of "collects/". 2012-09-26 14:50:31 -04:00
.mailmap Another email for Matthew. 2012-11-07 11:22:19 -05:00
README 2012 -> 2013 2013-01-09 01:17:26 -05:00

The Racket Programming Language
===============================

Instructions for building Racket from source are in src/README.

The main executables in this package:

* DrRacket: Racket's integrated development environment (start here!).

* racket: command-line tool for running Racket programs.

* raco: command-line tool for compilation, documentation, and more.


More Information
----------------

For Racket documentation, use DrRacket's `Help' menu, run the `Racket
Documentation' application (Windows or Mac OS X), or run `raco docs'
from a command line.

Visit us at
   http://racket-lang.org/ 
for more Racket resources.


License
-------

Racket
Copyright (c) 2010-2013 PLT Scheme Inc.

Racket is distributed under the GNU Lesser General Public License
(LGPL).  This means that you can link Racket into proprietary
applications, provided you follow the rules stated in the LGPL.  You can
also modify Racket; if you distribute a modified version, you must
distribute it under the terms of the LGPL, which in particular means
that you must release the source code for the modified software.  See
doc/release-notes/COPYING.txt for more information.