Exemple #1
0
        /// <summary>
        /// See <see cref="IReducible.Reduce(double, ProcessEntry, ProcessZeros, Reduction.Finalize)"/>.
        /// </summary>
        public double Reduce(double identityValue, ProcessEntry processEntry, ProcessZeros processZeros, Finalize finalize)
        {
            double accumulator = identityValue; // no zeros implied

            accumulator = processEntry(data[0], accumulator);
            accumulator = processEntry(data[1], accumulator);
            return(finalize(accumulator));
        }
Exemple #2
0
        /// <summary>
        /// See <see cref="IReducible.Reduce(double, ProcessEntry, ProcessZeros, Reduction.Finalize)"/>.
        /// </summary>
        public double Reduce(double identityValue, ProcessEntry processEntry, ProcessZeros processZeros, Finalize finalize)
        {
            double accumulator = identityValue;

            for (int i = 0; i < data.Length; ++i)
            {
                accumulator = processEntry(data[i], accumulator);
            }
            // no zeros implied
            return(finalize(accumulator));
        }
        /// <summary>
        /// See <see cref="IReducible.Reduce(double, ProcessEntry, ProcessZeros, Reduction.Finalize)"/>.
        /// </summary>
        public double Reduce(double identityValue, ProcessEntry processEntry, ProcessZeros processZeros, Finalize finalize)
        {
            double aggregator = identityValue;
            int    nnz        = values.Length;

            for (int i = 0; i < nnz; ++i)
            {
                aggregator = processEntry(values[i], aggregator);
            }
            aggregator = processZeros(NumRows * NumColumns - nnz, aggregator);
            return(finalize(aggregator));
        }