1 | ---
|
2 | title: algebra
|
3 | ---
|
4 |
|
5 | > Vectors, Matrices, Tensors
|
6 |
|
7 | {% include node_badges.md package='algebra' %}
|
8 |
|
9 | ![on-quaternions-and-octonions!](//g14n.info/algebra/images/Cover-OnQuaternionsAndOctonions.png) ![Algebra!](//g14n.info/algebra/images/Cover-Algebra.png)
|
10 |
|
11 | ## Installation
|
12 |
|
13 | With [npm](https://npmjs.org/) do
|
14 |
|
15 | ```
|
16 | $ npm install algebra
|
17 | ```
|
18 |
|
19 | With [bower](http://bower.io/) do
|
20 |
|
21 | ```bash
|
22 | $ bower install algebra
|
23 | ```
|
24 |
|
25 | ## Description
|
26 |
|
27 | I'm implementing matrices and vectors on few algebra fields (Reals, Complexes etc.) following Micheal Artin's "Algebra", which was my book at [Università Degli Studi di Genova](http://www.dima.unige.it).
|
28 |
|
29 | My goal is to provide users with the feature of creating their own algebra field and building vector spaces, matrices and tensors on it.
|
30 |
|
31 | Suppose for example the set of strings with the concatenation operator, it could be extended to a group and maybe to a field and build "matrices of strings" or probably in the future ... "strings of matrices" (I had an intuition about a composition law for UTF-8 chars).
|
32 |
|
33 | ## Motivation
|
34 |
|
35 | Why implement *algebra* with JavaScript? This is my first Node project, I started it cause I wanted to learn Node ... and I really like it!
|
36 | I was thinking about
|
37 |
|
38 | > How to implement an algebra field, like Real and Complex numbers and its elements?
|
39 |
|
40 | Do you need to implement first the *Field* class or the *Element* class? In *Algebra* you start defining a *Group*, without specifing its elements; then you define a *Field* adding multiplication operator. Can the programming way be the same as the mathematician way?
|
41 | I was looking at the answer coding this package.
|
42 |
|
43 | Another motivation was to implements something similar to a Tensor, that is like a multi dimensional array, but I could not find any package with that spirit of adventure.
|
44 |
|
45 | ## Features
|
46 |
|
47 | * Expressive api
|
48 | * Vectors and Vector Spaces
|
49 | * Invertible Matrices and the General Linear Group
|
50 | * [Tensors](http://en.wikipedia.org/wiki/Tensor): scalars, vectors and matrices are also implemented as tensors.
|
51 | * Algebra over custom fields
|
52 |
|
53 | ## Examples
|
54 |
|
55 | Begin with [algebra quick start](//g14n.info/algebra/examples/quick-start).
|
56 |
|
57 | Other examples:
|
58 |
|
59 | * [Real number](//g14n.info/algebra/examples/real-number)
|
60 | * [Real vector](//g14n.info/algebra/examples/real-vector)
|
61 | * [Complex number](//g14n.info/algebra/examples/complex-number)
|
62 | * [Custom field](//g14n.info/algebra/examples/custom-field)
|