Record TCL3VecQuantity

Unit

Declaration

type TCL3VecQuantity = record

Description

Represents a pure vector (grade-1 element) of Cl(3,0) with physical dimensions.

Combines a TCL3Vector value with a TDimension, supporting geometric algebra arithmetic while preserving dimensional consistency. The physical dimension is stored in FDim and shared by the three vector components m1·e₁ + m2·e₂ + m3·e₃.

When combined with elements of other grades the result is generally promoted to a full TCL3MultivecQuantity, with the following notable exceptions:

When the symbol ADIMOFF is defined, this type degenerates to TCL3Vector and all dimension checking is disabled.

Overview

Methods

Public class operator *(const ALeft: TCL3BivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator *(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator *(const ALeft: TCL3TrivecQuantity; const ARight: TCL3VecQuantity): TCL3BivecQuantity;
Public class operator *(const ALeft: TCL3VecQuantity; const ARight: TCL3BivecQuantity): TCL3MultivecQuantity;
Public class operator *(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): TCL3MultivecQuantity;
Public class operator *(const ALeft: TCL3VecQuantity; const ARight: TCL3TrivecQuantity): TCL3BivecQuantity;
Public class operator *(const ALeft, ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator *(const ALeft: TCL3VecQuantity; const ARight: TQuantity): TCL3VecQuantity;
Public class operator *(const ALeft: TQuantity; const ARight: TCL3VecQuantity): TCL3VecQuantity;
Public class operator +(const ALeft: TCL3BivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator +(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator +(const ALeft: TCL3TrivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator +(const ALeft: TCL3VecQuantity; const ARight: TCL3BivecQuantity): TCL3MultivecQuantity;
Public class operator +(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): TCL3MultivecQuantity;
Public class operator +(const ALeft: TCL3VecQuantity; const ARight: TCL3TrivecQuantity): TCL3MultivecQuantity;
Public class operator +(const ALeft, ARight: TCL3VecQuantity): TCL3VecQuantity;
Public class operator +(const ALeft: TCL3VecQuantity; const ARight: TQuantity): TCL3MultivecQuantity;
Public class operator +(const ALeft: TQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator -(const ALeft: TCL3BivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator -(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator -(const ALeft: TCL3TrivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator -(const ASelf: TCL3VecQuantity): TCL3VecQuantity;
Public class operator -(const ALeft: TCL3VecQuantity; const ARight: TCL3BivecQuantity): TCL3MultivecQuantity;
Public class operator -(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): TCL3MultivecQuantity;
Public class operator -(const ALeft: TCL3VecQuantity; const ARight: TCL3TrivecQuantity): TCL3MultivecQuantity;
Public class operator -(const ALeft, ARight: TCL3VecQuantity): TCL3VecQuantity;
Public class operator -(const ALeft: TCL3VecQuantity; const ARight: TQuantity): TCL3MultivecQuantity;
Public class operator -(const ALeft: TQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator /(const ALeft: double; const ARight: TCL3VecQuantity): TCL3VecQuantity;
Public class operator /(const ALeft: TCL3BivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator /(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator /(const ALeft: TCL3TrivecQuantity; const ARight: TCL3VecQuantity): TCL3BivecQuantity;
Public class operator /(const ALeft: TCL3VecQuantity; const ARight: double): TCL3VecQuantity;
Public class operator /(const ALeft: TCL3VecQuantity; const ARight: TCL3BivecQuantity): TCL3MultivecQuantity;
Public class operator /(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): TCL3MultivecQuantity;
Public class operator /(const ALeft: TCL3VecQuantity; const ARight: TCL3TrivecQuantity): TCL3BivecQuantity;
Public class operator /(const ALeft, ARight: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator /(const ALeft: TCL3VecQuantity; const ARight: TQuantity): TCL3VecQuantity;
Public class operator /(const ALeft: TQuantity; const ARight: TCL3VecQuantity): TCL3VecQuantity;
Public class operator :=(const AValue: TCL3VecQuantity): TCL3MultivecQuantity;
Public class operator <>(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): boolean;
Public class operator <>(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): boolean;
Public class operator <>(const ALeft, ARight: TCL3VecQuantity): boolean;
Public class operator =(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): boolean;
Public class operator =(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): boolean;
Public class operator =(const ALeft, ARight: TCL3VecQuantity): boolean;

Description

Methods

Public class operator *(const ALeft: TCL3BivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the geometric product of a bivector quantity and a vector quantity. The resulting dimension is the product of the two dimensions. Grade mixing occurs according to the Cl(3,0) multiplication rules.

Public class operator *(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the geometric product of a multivector quantity and a vector quantity. The resulting dimension is the product of the two dimensions. Grade mixing occurs according to the Cl(3,0) multiplication rules.

Public class operator *(const ALeft: TCL3TrivecQuantity; const ARight: TCL3VecQuantity): TCL3BivecQuantity;

Returns the geometric product of a trivector quantity and a vector quantity. Since e₁₂₃ · eᵢ = ±eⱼ∧eₖ, the result is a pure bivector quantity. The resulting dimension is the product of the two dimensions.

Public class operator *(const ALeft: TCL3VecQuantity; const ARight: TCL3BivecQuantity): TCL3MultivecQuantity;

Returns the geometric product of a vector quantity and a bivector quantity. The resulting dimension is the product of the two dimensions. Grade mixing occurs according to the Cl(3,0) multiplication rules.

Public class operator *(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): TCL3MultivecQuantity;

Returns the geometric product of a vector quantity and a multivector quantity. The resulting dimension is the product of the two dimensions. Grade mixing occurs according to the Cl(3,0) multiplication rules.

Public class operator *(const ALeft: TCL3VecQuantity; const ARight: TCL3TrivecQuantity): TCL3BivecQuantity;

Returns the geometric product of a vector quantity and a trivector quantity. Since eᵢ · e₁₂₃ = ±eⱼ∧eₖ, the result is a pure bivector quantity. The resulting dimension is the product of the two dimensions.

Public class operator *(const ALeft, ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the geometric product of two vector quantities. The result is a mixed-grade element (scalar + bivector), hence a full TCL3MultivecQuantity. (u·v) = (u·v)_scalar + (u∧v)_bivector. The resulting dimension is the product of the two dimensions.

Public class operator *(const ALeft: TCL3VecQuantity; const ARight: TQuantity): TCL3VecQuantity;

Returns the geometric product of a vector quantity and a real quantity scalar. Each component is scaled by ARight. The resulting dimension is the product of the two dimensions.

Public class operator *(const ALeft: TQuantity; const ARight: TCL3VecQuantity): TCL3VecQuantity;

Returns the geometric product of a real quantity scalar and a vector quantity. Each component is scaled by ALeft. The resulting dimension is the product of the two dimensions.

Public class operator +(const ALeft: TCL3BivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the sum of a bivector quantity and a vector quantity. Both operands must have the same dimension. The result is a full multivector quantity with grade-2 components from ALeft and grade-1 components from ARight.

Public class operator +(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the sum of a multivector quantity and a vector quantity. Both operands must have the same dimension. The vector contributes only to the grade-1 components.

Public class operator +(const ALeft: TCL3TrivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the sum of a trivector quantity and a vector quantity. Both operands must have the same dimension. The result is a full multivector quantity with grade-3 component from ALeft and grade-1 components from ARight.

Public class operator +(const ALeft: TCL3VecQuantity; const ARight: TCL3BivecQuantity): TCL3MultivecQuantity;

Returns the sum of a vector quantity and a bivector quantity. Both operands must have the same dimension. The result is a full multivector quantity with grade-1 components from ALeft and grade-2 components from ARight.

Public class operator +(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): TCL3MultivecQuantity;

Returns the sum of a vector quantity and a multivector quantity. Both operands must have the same dimension. The vector contributes only to the grade-1 components.

Public class operator +(const ALeft: TCL3VecQuantity; const ARight: TCL3TrivecQuantity): TCL3MultivecQuantity;

Returns the sum of a vector quantity and a trivector quantity. Both operands must have the same dimension. The result is a full multivector quantity with grade-1 components from ALeft and grade-3 component from ARight.

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

Returns the component-wise sum of two vector quantities. Both operands must have the same dimension. The result is a pure vector quantity.

Public class operator +(const ALeft: TCL3VecQuantity; const ARight: TQuantity): TCL3MultivecQuantity;

Returns the sum of a vector quantity and a real quantity. Both operands must have the same dimension. The result is a full multivector quantity with m0 = ARight and the vector components of ALeft.

Public class operator +(const ALeft: TQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the sum of a real quantity and a vector quantity. Both operands must have the same dimension. The result is a full multivector quantity with m0 = ALeft and the vector components of ARight.

Public class operator -(const ALeft: TCL3BivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the difference of a bivector quantity and a vector quantity. Both operands must have the same dimension. The result is a full multivector quantity with grade-2 components from ALeft and negated grade-1 components from ARight.

Public class operator -(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the difference of a multivector quantity and a vector quantity. Both operands must have the same dimension. The vector contributes only to the grade-1 components.

Public class operator -(const ALeft: TCL3TrivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the difference of a trivector quantity and a vector quantity. Both operands must have the same dimension. The result is a full multivector quantity with grade-3 component from ALeft and negated grade-1 components from ARight.

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

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

Public class operator -(const ALeft: TCL3VecQuantity; const ARight: TCL3BivecQuantity): TCL3MultivecQuantity;

Returns the difference of a vector quantity and a bivector quantity. Both operands must have the same dimension. The result is a full multivector quantity with grade-1 components from ALeft and negated grade-2 components from ARight.

Public class operator -(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): TCL3MultivecQuantity;

Returns the difference of a vector quantity and a multivector quantity. Both operands must have the same dimension. The vector contributes only to the grade-1 components.

Public class operator -(const ALeft: TCL3VecQuantity; const ARight: TCL3TrivecQuantity): TCL3MultivecQuantity;

Returns the difference of a vector quantity and a trivector quantity. Both operands must have the same dimension. The result is a full multivector quantity with grade-1 components from ALeft and negated grade-3 component from ARight.

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

Returns the component-wise difference of two vector quantities. Both operands must have the same dimension. The result is a pure vector quantity.

Public class operator -(const ALeft: TCL3VecQuantity; const ARight: TQuantity): TCL3MultivecQuantity;

Returns the difference of a vector quantity and a real quantity. Both operands must have the same dimension. The result is a full multivector quantity with m0 = -ARight and the vector components of ALeft.

Public class operator -(const ALeft: TQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the difference of a real quantity and a vector quantity. Both operands must have the same dimension. The result is a full multivector quantity with m0 = ALeft and negated vector components of ARight.

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

Returns the geometric quotient of a dimensionless real scalar divided by a vector quantity: ALeft * ARight⁻¹. The inverse of a vector v is v⁻¹ = v / |v|². The resulting dimension is the inverse of ARight.

Public class operator /(const ALeft: TCL3BivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the geometric quotient of a bivector quantity divided by a vector quantity: ALeft * ARight⁻¹. The resulting dimension is the ratio of the two dimensions.

Public class operator /(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the geometric quotient of a multivector quantity divided by a vector quantity: ALeft * ARight⁻¹. The resulting dimension is the ratio of the two dimensions.

Public class operator /(const ALeft: TCL3TrivecQuantity; const ARight: TCL3VecQuantity): TCL3BivecQuantity;

Returns the geometric quotient of a trivector quantity divided by a vector quantity: ALeft * ARight⁻¹. Since e₁₂₃ · eᵢ⁻¹ = ±eⱼ∧eₖ, the result is a pure bivector quantity. The resulting dimension is the ratio of the two dimensions.

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

Returns the geometric quotient of a vector quantity divided by a dimensionless real scalar. Each component is divided by ARight. The dimension is preserved.

Public class operator /(const ALeft: TCL3VecQuantity; const ARight: TCL3BivecQuantity): TCL3MultivecQuantity;

Returns the geometric quotient of a vector quantity divided by a bivector quantity: ALeft * ARight⁻¹. The resulting dimension is the ratio of the two dimensions.

Public class operator /(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): TCL3MultivecQuantity;

Returns the geometric quotient of a vector quantity divided by a multivector quantity: ALeft * ARight⁻¹. The resulting dimension is the ratio of the two dimensions.

Public class operator /(const ALeft: TCL3VecQuantity; const ARight: TCL3TrivecQuantity): TCL3BivecQuantity;

Returns the geometric quotient of a vector quantity divided by a trivector quantity: ALeft * ARight⁻¹. Since eᵢ · e₁₂₃⁻¹ = ±eⱼ∧eₖ, the result is a pure bivector quantity. The resulting dimension is the ratio of the two dimensions.

Public class operator /(const ALeft, ARight: TCL3VecQuantity): TCL3MultivecQuantity;

Returns the geometric quotient of two vector quantities: ALeft * ARight⁻¹. The result is a mixed-grade element (scalar + bivector), hence a full TCL3MultivecQuantity. The resulting dimension is the ratio of the two dimensions.

Public class operator /(const ALeft: TCL3VecQuantity; const ARight: TQuantity): TCL3VecQuantity;

Returns the geometric quotient of a vector quantity divided by a real quantity scalar: ALeft * ARight⁻¹. The resulting dimension is the ratio of the two dimensions.

Public class operator /(const ALeft: TQuantity; const ARight: TCL3VecQuantity): TCL3VecQuantity;

Returns the geometric quotient of a real quantity scalar divided by a vector quantity: ALeft * ARight⁻¹. The resulting dimension is the ratio of the two dimensions.

Public class operator :=(const AValue: TCL3VecQuantity): TCL3MultivecQuantity;

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

Public class operator <>(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): boolean;

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

Public class operator <>(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): boolean;

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

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

Returns True if the two vector quantities differ in dimension or in any vector component.

Public class operator =(const ALeft: TCL3MultivecQuantity; const ARight: TCL3VecQuantity): boolean;

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

Public class operator =(const ALeft: TCL3VecQuantity; const ARight: TCL3MultivecQuantity): boolean;

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

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

Returns True if both vector quantities have the same dimension and all corresponding components are equal.


Generated by PasDoc 1.0.4.