File: MultVector.tst

package info (click to toggle)
gap 4.15.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 110,212 kB
  • sloc: ansic: 97,261; xml: 48,343; cpp: 13,946; sh: 4,900; perl: 1,650; javascript: 255; makefile: 252; ruby: 9
file content (45 lines) | stat: -rw-r--r-- 1,354 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
gap> START_TEST("MultVector.tst");

# Finite Fields
gap> v := NewVector( IsPlistVectorRep, GF(5), [Z(5)^1, Z(5)^2, Z(5)^0, Z(5)^4, 0*Z(5), Z(5)^3 ]  );
<plist vector over GF(5) of length 6>
gap> MultVector(v, Z(5)^3);
gap> Unpack(v);
[ Z(5)^0, Z(5), Z(5)^3, Z(5)^3, 0*Z(5), Z(5)^2 ]
gap> MultVector(v, -1);
gap> Unpack(v);
[ Z(5)^2, Z(5)^3, Z(5), Z(5), 0*Z(5), Z(5)^0 ]
gap> MultVector(v, Z(5)^3, 3, 4);
gap> Unpack(v);
[ Z(5)^2, Z(5)^3, Z(5)^0, Z(5)^0, 0*Z(5), Z(5)^0 ]

# Integers
gap> n := NewVector( IsPlistVectorRep, Integers, [1,2,0] );
<plist vector over Integers of length 3>
gap> IsIntVector(n);
true
gap> MultVector(n, 2);
gap> Unpack(n);
[ 2, 4, 0 ]

# Quaternions: multiplication from left and right
gap> Q := QuaternionAlgebra( Rationals );
<algebra-with-one of dimension 4 over Rationals>
gap> q := NewVector( IsPlistVectorRep, Q, [One(Q), Zero(Q), Q.2, Q.3] );
<plist vector over AlgebraWithOne( Rationals, [ e, i, j, k ] ) of length 4>
gap> MultVectorRight(q, Q.2);
gap> Unpack(q);
[ i, 0*e, (-1)*e, (-1)*k ]
gap> MultVectorLeft(q, Q.2);
gap> Unpack(q);
[ (-1)*e, 0*e, (-1)*i, j ]
gap> MultVectorRight(q, 1);
gap> Unpack(q);
[ (-1)*e, 0*e, (-1)*i, j ]
gap> MultVectorRight(q, Q.2, 3, 4);
gap> Unpack(q);
[ (-1)*e, 0*e, e, (-1)*k ]
gap> MultVectorLeft(q, Q.2, 3, 4);
gap> Unpack(q);
[ (-1)*e, 0*e, i, j ]
gap> STOP_TEST("MultVector.tst");