Beispiel #1
0
        /// <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());
        }
Beispiel #2
0
        /// <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 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)
        {
            if (value.Imaginary > 0 || value.Imaginary == 0d && value.Real < 0)
            {
                return(-InverseSine(-value));
            }

            return(-Complex.ImaginaryOne * ((1 - value.Square()).SquareRoot() + (Complex.ImaginaryOne * value)).NaturalLogarithm());
        }
        /// <summary>
        /// Trigonometric 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 InverseCosine(this Complex value)
        {
            if (value.Imaginary < 0 || value.Imaginary == 0d && value.Real > 0)
            {
                return(Constants.Pi - InverseCosine(-value));
            }

            return(-Complex.ImaginaryOne * (value + (Complex.ImaginaryOne * (1 - value.Square()).SquareRoot())).NaturalLogarithm());
        }
        public void CanComputeSquare()
        {
            var complex = new Complex(1.19209289550780998537e-7, 1.19209289550780998537e-7);

            AssertHelpers.AlmostEqualRelative(new Complex(0, 2.8421709430403888e-14), complex.Square(), 15);
            complex = new Complex(0.0, 1.19209289550780998537e-7);
            AssertHelpers.AlmostEqualRelative(new Complex(-1.4210854715201944e-14, 0.0), complex.Square(), 15);
            complex = new Complex(0.0, -1.19209289550780998537e-7);
            AssertHelpers.AlmostEqualRelative(new Complex(-1.4210854715201944e-14, 0.0), complex.Square(), 15);
            complex = new Complex(0.0, 0.5);
            AssertHelpers.AlmostEqualRelative(new Complex(-0.25, 0.0), complex.Square(), 15);
            complex = new Complex(0.0, -0.5);
            AssertHelpers.AlmostEqualRelative(new Complex(-0.25, 0.0), complex.Square(), 15);
            complex = new Complex(0.0, -8.388608e6);
            AssertHelpers.AlmostEqualRelative(new Complex(-70368744177664.0, 0.0), complex.Square(), 15);
        }
Beispiel #6
0
 /// <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());
 }
 /// <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());
 }