def eval(*pars)
		raise ArgumentError("wrong number of points") if pars.size != @dim
# 			p vals
		pars = GSL::Vector.alloc(pars)
		return @npoints.times.inject(0.0) do |sum, i|
# 			sum + function(radius(vals, @gridpoints.row(i)))*@weights[i]
			sum + function(pars, @gridpoints.row(i))*@weights[i]
		end
	end
def eval(*pars)
		raise ArgumentError("wrong number of points") if pars.size != @dim
# 			p vals
		pars = GSL::Vector.alloc(pars)
		return @npoints.times.inject(0.0) do |sum, i|
# 			sum + function(radius(vals, @gridpoints.row(i)))*@weights[i]
			sum + function(pars, @gridpoints.row(i))*@weights[i]
		end
	end
Return the interpolated value for the given parameters.