Skip to content

dankogai/js-math-complex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

build status

math-complex.js

Complex Number for JavaScript

USAGE

In Browser

<script src="math-complex.js" charset="UTF-8"></script>

node.js

require('./math-complex.js');

SYNOPSIS

var cplx = Math.Complex,	// for convenience
j = cplx(0, 1);
j.mul(Math.PI).exp() + '';	// -1+1.2246063538223773e-16i
// ditto
Math.Complex.exp(cplx(0, Math.PI));

DESCRIPTION

This module implements complex number arithmetics. Basic arithmetics + All arithmetic functions in Math are supported.

Constructors

Math.Complex( re [, im] )

Constructor. im === 0 if omitted.

var z = Math.Complex(1,2);
z.re === 1;
z.im === 2;

Math.Complex.polar( abs, arg )

Constructor in polar form.

Methods

In the followin example z is a complex number object. Unless otherwise stated, all methods below return complex number objects.

z.eq( z1 )

returns true if z equals z1, false otherwise.

z.ne( z1 )

The opposite of z.eq( *z1 *)

z.abs()

returns the absolute value in Number.

z.arg()

returns the argument in Number.

z.neg()

returns - z

z.con()

returns the conjugate.

Math.Complex(re, im).con().eq(Math.Complex(re, -im));

z.norm()

returns the norm in Number.

z.add( z1 )

z + z1. z1 can be either complex number or real number If z1 is a real number (Number object, that is), it is automatically converted to complex number before the calculation. This applies to all binary methods.

z.sub( z1 )

z - z1

z.mul( z1 )

z * z1

z.div( z1 )

z / z1

z.exp()

Copmplex version of Math.exp( z ) .

z.log()

Copmplex version of Math.log( z ) .

z.pow( z1 )

Copmplex version of Math.exp( z, z1 ) .

z.sin()

Copmplex version of Math.sin( z ) .

z.cos()

Copmplex version of Math.cos( z ) .

z.tan()

Copmplex version of Math.tan( z ) .

z.asin()

Copmplex version of Math.asin( z ) .

z.acos()

Copmplex version of Math.acos( z ) .

z.atan()

Copmplex version of Math.atan( z ) .

z.approx(z1)

z is approximately equal to z1.

 delta                abs(z - z1)
------- < EPSILON <=> ----------- < 2*EPSILON
average               abs(z + z1)

Functional Form

All methods above can also be accessed in functional form which is handy with with.

// does not work in strict mode
with(Math.Complex){
	console.log(atan2(1,1))	// { re: 0.7853981633974483, im: 0 }
}

About

Complex Number in JavaScript

Resources

Stars

Watchers

Forks

Packages

No packages published