All Projects → typelevel → Algebra

typelevel / Algebra

Licence: other
Experimental project to lay out basic algebra type classes

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Algebra

http4s-dom
http4s, in a browser near you
Stars: ✭ 13 (-96.55%)
Mutual labels:  typelevel
Angourimath
Open-source symbolic algebra library for C# and F#. One of the most powerful in .NET
Stars: ✭ 266 (-29.44%)
Mutual labels:  algebra
Basic Mathematics For Machine Learning
The motive behind Creating this repo is to feel the fear of mathematics and do what ever you want to do in Machine Learning , Deep Learning and other fields of AI
Stars: ✭ 300 (-20.42%)
Mutual labels:  algebra
alphabet-soup
Type calculations at compile time
Stars: ✭ 40 (-89.39%)
Mutual labels:  typelevel
agda
The theory of algebraic graphs formalised in Agda
Stars: ✭ 67 (-82.23%)
Mutual labels:  algebra
Cmathtuts
trying to collect all useful tutorials for famous C math and linear algebra libraries such as CBLAS, CLAPACK, GSL...
Stars: ✭ 266 (-29.44%)
Mutual labels:  algebra
relational
Educational tool for relational algebra
Stars: ✭ 70 (-81.43%)
Mutual labels:  algebra
Newton Api
➗ A really micro micro-service for advanced math.
Stars: ✭ 358 (-5.04%)
Mutual labels:  algebra
Henkan
A small library for converting between case classes.
Stars: ✭ 262 (-30.5%)
Mutual labels:  typelevel
Grassmann.jl
⟨Leibniz-Grassmann-Clifford⟩ differential geometric algebra / multivector simplicial complex
Stars: ✭ 289 (-23.34%)
Mutual labels:  algebra
symbolicnim
A symbolic library written purely in Nim with the ability to compile expressions into efficient functions.
Stars: ✭ 25 (-93.37%)
Mutual labels:  algebra
fib-anyon
An implementation of Fibonacci Anyons in Haskell
Stars: ✭ 18 (-95.23%)
Mutual labels:  typelevel
Mather
zzllrr mather(an offline tool for Math learning, education and research)小乐数学,离线可用的数学学习(自学或教学)、研究辅助工具。计划覆盖数学全部学科的解题、作图、演示、探索工具箱。目前是演示Demo版(抛转引玉),但已经支持数学公式编辑显示,部分作图功能,部分学科,如线性代数、离散数学的部分解题功能。最终目标是推动专业数学家、编程专家、教育工作者、科普工作者共同打造出更加专业级的Mather数学工具
Stars: ✭ 270 (-28.38%)
Mutual labels:  algebra
Euler
The open-source computational framework for the Swift language
Stars: ✭ 37 (-90.19%)
Mutual labels:  algebra
Shapeless
Generic programming for Scala
Stars: ✭ 3,207 (+750.66%)
Mutual labels:  typelevel
radb
RA (radb): A relational algebra interpreter over relational databases
Stars: ✭ 48 (-87.27%)
Mutual labels:  algebra
Mu Scala
Mu is a purely functional library for building RPC endpoint based services with support for RPC and HTTP/2
Stars: ✭ 266 (-29.44%)
Mutual labels:  algebra
Fp Resources
Functional programming great resources
Stars: ✭ 369 (-2.12%)
Mutual labels:  algebra
Nerdamer
a symbolic math expression evaluator for javascript
Stars: ✭ 322 (-14.59%)
Mutual labels:  algebra
Discipline
Flexible law checking for Scala
Stars: ✭ 286 (-24.14%)
Mutual labels:  typelevel

Build Status Coverage status Gitter Maven Central

algebra

current status

This project is currently in low-maintenance mode. The existing 2.x version is stable and works with Scala 2.x and Cats 2.x. No new features are developed, but bug fix releases will still be made available.

The plan is to eventually move the code in this repository into Cats (see the ticket in the Cats repository). However, we are looking for volunteers to tackle this.

the vision

This repo represents an attempt to unify the basic algebraic type classes from Spire and Algebird. By targeting just these type classes, we will distribute an algebra package with no dependencies (except for cats-kernel) that works with Scala 2.11 and 2.12, which can be shared by all Scala libraries interested in abstract algebra.

Since the creation of Algebra, we have also decided to interoperate with the Cats project. Algebra and Cats interoperate using the cats-kernel module.

See the Algebra website for more information. The latest API docs are hosted at Algebra's ScalaDoc index.

getting algebra

Algebra supports Scala 2.11, 2.12 and 2.13 and is available from Sonatype (and Maven Central). In addition to the JVM, Algebra also supports Scala.js.

To use algebra in your own projects, include this snippet in your build.sbt file:

libraryDependencies += "org.typelevel" %% "algebra" % "2.0.0"

If you want to use Algebra's laws, you can include those as well with this snippet:

libraryDependencies += "org.typelevel" %% "algebra-laws" % "2.0.0"

what we have so far

This repo has been seeded with most of the contents of spire.algebra, and has been modified to fit an initially-conservative and shared vision for algebraic type classes. Discussions over removals and additions should take place on the issue tracker or on relevant pull requests.

Projects using Algebra

participants

Anyone who wants to participate should feel free to open issues or send pull requests to this repo.

The following people are Algebra maintainers (i.e. have push access):

development process

Please make a pull request against the master branch. For those who can merge pull requests, we follow these rules:

  1. Do not merge your own PR unless N people have signed-off on the PR (e.g. given a thumbs-up, +1, shipit, etc) and Travis is green.

  2. If you are not the author, and you see (N - 1) sign-offs and Travis is green, just click merge and delete the branch.

  3. Currently, N = 2.

algebra overview

Algebra uses type classes to represent algebraic structures. You can use these type classes to represent the abstract capabilities (and requirements) you want generic parameters to possess.

For a tour of the Algebraic structures that algebra offers, see the extensive overview on the Algebra website.

Code of Conduct

See the Code of Conduct

Copyright and License

All code is available to you under the MIT license, available at http://opensource.org/licenses/mit-license.php and also in the COPYING file.

Copyright the maintainers, 2015-2016.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].