Beispiel #1
0
 /// <summary>Trigonometric Hyperbolic Cosine (cosh, Cosinus hyperbolicus) of this <c>Complex</c>.</summary>
 public Complex HyperbolicCosine()
 {
     if (IsReal)
     {
         return(new Complex(Trig.HyperbolicCosine(real), 0d));
     }
     return(new Complex(Trig.HyperbolicCosine(real) * Trig.Cosine(imag), Trig.HyperbolicSine(real) * Trig.Sine(imag)));
 }
Beispiel #2
0
        /// <summary>Exponential of this <c>Complex</c> (exp(x), E^x).</summary>
        public Complex Exponential()
        {
            double exp = Math.Exp(real);

            if (IsReal)
            {
                return(new Complex(exp, 0d));
            }
            return(new Complex(exp * Trig.Cosine(imag), exp * Trig.Sine(imag)));
        }
        /// <summary>
        /// Exponential of this <c>Complex</c> (exp(x), E^x).
        /// </summary>
        /// <param name="complex">The <see cref="Complex"/> number to perfom this operation on.</param>
        /// <returns>
        /// The exponential of this complex number.
        /// </returns>
        public static Complex Exponential(this Complex complex)
        {
            var exp = Math.Exp(complex.Real);

            if (complex.IsReal())
            {
                return(new Complex(exp, 0.0));
            }

            return(new Complex(exp * Trig.Cosine(complex.Imaginary), exp * Trig.Sine(complex.Imaginary)));
        }
Beispiel #4
0
        /// <summary>Trigonometric Hyperbolic Cotangent (coth, Cotangens hyperbolicus) of this <c>Complex</c>.</summary>
        public Complex HyperbolicCotangent()
        {
            if (IsReal)
            {
                return(new Complex(Trig.HyperbolicCotangent(real), 0d));
            }
            double sini  = Trig.Sine(imag);
            double sinhr = Trig.HyperbolicSine(real);
            double denom = sini * sini + sinhr * sinhr;

            return(new Complex(sinhr * Trig.HyperbolicCosine(real) / denom, sini * Trig.Cosine(imag) / denom));
        }
Beispiel #5
0
        /// <summary>Trigonometric Hyperbolic Tangent (tanh, Tangens hyperbolicus) of this <c>Complex</c>.</summary>
        public Complex HyperbolicTangent()
        {
            if (IsReal)
            {
                return(new Complex(Trig.HyperbolicTangent(real), 0d));
            }
            double cosi  = Trig.Cosine(imag);
            double sinhr = Trig.HyperbolicSine(real);
            double denom = cosi * cosi + sinhr * sinhr;

            return(new Complex(Trig.HyperbolicCosine(real) * sinhr / denom, cosi * Trig.Sine(imag) / denom));
        }
Beispiel #6
0
        /// <summary>Trigonometric Cosecant (csc, Cosekans) of this <c>Complex</c>.</summary>
        public Complex Cosecant()
        {
            if (IsReal)
            {
                return(new Complex(Trig.Cosecant(real), 0d));
            }
            double sinr  = Trig.Sine(real);
            double sinhi = Trig.HyperbolicSine(imag);
            double denom = sinr * sinr + sinhi * sinhi;

            return(new Complex(sinr * Trig.HyperbolicCosine(imag) / denom, -Trig.Cosine(real) * sinhi / denom));
        }
Beispiel #7
0
        /// <summary>Trigonometric Secant (sec, Sekans) of this <c>Complex</c>.</summary>
        public Complex Secant()
        {
            if (IsReal)
            {
                return(new Complex(Trig.Secant(real), 0d));
            }
            double cosr  = Trig.Cosine(real);
            double sinhi = Trig.HyperbolicSine(imag);
            double denom = cosr * cosr + sinhi * sinhi;

            return(new Complex(cosr * Trig.HyperbolicCosine(imag) / denom, Trig.Sine(real) * sinhi / denom));
        }