예제 #1
0
        public PolyFunc <TC, TP> Multiply(TP t2)
        {
            Vector <TC> ans = new Vector <TC>(coeffs.Dimension);

            for (int i = 0; i < coeffs.Dimension; i++)
            {
                ans[i] = VectorScalar <TC, TP> .ScalarRight(coeffs[i], t2);
            }

            return(new PolyFunc <TC, TP>(ans));
        }
예제 #2
0
        public TC Evaluate(TP t)
        {
            TC sum = default(TC);

            if (coeffs.Dimension == 0)
            {
                return(sum);
            }
            for (int i = coeffs.Dimension - 1; i > 0; i--)
            {
#if (USING_EXPRESSIONS)
                sum = VectorScalar <TC, TP> .ScalarRight(Operations <TC> .Add(sum, coeffs[i]), t);
#else
                sum = (dynamic)t * ((dynamic)sum + coeffs[i]);
#endif
            }
#if (USING_EXPRESSIONS)
            sum = Operations <TC> .Add(sum, coeffs[0]);
#else
            sum += (dynamic)coeffs[0];
#endif
            return(sum);
        }