예제 #1
0
        gsl_integration_qagiu(Func <double, double> f,
                              double a,
                              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 iu_params
            {
                a = a,
                f = f
            };

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

            Func <double, double> f_transform = delegate(double t)
            { return(iu_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);
        }
예제 #2
0
        iu_transform(double t, iu_params p)
        {
            double a = p.a;
            Func <double, double> f = p.f;
            double x = a + (1 - t) / t;
            double y = f(x);

            return((y / t) / t);
        }
예제 #3
0
		iu_transform(double t, iu_params p)
		{
			double a = p.a;
			Func<double, double> f = p.f;
			double x = a + (1 - t) / t;
			double y = f(x);
			return (y / t) / t;
		}
예제 #4
0
		gsl_integration_qagiu(Func<double, double> f,
													 double a,
													 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;
			iu_params transform_params = new iu_params();
			transform_params.a = a;
			transform_params.f = f;

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

			Func<double, double> f_transform = delegate(double t) { return iu_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;
		}