Re: N-dimensional interpolation template library

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: N-dimensional interpolation template library

Romangitlin
 
     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
Reply | Threaded
Open this post in threaded view
|

RE: Re: N-dimensional interpolation template library

Toyin Akin

Hi,

I think this would be a great addition to quantlib.

Any chance of sending me a copy of the library (source code) with some test
code so that I can play with it a bit?

This should be great, for example, for the extrapolation of volatility data
from a 2D grid (maturity/strike) or (maturity/underlying length).

Toy out.


>From: [hidden email]
>To: [hidden email]
>Subject: [Quantlib-dev] Re: N-dimensional interpolation template library
>Date: Thu, 16 Mar 2006 13:33:47 EST
>
>
>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
>




Reply | Threaded
Open this post in threaded view
|

Re: Re: N-dimensional interpolation template library

Luigi Ballabio
On 03/17/2006 11:04:10 AM, Toyin Akin wrote:
> I think this would be a great addition to quantlib.

Likewise. But it might be of interest to more people than just quants.
Did you consider submitting it to Boost?

Later,
        Luigi

----------------------------------------

Ogden's Law:
         The sooner you fall behind, the more time you have to catch up.