Exemple #1
0
        protected virtual double GetLength(int index, double tInSegment0, double tInSegment1)
        {
            Contract.Assert(tInSegment0 <= tInSegment1);

            RombergIntegrator iintegral = new RombergIntegrator();

            return(iintegral.integrate(IntegralMaxEval, new DelegateUnivariateFunction(t => this.GetSpeed(index, t)), tInSegment0, tInSegment1));
        }
Exemple #2
0
        public virtual double GetLength(double t0, double t1)
        {
            Contract.Assert(t0 <= t1);

            if (t0 < this.TMin)
            {
                t0 = this.TMin;
            }

            if (t1 > this.TMax)
            {
                t1 = this.TMax;
            }

            RombergIntegrator iintegral = new RombergIntegrator();

            return(iintegral.integrate(IntegralMaxEval, new DelegateUnivariateFunction(this.GetSpeed), t0, t1));
        }
Exemple #3
0
        public static double Integrate(Func <double, double> f, double t0, double t1, Type type, int maxEval)
        {
            UnivariateIntegrator iintegral;

            switch (type)
            {
            case Type.RombergIntegrator:
            {
                iintegral = new RombergIntegrator();
                break;
            }

            default:
            {
                throw new IndexOutOfRangeException();
            }
            }
            double v = iintegral.Integrate(maxEval, new DelegateUnivariateFunction(f), t0, t1);

            return(v);
        }