math-js
Yet another JS math library
Installation
npm install @rgsoft/math
Tests
npm run test
Complex Numbers
The complex number library has some methods for performing calculations on
complex numbers. To create a complex number of the form a + bi
:
const cpx = new Complex(a, b);
📝 Every complex number is inmutable; both, the real and the imaginary
parts are readonly.
Magnitude
const c = new Complex(5, 12);
console.log(c.mag);
Conjugate
const c = new Complex(2, 7);
console.log(`${c.conjugate()}`);
Addition
Scalar Addition
const c1 = new Complex(5, 12);
const c2 = c1.add(4);
console.log(`${c2}`);
Complex Addition
const c1 = new Complex(4, -8);
const c2 = new Complex(-3, 6);
const c3 = c1.add(c2);
console.log(`${c3}`);
Substraction
Scalar Substraction
const c1 = new Complex(9, 1);
const c2 = c1.sub(10);
console.log(`${c2}`);
Complex Substraction
const c1 = new Complex(4, -8);
const c2 = new Complex(-3, 6);
const c3 = c1.add(c2);
console.log(`${c3}`);
Multiplication
Scalar Multiplication
const c1 = new Complex(4, -1);
const c2 = c1.mult(-5);
console.log(`${c2}`);
Complex Multiplication
const c1 = new Complex(3, -1);
const c2 = new Complex(-2, 1);
const c3 = c2.mult(c2);
console.log(`${c3}`);
Division
Scalar Division
const c1 = new Complex(4, -1);
const c2 = c1.div(-2);
console.log(`${c2}`);
Complex Division
let c1 = new Complex(2, 1);
let c2 = new Complex(-1, -1);
let c3 = c1.div(c2);
console.log(`${c3}`);
Square Root
let c = new Complex(4, 0);
c = c.sqrt();
console.log(`${c}`);
Vectors
Instantiation:
const vector = new Vector(x, y);
Angle
const v = new Vector(1, 1);
console.log(v.angle);
Magnitude
const v = new Vector(1, 1);
console.log(v.mag);
Normalization
const v = new Vector(4, 4);
v.nomalize();
console.log(v.mag);
Scalar Multiplication
const v = new Vector(0, 3);
v.mult(4);
console.log(v.mag);
console.log(v.y);
Addition
const v = new Vector(-2, 3);
v.add(new Vector(3, -5));
console.log(v.x);
console.log(v.y);
Substraction
const v = new Vector(-2, 3);
v.sub(new Vector(3, -5));
console.log(v.x);
console.log(v.y);
Distance to Another Vector
const v = new Vector(7, 2);
console.log(v.dist(new Vector(3, -1)));
Angle to Another Vector
const v1 = new Vector(0, 1);
const v2 = new Vector(1, 0);
console.log(v1.angleTo(v2));
Create Vector from Angle
let v = Vector.fromAngle(Math.PI * 0.5);
console.log(v.x);
console.log(v.y);
Equality with Other Vector
const v1 = new Vector(7, 2);
const v2 = new Vector(7, 2);
console.log(v1.equals(v2));
Copy Vector
const v = new Vector(7, 2);
const cv = v.copy();
Modulo
The mod
function calculates the modular remainder of a number n
modulo m
.
The main diference between this function and the remainder operator %
is that
the mod
function applies the modular arithmetic strictly. For example
console.log(-1 % 4);
will output -1
. Whereas using the mod
:
console.log(mod(-1, 4));
we should get 3
.
The mod
function will fail if it receives a negative modulo or any non-integer
number.
Greatest Common Divisor
The gcd
function calculates greatest common divisor between to positive
integers
console.log(gcd(18, 4));
will ouput 2
.
Least Common Multiple
The lcm
function calculates least common multple between to positive integers
console.log(lcm(18, 4));
will ouput 36
.