/// <summary>
        /// Divide by an array
        /// </summary>
        /// <param name="array">source</param>
        /// <param name="array2">other array</param>
        /// <returns></returns>
        public static HypArrayBase <int> Divide(this HypArrayBase <int> array, HypArrayBase <int> array2)
        {
            var outArray = array.Copy();

            Parallel.For(0, array.Data.Length, i =>
            {
                outArray.Data[i] /= array.Data[i];
            });
            return(outArray);
        }
        /// <summary>
        /// Substract an array
        /// </summary>
        /// <param name="array">source</param>
        /// <param name="array2">other array</param>
        /// <returns></returns>
        public static HypArrayBase <double> Substract(this HypArrayBase <double> array, HypArrayBase <double> array2)
        {
            var outArray = array.Copy();

            Parallel.For(0, array.Data.Length, i =>
            {
                outArray.Data[i] -= array.Data[i];
            });
            return(outArray);
        }
        /// <summary>
        /// Sumatory of all values
        /// </summary>
        /// <param name="array"></param>
        /// <returns></returns>
        public static int Sum(this HypArrayBase <int> array)
        {
            int sumatory = 0;

            Parallel.For(0, array.Data.Length, i =>
            {
                sumatory += array.Data[i];
            });
            return(sumatory);
        }
        /// <summary>
        /// Multiply an scalar
        /// </summary>
        /// <param name="array">source</param>
        /// <param name="value">value to multiply</param>
        /// <returns></returns>
        public static HypArrayBase <int> Multiply(this HypArrayBase <int> array, int value)
        {
            var outArray = array.Copy();

            Parallel.For(0, array.Data.Length, i =>
            {
                outArray.Data[i] *= value;
            });
            return(outArray);
        }
        /// <summary>
        /// Divide by an scalar
        /// </summary>
        /// <param name="array">source</param>
        /// <param name="value">value to multiply</param>
        /// <returns></returns>
        public static HypArrayBase <float> Divide(this HypArrayBase <float> array, float value)
        {
            var outArray = array.Copy();

            Parallel.For(0, array.Data.Length, i =>
            {
                outArray.Data[i] /= value;
            });
            return(outArray);
        }
        /// <summary>
        /// Multiply an array
        /// </summary>
        /// <param name="array">source</param>
        /// <param name="array2">other array</param>
        /// <returns></returns>
        public static HypArrayBase <float> Multiply(this HypArrayBase <float> array, HypArrayBase <float> array2)
        {
            var outArray = array.Copy();

            Parallel.For(0, array.Data.Length, i =>
            {
                outArray.Data[i] *= array.Data[i];
            });
            return(outArray);
        }
        // Mathematics operations.

        #region double basic  mathematics operations
        // Basics operations
        /// <summary>
        /// Sum to scalar
        /// </summary>
        /// <param name="array">source</param>
        /// <param name="value">value to sum</param>
        /// <returns></returns>
        public static HypArrayBase <double> Add(this HypArrayBase <double> array, double value)
        {
            var outArray = array.Copy();

            Parallel.For(0, array.Data.Length, i =>
            {
                outArray.Data[i] += value;
            });
            return(outArray);
        }
        /// <summary>
        /// Sumatory of all values
        /// </summary>
        /// <param name="array"></param>
        /// <returns></returns>
        public static double Sum(this HypArrayBase <double> array)
        {
            double sumatory = 0;

            Parallel.For(0, array.Data.Length, i =>
            {
                sumatory += array.Data[i];
            });
            return(sumatory);
        }
        /// <summary>
        /// Area not equal to the scalar
        /// </summary>
        /// <param name="a">source</param>
        /// <param name="b">scalar</param>
        public static HypArrayBase <bool> AreNotEqual(this HypArrayBase <int> a, int b)
        {
            HypArrayBase <bool> outArray = new HypArrayBase <bool>(a.GetDimensions());

            Parallel.For(0, a.GetNumberOfElements(), i =>
            {
                if (a.Data[i] != b)
                {
                    outArray.Data[i] = true;
                }
            });
            return(outArray);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Are less to the array
        /// </summary>
        /// <param name="a">source</param>
        /// <param name="b">array</param>
        /// <returns></returns>
        public static HypArrayBase <bool> AreLess(this HypArrayBase <float> a, HypArrayBase <float> b)
        {
            HypArrayBase <bool> outArray = new HypArrayBase <bool>(a.GetDimensions());

            Parallel.For(0, a.GetNumberOfElements(), i =>
            {
                if (a.Data[i] < b.Data[i])
                {
                    outArray.Data[i] = true;
                }
            });
            return(outArray);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Area  greater of equal to the array
        /// </summary>
        /// <param name="a">source</param>
        /// <param name="b">array</param>
        public static HypArrayBase <bool> AreGreaterOrEqual(this HypArrayBase <double> a, HypArrayBase <double> b)
        {
            HypArrayBase <bool> outArray = new HypArrayBase <bool>(a.GetDimensions());

            Parallel.For(0, a.GetNumberOfElements(), i =>
            {
                if (a.Data[i] >= b.Data[i])
                {
                    outArray.Data[i] = true;
                }
            });
            return(outArray);
        }