Crate oat_rust

Crate oat_rust 

Source
Expand description

§Open Applied Topology

Open Applied Topology (OAT) is software for fast, user-friendly algebra and topology.

§Welcome!

Welcome! This is the the documentation homepage for OAT-Rust, which is the Rust component of the Open Applied Topology (OAT) package. For Python tools, check out oat_python, and for a project overview, check out the OAT homepage. OAT-Rust is registered as oat_rust on Crates.io. It provides powerful tools for applied topology, including

§Community

OAT is by and for the open source community. Reach out to the developers if you

  • Need help getting started
  • Wish for a missing feature
  • Want to try coding

A collaboration of 20 research centers at colleges, universities, private, and public organizations support OAT’s development. The founding developers are Princton University, Macalester College, and the University of Delaware The National Science Foundation granted seed funding for OAT in 2019 under the ExHACT project, and Pacific Northwest National Laboratory (PNNL) provides continuing financial support. PNNL now coordinates development. See here for further details.

§Values

Our shared values are

  • Inclusion
  • Respect, and
  • Expanding human knowledge through algebraic topology

§Mission

Performance

OAT is a first-class solver for cutting-edge applications. It is ideally suited to large, sparse data sets. The core library is written in Rust, a low-level systems programming language designed for safety and performance. High-level wrappers are available in Python.

Reliability

OAT has more unit tests than type definitions and function definitions, combined. Its modular design enables end users to write their own checks for correctness, with ease. The library inherits strong safety guarantees from the the Rust compiler.

Transparency

OAT documentation emphasizes clarity and accessibility for users with all backgrounds. It includes more than 180 working examples, and describes both code and underlying mathematical concepts in detail. Tutorials illustrate how to combine multiple tools into larger applications. The platform’s modular design breaks large solvers into basic components, which it exposes to the user for inspection. In addition, the library provides powerful methods to inspect and analyze objects, consistent with the way humans naturally think about problems; for example, you can look up rows and columns of boundary matrices using cubes, simplices, or cells as keys.

Modularity

OAT reduces complex problems to the same basic building blocks that topologists use when writing on a chalk board. Users can mix and match those blocks with confidence, using a simple, streamlined interface. They can even create new components that work seemlessly with the rest of the library, including coefficient rings, sparse matrix data structures, and customized filtrations on simplicial complexes.

§Get Started

Try the tutorials

Find answers in the documentation

Rust documentation places lists (of objects, functions, etc.) in two places: either the bottom of a page, or in the menu bar on the left. You can also use the search bar at the top to pull up a list of related terms. The question mark button to the right of the bar gives other helpful tips (for example, you can search for functions based on their type signature).

Modules§

algebra
Rings, vectors, matrices, chain complexes, etc.
topology
Simplicial complexes, cubical complexes, etc.
tutorials
For beginners through advanced users
utilities
Miscellaneous objects, traits, and functions.