77 results found
-
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 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 -
implement a machine learning library
For modern datascience we need machine learning. Hence for .NET a modern machine learning library would be very welcome, especially one with a good F# interface. It should contain the most used standard algorithms & models like
- clustering: k-means, spectral clustering, kernel k-means, gaussian mixture, ...
- classification & regression: (regularized) generalized linear models , neural networks (classic & deep learning), kernel models (SVM, kernel logistic regression,...), probabilistic (max likelihood) & Bayesian methods/graphical models/gaussian processes, decision trees & random forests,...
- ensemble methods (bagging, boosting,...)
- dim reduction (SVD, kernel SVD, manifold learning, sparse representations (L1 regularization),...)
- probabilistic programming (cf. infer.NET) ?
- ...
…
60 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 sub-matrix to copy from.This would enable us to set a larger number of entries at the same time.
1 vote -
4 votes
-
4 votes
-
12 votes
-
Performance increase using structs instead of classes?
Hi,
First, congratulations for this ongoing work! I came to Math.Net after attempting to create my own libraries, so here is an idea which my be of a help.The idea would be to use Structs to define matrices instead of Classes to improve performance.
As mentioned above, I did a check with a homemade matrix class and another one being a matrix struct, and for matrices up to 5000X5000 structs are circa 10 times faster for matrix multiplication.
I compared Math.Net with MKL against matlab and it appears to be circa 2 times slower for such matrix sizes. This…
21 votes -
1 vote
-
PCG Random support
Implement support for the PCG random routine as specified here:
PCG, A Family of Better Random Number Generators
http://www.pcg-random.org/6 votes -
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 -
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 -
Implement 2D FFT
Extend the FFT class to allow for 2d array. Use MKL to accelerate this.
11 votes -
Fix a dimensionality bug in the SparseMatrix solve method
I am using the solve method on a DenseMatrix and two vectors. When I try to use the same method but with a SparseMatrix, I get a dimensionality error saying that all vectors must be the same dimensions.
I believe the method asserts that the input vector is of the same length as the matrix's number of columns, and probably should check against the matrix's number of rows.
2 votes -
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 -
Introduce support for homogeneous coordinates
The usage of homogeneous coordinates is quite natural.in drawing software, so support for vector manipulations using homogeneous coordinates would be intersting.
4 votes -
Implement the Gumbel ContinuousDistribution
Implement the Gumbel ContinuousDistribution
2 votes -
Matrix multiply-add, like DGEMM
BLAS has something like DGEMM which does X = aAB + b*X in one loop. This can be very fast, so allowing direct use of this would be handy.
3 votes -
add a distributed multidimensional array type (or at least matrix)
Languages like Fortran 2008, Julia & Spark framework have a distributed array type. This allows to describe distributed algorithms in a natural way close to the underlying mathematics instead in a convoluted way (map reduce like Hadoop). I'd like to have the same in .NET.
3 votes -
10 votes
- Don't see your idea?