System\Numerics\Complex.Generic.cs (73)
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);
170return new Complex<T>(result_realpart, result_imaginarypart);
179return new Complex<T>(T.NaN, T.NaN);
182return new Complex<T>(left.m_real * right, T.NaN);
187return new Complex<T>(T.NaN, left.m_imaginary * right);
190return new Complex<T>(left.m_real * right, left.m_imaginary * right);
199return new Complex<T>(T.NaN, T.NaN);
202return new Complex<T>(left * right.m_real, T.NaN);
207return new Complex<T>(T.NaN, left * right.m_imaginary);
210return new Complex<T>(left * right.m_real, left * right.m_imaginary);
225return new Complex<T>((a + b * doc) / (c + d * doc), (b - a * doc) / (c + d * doc));
230return new Complex<T>((b + a * cod) / (d + c * cod), (-a + b * cod) / (d + c * cod));
241return new Complex<T>(T.NaN, T.NaN);
248return new Complex<T>(T.NaN, T.NaN);
251return new Complex<T>(left.m_real / right, T.NaN);
256return new Complex<T>(T.NaN, left.m_imaginary / right);
260return new Complex<T>(left.m_real / right, left.m_imaginary / right);
274return new Complex<T>(a / (c + d * doc), (-a * doc) / (c + d * doc));
279return new Complex<T>(a * cod / (d + c * cod), -a / (d + c * cod));
316return new Complex<T>(value.m_real, -value.m_imaginary);
372return new Complex<T>(sin * T.Cosh(value.m_imaginary), cos * T.Sinh(value.m_imaginary));
378Complex<T> sin = Sin(new Complex<T>(-value.m_imaginary, value.m_real));
379return new Complex<T>(sin.m_imaginary, -sin.m_real);
399return new Complex<T>(u, v);
405return new Complex<T>(cos * T.Cosh(value.m_imaginary), -sin * T.Sinh(value.m_imaginary));
411return Cos(new Complex<T>(-value.m_imaginary, value.m_real));
431return new Complex<T>(u, v);
453return new Complex<T>(sin / D, T.Sinh(y2) / D);
458return new Complex<T>(sin / cosh / D, T.Tanh(y2) / D);
465Complex<T> tan = Tan(new Complex<T>(-value.m_imaginary, value.m_real));
466return new Complex<T>(tan.m_imaginary, -tan.m_real);
471Complex<T> two = new(T.CreateChecked(2), T.Zero);
566return new Complex<T>(T.Log(Abs(value)), T.Atan2(value.m_imaginary, value.m_real));
571return Log(value) / Log(new Complex<T>(baseValue, T.Zero));
593return new Complex<T>(T.PositiveInfinity, value.m_imaginary);
595return new Complex<T>(T.NaN, T.NaN);
601return new Complex<T>(T.NaN, T.PositiveInfinity);
605return new Complex<T>(T.PositiveInfinity, T.NaN);
607return new Complex<T>(T.NaN, T.NaN);
615return new Complex<T>(T.Zero, T.Sqrt(-value.m_real));
618return new Complex<T>(T.Sqrt(value.m_real), T.Zero);
633return new Complex<T>(T.PositiveInfinity, imaginaryCopy);
663return new Complex<T>(x, y);
694return Pow(value, new Complex<T>(power, T.Zero));
701return new Complex<T>(realResult, imaginaryResult);
710return new Complex<T>(value, T.Zero);
1155return new Complex<T>(result_realpart, result_imaginarypart);
1215result = new Complex<T>((T)(object)value, T.Zero);
1222result = new Complex<T>(T.CreateChecked(actualValue.Real), T.CreateChecked(actualValue.Imaginary));
1228result = new Complex<T>(realResult, T.Zero);
1234result = new Complex<T>(realResult2, T.Zero);
1247result = new Complex<T>((T)(object)value, T.Zero);
1254result = new Complex<T>(T.CreateSaturating(actualValue.Real), T.CreateSaturating(actualValue.Imaginary));
1260result = new Complex<T>(realResult, T.Zero);
1266result = new Complex<T>(realResult2, T.Zero);
1279result = new Complex<T>((T)(object)value, T.Zero);
1286result = new Complex<T>(T.CreateTruncating(actualValue.Real), T.CreateTruncating(actualValue.Imaginary));
1292result = new Complex<T>(realResult, T.Zero);
1298result = new Complex<T>(realResult2, T.Zero);
1564result = new Complex<T>(real!, imaginary!);
1614static Complex<T> ISignedNumber<Complex<T>>.NegativeOne => new(-T.One, T.Zero);