public static ComplexCar Sqrt(ComplexCar complexCar) { ComplexPol complexPol = Car2Pol(complexCar); ComplexCar complex; complex.real = Math.Sqrt(complexPol.mod) * Math.Cos(complexPol.ang / 2); complex.imag = Math.Sqrt(complexPol.mod) * Math.Sin(complexPol.ang / 2); return(complex); }
public static void Print(ComplexCar complexCar) { if (complexCar.imag >= 0) { Console.Write(complexCar.real + " +" + complexCar.imag + " i"); } else { Console.Write(complexCar.real + " " + complexCar.imag + " i"); } }
public static ComplexCar[] Eigenvalues(JonesMatCar jonesMatCar) { ComplexCar[] complexCar = new ComplexCar[2]; ComplexCar a = (jonesMatCar.J11 + jonesMatCar.J22); ComplexCar b = Sqrt((a * a) + (4 * ((jonesMatCar.J12 * jonesMatCar.J21) - (jonesMatCar.J11 * jonesMatCar.J22)))); complexCar[0] = (a + b) / 2; complexCar[1] = (a - b) / 2; return(complexCar); }
public static JonesMatCar Inverse(JonesMatCar jonesMatCar) { JonesMatCar JInv; ComplexCar JDet = Det(jonesMatCar); JInv.J11 = jonesMatCar.J22 / JDet; JInv.J12 = (-1 * jonesMatCar.J12) / JDet; JInv.J21 = (-1 * jonesMatCar.J21) / JDet; JInv.J22 = jonesMatCar.J11 / JDet; return(JInv); }
public static ComplexPol Car2Pol(ComplexCar complexCar) { ComplexPol complexPol; complexPol.mod = Math.Sqrt( (complexCar.real * complexCar.real) + (complexCar.imag * complexCar.imag) ); complexPol.ang = Math.Atan2(complexCar.imag, complexCar.real); return(complexPol); }
public static double Abs(ComplexCar complexCar) { return(Math.Sqrt((complexCar.real * complexCar.real) + (complexCar.imag * complexCar.imag))); }