Record TCL3TrivecQuantityHelper

Unit

Declaration

type TCL3TrivecQuantityHelper = record helper for TCL3TrivecQuantity

Description

Record helper for TCL3TrivecQuantity providing geometric operations specific to grade-3 elements of Cl(3,0) with physical dimensions.

All operations follow the conventions of Clifford algebra over ℝ³ with dimensional analysis. Incompatible dimensions raise an exception at runtime. Only available when ADIMOFF is not defined.

Overview

Methods

Public function Conjugate: TCL3TrivecQuantity;
Public function Dot(const AVector: TCL3BivecQuantity): TCL3VecQuantity; overload;
Public function Dot(const AVector: TCL3MultivecQuantity): TCL3MultivecQuantity; overload;
Public function Dot(const AVector: TCL3TrivecQuantity): TQuantity; overload;
Public function Dot(const AVector: TCL3VecQuantity): TCL3BivecQuantity; overload;
Public function Dual: TQuantity;
Public function Inverse: TCL3TrivecQuantity;
Public function Norm: TQuantity;
Public function Normalized: TCL3TrivecQuantity;
Public function Projection(const AVector: TCL3BivecQuantity): TCL3TrivecQuantity; overload;
Public function Projection(const AVector: TCL3MultivecQuantity): TCL3TrivecQuantity; overload;
Public function Projection(const AVector: TCL3TrivecQuantity): TCL3TrivecQuantity; overload;
Public function Projection(const AVector: TCL3VecQuantity): TCL3TrivecQuantity; overload;
Public function Reciprocal: TCL3TrivecQuantity;
Public function Reflection(const AVector: TCL3BivecQuantity): TCL3TrivecQuantity; overload;
Public function Reflection(const AVector: TCL3MultivecQuantity): TCL3TrivecQuantity; overload;
Public function Reflection(const AVector: TCL3TrivecQuantity): TCL3TrivecQuantity; overload;
Public function Reflection(const AVector: TCL3VecQuantity): TCL3TrivecQuantity; overload;
Public function Rejection(const AVector: TCL3BivecQuantity): TQuantity; overload;
Public function Rejection(const AVector: TCL3MultivecQuantity): TCL3MultivecQuantity; overload;
Public function Rejection(const AVector: TCL3TrivecQuantity): TQuantity; overload;
Public function Rejection(const AVector: TCL3VecQuantity): TQuantity; overload;
Public function Reverse: TCL3TrivecQuantity;
Public function Rotation(const AVector1, AVector2: TCL3BivecQuantity): TCL3TrivecQuantity; overload;
Public function Rotation(const AVector1, AVector2: TCL3MultivecQuantity): TCL3TrivecQuantity; overload;
Public function Rotation(const AVector1, AVector2: TCL3TrivecQuantity): TCL3TrivecQuantity; overload;
Public function Rotation(const AVector1, AVector2: TCL3VecQuantity): TCL3TrivecQuantity; overload;
Public function SameValue(const AVector: TCL3MultivecQuantity): boolean;
Public function SameValue(const AVector: TCL3TrivecQuantity): boolean;
Public function SquaredNorm: TQuantity;
Public function ToMultivector: TCL3MultivecQuantity;
Public function Wedge(const AVector: TCL3BivecQuantity): TQuantity; overload;
Public function Wedge(const AVector: TCL3MultivecQuantity): TCL3TrivecQuantity; overload;
Public function Wedge(const AVector: TCL3TrivecQuantity): TQuantity; overload;
Public function Wedge(const AVector: TCL3VecQuantity): TQuantity; overload;

Description

Methods

Public function Conjugate: TCL3TrivecQuantity;

Returns the Clifford conjugate of the trivector quantity. For a trivector (k = 3): T† = -T. The physical dimension is preserved.

Public function Dot(const AVector: TCL3BivecQuantity): TCL3VecQuantity; overload;

Returns the inner (dot) product of the trivector quantity and a bivector quantity. Lowers the grade: grade(3) · grade(2) → grade(1) = vector quantity. The resulting dimension is the product of the two operand dimensions.

Parameters
AVector
The grade-2 right operand.
Public function Dot(const AVector: TCL3MultivecQuantity): TCL3MultivecQuantity; overload;

Returns the inner (dot) product of the trivector quantity and a multivector quantity. The result is a full TCL3MultivecQuantity due to grade mixing. The resulting dimension is the product of the two operand dimensions.

Parameters
AVector
The right operand.
Public function Dot(const AVector: TCL3TrivecQuantity): TQuantity; overload;

Returns the inner (dot) product of two trivector quantities. Lowers the grade: grade(3) · grade(3) → grade(0) = scalar quantity. Result: T₁ · T₂ = -m123₁ · m123₂ [dim₁·dim₂]. The resulting dimension is the product of the two operand dimensions.

Parameters
AVector
The grade-3 right operand.
Public function Dot(const AVector: TCL3VecQuantity): TCL3BivecQuantity; overload;

Returns the inner (dot) product of the trivector quantity and a vector quantity. Lowers the grade: grade(3) · grade(1) → grade(2) = bivector quantity. The resulting dimension is the product of the two operand dimensions.

Parameters
AVector
The grade-1 right operand.
Public function Dual: TQuantity;

Returns the dual of the trivector quantity with respect to the pseudoscalar e₁₂₃. For T = m123·e₁₂₃ [dim], the dual is the scalar quantity: T* = T · e₁₂₃⁻¹ = -m123 [dim]. The physical dimension is preserved.

Public function Inverse: TCL3TrivecQuantity;

Returns the inverse of the trivector quantity under the geometric product. For T = m123·e₁₂₃ [dim]: T⁻¹ = -e₁₂₃ / m123 [dim⁻¹], since e₁₂₃² = -1.

Public function Norm: TQuantity;

Returns the norm of the trivector quantity: |T| = |m123| [dim]. The resulting dimension equals the dimension of the original quantity.

Public function Normalized: TCL3TrivecQuantity;

Returns the unit trivector quantity in the same direction. The coefficient m123 is divided by Norm. The physical dimension is preserved.

Public function Projection(const AVector: TCL3BivecQuantity): TCL3TrivecQuantity; overload;

Returns the projection of the trivector quantity onto a bivector quantity subspace. Defined as: proj(T, B) = (T · B⁻¹) ∧ B. The resulting dimension is the dimension of the original quantity.

Parameters
AVector
The bivector quantity defining the subspace to project onto.
Public function Projection(const AVector: TCL3MultivecQuantity): TCL3TrivecQuantity; overload;

Returns the projection of the trivector quantity onto a multivector quantity subspace. Defined as: proj(T, M) = (T · M⁻¹) ∧ M. The resulting dimension is the dimension of the original quantity.

Parameters
AVector
The multivector quantity defining the subspace to project onto.
Public function Projection(const AVector: TCL3TrivecQuantity): TCL3TrivecQuantity; overload;

Returns the projection of the trivector quantity onto another trivector quantity subspace. Defined as: proj(T₁, T₂) = (T₁ · T₂⁻¹) ∧ T₂. The resulting dimension is the dimension of the original quantity.

Parameters
AVector
The trivector quantity defining the subspace to project onto.
Public function Projection(const AVector: TCL3VecQuantity): TCL3TrivecQuantity; overload;

Returns the projection of the trivector quantity onto a vector quantity subspace. Defined as: proj(T, v) = (T · v⁻¹) ∧ v. The resulting dimension is the dimension of the original quantity.

Parameters
AVector
The vector quantity defining the subspace to project onto.
Public function Reciprocal: TCL3TrivecQuantity;

Returns the reciprocal of the trivector quantity: T̃ / (T · T̃). Equivalent to Inverse for non-zero trivector quantities. The resulting dimension is the inverse of the original dimension.

Public function Reflection(const AVector: TCL3BivecQuantity): TCL3TrivecQuantity; overload;

Returns the reflection of the trivector quantity through a bivector quantity. Defined as: reflect(T, B) = -B · T · B⁻¹. The physical dimension is preserved.

Parameters
AVector
The bivector quantity defining the reflection element.
Public function Reflection(const AVector: TCL3MultivecQuantity): TCL3TrivecQuantity; overload;

Returns the reflection of the trivector quantity through a multivector quantity. Defined as: reflect(T, M) = -M · T · M⁻¹. The physical dimension is preserved.

Parameters
AVector
The multivector quantity defining the reflection element.
Public function Reflection(const AVector: TCL3TrivecQuantity): TCL3TrivecQuantity; overload;

Returns the reflection of the trivector quantity through another trivector quantity. Defined as: reflect(T₁, T₂) = -T₂ · T₁ · T₂⁻¹. The physical dimension is preserved.

Parameters
AVector
The trivector quantity defining the reflection element.
Public function Reflection(const AVector: TCL3VecQuantity): TCL3TrivecQuantity; overload;

Returns the reflection of the trivector quantity through a vector quantity. Defined as: reflect(T, v) = -v · T · v⁻¹. The physical dimension is preserved.

Parameters
AVector
The vector quantity defining the reflection hyperplane normal.
Public function Rejection(const AVector: TCL3BivecQuantity): TQuantity; overload;

Returns the rejection of the trivector quantity from a bivector quantity subspace. Defined as: rej(T, B) = T - proj(T, B). In ℝ³ the rejection of a trivector from a bivector is a scalar quantity. The resulting dimension is the product of the two operand dimensions.

Parameters
AVector
The bivector quantity defining the subspace to reject from.
Public function Rejection(const AVector: TCL3MultivecQuantity): TCL3MultivecQuantity; overload;

Returns the rejection of the trivector quantity from a multivector quantity subspace. Defined as: rej(T, M) = T - proj(T, M). The result is a full TCL3MultivecQuantity due to grade mixing. The resulting dimension is the dimension of the original quantity.

Parameters
AVector
The multivector quantity defining the subspace to reject from.
Public function Rejection(const AVector: TCL3TrivecQuantity): TQuantity; overload;

Returns the rejection of the trivector quantity from another trivector quantity subspace. Defined as: rej(T₁, T₂) = T₁ - proj(T₁, T₂). In ℝ³ the rejection of a trivector from a trivector is a scalar quantity. The resulting dimension is the product of the two operand dimensions.

Parameters
AVector
The trivector quantity defining the subspace to reject from.
Public function Rejection(const AVector: TCL3VecQuantity): TQuantity; overload;

Returns the rejection of the trivector quantity from a vector quantity subspace. Defined as: rej(T, v) = T - proj(T, v). In ℝ³ the rejection of a trivector from a vector is a scalar quantity. The resulting dimension is the product of the two operand dimensions.

Parameters
AVector
The vector quantity defining the subspace to reject from.
Public function Reverse: TCL3TrivecQuantity;

Returns the reverse of the trivector quantity. For a trivector (k = 3): T̃ = -T. The physical dimension is preserved.

Public function Rotation(const AVector1, AVector2: TCL3BivecQuantity): TCL3TrivecQuantity; overload;

Returns the trivector quantity rotated by the rotor defined by two bivector quantities. The rotation is applied as: T' = R · T · R⁻¹. The physical dimension is preserved.

Parameters
AVector1
The first bivector quantity defining the rotor.
AVector2
The second bivector quantity defining the rotor.
Public function Rotation(const AVector1, AVector2: TCL3MultivecQuantity): TCL3TrivecQuantity; overload;

Returns the trivector quantity rotated by the rotor defined by two multivector quantities. The rotation is applied as: T' = R · T · R⁻¹. The physical dimension is preserved.

Parameters
AVector1
The first multivector quantity defining the rotor.
AVector2
The second multivector quantity defining the rotor.
Public function Rotation(const AVector1, AVector2: TCL3TrivecQuantity): TCL3TrivecQuantity; overload;

Returns the trivector quantity rotated by the rotor defined by two trivector quantities. The rotation is applied as: T' = R · T · R⁻¹. The physical dimension is preserved.

Parameters
AVector1
The first trivector quantity defining the rotor.
AVector2
The second trivector quantity defining the rotor.
Public function Rotation(const AVector1, AVector2: TCL3VecQuantity): TCL3TrivecQuantity; overload;

Returns the trivector quantity rotated by the rotor defined by two vector quantities. The rotor is constructed as R = AVector2 · AVector1 (normalised to a unit rotor). The rotation is applied as: T' = R · T · R⁻¹. The physical dimension is preserved.

Parameters
AVector1
The first vector quantity defining the rotation plane.
AVector2
The second vector quantity defining the rotation plane.
Public function SameValue(const AVector: TCL3MultivecQuantity): boolean;

Returns True if the trivector quantity is numerically equal to the given multivector quantity within the default floating point tolerance. All non-trivector components of AVector must be negligible.

Parameters
AVector
The multivector quantity to compare against.
Public function SameValue(const AVector: TCL3TrivecQuantity): boolean;

Returns True if the two trivector quantities are numerically equal within the default floating point tolerance.

Parameters
AVector
The trivector quantity to compare against.
Public function SquaredNorm: TQuantity;

Returns the squared norm of the trivector quantity: |T|² = m123² [dim²]. The resulting dimension is the square of the original dimension. Avoids the square root computation of Norm.

Public function ToMultivector: TCL3MultivecQuantity;

Converts the trivector quantity to a full TCL3MultivecQuantity. All components are zero except m123. The dimension is preserved.

Public function Wedge(const AVector: TCL3BivecQuantity): TQuantity; overload;

Returns the outer (wedge) product of the trivector quantity and a bivector quantity. Always zero in ℝ³: grade(3) ∧ grade(2) → grade(5) = 0. The result is a scalar quantity equal to zero.

Parameters
AVector
The grade-2 right operand.
Public function Wedge(const AVector: TCL3MultivecQuantity): TCL3TrivecQuantity; overload;

Returns the outer (wedge) product of the trivector quantity and a multivector quantity. Only the scalar part of AVector contributes to a non-zero result. The result is a pure TCL3TrivecQuantity. The resulting dimension is the product of the two operand dimensions.

Parameters
AVector
The right operand.
Public function Wedge(const AVector: TCL3TrivecQuantity): TQuantity; overload;

Returns the outer (wedge) product of two trivector quantities. Always zero in ℝ³: grade(3) ∧ grade(3) → grade(6) = 0. The result is a scalar quantity equal to zero.

Parameters
AVector
The grade-3 right operand.
Public function Wedge(const AVector: TCL3VecQuantity): TQuantity; overload;

Returns the outer (wedge) product of the trivector quantity and a vector quantity. Always zero in ℝ³: grade(3) ∧ grade(1) → grade(4) = 0. The result is a scalar quantity equal to zero.

Parameters
AVector
The grade-1 right operand.

Generated by PasDoc 1.0.4.