Computer Algebra and Symbolic Computation for R6RS Scheme
Scheme
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
LICENSE
README
alg-polynomial-division.sls
alg-polynomial-gcd.sls
alge.sls
algebraic-expand.sls Tweaks for Racket Nov 17, 2010
all.sls
arithmetic.sls Tweaks for Racket Nov 17, 2010
automatic-simplify.sls
coeff-var-monomial.sls
coefficient-gpe.sls
collect-terms.sls
contains.sls
contract-exp.sls
contract-trig.sls
cos.sls
degree-gpe.sls
denominator.sls Use dharmalab libraries Nov 18, 2010
derivative.sls
div.sls
exp.sls Tweaks for Racket Nov 17, 2010
expand-exp.sls
expand-main-op.sls
expand-power.sls
expand-product.sls
expand-trig.sls
extended-euclidean-algorithm.sls
factorial.sls
leading-coefficient-gpe.sls
log.sls
match.sls
misc.sls
monomial-gpe.sls
mpl.org
numerator.sls Use dharmalab libraries Nov 18, 2010
order-relation.sls
partial-fraction-1.sls
polynomial-division.sls
polynomial-expansion.sls
polynomial-gcd.sls
polynomial-gpe.sls Tweaks for Racket Nov 17, 2010
rational-expand.sls
rational-gre.sls
rational-variables.sls
rationalize-expression.sls
rnrs-base.sls
rnrs-sans.sls
rnrs.sls Add (mpl sin) and (mpl cos) Sep 20, 2009
separate-sin-cos.sls
simplify-trig.sls
sin.sls
sqrt.sls
sub.sls
substitute.sls
sum-product-power.sls
tan.sls
test.sls
test.sps
trig-substitute.sls
trig.sls
util.sls
variables.sls

README

* Setup

    $ cd ~/scheme # Or wherever you keep your Scheme libraries

    $ git clone git://github.com/dharmatech/surfage.git

    $ git clone git://github.com/dharmatech/dharmalab.git

    $ git clone git://github.com/dharmatech/mpl.git

* Running the unit tests

    $ ikarus --r6rs-script test.sps

The unit tests have been run successfully in:

    Ikarus (development version)
    Chez 8.0
    Ypsilon (development version)
    Racket 5.0.2

* About

Implements some of the algorithms in the books:

    Computer Algebra and Symbolic Computation: Elementary Algorithms

and

    Computer Algebra and Symbolic Computation: Mathematical Methods

by Joel S. Cohen.

See 'test.sls' for examples.

See the file 'mpl.org' for more information.

* A couple of essential libraries

library: (mpl rnrs-sans)

Exports all of '(rnrs)' except for procedures which conflict with
those provided by the mpl libraries.

So basically, if you usually begin your R6RS code by importing
'(rnrs)' and you'd like to make use of the MPL libraries without
having to worry about naming conflicts, import '(mpl rnrs-sans)'
instead.


library: (mpl all)

Exports the commonly used procedures and macros offered by MPL.

It is generally the case each MPL component is defined in it's own
library. For example, the the library '(mpl algebraic-expand)' exports
the single procedure 'algebraic-expand'. When designing R6RS libraries
which make use of MPL libraries, many users will choose to import
individual MPL libraries a la carte. However, when you're
experimenting at a REPL, it can get tedious to import the libraries
individually. Thus the '(mpl all)' library is provided so that you can
get the common parts of MPL in one import.