# pr1001/MathPlus

MathPlus is a small Javascript library that aims to provide common mathematics functions.
JavaScript
Latest commit 80bfce4 Jun 21, 2011 Add UUID function
 Failed to load latest commit information. demos Jan 23, 2011 README.md Jan 24, 2011 mathplus.js Jun 21, 2011 matrix.js Sep 10, 2010 vector.js Sep 8, 2010

# MathPlus

MathPlus is a small Javascript library that aims to provide common mathematics functions.

Everything lives under the M object. Functions include:

• log: Default base is 10, not e like Javascript's native Math.log.
• ln: Log base e. Simply an alias for Javascript's native Math.log.
• round: Default number of significant digits is 2.
• factorial: Returns NaN for negative numbers. Thanks to @Kambfhase for passing along @nikic's significant speed-up! Recursion may be elegant but it's slow.
• limit: Provides an approximation. Works in some cases with +/- Infinity. Needs some additional tweaking.
• derivative: Given f and x, will provide an approximation of the derivative of function f at point x. Round the result to get integers for derivatives of common functions, e.g. of f(x) = 3*x.
• normal: Given mean and deviation returns random values from a normal distribution.
• randint: Given a min, and max returns a random integer in the range: min <= result <= max

## Demos

The demos/ subdirectory contains a few demos that demonstrate the uses of the various functions.

## Vectors

A stand-alone three dimensional vector class is included in vector.js. It has methods for common operations such as calculating a vector's length or dot product. The code is based upon Glenn Fielder's C implementation.

For example:

var v1 = new Vector(1, 2, 3)
var v2 = new Vector(3, 2, 1)
var v3 = new Vector(-4, 8, -4)
v1.multiply(v2).equals(v3) // -> true

## Matrices

As with vectors, there is a four dimensional matrix class included in a file called matrix.js. Again, it is a adaption of Glenn Fielder's C implementation.

## Credits

By Peter Robinett of Bubble Foundry. The normal and randint methods are by Jillis ter Hove. MathPlus is available under the MIT license: