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!

  1. 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 (Gauss-Seidel, CG, biCG).

    Some reference, including source code, can be found in Press et al.: "Numerical Recipes, 3rd edition".

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Add an FFTSHIFT and iFFTSHIFT on a matrix similar to MATLAB

    Add an FFTSHIFT and iFFTSHIFT on a matrix similar to MATLAB

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. Add a Fixed-Point Numeric Type

    A fixed-point numeric type is essential for deterministic calculations with fractional parts. This is essential for running accurate simulations across different machines with various CPUs, OSes, because the IEEE standard for floating-point math doesn't guarantee reproducibility across machines (http://stackoverflow.com/a/328651/154766).

    Authors of real-time strategy games in .NET have typically come up with their own fixed-point math class or found some work-around. There is no fixed-point type in the BCL even though the documentation for System.Decimal at some point labeled it so, erroneously.

    6 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Optimized DenseLU solve

    /// <summary>
    /// Solves A*X=B for X using LU factorization.
    /// </summary>
    /// <param name="columnsOfB">The number of columns of B.</param>
    /// <param name="a">The square matrix A.</param>
    /// <param name="order">The order of the square matrix <paramref name="a"/>.</param>
    /// <param name="b">On entry the B matrix; on exit the X matrix.</param>
    /// <remarks>This is equivalent to the GETRF and GETRS LAPACK routines.</remarks>
    public static unsafe void LUSolveUnsafe(int columnsOfB, double[] aIn, int order, double[] bIn)
    {
    #region Initialize
    if (aIn == null)
    throw new ArgumentNullException("a");
    if (bIn == null)
    throw new ArgumentNullException("b");

    int i;
    int j;
    int k;

    double* a = stackalloc double[aIn.Length];
    double*…

    6 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  5. 3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    We do some computations in parallel, however, in practice parallel execution is often not very efficient (other than e.g. concurrent execution at application level). However, we should review places where parallelization would be interesting for v3

  6. 0 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  7. Add support for cuda

    Is this possible to split the matrix multiplication algorithms to use processor and gpgpu all at the same time?

    It would be an amazing feature to be added.

    19 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  8. 11 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  9. 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
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. 3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. 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
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. Add primality test

    Add a fast primality test, for example based on Miller-Rabin or similar efficient method.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. 62 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. Add Rotation Matrix and Vector classes for 2D, 3D and generic sized spaces

    2D and 3D calculations could benefit from optimized functions for Rotation Matrices, 2D and 3D vectors, Solving for Transformation or Rotation Matrices, using Quaternions, and more.

    45 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  15. Add stochastic processes

    Almost all modern financial analysis are built around stochastic processes. There are many processes, some general like time series and some more specific. It would be very useful for people working in the finance field.

    20 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. 30 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  17. 6 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  18. 1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    planned  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. 6 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. AddSubMatrix

    For FEM analysis the AddMatrix method is very useful. In opposite to SetMatrix this method summarize elements.

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Math.NET Numerics

Feedback and Knowledge Base