@rgsoft/math
v1.0.3
Published
Yet another JS math library
Downloads
29
Maintainers
Readme
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); // 13
Conjugate
const c = new Complex(2, 7);
console.log(`${c.conjugate()}`); // 2 - 7i
Addition
Scalar Addition
// r + (a + bi) = (a + r) + bi
const c1 = new Complex(5, 12);
const c2 = c1.add(4);
console.log(`${c2}`); // 9 + 12i
Complex Addition
// (a + bi) + (c + di) = (a + c) + (b + d)i
const c1 = new Complex(4, -8);
const c2 = new Complex(-3, 6);
const c3 = c1.add(c2);
console.log(`${c3}`); // 1 + 2i
Substraction
Scalar Substraction
// (a + bi) - r = (a - r) + bi
const c1 = new Complex(9, 1);
const c2 = c1.sub(10);
console.log(`${c2}`); // -1 + 1i
Complex Substraction
// (a + bi) - (c + di) = (a - c) + (b - d)i
const c1 = new Complex(4, -8);
const c2 = new Complex(-3, 6);
const c3 = c1.add(c2);
console.log(`${c3}`); // 1 + 2i
Multiplication
Scalar Multiplication
// r (a + bi) = ra + bi
const c1 = new Complex(4, -1);
const c2 = c1.mult(-5);
console.log(`${c2}`); // -20 + 5i
Complex Multiplication
// (a + bi) (c + di) = (ac - bd) + (ad + bc)i
const c1 = new Complex(3, -1);
const c2 = new Complex(-2, 1);
const c3 = c2.mult(c2);
console.log(`${c3}`); // -5 + 5i
Division
Scalar Division
// (a + bi) / r = a / r + (b / r)i
const c1 = new Complex(4, -1);
const c2 = c1.div(-2);
console.log(`${c2}`); // -2 + 0.5i
Complex Division
let c1 = new Complex(2, 1);
let c2 = new Complex(-1, -1);
let c3 = c1.div(c2);
console.log(`${c3}`); // -1.5 + 0.5i
Square Root
let c = new Complex(4, 0);
c = c.sqrt();
console.log(`${c}`); // 2 + 0i
Vectors
Instantiation:
const vector = new Vector(x, y);
Angle
const v = new Vector(1, 1);
console.log(v.angle); // (Math.PI * 0.5);
Magnitude
const v = new Vector(1, 1);
console.log(v.mag); // (Math.SQRT2);
Normalization
const v = new Vector(4, 4);
v.nomalize();
console.log(v.mag); // 1;
Scalar Multiplication
const v = new Vector(0, 3);
v.mult(4);
console.log(v.mag); // 12;
console.log(v.y); // 12;
Addition
const v = new Vector(-2, 3);
v.add(new Vector(3, -5));
console.log(v.x); // 1
console.log(v.y); // -2
Substraction
const v = new Vector(-2, 3);
v.sub(new Vector(3, -5));
console.log(v.x); // -5
console.log(v.y); // 8
Distance to Another Vector
const v = new Vector(7, 2);
console.log(v.dist(new Vector(3, -1))); // 5
Angle to Another Vector
const v1 = new Vector(0, 1);
const v2 = new Vector(1, 0);
console.log(v1.angleTo(v2)); // Math.PI * 0.5
Create Vector from Angle
let v = Vector.fromAngle(Math.PI * 0.5);
console.log(v.x); // 0
console.log(v.y); // 1
Equality with Other Vector
const v1 = new Vector(7, 2);
const v2 = new Vector(7, 2);
console.log(v1.equals(v2)); // true
Copy Vector
const v = new Vector(7, 2);
const cv = v.copy();