}
public static Complex Asin(Complex value) /* Arcsin */
{
+ if ((value.m_imaginary == 0 && value.m_real < 0) || value.m_imaginary > 0)
+ {
+ return -Asin(-value);
+ }
return (-ImaginaryOne) * Log(ImaginaryOne * value + Sqrt(One - value * value));
}
}
public static Complex Acos(Complex value) /* Arccos */
{
+ if ((value.m_imaginary == 0 && value.m_real > 0) || value.m_imaginary < 0)
+ {
+ return System.Math.PI - Acos(-value);
+ }
return (-ImaginaryOne) * Log(value + ImaginaryOne*Sqrt(One - (value * value)));
}