GSL::Interp.new(T, n)GSL::Interp.alloc(T, n)GSL::Interp.alloc(T, x, y)GSL::Interp.alloc(x, y)These methods create an interpolation object of type T for n data-points.
The library provides six types, which are specifiled by an identifier of a constant or a string:
Interp::LINEAR or "linear"
Linear interpolation. This interpolation method does not require any additional memory.
Interp::POLYNOMIAL or "polynomial"
Polynomial interpolation. This method should only be used for interpolating small numbers of points because polynomial interpolation introduces large oscillations, even for well-behaved datasets. The number of terms in the interpolating polynomial is equal to the number of points.
Interp::CSPLINE or "cspline"
Cubic spline with natural boundary conditions.
Interp::CSPLINE_PERIODIC or "gsl_cspline_periodic" or "cspline_periodic"
Cubic spline with periodic boundary conditions
Interp::AKIMA or "akima"
Non-rounded Akima spline with natural boundary conditions. This method uses the non-rounded corner algorithm of Wodicka.
Interp::AKIMA_PERIODIC or "akima_periodic"
Non-rounded Akima spline with periodic boundary conditions. This method uses the non-rounded corner algorithm of Wodicka.
ex: For cubic spline for 10 points,
sp = Interp.new("cspline", 10)GSL::Interp.bsearch(xa, x, index_lo, index_hi)xa[i] <= x < x[i+1]. The index is searched for in the range
[index_lo,index_hi].GSL::Interp#init(xa, ya)GSL::Interp) does not save the data
vectors xa, ya and only stores the static state computed from the data.
The xa vector is always assumed to be strictly ordered; the behavior
for other arrangements is not defined.GSL::Interp#nameGSL::Interp#min_sizeGSL::Interp#accelgsl_interp_accel object, but it is
hidden in Ruby/GSL. It is automatically allocated
when a GSL::Interp object is created, stored in it,
and destroyed when the Interp object
is cleaned by the Ruby GC.
This method is used to access to the Interp::Accel object
stored in self.GSL::Interp#find(xa, x)GSL::Interp#accel_find(xa, x)GSL::Interp::Accel#find(xa, x)i such that
xa[i] <= x < xa[i+1].GSL::Interp#eval(xa, ya, x)GSL::Interp#eval_e(xa, ya, x)Numeric, Vector, Matrix or an NArray.GSL::Interp#eval_deriv(xa, ya, x)GSL::Interp#eval_deriv_e(xa, ya, x)GSL::Interp#eval_deriv2(xa, ya, x)GSL::Interp#eval_deriv2_e(xa, ya, x)GSL::Interp#eval_integ(xa, ya, a, b)GSL::Interp#eval_integ_e(xa, ya, a, b)GSL::Spline.new(T, n)GSL::Spline.alloc(T, x, y)GSL::Spline.new(x, y, T)This creates a GSL::Spline object of type T for n
data-points. The type T is the same as GSL::Interp class.
These two are equivalent.
GSL::Spline.alloc and GSL::Spline#init
sp = GSL::Spline.alloc(T, n) sp.init(x, y) # x and y are vectors of length n
GSL::Spline.alloc with two vectors
sp = GSL::Spline.alloc(T, x, y)
If T is not given, "cspline" is used.
GSL::Spline#init(xa, ya)GSL::Spline object self for the data
(xa, ya) where xa and ya are Ruby arrays of equal sizes
or GSL::Vector.GSL::Spline#nameGSL::Spline#eval(x)This returns the interpolated value for a given point x.
The data x can be a Numeric, Vector, Matrix or an NArray.
NOTE: In a GSL-C program, a gsl_interp_accel object is required to use
the function gsl_spline_eval.
In Ruby/GSL, the gsl_interp_accel is hidden, it is automatically
allocated when a GSL::Spline object is created,
and also destroyed when the Spline object
is cleaned by the Ruby GC. The accel object can be accessed via the method
GSL::Spline#accel.
GSL::Spline#eval_deriv(x)GSL::Spline#eval_deriv2(x)GSL::Spline#eval_integ(a, b)GSL::Spline#find(xa, x)GSL::Spline#accel_find(xa, x)i such that
xa[i] <= x < xa[i+1].See also the GSL manual and the examples in samples/