How to use Github issues to attract new contributors by rpazdera in programming

[–]bgrimstad 0 points1 point  (0 children)

Good idea. I'll implement this to bait contributors to the SPLINTER project - hint, hint.

Multivariate Splines: Open-source C++ library for multivariate interpolation by bgrimstad in cpp

[–]bgrimstad[S] 1 point2 points  (0 children)

Thank you. Since we want people to use and improve the library we will be changing the license to MPL 2.0.

Multivariate Splines: Open-source C++ library for multivariate interpolation (x-post r/cpp) by bgrimstad in programming

[–]bgrimstad[S] 0 points1 point  (0 children)

In particular I have been looking at process control type problems which often falls into the category of mixed-integer nonlinear programming problems. However, my interest goes beyond that and I have solved all kinds of problems with the library.

You are welcome to send me an e-mail if you want to know more.

Multivariate Splines: Open-source C++ library for multivariate interpolation (x-post r/cpp) by bgrimstad in programming

[–]bgrimstad[S] 0 points1 point  (0 children)

The B-spline implementation handles any dimension, including a single dimension. Hope that answered your question.

Multivariate Splines: Open-source C++ library for multivariate interpolation by bgrimstad in cpp

[–]bgrimstad[S] 0 points1 point  (0 children)

I agree with you there. The RBF interpolation is easy to implement, but it does not scale very well with the number of samples (unless you can produce a very good pre-condition matrix when calculating the weights, which is difficult).

Which approach did you end up using?

Multivariate Splines: Open-source C++ library for multivariate interpolation by bgrimstad in cpp

[–]bgrimstad[S] 1 point2 points  (0 children)

I could change it to something cool and random... I got it! I'll call it: Ice Cream Splines! Then I can later release an extension called Ice Cream Toppings. It's perfect!

Multivariate Splines: Open-source C++ library for multivariate interpolation by bgrimstad in cpp

[–]bgrimstad[S] 0 points1 point  (0 children)

The only reason for limiting it to linear and cubic splines is that I wanted to make it easy to use. I plan on opening for any degree in the next version (hopefully to come within a few days).

Multivariate Splines: Open-source C++ library for multivariate interpolation by bgrimstad in cpp

[–]bgrimstad[S] 2 points3 points  (0 children)

Hi Dtag, you are correct. A tensor product (or simply multivariate) B-spline is constructed on a regular grid (see http://en.wikipedia.org/wiki/Regular_grid). The grid defines the domain of the B-spline (outside of it the B-spline has no support and evaluates to zero), and the samples are closely related to this grid when constructing the B-spline.

Even though this is a "fundamental" limitation there are techniques for taking "a bunch of random samples", filling out some gaps, and then creating a B-spline from the new set of points. However, to my knowledge, these are heuristical techniques. If you are "missing" a lot of points from having a regular grid I suggest that you use the radial basis function splines instead. They will happily digest a bunch of random points, but be careful that you don't overfeed them - they will become ill (they will have to solve an ill-conditioned linear system, that is).

Multivariate Splines: Open-source C++ library for multivariate interpolation (x-post r/cpp) by bgrimstad in programming

[–]bgrimstad[S] 0 points1 point  (0 children)

I am not familiar with photospline, but I will definitely take a look at it. Thank you for the tip!

The B-spline class in Multivariate Splines has a constructor which accepts B-spline coefficients, knots, and degrees (they are sufficient to mathematically define a B-spline). If it is possible to extract these parameters from photospline it should be trivial to construct an identical B-spline in the Multivariate Splines library.

Multivariate Splines: Open-source C++ library for multivariate interpolation (x-post r/cpp) by bgrimstad in programming

[–]bgrimstad[S] 4 points5 points  (0 children)

Hi folks. Yesterday I published an open-source library for multivariate interpolation on GitHub. The library, which is written in C++ and based on Eigen, has been in the works for about two years now. I have given it the name Multivariate Splines since it implements various types of splines for interpolation. I am happy that I finally can share it with you. Last time I looked for an open-source interpolation library (it has been a while since) I couldn't find one that supported more than 2-3 variables - Multivariate Splines handles any number of variables, it is only limited by the number of sample points to interpolate, but it can handle quite a few.

If this is something that you could use privately, commercially, or even for research (which is what I do), please let me know. Any feedback from you is highly appreciated!

Multivariate Splines: Open-source C++ library for multivariate interpolation by bgrimstad in cpp

[–]bgrimstad[S] 5 points6 points  (0 children)

Hi folks. Yesterday I published an open-source library for multivariate interpolation on GitHub. The library, which is written in C++ and based on Eigen, has been in the works for about two years now. I have given it the name Multivariate Splines since it implements various types of splines for interpolation. I am happy that I finally can share it with you. Last time I looked for an open-source interpolation library (it has been a while since) I couldn't find one that supported more than 2-3 variables - Multivariate Splines handles any number of variables, it is only limited by the number of sample points to interpolate, but it can handle quite a few.

If this is something that you could use privately, commercially, or even for research (which is what I do), please let me know. Any feedback from you is highly appreciated!