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!

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 
Quasi Random Number Generation
Otherwise known as low discrepancy sequences:
https://en.m.wikipedia.org/wiki/Lowdiscrepancy_sequence1 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 
Levinson Decomposition
Levinnson Decomposition (both symmetric and non symmetric) was available in dnAnalytics 0.2 and are highly popular in signal processing. (via alibeirami)
1 vote 
Add Matrix indexing using int arrays for row and columns indices to give sub matrix
Allow the following A[row, cols] where each of rows and cols are int arrays.
1 vote 
Histogram should allow custom bucket definition
The existing constructors of the Histogram function allow for a defined number of buckets or a defined number of buckets with a lower and upper bound. It is also useful to specifically define the buckets. For example, I need to do a histogram of a double[] array in increments of 0.5.
1 vote 
Add the "Periodic" to "SplineBoundaryCondition" on MathNet.Numerics.Interpolation
Currently, the condition Natural/ParaboricallyTerminated/FirstDerivative/SecondDerivative are on "SplineBoundaryCondition", but I'd like to add Periodic on it(I guess this is equivalent to "csape" on MATLAB).
1 vote
 Don't see your idea?