• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

examples/H03-May-2022-393343

src/H03-May-2022-4,4172,619

tests/H03-May-2022-236188

.cargo-checksum.jsonH A D03-May-202289 11

.cargo_vcs_info.jsonH A D02-Mar-202074 65

Cargo.lockH A D02-Mar-20209.6 KiB381338

Cargo.tomlH A D02-Mar-20201.3 KiB5446

Cargo.toml.orig-cargoH A D02-Mar-2020856 3025

LICENSEH A D02-Mar-202011.1 KiB203169

README.mdH A D02-Mar-20202.2 KiB5342

README.md

1<p align="center">
2    <a href="https://crates.io/crates/alga">
3         <img src="http://meritbadge.herokuapp.com/alga?style=flat-square" alt="crates.io">
4    </a>
5    <a href="https://travis-ci.org/rustsim/alga">
6        <img src="https://travis-ci.org/rustsim/alga.svg?branch=master" alt="Build status">
7    </a>
8</p>
9<p align = "center">
10    <strong>
11        <a href="https://docs.rs/alga">Documentation</a>
12    </strong>
13</p>
14
15alga − abstract algebra for Rust
16========
17
18**alga** aims to provide solid mathematical abstractions to algebra-focused
19applications. It defines and organizes through trait inheritance the basic
20building blocks of general algebraic structures. Specific implementations of
21algebraic structure traits are left to other crates. Higher-level traits for
22specialized domains of algebra (like linear algebra) are also provided and will
23prove useful for applications that include code that is generic wrt. the
24algebraic entity types.
25
26Examples of types that could derive from traits defined in **alga**:
27
28- Integers, reals and rationals numbers
29- Complex numbers
30- Polynomials
31- Matrices and vectors
32- Quaternions and octonians
33- Strings under concatenation
34
35**alga** started as a fork of [algebra](https://crates.io/crates/algebra).
36
37## References
38
39### Interesting papers
40
41- [The Scratchpad II Type System: Domains and Subdomains](http://www.csd.uwo.ca/~watt/pub/reprints/1990-miola-spadtypes.pdf)
42- [Fundamental Algebraic Concepts in Concept-Enabled C++](ftp://cgi.cs.indiana.edu/pub/techreports/TR638.pdf)
43
44### Inspiring Libraries
45
46- [Numeric Prelude](http://www.haskell.org/haskellwiki/Numeric_Prelude) (Haskell)
47- Edward A. Kmett's [algebra package](http://hackage.haskell.org/package/algebra-3.1) (Haskell)
48- [YAP: Yet Another Prelude](http://hackage.haskell.org/package/yap) (Haskell)
49- Agda's [algebra module](http://www.cse.chalmers.se/~nad/listings/lib-0.7/Algebra.html) (Agda)
50- Idris' [algebra module](https://github.com/idris-lang/Idris-dev/blob/master/libs/prelude/Prelude/Algebra.idr) (Idris)
51- Felix's [algebra module](http://felix-lang.org/$/usr/local/lib/felix/felix-latest/share/lib/std/algebraic.flx) (Felix)
52- [non/spire](https://github.com/non/spire) (Scala)
53