Example #1
0
        public static double FastCalc(double[] p, double x)
        {
            double result = 0;

            int length = p.Length;
            int pow2k  = 1;
            int i      = (int)x + 1;
            int n      = 1 + i;

            result += p[0];
            if (length >= 2)
            {
                result += p[1] * x;
            }

            for (int k = 0; n < length; k++)
            {
                if (pow2k * x < i && pow2k * x + 1 > i)
                {
                    result += p[n] * MixHaar.MixedHaar1(k, i)(x);
                }
                else
                {
                    break;
                }

                pow2k *= 2;
                i      = (int)(pow2k * x) + 1;
                n      = pow2k + i;
            }

            return(result);
        }
Example #2
0
        public static double Calc(double[] p, double x)
        {
            double result = 0;

            int length = p.Length;

            for (int n = 0; n < length; n++)
            {
                result += p[n] * MixHaar.MixedHaar(1, n + 1)(x);
            }

            return(result);
        }