1 | describe('Quick start', () => {
|
2 | const algebra = require('algebra')
|
3 |
|
4 | it('works', () => {
|
5 | const R = algebra.Real
|
6 |
|
7 | R.add(1, 2, 3).should.eql(6)
|
8 |
|
9 | var x = new R(2)
|
10 | const y = new R(-2)
|
11 |
|
12 | const r = x.mul(y)
|
13 | r.data.should.eql(-4)
|
14 | x.data.should.eql(2)
|
15 |
|
16 | x = x.add(3).mul(2).inv()
|
17 |
|
18 | x.data.should.eql(0.1)
|
19 |
|
20 | x.equal(0.1).should.be.ok
|
21 | x.notEqual(Math.PI).should.be.ok
|
22 |
|
23 | const C = algebra.Complex
|
24 |
|
25 | var z1 = new C([1, 2])
|
26 | const z2 = new C([3, 4])
|
27 |
|
28 | z1 = z1.mul(z2)
|
29 |
|
30 | z1.data.should.eql([-5, 10])
|
31 |
|
32 | z1 = z1.conj().mul([2, 0])
|
33 |
|
34 | z1.data.should.eql([-10, -20])
|
35 |
|
36 | const R2 = algebra.VectorSpace(R)(2)
|
37 |
|
38 | var v1 = new R2([0, 1])
|
39 | const v2 = new R2([1, -2])
|
40 |
|
41 | v1 = v1.add(v2)
|
42 |
|
43 | v1.data.should.eql([1, -1])
|
44 |
|
45 | const R3x2 = algebra.MatrixSpace(R)(3, 2)
|
46 |
|
47 | const m1 = new R3x2([1, 1,
|
48 | 0, 1,
|
49 | 1, 0])
|
50 |
|
51 | const v3 = m1.mul(v1)
|
52 |
|
53 | v3.data.should.deepEqual([0, -1, 1])
|
54 |
|
55 | const R2x2 = algebra.MatrixSpace(R)(2)
|
56 |
|
57 | var m2 = new R2x2([1, 0,
|
58 | 0, 2])
|
59 | const m3 = new R2x2([0, -1,
|
60 | 1, 0])
|
61 |
|
62 | m2 = m2.mul(m3)
|
63 |
|
64 | m2.data.should.deepEqual([0, -1, 2, 0])
|
65 |
|
66 | m2.determinant.data.should.be.eql(2)
|
67 | })
|
68 | })
|