示例#1
0
        public static Cmplx op_MultiplicationAssignment(Cmplx x, Cmplx y)
        {
            double r = x._r * y._r - x._i * y._i;
            double i = x._r * y._i + x._i * y._r;

            x._r = r;
            x._i = i;
            return(x);
        }
示例#2
0
        public static Cmplx op_DivisionAssignment(Cmplx x, Cmplx y)
        {
            double div = y._r * y._r + y._i * y._i;
            double r   = (x._r * y._r + x._i * y._i) / div;
            double i   = (x._i * y._r - x._r * y._i) / div;

            x._r = r;
            x._i = i;
            return(x);
        }
示例#3
0
 public override bool Equals(object obj)
 {
     if (obj is Cmplx)
     {
         Cmplx o = (Cmplx)obj;
         return(o._r == _r && o._i == _i);
     }
     else if (obj is IConvertible)
     {
         double o = ((IConvertible)obj).ToDouble(null);
         return(o == _r && _i == 0);
     }
     return(false);
 }
示例#4
0
 public static Cmplx op_AdditionAssignment(Cmplx x, Cmplx y) {
     x._r += y._r;
     x._i += y._i;
     return x;
 }
示例#5
0
 public static Cmplx op_AdditionAssignment(Cmplx x, double y) {
     x._r += y;
     return x;
 }
示例#6
0
 public static Cmplx op_SubtractionAssignment(Cmplx x, Cmplx y) {
     x._r -= y._r;
     x._i -= y._i;
     return x;
 }
示例#7
0
 public static Cmplx op_SubtractionAssignment(Cmplx x, double y) {
     x._r -= y;
     return x;
 }
示例#8
0
 public static Cmplx op_MultiplicationAssignment(Cmplx x, Cmplx y) {
     double r = x._r * y._r - x._i * y._i;
     double i = x._r * y._i + x._i * y._r;
     x._r = r;
     x._i = i;
     return x;
 }
示例#9
0
 public static Cmplx op_MultiplicationAssignment(Cmplx x, double y) {
     x._r *= y;
     x._i *= y;
     return x;
 }
示例#10
0
 public static Cmplx op_DivisionAssignment(Cmplx x, double y)
 {
     x._r /= y;
     x._i /= y;
     return(x);
 }
示例#11
0
 public static Cmplx op_AdditionAssignment(Cmplx x, Cmplx y)
 {
     x._r += y._r;
     x._i += y._i;
     return(x);
 }
示例#12
0
 public static Cmplx op_AdditionAssignment(Cmplx x, double y)
 {
     x._r += y;
     return(x);
 }
示例#13
0
 public static Cmplx op_SubtractionAssignment(Cmplx x, Cmplx y)
 {
     x._r -= y._r;
     x._i -= y._i;
     return(x);
 }
示例#14
0
 public static Cmplx op_SubtractionAssignment(Cmplx x, double y)
 {
     x._r -= y;
     return(x);
 }
示例#15
0
 public static Cmplx op_DivisionAssignment(Cmplx x, double y) {
     x._r /= y;
     x._i /= y;
     return x;
 }
示例#16
0
 public static Cmplx op_DivisionAssignment(Cmplx x, Cmplx y) {
     double div = y._r * y._r + y._i * y._i;
     double r = (x._r * y._r + x._i * y._i) / div;
     double i = (x._i * y._r - x._r * y._i) / div;
     x._r = r;
     x._i = i;
     return x;
 }
示例#17
0
 public static Cmplx op_MultiplicationAssignment(Cmplx x, double y)
 {
     x._r *= y;
     x._i *= y;
     return(x);
 }