Functions | |
multivector | acp (multivector X, multivector Y) |
Evaluates the anti-commutator product of X and Y. | |
multivector | AffineVecP3 (list L) |
Projects a list of homogeneous vectors in projective space to the affine plane. | |
multivector | AffineVecP3 (multivector A) |
Projects a homogeneous vector in projective space to the affine plane. | |
list | AnalyzeMV (multivector X, counter DoDraw) |
Returns data concerning the geometric representaion of actual multivector. | |
list | BladeIdxList (multivector X) |
Get the indices of the basisblades which build up the multivector X. | |
multivector | cp (multivector X, multivector Y) |
Evaluates the commutator product of X and Y. | |
void | DefVarsC2 () |
Defines a set of variables for basis vectors of 2D-conic space. | |
void | DefVarsE3 () |
Defines a set of variables for basis vectors of Euclidean space. | |
void | DefVarsN3 () |
Defines a set of variables for basis vectors of conformals space. | |
void | DefVarsP3 () |
Defines a set of variables for basis vectors of conformals space. | |
list | DegConic (multivector conic) |
Makes a given projective conic degenerate. | |
multivector | DilatorN3 (scalar scale) |
Creates a dilation operator for conformal space. | |
multivector | DirVecN3 (scalar x, scalar y, scalar z) |
Creates a "direction" vector in conformal space. | |
multivector | DirVecP3 (scalar x, scalar y, scalar z) |
Creates a "direction" vector in projective space. | |
multivector | FactorizeBlade (multivector A) |
Factorizes a blade into its constituent vectors. | |
list | FindAllDegConics (multivector A, multivector B) |
Evaluates all degenerate conics that can be generated through the linear combination of two given conics. | |
list | GradeList (multivector A) |
Gives the list of grades contained in a multivector. | |
list | MV2Mask (multivector X) |
Generates a mask from a multivector X for use in e.g. GetMVProductMatrix. | |
multivector | proj (multivector X, multivector A) |
Evaluates the projection of X on A. | |
multivector | ReflectorC2 (scalar angle) |
Creates a reflector. In conic space this is a multivector of mixed grades zero and two. | |
multivector | rej (multivector X, multivector A) |
Evaluates the rejection of X from A. | |
multivector | RotorC2 (scalar angle) |
Creates a rotor, i.e. multivector of mixed grades zero, two and four, in 2D-conic space. | |
multivector | RotorE3 (multivector U, scalar angle) |
Creates a rotor, i.e. multivector of mixed grades zero and two, in Euclidean space. | |
multivector | RotorE3 (scalar x, scalar y, scalar z, scalar angle) |
Creates a rotor, i.e. multivector of mixed grades zero and two, in Euclidean space. | |
multivector | RotorN3 (multivector U, scalar angle) |
Creates a rotor, i.e. multivector of mixed grades zero and two, in conformal space. | |
multivector | RotorN3 (scalar x, scalar y, scalar z, scalar angle) |
Creates a rotor, i.e. multivector of mixed grades zero and two, in conformal space. | |
multivector | RotorP3 (multivector U, scalar angle) |
Creates a rotor, i.e. multivector of mixed grades zero and two, in projective space. | |
multivector | RotorP3 (scalar x, scalar y, scalar z, scalar angle) |
Creates a rotor, i.e. multivector of mixed grades zero and two, in projective space. | |
counter | Size (multivector M) |
Returns the algebra dimension of a multivector. | |
multivector | SphereN3 (scalar x, scalar y, scalar z, scalar radius) |
Creates a multivector of grade four representing a sphere in Euclidean space. | |
multivector | SphereN3 (multivector center, scalar radius) |
Creates a multivector of grade four representing a sphere in Euclidean space. | |
multivector | TranslatorN3 (scalar x, scalar y, scalar z) |
Creates a multivector that acts as a translation operator in conformal space. | |
multivector | VecC2 (matrix M) |
Creates a vector, i.e. multivector of grade one, in 2D-conic space, which is the embedding of the given symmetric 3 by 3 matrix. | |
multivector | VecC2 (multivector A) |
Creates a vector, i.e. multivector of grade one, in 2D-conic space. | |
multivector | VecC2 (counter mode) |
Creates a vector, i.e. multivector of grade one, in 2D-conic space, which is directly user controllable. | |
multivector | VecC2 (scalar x, scalar y) |
Creates a vector, i.e. multivector of grade one, in 2D-conic space. | |
multivector | VecE3 (multivector A) |
Creates a vector, i.e. multivector of grade one, in Euclidean space. | |
multivector | VecE3 (counter mode) |
Creates a vector, i.e. multivector of grade one, in Euclidean space, which is directly user controllable. | |
multivector | VecE3 (scalar x, scalar y, scalar z) |
Creates a vector, i.e. multivector of grade one, in Euclidean space. | |
multivector | VecN3 (multivector A) |
Creates a vector, i.e. multivector of grade one, in conformal space. | |
multivector | VecN3 (counter mode) |
Creates a vector, i.e. multivector of grade one, in conformal space, which is directly user controllable. | |
multivector | VecN3 (scalar x, scalar y, scalar z) |
Creates a vector, i.e. multivector of grade one, in conformal space. | |
multivector | VecP3 (multivector A) |
Creates a vector, i.e. multivector of grade one, in projective space. | |
multivector | VecP3 (counter mode) |
Creates a vector, i.e. multivector of grade one, in projective space, which is directly user controllable. | |
multivector | VecP3 (scalar x, scalar y, scalar z) |
Creates a vector, i.e. multivector of grade one, in projective space. |
|
Evaluates the anti-commutator product of X and Y.
|
|
Projects a list of homogeneous vectors in projective space to the affine plane.
![]() ![]() ![]() ![]() ![]() |
|
Projects a homogeneous vector in projective space to the affine plane.
![]() ![]() ![]() ![]() ![]() |
|
Returns data concerning the geometric representaion of actual multivector.
C = [point_pair, [mag, 2.06155], [pos1, [ -2^e1 + 1^e3 ]], [pos2, [ 1^e1 + 2^e2 + 3^e3 ]]] Note that each piece of information can be extracted by using list operations. Recreate for example the above point pair in the conformal space by the expression For more information according to list operations see section Variable Lists. |
|
Get the indices of the basisblades which build up the multivector X.
DefVarsN3(); A = 3*e1^e2 + I - 2*e3 + 1; B = e1 + e2 + e3 + ep + em; ? L = BladeIdxList( A ); ? BladeIdxList( B ); produces the output L = [1, 4, 9, 32] IndexList = [2, 3, 4, 5, 6] |
|
Evaluates the commutator product of X and Y.
|
|
Defines a set of variables for basis vectors of 2D-conic space.
The six basis vectors of conic space |
|
Defines a set of variables for basis vectors of Euclidean space.
The three basis vectors of Euclidean space |
|
Defines a set of variables for basis vectors of conformals space.
In conformal space the four basis vectors
The pairs |
|
Defines a set of variables for basis vectors of conformals space.
The four basis vectors of projective space |
|
Makes a given projective conic degenerate.
then this function returns a multivector with the matrix representation
The script // The switch IPNS is important here, // since DegConic interprets the multivector // passed to it with respect to this setting. :IPNS; ?M = Matrix( [[1,0,0], [0,-1,0], [0,0,-1]] ); :C = VecC2(M); ?lCd = DegConic(C); ?"Distance to conic: " + lCd(2); ?Md = Matrix(lCd(1)); M = (| 1 0 0|, | 0 -1 0|, | 0 0 -1|) lCd = [[ 0.707107^e4 + -0.707107^e5 ], 1] Distance to conic: 1 Md = (| 1 0 0|, | 0 -1 0|, | 0 0 0|) |
|
Creates a dilation operator for conformal space.
![]() This script has the following output: A = 1^e1 + 1^e2 + 1^e3 + 1.5^e + 1^e0 B = 2^e1 + 2^e2 + 2^e3 + 6^e + 1^e0 |
|
Creates a "direction" vector in conformal space.
![]() ?A = DirVecN3(1,1,1); produces the output A = 1^e1 + 1^e2 + 1^e3; |
|
Creates a "direction" vector in projective space.
![]() ?A = DirVecP3(1,1,1); produces the output A = 1^e1 + 1^e2 + 1^e3; |
|
Factorizes a blade into its constituent vectors.
Here is an example for a standard blade. DefVarsE3(); // The initial balde ?a = (e1 - e3) ^ e2; // Factorize the blade a ?L = FactorizeBlade(a); // Extract the factorized vectors from the list ?L1 = L[1]; ?L2 = L[2]; // Their outer product gives the initial blade // up to a scalar factor ?L1 ^ L2; produces the output a = 1^e23 + 1^e12 L = ([ 1^e2 ], [ -0.707107^e1 + 0.707107^e3 ]) L1 = 1^e2 L2 = -0.707^e1 + 0.707^e3 Constant = 0.707^e23 + 0.707^e12 In conformal space there exist also null blades, i.e. blades that square to zero. These cannot be factorized with the standard factorization algorithm. The algorithm implement here therefore first removes the null component from the blade and then factorizes the rest in the standard way. Here is an example, DefVarsN3(); // The initial blade ?a = (e1 + e2) ^ e3 ^ e; // Factorize the blade 'a' ?L = FactorizeBlade(a); // Extract the factorized vectors from the list ?L1 = L[1]; ?L2 = L[2]; ?L2 = L[3]; // Their outer product gives the initial blade // up to a scalar factor ?L1 ^ L2 ^ L3; This script produces the following output, a = 1^(e23^e) + -1^(e31^e) L = ([ -1^e+ + -1^e- ], [ 1^e3 ], [ 0.707107^e1 + 0.707107^e2 ]) L1 = -1^e L2 = 1^e3 L3 = 0.707^e1 + 0.707^e2 Constant = 0.707^(e23^e) + -0.707^(e31^e) Note that the factorization of a null blade returns as first element always the null vector component. |
|
Evaluates all degenerate conics that can be generated through the linear combination of two given conics.
_2dView = 1; :DRAW_POINT_AS_SPHERE; :Red; :A = VecC2(-1,0)^VecC2(0,1)^VecC2(1,0)^VecC2(0,-1)^VecC2(1,1); :Blue; :B = VecC2(-1,0)^VecC2(0,1)^VecC2(1,0)^VecC2(0,-1)^VecC2(-0.5,0.1); :Green; :A & B; // The intersections of the two conics ?lC = FindAllDegConics(A, B); :lC(1) :Magenta; :lC(2) :Cyan; :lC(3) :Yellow; This generates the following visualization.
![]() |
|
Gives the list of grades contained in a multivector.
produces the output X = 1 + 1^e1 + 1^e2 + 1^e12 + 1^I L = (3, 2, 1, 0) |
|
Generates a mask from a multivector X for use in e.g. GetMVProductMatrix.
DefVarsN3(); // --> 32 basisblades X = 5*e1^e2 + I - 7*e3 + 8; ? L1 = BladeIdxList( X ); ? L2 = MV2Mask( X ); produces the output L1 = [1, 4, 9, 32] L2 = [1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4] |
|
Evaluates the projection of X on A.
|
|
Creates a reflector. In conic space this is a multivector of mixed grades zero and two.
|
|
Evaluates the rejection of X from A.
|
|
Creates a rotor, i.e. multivector of mixed grades zero, two and four, in 2D-conic space.
|
|
Creates a rotor, i.e. multivector of mixed grades zero and two, in Euclidean space.
U either gives the rotation axis or the rotation plane. If U contains any vector components it is assumed to give the rotation axis. If, on the other hand, all vector components are zero, it is assumed to give the rotation plane. The rotation angle is given in degrees. This produces the following output. U = 1^e12 R = 0.707 + -0.707^e12 |
|
Creates a rotor, i.e. multivector of mixed grades zero and two, in Euclidean space.
![]() |
|
Creates a rotor, i.e. multivector of mixed grades zero and two, in conformal space.
U either gives the rotation axis or the rotation plane. If U contains any vector components it is assumed to give the rotation axis. If, on the other hand, all vector components are zero, it is assumed to give the rotation plane. The rotation angle is given in degrees. This produces the following output. U = 1^e12 R = 0.707 + -0.707^e12 |
|
Creates a rotor, i.e. multivector of mixed grades zero and two, in conformal space.
![]() |
|
Creates a rotor, i.e. multivector of mixed grades zero and two, in projective space.
U either gives the rotation axis or the rotation plane. If U contains any vector components it is assumed to give the rotation axis. If, on the other hand, all vector components are zero, it is assumed to give the rotation plane. The rotation angle is given in degrees. This produces the following output. U = 1^e12 R = 0.707 + -0.707^e12 |
|
Creates a rotor, i.e. multivector of mixed grades zero and two, in projective space.
![]() |
|
Returns the algebra dimension of a multivector.
? [ Size( VecN3( 1,2,3) ), Size( VecE3( 1,2,3 ) ) ]; will give the answer [32, 8] . Size applied to a scalar val is equivalent to ![]() |
|
Creates a multivector of grade four representing a sphere in Euclidean space.
![]() ![]() In the following example a green sphere with center (1,1,1) and radius 0.5 is drawn.
:Green; :Sp = SphereN3(1,1,1, 0.5); ?*Sp; This script produces the following output. Sp = 1^e1 + 1^e2 + 1^e3 + 1.375^e + 1^e0 |
|
Creates a multivector of grade four representing a sphere in Euclidean space.
![]() ![]() |
|
Creates a multivector that acts as a translation operator in conformal space.
T = TranslatorN3(1,1,1); ?A = VecN3(0,0,0); ?B = T * A * ~T; This script produces the following output. A = 1^e0 B = 1^e1 + 1^e2 + 1^e3 + 1.5^e + 1^e0 |
|
Creates a vector, i.e. multivector of grade one, in 2D-conic space, which is the embedding of the given symmetric 3 by 3 matrix.
|
|
Creates a vector, i.e. multivector of grade one, in 2D-conic space.
ExampleScripts/2D_Conics for a number of examples. |
|
Creates a vector, i.e. multivector of grade one, in 2D-conic space, which is directly user controllable.
A = VecC2(1) , then the value of A can be changed by switching the mouse mode in the visualization window to one, hold down the right mouse button over the visualization window and move the mouse. Try the following simple script to see how it works.
Also see the scripts in the folder |
|
Creates a vector, i.e. multivector of grade one, in 2D-conic space.
// Define and draw the five points :Red; :A = VecC2(1,0); :B = VecC2(0,1); :C = VecC2(-1,0); :D = VecC2(0,-1); :E = VecC2(1.5, 1.5); // Now draw the conic through the points :Blue; :A^B^C^D^E;
Also see the scripts in the folder |
|
Creates a vector, i.e. multivector of grade one, in Euclidean space.
This produces the following output. A = 1^e1 + 1^e2 + 1^e3 B = 1^e1 + 1^e2 + 1^e3 + 1^e4 C = 1^e1 + 1^e2 + 1^e3 + 1.5^e + 1^e0 |
|
Creates a vector, i.e. multivector of grade one, in Euclidean space, which is directly user controllable.
A = VecE3(1) , then the value of A can be changed by switching the mouse mode in the visualization window to one, hold down the right mouse button over the visualization window and move the mouse. Try the following simple script to see how it works.
|
|
Creates a vector, i.e. multivector of grade one, in Euclidean space.
|
|
Creates a vector, i.e. multivector of grade one, in conformal space.
This produces the following output. A = 1^e1 + 1^e2 + 1^e3 B = 1^e1 + 1^e2 + 1^e3 + 1^e4 C = 1^e1 + 1^e2 + 1^e3 + 1.5^e + 1^e0 |
|
Creates a vector, i.e. multivector of grade one, in conformal space, which is directly user controllable.
A = VecN3(1) , then the value of A can be changed by switching the mouse mode in the visualization window to one, hold down the right mouse button over the visualization window and move the mouse. Try the following simple script to see how it works.
|
|
Creates a vector, i.e. multivector of grade one, in conformal space.
|
|
Creates a vector, i.e. multivector of grade one, in projective space.
This produces the following output. A = 1^e1 + 1^e2 + 1^e3 B = 1^e1 + 1^e2 + 1^e3 + 1^e4 C = 1^e1 + 1^e2 + 1^e3 + 1.5^e + 1^e0 |
|
Creates a vector, i.e. multivector of grade one, in projective space, which is directly user controllable.
A = VecP3(1) , then the value of A can be changed by switching the mouse mode in the visualization window to one, hold down the right mouse button over the visualization window and move the mouse. Try the following simple script to see how it works.
|
|
Creates a vector, i.e. multivector of grade one, in projective space.
|