Exemple #1
0
        gsl_integration_qagil(Func <double, double> f,
                              double b,
                              double epsabs, double epsrel, int limit,
                              gsl_integration_workspace workspace,
                              out double result, out double abserr, gsl_integration_rule q, bool bDebug)
        {
            //int status;

            // gsl_function f_transform;
            var transform_params = new il_params
            {
                b = b,
                f = f
            };

            //  f_transform.function = &il_transform;
            //  f_transform.params = &transform_params;

            Func <double, double> f_transform = delegate(double t)
            { return(il_transform(t, transform_params)); };

            GSL_ERROR status = qags(f_transform, 0.0, 1.0,
                                    epsabs, epsrel, limit,
                                    workspace,
                                    out result, out abserr,
                                    q, bDebug);

            return(status);
        }
Exemple #2
0
        il_transform(double t, il_params p)
        {
            //struct il_params *p = (struct il_params *) params;
            double b = p.b;
            Func <double, double> f = p.f;
            double x = b - (1 - t) / t;
            double y = f(x);

            return((y / t) / t);
        }