|
From: <Rom...@ao...> - 2006-03-16 18:34:06
|
Hi everyone
Since I wrote an N-dimensional cubic spline class back in 2003, I have
developed a framework for N-dimensional algoriths that allows incorporation of a
widely divergent set of 1-dimensional algorithms.into it. For example within
the library I have developed so far such entirely diffferent algoriths as
quintic_hermite interpolation and rational polinomial interpolation can be
chosen by the user to interpolate the same set of tabulated data. ...
Tthis programatic framework is implemented as a template class
instantiated using 1-dimensional algorithms along with number of dimensions as its
template parameters. The library features a uniform user friendly interface.
Thus the user, instead of going through the tedium of plugging the same set of
data into different algorithms for can choose and run any algorithm
implemented within the framework by choosing between a few typedefs. The choice of
an algorithb becomes a matte of a few clics of the mouth.
Among the algorithsI have implemented so far within this framework are
the following:
multi-linear interpolation, natural cubic spline interpolation; clamped
cubic spline interpolation, monotonicity preserving clamped cubic spline
interpolation, polinomial interpolation, rational polinomial interpolation,
cubic-hermite and quintic-hermite spline.
Also, since quintic-hermite spline implementation takes cubic spline as
its template parameter that means that the user have a choice of 3 flavors of
quintic-hermite spline.
Besides , every algorithm that uses second detivatives is implemented
in two ways: one that calculates second derivatives globally when memory is
not an issue, and locally when memory is at premium.
Though it may sound counterintuitive, this united approach to
implementation of different algorithms within united framework, besides being user
friendly, also made each of the library's implementations more efficient.
For example N-dimensional cubic spline as implemented within this
framework runs few times faster than the one currewntly implemented in the Quantlib
library, and on top of that the library as a whole and this the library's
cubic spline implementation's in particular features vastly improved memory
management.
I hope this library can be incorporated into the Quntlib.
Any feedback is welcome..
Roman Gitlin
|