#simplex #topology

no-std smplx

smplx focuses on the simplex and its applications in mathematics, topology, and other fields

2 releases

Uses new Rust 2024

0.0.1 Feb 23, 2025
0.0.0 Aug 24, 2024

#24 in #topology

Download history 1/week @ 2024-12-04 2/week @ 2024-12-11 1/week @ 2025-02-05 129/week @ 2025-02-19 28/week @ 2025-02-26

158 downloads per month

Apache-2.0

24KB
403 lines

smplx

crates.io docs.rs license

clippy rust


The library is currently in the early stages of development and is not yet ready for production use.

Welcome to smplx, a topologically oriented crate focused on simplexes and their complexes.

Features

  • Simplex

Background

A simplex describes the smallest (and simplest) polytope in any dimension. More specifically, $n$-simplex $\Delta^n$ is defined to be the $n$-dimensional polytope formed from the convex hull $C$ of its $n+1$ verices where the vertices are affinely independent points $u_0, u_1, \ldots, u_n \in \mathbb{R}^n$.

$C = \biggl{ \sum_{i=0}^{k} \lambda_i v_i : \lambda_i\geq{0} \text{ for all } j \text{ and }\sum_{i=0}^{k} \lambda_i = 1 \biggr}$

Getting Started

Building from the source

Start by cloning the repository

git clone https://github.com/FL03/smplx.git
cd smplx

Build the workspace

cargo build --all-features -r --workspace

Run an exmple

cargo run -p smplx --example {basic|complex|...|etc.}

Usage

Add this to your Cargo.toml:

[dependencies.smplx]
features = ["full"]
version = "0.0.1"

Examples

Simplex

    extern crate smplx;

    use smplx::Simplex;

    fn main() -> Result<(), Box<dyn std::error::Error>> {
        tracing_subscriber::fmt::init();
        tracing::info!("Welcome to smplx!");

        let simplex = Simplex::new().dim(2).with_vertices([0, 1, 2]).build()?;

        Ok(())
    }

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Dependencies

~71MB
~896K SLoC