24#ifndef quantlib_kernel_interpolation2D_hpp
25#define quantlib_kernel_interpolation2D_hpp
55 template <
class I1,
class I2,
class M,
class Kernel>
71 "Z value matrix has wrong number of rows");
73 "Z value matrix has wrong number of columns");
135 Size rowCnt=0,colCnt=0;
168 for (
Real i : diffVec) {
200 template <
class I1,
class I2,
class M,
class Kernel>
202 const I2& yBegin,
const I2& yEnd,
204 const Kernel& kernel) {
206 impl_ = ext::shared_ptr<Interpolation2D::Impl>(
new
1-D array used in linear algebra.
Size size() const
dimension of the array
basic template implementation
const Matrix & zData() const override
templateImpl(const I1 &xBegin, const I1 &xEnd, const I2 &yBegin, const I2 &yEnd, const M &zData)
base class for 2-D interpolations.
const Matrix & zData() const
ext::shared_ptr< Impl > impl_
KernelInterpolation2D(const I1 &xBegin, const I1 &xEnd, const I2 &yBegin, const I2 &yEnd, const M &zData, const Kernel &kernel)
Matrix used in linear algebra.
Real kernelAbs(const Array &X, const Array &Y) const
void setInverseResultPrecision(Real invPrec)
Real value(Real x1, Real x2) const override
Real gammaFunc(const Array &X) const
void calculate() override
KernelInterpolation2DImpl(const I1 &xBegin, const I1 &xEnd, const I2 &yBegin, const I2 &yEnd, const M &zData, Kernel kernel)
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
std::size_t Size
size of a container
abstract base classes for 2-D interpolations
Array qrSolve(const Matrix &a, const Array &b, bool pivot, const Array &d)
QR Solve.
Array Abs(const Array &v)
Real Norm2(const Array &v)