Package Exports
- @danehansen/math
- @danehansen/math/danehansen-math.min.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@danehansen/math) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
math

The math library contains a collection of mathematical equations either written or collected to make my life easier.
Installation
npm install --save @danehansen/math
Usage
As a module:
import * as math from '@danehansen/math';
var r = math.random(1, 100, true);
In your browser:
<script src='danehansen-math.min.js'></script>
<script>
var math = window.danehansen.math;
var r = math.random(1, 100, true);
</script>
Methods
- average(...args):Number
Accepts either an unlimited quantity of numbers or an array of numbers and returns the total. - ceil(num:Number, increment:Number = 1):Number
Rounds a number up to the nearest increment. - circleIntersection(centerA:Point, radiusA:Number, centerB:Point, radiusB:Number):Number
Returns an array of the two points at which 2 circles intersect, if they intersect. - ease(current:Number, dest:Number, speed:Number = 0.05):Number
Eases a number towards the destination by a factor of speed. Great for making a display object follow a mouse cursor or some other moving target. - easeProp(targ:Object, key:String, dest:Number, speed:Number = 0.05)
Brings the object’s provided property (targ[key]) towards the destination by a factor of speed. Great for making a display object follow a mouse cursor or some other moving target. - euclid(a:int, b:int):int
Returns the greatest common divisor of two integers. - floor(num:Number, increment:Number = 1):Number
Rounds a number down to the nearest increment. - intLength(num:uint):uint
Returns the number of decimals in an integer. - luhn(num:uint):Boolean
Returns whether or not an integer meets the Luhn validation. - modulo(num:Number, limit:Number):Number
Similar to the modulo (%) operator, but rather than mirroring at 0, it continues past 0. For example, -1%4=-1, but modulo(-1, 4)=3. Great for when you decrement a value below 0 and need the functionality to wrap, like an image gallery. - normalize(low:Number, high:Number, value:Number):Number
Returns the normalized value relative to two extremes. Example: normalize(2,4,3) returns 0.5. - primes(limit:Number):Array
Returns an array of all prime numbers between 0 and limit. - random(limitA:Number, limitB:Number = 0, round:Boolean = false, choke:int = 1):Number
Returns a random number between limit1 and limit2. Optionally, it will be rounded. The choke... tough one to explain. It is a representation of how to make the random number favor towards the middle of the two limits. There is a difference between Math.random()*2, and Math.random()+Math.random(), and this argument builds upon that. If you covered a square with 100 points all with random x and y positions, leaving the natural factor would result in scattered points like until a section of a starry night. With natural bumped up to 2 or higher, it would look more like a shotgun blast. - randomBoolean():Boolean
Returns either true or false. - randomDirection():int
Returns either 1 or -1. - randomItem(array:, choke:int = 1):
Returns a random item from the provided array or list. - round(num:Number, increment:Number):Number
Returns a number rounded by the increment, rather than by 1. - shuffle(array:Number, duplicate:Boolean = false):Array
Shuffles the provided array or list. If duplicate is set to true, the original list is left alone and the shuffled list is returned on a new array. Note: when shuffling a NodeList, always set duplicate to true as a NodeList does not shuffle well. - sortAscending(a:Number, b:Number):Number
Returns the difference between the a and b, meant to pass into the Array.sort method as an alternate to the default alphabetical. - sortDescending(a:Number, b:Number):Number
Returns the reversed difference between a and b, meant to pass into the Array.sort method as an alternate to the default alphabetical. - splitUint(num:int):Array
Returns an array representing each digit of an integer. - toDegrees(radians:Number):Number
Converts radians to degrees. - toDegreeDirection(radians:Number):Number
Converts an angle in radians to a direction in degrees, between 0 and 360. - toRadians(degrees:Number):Number
Converts degrees to radians. - toRadianDirection(degrees:Number):Number
Converts an angle in degrees to direction radians, between 0 and Math.PI * 2. - total(array:*):Number
Calculates the total in an array or list of values. Truthy values will also be totaled as 1s and falsey values as 0s.