mumps-src 0.1.0+5.6.2

Build Mumps as a crate.
docs.rs failed to build mumps-src-0.1.0+5.6.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Mumps-src

Package Documentation License

Mumps-src crate is a *-src crate. This links Mumps libraries to executable build by cargo, but does not provide Rust bindings.

By this package, you don't need to worry about installing Mumps in the system, and it's a package for all platforms(linux).

Mumps (MUltifrontal Massively Parallel sparse direct Solver) is is a package for solving systems of linear equations of the form Ax = b, where A is a square sparse matrix that can be either unsymmetric, symmetric positive definite, or general symmetric, on distributed memory computers.

attention: Only sequential version is supported now. And Metis is not supported now.

Usage

  1. Add the following to your Cargo.toml:

    [dependencies]
    mumps-src = "0.1"
    
  2. Add the following to your lib.rs:

    extern crate mumps_src;
    

This package does not provide bindings.

Configure

The following Cargo features are supported:

  • default to openblas-static feature and d_arith feature;
  • openblas-system to link to Openblas system library;
  • openblas-static to link to Openblas statically;
  • intel-mkl-system to link to intel-mkl system library;
  • intel-mkl-static to link to intel-mkl statically;

There's 4 kinds of precision for mumps:

  • s_arith single, real, precision;
  • d_arith double, real, precision;
  • c_arith single, complex, precision;
  • z_arith double, complex, precision;

Cross Compilation

Because [openblas-src]'s Issue #101, we can't cross compile the package with openblas-static feature. So, if you want to cross compile the package, you could use mike-kfed instead.

Add this to your project/.cargo/config.toml.

[patch.crates-io]
openblas-src = { git = "https://github.com/mike-kfed/openblas-src.git", branch = "arm-cross-compile" }

you can compile it for the other target by providing the --target option to cargo build.

Target supported
arm-unknown-linux-gnueabi
arm-unknown-linux-gnueabihf
armv7-linux-androideabi
armv7-unknown-linux-gnueabi
armv7-unknown-linux-gnueabihf
armv7-unknown-linux-musleabi
armv7-unknown-linux-musleabihf
riscv64gc-unknown-linux-gnu
x86_64-unknown-linux-gnu

Contribution

Your contribution is highly appreciated. Do not hesitate to open an issue or a pull request. Note that any contribution submitted for inclusion in the project will be licensed according to the terms given in LICENSE.