コード例 #1
0
ファイル: Cmplx.java プロジェクト: joeledwards/seedscan
 public final Cmplx sqrt() {
   Cmplx c = new Cmplx();
   double x, y, w, r;
   if ((this.r == 0.0) && (this.i == 0.0)) {
     c.r = (c.i = 0.0);
     return (c);
   } else {
     x = Math.abs(this.r);
     y = Math.abs(this.i);
     if (x >= y) {
       r = y / x;
       w = Math.sqrt(x) * Math.sqrt(0.5 * (1.0 + Math.sqrt(1.0 + r * r)));
     } else {
       r = x / y;
       w = Math.sqrt(y) * Math.sqrt(0.5 * (r + Math.sqrt(1.0 + r * r)));
     }
     if (this.r >= 0.0) {
       c.r = w;
       c.i = this.i / (2.0 * w);
     } else {
       c.i = (this.i >= 0.0) ? w : -w;
       c.r = this.i / (2.0 * c.i);
     }
     return (c);
   }
 }
コード例 #2
0
ファイル: Cmplx.java プロジェクト: joeledwards/seedscan
 public static final Cmplx div(Cmplx a, Cmplx b) {
   Cmplx c = new Cmplx();
   double r, den;
   if (Math.abs(b.r) >= Math.abs(b.i)) {
     r = b.i / b.r;
     den = b.r + r * b.i;
     c.r = (a.r + r * a.i) / den;
     c.i = (a.i - r * a.r) / den;
   } else {
     r = b.r / b.i;
     den = b.i + r * b.r;
     c.r = (a.r * r + a.i) / den;
     c.i = (a.i * r - a.r) / den;
   }
   return c;
 }
コード例 #3
0
ファイル: Cmplx.java プロジェクト: joeledwards/seedscan
 public static final Cmplx mul(Cmplx a, Cmplx b) {
   Cmplx c = new Cmplx();
   c.r = a.r * b.r - a.i * b.i;
   c.i = a.i * b.r + a.r * b.i;
   return c;
 }
コード例 #4
0
ファイル: Cmplx.java プロジェクト: joeledwards/seedscan
 public static final Cmplx sub(Cmplx a, Cmplx b) {
   Cmplx c = new Cmplx();
   c.r = a.r - b.r;
   c.i = a.i - b.i;
   return c;
 }
コード例 #5
0
ファイル: Cmplx.java プロジェクト: joeledwards/seedscan
 public static final Cmplx add(Cmplx a, Cmplx b) {
   Cmplx c = new Cmplx();
   c.r = a.r + b.r;
   c.i = a.i + b.i;
   return c;
 }
コード例 #6
0
ファイル: Cmplx.java プロジェクト: joeledwards/seedscan
 public static final Cmplx exp(Cmplx arg) {
   Cmplx c = new Cmplx();
   c.r = Math.exp(arg.r) * Math.cos(arg.i);
   c.i = Math.exp(arg.r) * Math.sin(arg.i);
   return c;
 }
コード例 #7
0
ファイル: Cmplx.java プロジェクト: joeledwards/seedscan
 public final Cmplx conjg() {
   Cmplx c = new Cmplx();
   c.r = this.r;
   c.i = -this.i;
   return c;
 }