/// <summary> /// Trigonometric Hyperbolic Secant of a <c>Complex</c> number. /// </summary> /// <param name="value"> /// The complex value. /// </param> /// <returns> /// The hyperbolic secant of a complex number. /// </returns> public static Complex HyperbolicSecant(this Complex value) { if (value.IsReal()) { return(new Complex(HyperbolicSecant(value.Real), 0.0)); } var exp = value.Exponential(); if (exp.IsInfinity()) { return(Complex.Zero); } return(2 * exp / (exp.Square() + 1)); }