- 🚀 Lightweight and fast
- 👴 ES3-compliant
- 💻 Portable between the browser and Node.js
This library is a small, simple utility for working with complex numbers.
The name comes from the videos of a YouTube channel called Morphocular, where some character always said "To Complexia!" before addressing topics involving complex numbers.
- Via NPM:
npm install @santi100a/complexia-lib
- Via Yarn:
yarn add @santi100a/complexia-lib
- Via PNPM:
pnpm install @santi100a/complexia-lib
-
class ComplexNumber;
A complex number.-
Property
ComplexNumber.real: number;
The real part of the complex number. -
Property
ComplexNumber.imaginary: number;
The imaginary part of the complex number. -
constructor ComplexNumber(real: number, imaginary: number): ComplexNumber;
Represents a complex number with real and
imaginary parts.Name Type Description Optional? Default real
number
The real part of the complex number. No N/A imaginary
number
The imaginary part of the complex number. No N/A -
ComplexNumber.conjugate(): ComplexNumber;
Returns the conjugate of the complex number. -
ComplexNumber.modulus(): number;
Returns the modulus (magnitude or distance to the origin) of the complex number. -
ComplexNumber.argument(): number;
Returns the argument (phase or angle with the positive x-axis) of the complex number in radians.
-
-
Static method
ComplexNumber.fromPolar(modulus: number, argument: number): ComplexNumber;
Creates a complex number from polar coordinates (modulus and argument).Name Type Description Optional? Default modulus
number
The modulus of the complex number. No N/A argument
number
The argument of the complex number. No N/A -
function complexAdd(z1: ComplexNumber, z2: ComplexNumber): ComplexNumber;
Adds two complex numbers together.Name Type Description Optional? Default z1
ComplexNumber
The first term of the addition. No N/A z2
ComplexNumber
The second term of the addition. No N/A -
function complexSubtract(z1: ComplexNumber, z2: ComplexNumber): ComplexNumber;
Subractsz2
fromz1
.Name Type Description Optional? Default z1
ComplexNumber
The first term of the subtraction. No N/A z2
ComplexNumber
The second term of the subtraction. No N/A -
function complexMultiply(z1: ComplexNumber, z2: ComplexNumber): ComplexNumber;
Multiplies two complex numbers together.Name Type Description Optional? Default z1
ComplexNumber
The first term of the multiplication. No N/A z2
ComplexNumber
The second term of the multiplication. No N/A -
function complexDivide(z1: ComplexNumber, z2: ComplexNumber): ComplexNumber;
Dividesz1
byz2
.Name Type Description Optional? Default z1
ComplexNumber
The numerator of the division. No N/A z2
ComplexNumber
The denominator of the division. No N/A
const { ComplexNumber } = require('@santi100a/complexia-lib'); // CommonJS
import { ComplexNumber } from '@santi100a/complexia-lib'; // ESM/TypeScript
// Create a complex number with real part 2 and imaginary part 3
const complexNumber = new ComplexNumber(2, 3);
// Get the conjugate of the complex number
const conjugate = complexNumber.conjugate(); // returns ComplexNumber { real: 2, imaginary: -3 }
// Get the modulus of the complex number
const modulus = complexNumber.modulus(); // returns 3.605551275463989
// Get the argument of the complex number
const argument = complexNumber.argument(); // returns 0.982793723247329
// Create a complex number from polar coordinates
const polarComplexNumber = ComplexNumber.fromPolar(4, Math.PI / 4); // returns ComplexNumber { real: 2.8284271247461903, imaginary: 2.8284271247461903 }
Wanna contribute? File an issue or pull request! Look at the contribution instructions and make sure you follow the contribution Code of Conduct.