/// <summary> /// Trigonometric principal Arc Cosine of this <c>Complex</c> number. /// </summary> /// <param name="value">The complex value.</param> /// <returns>The arc cosine of a complex number.</returns> public static Complex Acos(this Complex value) { if (value.Imaginary < 0 || value.Imaginary == 0d && value.Real > 0) { return(Constants.Pi - Acos(-value)); } return(-Complex.ImaginaryOne * (value + (Complex.ImaginaryOne * (1 - value.Square()).SquareRoot())).Ln()); }
/// <summary> /// Trigonometric principal Arc Sine of this <c>Complex</c> number. /// </summary> /// <param name="value">The complex value.</param> /// <returns>The arc sine of a complex number.</returns> public static Complex Asin(this Complex value) { if (value.Imaginary > 0 || value.Imaginary == 0d && value.Real < 0) { return(-Asin(-value)); } return(-Complex.ImaginaryOne * ((1 - value.Square()).SquareRoot() + (Complex.ImaginaryOne * value)).Ln()); }
/// <summary>Trigonometric Hyperbolic Cosecant (Cosecans hyperbolicus) of this <c>Complex</c>.</summary> public Complex Csch() { if (IsReal) { return(new Complex(Trig.Csch(real), 0d)); } Complex exp = this.Exp(); return(2 * exp / (exp.Square() - 1)); }
/// <summary> /// Trigonometric Arc Sine of this <c>Complex</c> number. /// </summary> /// <param name="value"> /// The complex value. /// </param> /// <returns> /// The arc sine of a complex number. /// </returns> public static Complex InverseSine(this Complex value) { return(-Complex.ImaginaryOne * ((1 - value.Square()).SquareRoot() + (Complex.ImaginaryOne * value)).NaturalLogarithm()); }
/// <summary> /// Trigonometric Hyperbolic Arc Sine of this <c>Complex</c> number. /// </summary> /// <param name="value"> /// The complex value. /// </param> /// <returns> /// The hyperbolic arc sine of a complex number. /// </returns> public static Complex InverseHyperbolicSine(this Complex value) { return((value + (value.Square() + 1).SquareRoot()).NaturalLogarithm()); }
/// <summary>Trigonometric Hyperbolic Area Cosecant (Areacosekans hyperbolicus) of this <c>Complex</c>.</summary> public Complex Acsch() { Complex inv = 1 / this; return((inv + (inv.Square() + 1).Sqrt()).Ln()); }
/// <summary>Trigonometric Arcus Cosecant (Arkuscosekans) of this <c>Complex</c>.</summary> public Complex Acsc() { Complex inv = 1 / this; return(-Complex.I * (Complex.I * inv + (1 - inv.Square()).Sqrt()).Ln()); }
/// <summary>Trigonometric Arcus Secant (Arkussekans) of this <c>Complex</c>.</summary> public Complex Asec() { Complex inv = 1 / this; return(-Complex.I * (inv + Complex.I * (1 - inv.Square()).Sqrt()).Ln()); }
/// <summary> /// Hyperbolic Area Sine of this <c>Complex</c> number. /// </summary> /// <param name="value">The complex value.</param> /// <returns>The hyperbolic arc sine of a complex number.</returns> public static Complex Asinh(this Complex value) { return((value + (value.Square() + 1).SquareRoot()).Ln()); }