# 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!

## Math.NET Numerics

### Categories

1. I have done it with the Series Jv(x) in Jahnke-Emde -Lösch:
Tables of higher Functions.
Calculation of a given value and plotted in Visual Studio with C#.
Important for FM-Modulation, Calculation....

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
2. When working with Deep NNs, there are a lot of "Z = WX + b" operations going on, where matrix WX has the same number of rows as matrix b. But, matrix b is a single column matrix, so we can't just the built in add operations. With broadcasting, matrix b will be treated like a matrix with the same number of columns as WX, but where each column is identical.

Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
3. 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 =&gt; .... );
return f;
``````

}

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
4. If someone does one of the inplace Methods, normally this object will be used immediately.

Therefore it makes sense (and is the common way) to return the inplace modified object.

public void MapInplace(Func<T, T> f, Zeros zeros = Zeros.AllowSkip);

a

public Matrix<T> MapInplace(Func<T, T> f, Zeros zeros = Zeros.AllowSkip);

would be good. Also for Vector, and all other inplace methods.

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
5. Support Weighted and EMA (Exponential Moving Average) in addition to existing simple moving average in MathNet.Numerics.Statistics

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
6. convert laplace space functions to time domain and viceversa

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
7. if it is possible, an extension method ".ToMatrix()" would be also helpful

thank you~

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
8. 1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
9. I'm new to math.net, but I've found some issues with the libraries.

One of these is related to sparsematrix and sparsecompressedrowstorage

I've also wrote a post within the discussion forum, but I've recieved no response.

The problem is simple: I've tried desperately to find a way to assign directly the sparse matrix in CRS format, but I've failed.
It seems that the CSR must be constructed starting from an already existing matrix. This would imply a big performace issue and memory allocation problems.
For istance, if one want to write a program to solve some physical problem with finite element…

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
10. 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
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
11. Support multidimensional array and tensors with higher than 2D (i.e. Matrix). This would open Math.Net to more users who need this functionality daily.

Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
12. This should allow functionality similar to MATLAB:
Suppose that A is the following matrix

A = [ 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] += some3by2matrix;

The same…

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
13. 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

Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
14. Otherwise known as low discrepancy sequences:
https://en.m.wikipedia.org/wiki/Low-discrepancy_sequence

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
15. Where's the namespace for geometric problems?

Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
16. https://en.wikipedia.org/wiki/Studentizedrangedistribution

This distribution is used in the Tukey test for post hoc analysis of an ANOVA test.

Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
17. 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.

Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
18. I wanted to find extrema for a spline and had to implement it by myself, using the CubicSpline.cs of MathNet.Numerics. Unfortunately the Class is constructes thus, that I could not access the spline parameters which would have allowed my to simply write an extension method.

I propose the following addition to the class "CubicSpline":

public enum eExtremePointType

``````{
Minimum, Maximum
}
``````

public class cExtremePointResult

``````{
public eExtremePointType Type { get; private set; }
public double x { get; private set; }
``````

public double y [get;private set;}

``````    public cExtremePointResult(double in_x, double in_y, eExtremePointType in_type)
{
``````

x=inx;
y=in
y;
Type=in_type;

``````    }
``````
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
19. A function that can evaluate a square matrix for eiganvalues and eiganvectors similar to MATLAB's eig() function.

1 vote
Vote
(thinking…) Signed in as (Sign out)
You have left! (?) (thinking…)
20. Implement a new class which is intended to provide syntax matched core MATLAB functionalities, such as flip(), linspace(), etc. I know linspace() and logspace() are already present with reordered inputs, but matching MATLAB syntax would prevent a lot of rewriting. Some of these could simply be wrappers for existing Math.NET functions, just so syntax matches.

Validation of this functionality would be such that inputs/outputs match the MATLAB implementation. Simple functions at the start, and more complex ones as time goes on. 