Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
basic complex number arithmetic from
|
||||
http://rosettacode.org/wiki/Fast_Fourier_transform#Scala
|
||||
*/
|
||||
function Complex(re, im)
|
||||
{
|
||||
this.re = re;
|
||||
this.im = im || 0.0;
|
||||
}
|
||||
Complex.prototype.add = function(other, dst)
|
||||
{
|
||||
dst.re = this.re + other.re;
|
||||
dst.im = this.im + other.im;
|
||||
return dst;
|
||||
}
|
||||
Complex.prototype.sub = function(other, dst)
|
||||
{
|
||||
dst.re = this.re - other.re;
|
||||
dst.im = this.im - other.im;
|
||||
return dst;
|
||||
}
|
||||
Complex.prototype.mul = function(other, dst)
|
||||
{
|
||||
//cache re in case dst === this
|
||||
var r = this.re * other.re - this.im * other.im;
|
||||
dst.im = this.re * other.im + this.im * other.re;
|
||||
dst.re = r;
|
||||
return dst;
|
||||
}
|
||||
Complex.prototype.cexp = function(dst)
|
||||
{
|
||||
var er = Math.exp(this.re);
|
||||
dst.re = er * Math.cos(this.im);
|
||||
dst.im = er * Math.sin(this.im);
|
||||
return dst;
|
||||
}
|
||||
Complex.prototype.log = function()
|
||||
{
|
||||
/*
|
||||
although 'It's just a matter of separating out the real and imaginary parts of jw.' is not a helpful quote
|
||||
the actual formula I found here and the rest was just fiddling / testing and comparing with correct results.
|
||||
http://cboard.cprogramming.com/c-programming/89116-how-implement-complex-exponential-functions-c.html#post637921
|
||||
*/
|
||||
if( !this.re )
|
||||
console.log(this.im.toString()+'j');
|
||||
else if( this.im < 0 )
|
||||
console.log(this.re.toString()+this.im.toString()+'j');
|
||||
else
|
||||
console.log(this.re.toString()+'+'+this.im.toString()+'j');
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue