Math.NET Numerics
Welcome to our official feedback forum. Do you have an idea? Do you recognize a good idea when you see one? We want to hear from you!

34 votes

Implement MATLAB's pchip interpolation algorithm
Piecewise Cubic Hermite Interpolating Polynomial
30 votes 
Add support for surface interpolation (2D, mesh)
Extend the interpolation methods to support 2D surface interpolation, i.e. on a mesh. See http://community.opensourcedotnet.info/forums/t/565.aspx
37 votes 
Add Rotation Matrix and Vector classes for 2D, 3D and generic sized spaces
2D and 3D calculations could benefit from optimized functions for Rotation Matrices, 2D and 3D vectors, Solving for Transformation or Rotation Matrices, using Quaternions, and more.
33 votes 
Add stochastic processes
Almost all modern financial analysis are built around stochastic processes. There are many processes, some general like time series and some more specific. It would be very useful for people working in the finance field.
20 votes 
Add row echelon and reduced row echelon form computation
Computing reduced row echelon and row echelon form of a Matrix could be used with Gaussian and GaussJordan elimination techniques.
31 votes 
5 votes

Solve a system of nonlinear equations
aka fsolve of matlab
27 votes 
Histogram constructor with buckets. Data is applied to the buckets.
I need to create a histogram with buckets from another histogram and expect my data to be counted relative to those buckets.
2 votes 
Add interchange/swap function to Matrix class
Add interchange/swap function to Matrix class which would allow swapping two rows or columns in the matrix (i.e. m.swapRows(2,3)).
2 votes 
VSLab
I think this is a great project. I am suggesting your library for VSLab (http://www.codeplex.com/vslab). I think that an F# wrapper would be great. Are you interested in contribute with your math library in creating a Matlab like environment? Have a look to the project!
19 votes 
Investigate Mono.Simd
The upcoming Mono.Simd assembly is nearing release. Using these functions in certain areas could give massive performance gains.
28 votes 
2 votes
We do some computations in parallel, however, in practice parallel execution is often not very efficient (other than e.g. concurrent execution at application level). However, we should review places where parallelization would be interesting for v3

Optimized DenseLU solve
/// <summary>
/// Solves A*X=B for X using LU factorization.
/// </summary>
/// <param name="columnsOfB">The number of columns of B.</param>
/// <param name="a">The square matrix A.</param>
/// <param name="order">The order of the square matrix <paramref name="a"/>.</param>
/// <param name="b">On entry the B matrix; on exit the X matrix.</param>
/// <remarks>This is equivalent to the GETRF and GETRS LAPACK routines.</remarks>
public static unsafe void LUSolveUnsafe(int columnsOfB, double[] aIn, int order, double[] bIn)
{
#region Initialize
if (aIn == null)
throw new ArgumentNullException("a");
if (bIn == null)
throw new ArgumentNullException("b");int i;
int j;
int k;double* a = stackalloc double[aIn.Length];
double*…6 votes
 Don't see your idea?