public ComplexNumbers GetSqrt() { double arg = Math.PI + Math.Atan(Im / Re); if ((Im >= 0 && Re >= 0) || (Im <= 0 && Re >= 0)) { arg = Math.Atan(Im / Re); } ComplexNumbers sqrt0 = new ComplexNumbers { Re = Math.Pow(GetModule().Re, 0.5) * Math.Cos(arg / 2.0), Im = Math.Pow(GetModule().Re, 0.5) * Math.Sin(arg / 2.0) }; ComplexNumbers sqrt1 = new ComplexNumbers { Re = Math.Pow(GetModule().Re, 0.5) * Math.Cos((arg + 2 * Math.PI) / 2.0), Im = Math.Pow(GetModule().Re, 0.5) * Math.Sin((arg + 2 * Math.PI) / 2.0) }; if (sqrt0.GetModule() < sqrt1.GetModule()) { return(sqrt0); } else { return(sqrt1); } }
public ComplexNumbers GetPow() { ComplexNumbers result = new ComplexNumbers { Re = Re * Re - Im * Im, Im = 2 * Re * Im }; return(result); }
public ComplexNumbers(ComplexNumbers cn) { Re = cn.Re; Im = cn.Im; }