Пример #1
0
        /// <summary>
        /// Returns the complex conjugate of the elements of array
        /// </summary>
        /// <param name="value">The input array of values to conjugate</param>
        /// <param name="result">The result array of conjugated values</param>
        /// <param name="length">A 32-bit integer that represents the number of elements to conjugate</param>
        /// <param name="valueIndex">A 32-bit integer that represents the index in the <paramref name="value"/> array at which conjugating begins</param>
        /// <param name="resultIndex">A 32-bit integer that represents the index in the <paramref name="result"/> array at which copying result begins</param>
        unsafe public virtual void Conjugate(Complex[] value, Complex[] result, int length = int.MaxValue, int valueIndex = 0, int resultIndex = 0)
        {
            Th.ThrowOneValueWithNullableResult(value, ref result, ref length, valueIndex, resultIndex);

            fixed(Complex *valuePtr = value, resultPtr = result)
            ComplexArrayHelper.Conjugate(valuePtr, resultPtr, length, valueIndex, resultIndex);
        }
Пример #2
0
        /// <summary>
        /// Invert the elements of array <paramref name="value"/>/>
        /// </summary>
        /// <param name="value">The array will be invert</param>
        /// <param name="result">The result of inverting</param>
        /// <param name="length">A 32-bit integer that represents the number of elements to invert</param>
        /// <param name="valueIndex">A 32-bit integer that represents the index in the <paramref name="value"/> array at which inverting begins</param>
        /// <param name="resultIndex">A 32-bit integer that represents the index in the <paramref name="result"/> array at which copying result begins</param>
        /// <remarks>If the <paramref name="result"/> array is null, operation result copying to the <paramref name="value1"/></remarks>
        unsafe public override void Inversion(Complex[] value, Complex[] result = null, int length = int.MaxValue, int valueIndex = 0, int resultIndex = 0)
        {
            Th.ThrowOneValueWithNullableResult(value, ref result, ref length, valueIndex, resultIndex);

            fixed(Complex *valuePtr = value, resultPtr = result)
            ComplexArrayHelper.Inverse(valuePtr, resultPtr, length, valueIndex, resultIndex);
        }
Пример #3
0
        /// <summary>
        /// Multiplies the elements of array <paramref name="value1"/> to the <paramref name="value2"/>
        /// </summary>
        /// <param name="value1">The array to multiply</param>
        /// <param name="value2">The number, which will be multiply to the <paramref name="value1"/> array</param>
        /// <param name="result">The result of multiply</param>
        /// <param name="length">A 32-bit integer that represents the number of elements to multiply</param>
        /// <param name="value1Index">A 32-bit integer that represents the index in the <paramref name="value1"/> array at which multiply begins</param>
        /// <param name="resultIndex">A 32-bit integer that represents the index in the <paramref name="result"/> array at which copying result begins</param>
        /// <remarks>If the <paramref name="result"/> array is null, operation result copying to the <paramref name="value1"/></remarks>
        unsafe public override void Multiply(Complex[] value1, Complex value2, Complex[] result = null, int length = int.MaxValue, int value1Index = 0, int resultIndex = 0)
        {
            Th.ThrowOneValueWithNullableResult(value1, ref result, ref length, value1Index, resultIndex);

            fixed(Complex *value1Ptr = value1, resultPtr = result)
            ComplexArrayHelper.Multiply(value1Ptr, value2, resultPtr, length, value1Index, resultIndex);
        }
Пример #4
0
        /// <summary>
        /// Division the elements of array <paramref name="value1"/> by elements of the array <paramref name="value2"/>
        /// </summary>
        /// <param name="value1">The dividend array</param>
        /// <param name="value2">The divisor array</param>
        /// <param name="result">The result of division</param>
        /// <param name="length">A 32-bit integer that represents the number of elements to division</param>
        /// <param name="value1Index">A 32-bit integer that represents the index in the <paramref name="value1"/> array at which division begins</param>
        /// <param name="value2Index">A 32-bit integer that represents the index in the <paramref name="value2"/> array at which division begins</param>
        /// <param name="resultIndex">A 32-bit integer that represents the index in the <paramref name="result"/> array at which copying result begins</param>
        /// <remarks>If the <paramref name="result"/> array is null, operation result copying to the <paramref name="value1"/></remarks>
        unsafe public override void Division(Complex[] value1, Complex[] value2, Complex[] result = null, int length = int.MaxValue, int value1Index = 0, int value2Index = 0, int resultIndex = 0)
        {
            Th.ThrowIfTwoValuesWithNullableResult(value1, value2, ref result, ref length, value1Index, value2Index, resultIndex);

            fixed(Complex *value1Ptr = value1, value2Ptr = value2, resultPtr = result)
            ComplexArrayHelper.Division(value1Ptr, value2Ptr, resultPtr, length, value1Index, value2Index, resultIndex);
        }
Пример #5
0
        /// <summary>
        /// Summarizes the elements of the array <paramref name="value"/>
        /// </summary>
        /// <param name="value">The array to summariez</param>
        /// <param name="length">A 32-bit integer that represents the number of elements to summariez</param>
        /// <param name="valueIndex">A 32-bit integer that represents the index in the <paramref name="value"/> array at which summariez begins</param>
        /// <returns>Result of the elements summariez</returns>
        unsafe public override Complex Summary(Complex[] value, int length = int.MaxValue, int valueIndex = 0)
        {
            Th.ThrowIfOneValue(value, ref length, valueIndex);
            Complex returnValue = 0;

            fixed(Complex *value1Ptr = value)
            returnValue = ComplexArrayHelper.Summary(value1Ptr, length, valueIndex);

            return(returnValue);
        }