Record TCL3Vector

Unit

Declaration

type TCL3Vector = record

Description

Represents a pure vector (grade-1 element) in the Clifford algebra Cl(3,0).

A vector is expressed as: v = m1·e₁ + m2·e₂ + m3·e₃

Geometrically, a vector represents an oriented line segment in R3. The basis vectors satisfy the fundamental Clifford relations:

The geometric product of two vectors decomposes into a scalar (inner product) and a bivector (outer product): uv = u·v + u∧v where u·v = Σ ui·vi is the symmetric part and u∧v is the antisymmetric part, hence the return type TCL3Multivector.

Notable special products:

These are reflected in the return type TCL3Bivector for products involving a TCL3Trivector.

Overview

Methods

Public class operator *(const ALeft: double; const ARight: TCL3Vector): TCL3Vector;
Public class operator *(const ALeft: TCL3Bivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator *(const ALeft: TCL3Multivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator *(const ALeft: TCL3Trivector; const ARight: TCL3Vector): TCL3Bivector;
Public class operator *(const ALeft: TCL3Vector; const ARight: double): TCL3Vector;
Public class operator *(const ALeft: TCL3Vector; const ARight: TCL3Bivector): TCL3Multivector;
Public class operator *(const ALeft: TCL3Vector; const ARight: TCL3Multivector): TCL3Multivector;
Public class operator *(const ALeft: TCL3Vector; const ARight: TCL3Trivector): TCL3Bivector;
Public class operator *(const ALeft, ARight: TCL3Vector): TCL3Multivector;
Public class operator +(const ALeft: double; const ARight: TCL3Vector): TCL3Multivector;
Public class operator +(const ALeft: TCL3Bivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator +(const ALeft: TCL3Multivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator +(const ALeft: TCL3Trivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator +(const ALeft: TCL3Vector; const ARight: double): TCL3Multivector;
Public class operator +(const ALeft: TCL3Vector; const ARight: TCL3Bivector): TCL3Multivector;
Public class operator +(const ALeft: TCL3Vector; const ARight: TCL3Multivector): TCL3Multivector;
Public class operator +(const ALeft: TCL3Vector; const ARight: TCL3Trivector): TCL3Multivector;
Public class operator +(const ALeft, ARight: TCL3Vector): TCL3Vector;
Public class operator -(const ALeft: double; const ARight: TCL3Vector): TCL3Multivector;
Public class operator -(const ALeft: TCL3Bivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator -(const ALeft: TCL3Multivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator -(const ALeft: TCL3Trivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator -(const ASelf: TCL3Vector): TCL3Vector;
Public class operator -(const ALeft: TCL3Vector; const ARight: double): TCL3Multivector;
Public class operator -(const ALeft: TCL3Vector; const ARight: TCL3Bivector): TCL3Multivector;
Public class operator -(const ALeft: TCL3Vector; const ARight: TCL3Multivector): TCL3Multivector;
Public class operator -(const ALeft: TCL3Vector; const ARight: TCL3Trivector): TCL3Multivector;
Public class operator -(const ALeft, ARight: TCL3Vector): TCL3Vector;
Public class operator /(const ALeft: double; const ARight: TCL3Vector): TCL3Vector;
Public class operator /(const ALeft: TCL3Bivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator /(const ALeft: TCL3Multivector; const ARight: TCL3Vector): TCL3Multivector;
Public class operator /(const ALeft: TCL3Trivector; const ARight: TCL3Vector): TCL3Bivector;
Public class operator /(const ALeft: TCL3Vector; const ARight: double): TCL3Vector;
Public class operator /(const ALeft: TCL3Vector; const ARight: TCL3Bivector): TCL3Multivector;
Public class operator /(const ALeft: TCL3Vector; const ARight: TCL3Multivector): TCL3Multivector;
Public class operator /(const ALeft: TCL3Vector; const ARight: TCL3Trivector): TCL3Bivector;
Public class operator /(const ALeft, ARight: TCL3Vector): TCL3Multivector;
Public class operator :=(const AValue: TCL3Multivector): TCL3Vector;
Public class operator :=(const AValue: TCL3Vector): TCL3Multivector;
Public class operator <>(const ALeft: TCL3Multivector; const ARight: TCL3Vector): boolean;
Public class operator <>(const ALeft: TCL3Vector; const ARight: TCL3Multivector): boolean;
Public class operator <>(const ALeft, ARight: TCL3Vector): boolean;
Public class operator =(const ALeft: TCL3Multivector; const ARight: TCL3Vector): boolean;
Public class operator =(const ALeft: TCL3Vector; const ARight: TCL3Multivector): boolean;
Public class operator =(const ALeft, ARight: TCL3Vector): boolean;

Description

Methods

Public class operator *(const ALeft: double; const ARight: TCL3Vector): TCL3Vector;

Returns the geometric product of a real scalar and a vector. Each component is scaled by ALeft.

Public class operator *(const ALeft: TCL3Bivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the geometric product of a bivector and a vector. The result mixes grades, hence the return type is a full TCL3Multivector.

Public class operator *(const ALeft: TCL3Multivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the geometric product of a full multivector and a vector. Grade mixing occurs according to the Clifford multiplication rules of Cl(3,0).

Public class operator *(const ALeft: TCL3Trivector; const ARight: TCL3Vector): TCL3Bivector;

Returns the geometric product of the pseudoscalar e₁₂₃ and a vector. Since e₁₂₃ · v maps each basis vector to its complementary bivector (e.g. e₁₂₃·e₁ = e₂₃), the result is a pure TCL3Bivector. This operation corresponds to the right Hodge dual of the vector.

Public class operator *(const ALeft: TCL3Vector; const ARight: double): TCL3Vector;

Returns the geometric product of a vector and a real scalar. Each component is scaled by ARight.

Public class operator *(const ALeft: TCL3Vector; const ARight: TCL3Bivector): TCL3Multivector;

Returns the geometric product of a vector and a bivector. The result mixes grades (scalar and trivector parts may appear), hence the return type is a full TCL3Multivector.

Public class operator *(const ALeft: TCL3Vector; const ARight: TCL3Multivector): TCL3Multivector;

Returns the geometric product of a vector and a full multivector. Grade mixing occurs according to the Clifford multiplication rules of Cl(3,0).

Public class operator *(const ALeft: TCL3Vector; const ARight: TCL3Trivector): TCL3Bivector;

Returns the geometric product of a vector and the pseudoscalar e₁₂₃. Since v · e₁₂₃ maps each basis vector to its complementary bivector (e.g. e₁·e₁₂₃ = e₂₃), the result is a pure TCL3Bivector. This operation corresponds to the left Hodge dual of the vector.

Public class operator *(const ALeft, ARight: TCL3Vector): TCL3Multivector;

Returns the geometric product of two vectors. The result decomposes into a scalar and a bivector: uv = u·v + u∧v hence the return type is a full TCL3Multivector.

Public class operator +(const ALeft: double; const ARight: TCL3Vector): TCL3Multivector;

Returns the sum of a real scalar and a vector. The result is a full multivector with m0 = ALeft and the vector components of ARight.

Public class operator +(const ALeft: TCL3Bivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the sum of a bivector and a vector. The result is a full multivector with grade-2 components from ALeft and grade-1 components from ARight.

Public class operator +(const ALeft: TCL3Multivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the sum of a multivector and a vector. The vector contributes only to the grade-1 components.

Public class operator +(const ALeft: TCL3Trivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the sum of a trivector and a vector. The result is a full multivector with grade-3 component from ALeft and grade-1 components from ARight.

Public class operator +(const ALeft: TCL3Vector; const ARight: double): TCL3Multivector;

Returns the sum of a vector and a real scalar. The result is a full multivector with m0 = ARight and the vector components of ALeft.

Public class operator +(const ALeft: TCL3Vector; const ARight: TCL3Bivector): TCL3Multivector;

Returns the sum of a vector and a bivector. The result is a full multivector with grade-1 components from ALeft and grade-2 components from ARight.

Public class operator +(const ALeft: TCL3Vector; const ARight: TCL3Multivector): TCL3Multivector;

Returns the sum of a vector and a multivector. The vector contributes only to the grade-1 components.

Public class operator +(const ALeft: TCL3Vector; const ARight: TCL3Trivector): TCL3Multivector;

Returns the sum of a vector and a trivector. The result is a full multivector with grade-1 components from ALeft and grade-3 component from ARight.

Public class operator +(const ALeft, ARight: TCL3Vector): TCL3Vector;

Returns the component-wise sum of two vectors. The result is a pure vector.

Public class operator -(const ALeft: double; const ARight: TCL3Vector): TCL3Multivector;

fference of a real scalar and a vector. The result is a full multivector with m0 = ALeft and negated vector components of ARight.

Public class operator -(const ALeft: TCL3Bivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the difference of a bivector and a vector. The result is a full multivector with grade-2 components from ALeft and negated grade-1 components from ARight.

Public class operator -(const ALeft: TCL3Multivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the difference of a multivector and a vector. The vector contributes only to the grade-1 components.

Public class operator -(const ALeft: TCL3Trivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the difference of a trivector and a vector. The result is a full multivector with grade-3 component from ALeft and negated grade-1 components from ARight.

Public class operator -(const ASelf: TCL3Vector): TCL3Vector;

Unary minus. Returns the negation of the vector. Each component mₖ becomes -mₖ.

Public class operator -(const ALeft: TCL3Vector; const ARight: double): TCL3Multivector;

Returns the difference of a vector and a real scalar. The result is a full multivector with m0 = -ARight and the vector components of ALeft.

Public class operator -(const ALeft: TCL3Vector; const ARight: TCL3Bivector): TCL3Multivector;

Returns the difference of a vector and a bivector. The result is a full multivector with grade-1 components from ALeft and negated grade-2 components from ARight.

Public class operator -(const ALeft: TCL3Vector; const ARight: TCL3Multivector): TCL3Multivector;

Returns the difference of a vector and a multivector. The vector contributes only to the grade-1 components.

Public class operator -(const ALeft: TCL3Vector; const ARight: TCL3Trivector): TCL3Multivector;

Returns the difference of a vector and a trivector. The result is a full multivector with grade-1 components from ALeft and negated grade-3 component from ARight.

Public class operator -(const ALeft, ARight: TCL3Vector): TCL3Vector;

Returns the component-wise difference of two vectors. The result is a pure vector.

Public class operator /(const ALeft: double; const ARight: TCL3Vector): TCL3Vector;

Returns the geometric quotient of a real scalar divided by a vector: ALeft / ARight. The inverse of a vector v in Cl(3,0) is 1/v = v / |v|², since v² = |v|² for vectors with positive norm. The result is a pure vector.

Public class operator /(const ALeft: TCL3Bivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the geometric quotient of a bivector divided by a vector: ALeft / ARight. The result is a full TCL3Multivector.

Public class operator /(const ALeft: TCL3Multivector; const ARight: TCL3Vector): TCL3Multivector;

Returns the geometric quotient of a full multivector divided by a vector: ALeft / ARight. The result is a full TCL3Multivector.

Public class operator /(const ALeft: TCL3Trivector; const ARight: TCL3Vector): TCL3Bivector;

Returns the geometric quotient of the pseudoscalar divided by a vector: ALeft / ARight. Since e₁₂₃ · v⁻¹ maps the vector to its complementary bivector, the result is a pure TCL3Bivector.

Public class operator /(const ALeft: TCL3Vector; const ARight: double): TCL3Vector;

Returns the geometric quotient of a vector divided by a real scalar. Each component is divided by ARight.

Public class operator /(const ALeft: TCL3Vector; const ARight: TCL3Bivector): TCL3Multivector;

Returns the geometric quotient of a vector divided by a bivector: ALeft / ARight. The result is a full TCL3Multivector.

Public class operator /(const ALeft: TCL3Vector; const ARight: TCL3Multivector): TCL3Multivector;

Returns the geometric quotient of a vector divided by a full multivector: ALeft / ARight. The result is a full TCL3Multivector.

Public class operator /(const ALeft: TCL3Vector; const ARight: TCL3Trivector): TCL3Bivector;

Returns the geometric quotient of a vector divided by the pseudoscalar: ALeft / ARight. Since the inverse of e₁₂₃ is -e₁₂₃, this maps the vector to its complementary bivector, returning a pure TCL3Bivector. This corresponds to the Hodge dual of the vector.

Public class operator /(const ALeft, ARight: TCL3Vector): TCL3Multivector;

Returns the geometric quotient of two vectors: ALeft / ARight. The result is a mixed-grade element (scalar + bivector), hence the return type is a full TCL3Multivector.

Public class operator :=(const AValue: TCL3Multivector): TCL3Vector;

Implicit conversion from a multivector to a vector. Returns only the grade-1 components m1, m2, m3. All other components are discarded. Use with care: this conversion is only meaningful for pure-vector multivectors.

Public class operator :=(const AValue: TCL3Vector): TCL3Multivector;

Implicit conversion from a vector to a full multivector. All components of the result are zero except m1, m2, m3.

Public class operator <>(const ALeft: TCL3Multivector; const ARight: TCL3Vector): boolean;

Returns True if the multivector and the vector differ in any component.

Public class operator <>(const ALeft: TCL3Vector; const ARight: TCL3Multivector): boolean;

Returns True if the vector and the multivector differ in any component.

Public class operator <>(const ALeft, ARight: TCL3Vector): boolean;

Returns True if the two vectors differ in at least one component.

Public class operator =(const ALeft: TCL3Multivector; const ARight: TCL3Vector): boolean;

Returns True if the multivector equals the vector, i.e. all non-vector components of ALeft are zero.

Public class operator =(const ALeft: TCL3Vector; const ARight: TCL3Multivector): boolean;

Returns True if the vector equals the multivector, i.e. all non-vector components of ARight are zero.

Public class operator =(const ALeft, ARight: TCL3Vector): boolean;

Returns True if all corresponding components of the two vectors are equal.


Generated by PasDoc 1.0.4.