
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 
Implement an extension method ".ToVector()" for convert a IEnumberable to a Vector
if it is possible, an extension method ".ToMatrix()" would be also helpful
thank you~
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 
Common Interface for Vector and Matrix
A common (gemeinsames) Interface for Vector and Matrix would be fine.
This would make it easier to implement common methods be using Generics.
Like:
T mapInplace<T>(T t) where T : IMatrix {
t.MapInplace(f => .... );
return f;
}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 
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 
Eiganvalues and Eiganvectors
A function that can evaluate a square matrix for eiganvalues and eiganvectors similar to MATLAB's eig() function.
1 vote 
Support Weighted and Exponential Moving Average
Support Weighted and EMA (Exponential Moving Average) in addition to existing simple moving average in MathNet.Numerics.Statistics
1 vote 
Vector Autoregression
I am a finance professional who is currently using python to run vector autogression. I would prefer to implement in a .NET stack.
The python library is called statstools and there is a similar package in R called VAR.
https://github.com/statsmodels/statsmodels/blob/master/docs/source/vector_ar.rst#id5
I am happy to get involved in adding this feature but may need support.
1 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…
0 votes 
0 votes
Not in mainline but in one of the forks – to be merged back into mainline once ready

Support Weighted and Exponential Moving Average
Support Weighted and EMA (Exponential Moving Average) in addition to existing simple moving average in MathNet.Numerics.Statistics
0 votes
 Don't see your idea?