System\Numerics\Complex.Generic.cs (98)
26public static Complex<T> Zero => new(T.Zero, T.Zero);
27public static Complex<T> One => new(T.One, T.Zero);
28public static Complex<T> ImaginaryOne => new(T.Zero, T.One);
29public static Complex<T> NaN => new(T.NaN, T.NaN);
30public static Complex<T> Infinity => new(T.PositiveInfinity, T.PositiveInfinity);
62return new Complex<T>(magnitude * cos, magnitude * sin);
132return new Complex<T>(-value.m_real, -value.m_imaginary);
137return new Complex<T>(left.m_real + right.m_real, left.m_imaginary + right.m_imaginary);
142return new Complex<T>(left.m_real + right, left.m_imaginary);
147return new Complex<T>(left + right.m_real, right.m_imaginary);
152return new Complex<T>(left.m_real - right.m_real, left.m_imaginary - right.m_imaginary);
157return new Complex<T>(left.m_real - right, left.m_imaginary);
162return new Complex<T>(left - right.m_real, -right.m_imaginary);
182return new Complex<T>(x, y);
264return new Complex<T>(x, y);
271return left * new Complex<T>(right, T.Zero);
276return new Complex<T>(left, T.Zero) * right;
314return new Complex<T>(x, y);
347return new Complex<T>(x, y);
354return left / new Complex<T>(right, T.Zero);
361return new Complex<T>(left, T.Zero) / right;
397return new Complex<T>(value.m_real, -value.m_imaginary);
455Complex<T> sinh = Sinh(new Complex<T>(-value.m_imaginary, value.m_real));
456return new Complex<T>(sinh.m_imaginary, -sinh.m_real);
464return new Complex<T>(sin * T.Cosh(value.m_imaginary), cos * T.Sinh(value.m_imaginary));
478return (imaginary == T.Zero) ? new Complex<T>(real, imaginary) : new Complex<T>(T.NaN, T.NaN);
485return new Complex<T>(real, imaginary);
491return new Complex<T>(real, T.NaN);
496return new Complex<T>(T.Sinh(real) * cosInf, T.Cosh(real) * sinInf);
502return (real == T.Zero) ? new Complex<T>(real, T.NaN) : new Complex<T>(T.NaN, T.NaN);
506Complex<T> sin = Sin(new Complex<T>(-imaginary, real));
507return new Complex<T>(sin.m_imaginary, -sin.m_real);
516return new Complex<T>(s.m_imaginary, -s.m_real);
541return new Complex<T>(u, v);
563return new Complex<T>(T.NaN, b);
578return new Complex<T>(re, im);
586return Cosh(new Complex<T>(-value.m_imaginary, value.m_real));
593return new Complex<T>(cos * T.Cosh(value.m_imaginary), -sin * T.Sinh(value.m_imaginary));
607return (imaginary == T.Zero) ? new Complex<T>(T.NaN, imaginary) : new Complex<T>(T.NaN, T.NaN);
615return new Complex<T>(T.PositiveInfinity, imag);
621return new Complex<T>(T.PositiveInfinity, T.NaN);
626return new Complex<T>(T.Cosh(real) * cosInf, T.Sinh(real) * sinInf);
632return (real == T.Zero) ? new Complex<T>(T.NaN, T.CopySign(T.Zero, real)) : new Complex<T>(T.NaN, T.NaN);
636return Cos(new Complex<T>(-imaginary, real));
668return new Complex<T>(u, v);
719return new Complex<T>(re, im);
727Complex<T> tanh = Tanh(new Complex<T>(-value.m_imaginary, value.m_real));
728return new Complex<T>(tanh.m_imaginary, -tanh.m_real);
748return new Complex<T>(sin / D, T.Sinh(y2) / D);
753return new Complex<T>(sin / cosh / D, T.Tanh(y2) / D);
768return (imaginary == T.Zero) ? new Complex<T>(real, imaginary) : new Complex<T>(T.NaN, T.NaN);
778return new Complex<T>(re, T.CopySign(T.Zero, sin * cos));
780return new Complex<T>(re, T.CopySign(T.Zero, imaginary));
786return (real == T.Zero) ? new Complex<T>(real, T.NaN) : new Complex<T>(T.NaN, T.NaN);
790Complex<T> tan = Tan(new Complex<T>(-imaginary, real));
791return new Complex<T>(tan.m_imaginary, -tan.m_real);
800return new Complex<T>(t.m_imaginary, -t.m_real);
803Complex<T> two = new(T.CreateChecked(2), T.Zero);
845return new Complex<T>(re, im);
939return new Complex<T>(T.Log(Abs(value)), T.Atan2(value.m_imaginary, value.m_real));
944return Log(value) / Log(new Complex<T>(baseValue, T.Zero));
970return new Complex<T>(T.Zero, T.Zero);
979return new Complex<T>(real, imaginary);
985return new Complex<T>(T.PositiveInfinity, T.NaN);
993return (imaginary == T.Zero) ? new Complex<T>(T.NaN, imaginary) : new Complex<T>(T.NaN, T.NaN);
1012return new Complex<T>(T.PositiveInfinity, imaginary);
1022return new Complex<T>(T.NaN, T.PositiveInfinity);
1025return new Complex<T>(T.Zero, T.CopySign(T.PositiveInfinity, imaginary));
1029return new Complex<T>(T.PositiveInfinity, T.IsNaN(imaginary) ? T.NaN : T.CopySign(T.Zero, imaginary));
1035return new Complex<T>(T.NaN, T.NaN);
1043return new Complex<T>(T.Zero, T.CopySign(T.Sqrt(-real), imaginary));
1046return new Complex<T>(T.Sqrt(real), T.CopySign(T.Zero, imaginary));
1087return new Complex<T>(x, y);
1130return Pow(value, new Complex<T>(power, T.Zero));
1137return new Complex<T>(realResult, imaginaryResult);
1146return new Complex<T>(value, T.Zero);
1591return new Complex<T>(result_realpart, result_imaginarypart);
1651result = new Complex<T>((T)(object)value, T.Zero);
1658result = new Complex<T>(T.CreateChecked(actualValue.Real), T.CreateChecked(actualValue.Imaginary));
1664result = new Complex<T>(realResult, T.Zero);
1670result = new Complex<T>(realResult2, T.Zero);
1683result = new Complex<T>((T)(object)value, T.Zero);
1690result = new Complex<T>(T.CreateSaturating(actualValue.Real), T.CreateSaturating(actualValue.Imaginary));
1696result = new Complex<T>(realResult, T.Zero);
1702result = new Complex<T>(realResult2, T.Zero);
1715result = new Complex<T>((T)(object)value, T.Zero);
1722result = new Complex<T>(T.CreateTruncating(actualValue.Real), T.CreateTruncating(actualValue.Imaginary));
1728result = new Complex<T>(realResult, T.Zero);
1734result = new Complex<T>(realResult2, T.Zero);
2015result = new Complex<T>(real!, imaginary!);
2065static Complex<T> ISignedNumber<Complex<T>>.NegativeOne => new(-T.One, T.Zero);