Record TCL3Bivector

Unit

Declaration

type TCL3Bivector = record

Description

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

A bivector is expressed as: B = m12·e1∧e2 + m13·e1∧e3 + m23·e1∧e3

Geometrically, a bivector represents an oriented plane segment in R3. In Cl(3,0) the basis bivectors satisfy:

making bivectors analogous to quaternion basis elements i, j, k. The subalgebra of even-grade elements (scalars and bivectors) is in fact isomorphic to the quaternion algebra .

The geometric product of two bivectors produces a mixed-grade result (scalar + bivector), hence the return type TCL3Multivector. When combined with elements of other grades the result is always a full TCL3Multivector.

Overview

Methods

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

Description

Methods

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

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

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

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

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

Returns the geometric product of two bivectors. The result is a mixed-grade element (scalar + bivector), hence a full TCL3Multivector. For example: (e₁∧e₂)·(e₁∧e₂) = -1 and (e₁∧e₂)·(e₁∧e₃) = -e₂∧e₃.

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

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

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

Returns the geometric product of a bivector and a trivector. Since (e₁∧e₂)·(e₁∧e₂∧e₃) = e₃, the result mixes grades and is returned as a full TCL3Multivector.

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

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

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

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

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

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

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

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

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

Returns the component-wise sum of two bivectors. The result is a pure bivector.

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

Returns the sum of a bivector and a multivector. The bivector contributes only to the grade-2 components.

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

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

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

Returns the sum of a multivector and a bivector. The bivector contributes only to the grade-2 components.

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

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

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

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

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

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

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

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

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

Returns the component-wise difference of two bivectors. The result is a pure bivector.

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

Returns the difference of a bivector and a multivector. The bivector contributes only to the grade-2 components.

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

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

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

Returns the difference of a multivector and a bivector. The bivector contributes only to the grade-2 components.

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

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

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

Returns the geometric quotient of a real scalar divided by a bivector: ALeft / ARight. The inverse of a bivector B is 1/B = -B / |B|².

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

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

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

Returns the geometric quotient of two bivectors: ALeft / ARight. The result is a mixed-grade element, hence a full TCL3Multivector. The inverse of a bivector B is 1/B = -B / |B|² since B² ≤ 0 for pure bivectors in Cl(3,0).

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

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

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

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

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

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

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

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

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

Implicit conversion from a bivector to a full multivector. All components of the result are zero except m12, m13, m23.

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

Implicit conversion from a multivector to a bivector. Returns only the grade-2 components m12, m13, m23. All other components are discarded.

Use with care: this conversion is only meaningful for pure-bivector multivectors.

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

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

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

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

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

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

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

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

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

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

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

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


Generated by PasDoc 1.0.4.