#graph #sparse-matrix #order #matrix #mesh #partitioning

sys scotch-sys

Raw FFI to Scotch, the graph partitioner, graph clusterer and sparse matrix orderer

3 unstable releases

0.2.1 Jun 9, 2023
0.2.0 Jun 9, 2023
0.1.1 Jul 2, 2021
0.1.0 Jul 2, 2021

#2014 in Math


Used in scotch

MIT/Apache

40KB
1.5K SLoC

scotch-rs

Idiomatic bindings to the Scotch partitioner.

Building

Prerequisites:

  • Scotch
  • clang v5.0 or above
  • Rust v1.60.0 or above

Bindings to Scotch are made on the fly. If Scotch is installed in a non-standard location, please use the following commands:

export SCOTCHDIR=path/to/your/scotch/installation
export CPATH="$SCOTCHDIR/include"
export RUSTFLAGS="-L$SCOTCHDIR/lib"

The environment variable $SCOTCHDIR must point to a directory containing a lib/ and a include/ directory containing the shared libraries and the headers of Scotch, respectively.

Once these variables are set, you can build the bindings with cargo build.

Build the documentation

If your Scotch installation lies in a non-standard path, you will need to set the RUSTDOCFLAGS environment variable to build the documentation:

export RUSTDOCFLAGS="-L$SCOTCHDIR/lib"

Then you can call cargo doc --no-deps --open.

License

This program is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE-APACHE and LICENSE-MIT for details.

Scotch is licensed under the CeCILL-C license, for which can find a copy here: https://gitlab.inria.fr/scotch/scotch/-/raw/v6.1.0/doc/CeCILL-C_V1-en.txt

No runtime deps

~0–1.8MB
~36K SLoC