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!

Implement the Gumbel ContinuousDistribution
Implement the Gumbel ContinuousDistribution
2 votes 
Provide extremal values for interpolated splines
Provide extremal points and values and thus also min/max for interpolated splines.
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 
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 
Matrix multiplyadd, like DGEMM
BLAS has something like DGEMM which does X = a*A*B + b*X in one loop. This can be very fast, so allowing direct use of this would be handy.
2 votes 
AddSubMatrix
For FEM analysis the AddMatrix method is very useful. In opposite to SetMatrix this method summarize elements.
2 votes 
Implement SetSubMatrix(int[] rowIndices, int[] columnIndices, Matrix<T> subMatrix)
Implement method:
Matrix<T>.SetSubMatrix(int[] rowIndices, int[] columnIndices, Matrix<T> subMatrix)
where
int[] rowIndices
The row indices to copy to.int[] columnIndices
The column indices to copy to.Matrix<T> subMatrix
The submatrix to copy from.This would enable us to set a larger number of entries at the same time.
1 vote 
Fix splines so that they can handle general lines
When adding the points of a circle ( Cos(t), sin(t) ) for t the values [0,6.28], I get complete garbage out.
It seems that the splines are unable to handle ambiguous values for y for a given x.
Splines should have a independent variable t, on which x and y depend. It seems this implementation has a t that somehow is coupled to x.
Interpolate should for example return a point, and the differentiate should return a vector for a given point.1 vote 
Quasi Random Number Generation
Otherwise known as low discrepancy sequences:
https://en.m.wikipedia.org/wiki/Lowdiscrepancy_sequence1 vote 
Dense and sparse matrix slicing based on input user defined indices
This should allow functionality similar to MATLAB:
Suppose that A is the following matrixA = [ 10 20 30 40 ;
11 21 31 41;
12 22 32 42;
13 23 33 43]and I = { 1, 2, 4 } and J = { 3, 4 }
A_IJ = A[I, J]
should return a slice of the matrix according to the indices specified:
A_IJ = [ 30 40;
31 41;
33 43 ]The same idea is very useful for arrays and it should work in both directions, for example:
A[I, J] += some_3by2_matrix;
The same for sparse…
1 vote 
To match and provide formulas for statistical and engineering capabilities as in Excel...
Can provide the calculation abilities of what excel inbuilt formula does as a part of framework This include formula related to statistical and engineering capabilities.
1 vote 
1 vote

1 vote

Collection.product
/// <summary>
/// Returns the cartesian product of the two collections <c>c1</c>
/// and <c>c2</c>.
/// </summary>
/// <param name="c1">Should not be null.</param>
/// <param name="c2">Should not be null.</param>
public static ICollection Product(ICollection c1, ICollection c2)
{
if(c1 == null)
{
throw new ArgumentNullException("c1", string.Format(Resources.ArgumentNull, "c1"));
}if(c2 == null)
{
throw new ArgumentNullException("c2", string.Format(Resources.ArgumentNull, "c2"));
}return null;
}1 vote 
estimate
I love the Estimate function on some of the distributions in the statistical namespace. Chould we try to expand it to be included in IDistribution or IContinuousDistribution and all distributions. I have the code for some more.
1 vote 
support infinite precision
I really love the infinite precision feature of Google's Android Calculator. If you enter a number like π, e, φ, √2, √3, √5, etc., you can scroll to the right to get an infinite number of digits.
Such calculations should be supported by Math.NET Numerics, where results can get queried to get more (decimal) digits. Something like an IEnumerable<DecimalDigit> interface.
1 vote 
1 vote

Add full multigrid solver (FMG) for boundary value problems, e.g. the Poisson equation.
Many simluation and some image processing tasks require solving differential equations, such as heat equation and linear elliptic equation (Poisson equation).
In case of 2D data (images), these become partial differential equations (PDEs).
These can be solved in linear time using multigrid preconditioner with some relaxation scheme (GaussSeidel, CG, biCG).
Some reference, including source code, can be found in Press et al.: "Numerical Recipes, 3rd edition".
1 vote 
Valuation of top eigenvalues/eigenvectors only
Hi,
CPU time to perform Matrix diagonalization scales like n^3 where n is the size of the matrix. In many applications, however, one needs to know the top eigenvalues/eigenvectors only.
MKL provides this: "LAPACKE_dsyevr" where one can select how many eigenvalues one wants to compute.
Would be great if this functionality was available in mathnet!1 vote 
Add trigonometrical functions for degrees
For most cases it can be overcome with multiplying pi/180 and using loops, but it would make code simpler. Coming from Octave/Matlab it is something I am used to have
1 vote
 Don't see your idea?