numbers.js is a client-side javascript library that adds some advanced mathematics functionality to the standard Math library.
- README.md: This file.
- numbers-x.y.z.js: Version x.y.z of the numbers library, suitable for development.
- numbers-x.y.z-min.js: Version x.y.z of the numbers library, suitable for production.
-
ver (or version): The current version of the numbers library.
console.log(F.ver); // > 0.1.0
-
sum: Find the sum of a set of numbers.
var s = F.sum([1,2,3,4]); console.log(s); // > 10
-
product: Find the product of a set of numbers.
var p = F.product([1,2,3,4]); console.log(p); // > 24
-
nFac (or factorial): Find the factorial (n!) of a number n.
var f1 = F.nFac(5); var f2 = F.factorial(5); console.log(f1); // > 120 console.log(f2); // > 120
-
gcd (or greatestCommonDivisor): Find the greatest common divisor of a set of numbers.
var d1 = F.gcd([2,4,6]); var d2 = F.greatestCommonDivisor([2,4,6]); console.log(d1); // > 2 console.log(d2); // > 2
-
lcm (or leastCommonMultiple): Find the least common multiple of a set of numbers.
var m1 = F.lcm([3,6,9,12]); var m2 = F.leastCommonMulitple([3,6,9,12]); console.log(m1); // > 36 console.log(m2); // > 36
-
isPrime: Determine whether a number n (less than 253) is prime using a combination of sieve and trial division.
console.log(F.isPrime(21)); // > false console.log(F.isPrime(31)); // > true
-
isRelativelyPrime: Determine whether two numbers are relatively prime to one another.
console.log(F.isRelativelyPrime(6,9)); // > false console.log(F.isRelativelyPrime(4,9)); // > true
-
isCongruent: Determine whether two numbers are congruent to one another by some modulus.
console.log(F.isCongruent(6,2,3)); // > false console.log(F.isCongruent(5,2,3)); // > true
-
mean (or avg): Find the arithmetic mean of a set of numbers.
console.log(F.mean([2,3,4,5])); // > 3.5 console.log(F.avg([2,3,4,5])); // > 3.5
-
variance: Find the variance of a set of numbers.
console.log(F.variance([2,3,4,5])); // > 1.25
-
stdev (or standardDeviation): Find the standard deviation of a set of numbers.
console.log(F.stdev([2,3,4,5])); // > 1.118033988749895 console.log(F.standardDeviation([2,3,4,5])); // > 1.118033988749895
-
sem (or standardErrorOfMean): Find the standard error of the mean of a set of numbers.
-
covariance: Find the covariance of two sets of numbers.
-
z (or zValue): Given a mean and standard deviation, find the z-value of a number n.
-
nPr (or permutations): Find the number of ordered sets of r items that can be selected from a set of n items.
console.log(F.nPr(20,2)); // > 380 console.log(F.permutations(20,2)); // > 380
-
nCr (or combinations): Find the number of unordered sets of r items that can be selected from a set of n items.
console.log(F.nCr(10,5)); // > 252 console.log(F.combinations(10,5)); // > 252
-
dotProduct: Find the inner product of two vectors.
console.log(F.dotProduct([1,1], [5,7])); // > 12
-
isOrthogonal: Determine whether two vectors are orthogonal to one another.
console.log(F.isOrthogonal([-5,1],[1,5])); // > true console.log(F.isOrthogonal([-9,6,2],[4,7,5]); // > false
-
magnitude: Determine the magnitude of a vector.
console.log(F.magnitude([0,1])); // > 1 (unit vector) console.log(F.magnitude([3,4,5])); // > 7.071067811865475
-
normalize: Normalize a vector.
console.log(F.normalize([0,8])); // > [0,1] console.log(F.normalize([3,4])); // > [0.6,0.8]
-
rebase: Convert a number from one base to another. If no value is given for the input base, decimal (base 10) is assumed.
console.log(F.rebase(42,2)); // > 101010 console.log(F.rebase(101010,10,2)); // > 42
-
deg2rad: Convert an angle in degrees to an angle in radians.
console.log(F.deg2rad(45)); // > 0.7853981633974483
-
rad2deg: Convert an angle in radians to an angle in degrees.
console.log(F.rad2deg(Math.PI/2); // > 90
-
rect2pol: Convert a point described in cartesian coordinates (x,y) to a point described in polar coordinates (r,t). Returns an object with properties r and t, with t measured in radians from -Math.PI to Math.PI.
var p = F.rect2pol(0,1); console.log(p.r); // > 1 console.log(p.t); // > 1.5707963267948966
-
pol2rect: Convert a point described in polar coordinates (r,t) to a point described in cartesian coordinates (x,y). Returns an object with properties x and y.
var p = F.pol2rect(1,3*Math.PI/4); console.log(p.x); // > -0.7071067811865475 console.log(p.y); // > 0.7071067811865476
-
noConflict: Run numbers.js in no-conflict mode, optionally aliasing the library to a different variable. Has no effect on global F variable if there is no conflict.
Example 1: Reassign value of F
<script> window.F = { foo: function() { return "Hello, world!"; } }; </script> <script src="numbers-0.1.0-min.js"></script> <script> console.log(F.foo()); // > undefined G = numbers.noConflict(); console.log(F.foo()); // > Hello, world! console.log(G.avg([1,2,3,4])); > 2.5 </script>
Example 2: Use global numbers variable
<script> window.F = { foo: function() { return "Hello, world!"; } }; </script> <script src="numbers-0.1.0-min.js"></script> <script> console.log(F.foo()); // > undefined numbers.noConflict(); console.log(F.foo()); // > Hello, world! console.log(numbers.avg([1,2,3,4])); > 2.5 </script>
Example 3: Do nothing if there is no conflict
<script src="numbers-0.1.0-min.js"></script> <script> console.log(F.avg([1,2,3,4])); // > 2.5 numbers.noConflict(); console.log(F.avg([1,2,3,4])); // > 2.5 </script>