https://github.com/brendanzab/algebra
Abstract algebra for Rust (still very much a WIP!)
https://github.com/brendanzab/algebra
Last synced: 25 days ago
JSON representation
Abstract algebra for Rust (still very much a WIP!)
- Host: GitHub
- URL: https://github.com/brendanzab/algebra
- Owner: brendanzab
- License: apache-2.0
- Created: 2014-01-11T06:33:41.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2022-01-05T17:10:21.000Z (about 4 years ago)
- Last Synced: 2024-04-26T06:04:31.051Z (over 1 year ago)
- Language: Rust
- Homepage:
- Size: 125 KB
- Stars: 60
- Watchers: 13
- Forks: 9
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Abstract algebra for Rust
[](https://gitter.im/brendanzab/algebra?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://travis-ci.org/brendanzab/algebra)
~~~
|(• ◡•)|ノ〵(❍ᴥ❍⋃) - "ALGEBRAIC!!!"
~~~
Abstract algebra organises organises a wide range of structures into
a logically consistent framework. These classifications can be incredibly useful
for creating composable libraries and APIs.
Examples of types that could be included under the algebraic framework:
- Integers, reals and rationals numbers
- Complex numbers
- Polynomials
- Boolean values
- Matrices and vectors
- Quaternions and octonians
- Strings under concatenation
## Research
### Interesting papers
- [The Scratchpad II Type System: Domains and Subdomains](http://www.csd.uwo.ca/~watt/pub/reprints/1990-miola-spadtypes.pdf)
- [Fundamental Algebraic Concepts in Concept-Enabled C++](ftp://cgi.cs.indiana.edu/pub/techreports/TR638.pdf)
### Inspiring Libraries
- [Numeric Prelude](http://www.haskell.org/haskellwiki/Numeric_Prelude) (Haskell)
- Edward A. Kmett's [algebra package](http://hackage.haskell.org/package/algebra-3.1) (Haskell)
- [YAP: Yet Another Prelude](http://hackage.haskell.org/package/yap) (Haskell)
- Agda's [algebra module](http://www.cse.chalmers.se/~nad/listings/lib-0.7/Algebra.html) (Agda)
- Idris' [algebra module](https://github.com/idris-lang/Idris-dev/blob/master/libs/prelude/Prelude/Algebra.idr) (Idris)
- Felix's [algebra module](http://felix-lang.org/$/usr/local/lib/felix/felix-latest/share/lib/std/algebraic.flx) (Felix)
- [non/spire](https://github.com/non/spire) (Scala)