Record TFactoredUnit

Unit

Declaration

type TFactoredUnit = record

Description

Represents a physical unit of measurement with a conversion factor relative to the corresponding SI base unit.

TFactoredUnit extends the role of TUnit to cover units that are not SI base or derived units but are related to them by a fixed numerical factor stored in FFactor. Examples include kilometres (FFactor = 1000), degrees (FFactor = π/180), electronvolts, and similar.

When multiplying or dividing a numerical value by a TFactoredUnit, the value is automatically scaled by FFactor so that the resulting TQuantity is always expressed in SI base units internally.

Example idiomatic usage: var d: TQuantity := 5.0 * Kilometre; // stores 5000.0 m internally var a: TQuantity := 90.0 * Degree; // stores π/2 rad internally

When the symbol ADIMOFF is defined, all operators that accept or return quantity types are disabled and raw numerical types are used directly.

Overview

Methods

Public class operator *(const AValue: double; const ASelf: TFactoredUnit): TQuantity; inline;
Public class operator *(const AMatrix: TC2Matrix; const ASelf: TFactoredUnit): TC2MatrixQuantity; inline;
Public class operator *(const AQuantity: TC2MatrixQuantity; const ASelf: TFactoredUnit): TC2MatrixQuantity; inline;
Public class operator *(const AQuantity: TC2VecQuantity; const ASelf: TFactoredUnit): TC2VecQuantity; inline;
Public class operator *(const AVector: TC2Vector; const ASelf: TFactoredUnit): TC2VecQuantity; inline;
Public class operator *(const AMatrix: TC3Matrix; const ASelf: TFactoredUnit): TC3MatrixQuantity; inline;
Public class operator *(const AQuantity: TC3MatrixQuantity; const ASelf: TFactoredUnit): TC3MatrixQuantity; inline;
Public class operator *(const AQuantity: TC3VecQuantity; const ASelf: TFactoredUnit): TC3VecQuantity; inline;
Public class operator *(const AVector: TC3Vector; const ASelf: TFactoredUnit): TC3VecQuantity; inline;
Public class operator *(const AMatrix: TC4Matrix; const ASelf: TFactoredUnit): TC4MatrixQuantity; inline;
Public class operator *(const AQuantity: TC4MatrixQuantity; const ASelf: TFactoredUnit): TC4MatrixQuantity; inline;
Public class operator *(const AQuantity: TC4VecQuantity; const ASelf: TFactoredUnit): TC4VecQuantity; inline;
Public class operator *(const AVector: TC4Vector; const ASelf: TFactoredUnit): TC4VecQuantity; inline;
Public class operator *(const AQuantity: TCL3BivecQuantity; const ASelf: TFactoredUnit): TCL3BivecQuantity; inline;
Public class operator *(const AQuantity: TCL3Bivector; const ASelf: TFactoredUnit): TCL3BivecQuantity; inline;
Public class operator *(const AQuantity: TCL3MultivecQuantity; const ASelf: TFactoredUnit): TCL3MultivecQuantity; inline;
Public class operator *(const AQuantity: TCL3Multivector; const ASelf: TFactoredUnit): TCL3MultivecQuantity; inline;
Public class operator *(const AQuantity: TCL3TrivecQuantity; const ASelf: TFactoredUnit): TCL3TrivecQuantity; inline;
Public class operator *(const AQuantity: TCL3Trivector; const ASelf: TFactoredUnit): TCL3TrivecQuantity; inline;
Public class operator *(const AQuantity: TCL3VecQuantity; const ASelf: TFactoredUnit): TCL3VecQuantity; inline;
Public class operator *(const AQuantity: TCL3Vector; const ASelf: TFactoredUnit): TCL3VecQuantity; inline;
Public class operator *(const AValue: TComplex; const ASelf: TFactoredUnit): TComplexQuantity; inline;
Public class operator *(const AQuantity: TComplexQuantity; const ASelf: TFactoredUnit): TComplexQuantity; inline;
Public class operator *(const AQuantity: TQuantity; const ASelf: TFactoredUnit): TQuantity; inline;
Public class operator *(const AMatrix: TR2Matrix; const ASelf: TFactoredUnit): TR2MatrixQuantity; inline;
Public class operator *(const AQuantity: TR2MatrixQuantity; const ASelf: TFactoredUnit): TR2MatrixQuantity; inline;
Public class operator *(const AQuantity: TR2VecQuantity; const ASelf: TFactoredUnit): TR2VecQuantity; inline;
Public class operator *(const AVector: TR2Vector; const ASelf: TFactoredUnit): TR2VecQuantity; inline;
Public class operator *(const AMatrix: TR3Matrix; const ASelf: TFactoredUnit): TR3MatrixQuantity; inline;
Public class operator *(const AQuantity: TR3MatrixQuantity; const ASelf: TFactoredUnit): TR3MatrixQuantity; inline;
Public class operator *(const AQuantity: TR3VecQuantity; const ASelf: TFactoredUnit): TR3VecQuantity; inline;
Public class operator *(const AVector: TR3Vector; const ASelf: TFactoredUnit): TR3VecQuantity; inline;
Public class operator *(const AMatrix: TR4Matrix; const ASelf: TFactoredUnit): TR4MatrixQuantity; inline;
Public class operator *(const AQuantity: TR4MatrixQuantity; const ASelf: TFactoredUnit): TR4MatrixQuantity; inline;
Public class operator *(const AQuantity: TR4VecQuantity; const ASelf: TFactoredUnit): TR4VecQuantity; inline;
Public class operator *(const AVector: TR4Vector; const ASelf: TFactoredUnit): TR4VecQuantity; inline;
Public class operator /(const AValue: double; const ASelf: TFactoredUnit): TQuantity; inline;
Public class operator /(const AMatrix: TC2Matrix; const ASelf: TFactoredUnit): TC2MatrixQuantity; inline;
Public class operator /(const AQuantity: TC2MatrixQuantity; const ASelf: TFactoredUnit): TC2MatrixQuantity; inline;
Public class operator /(const AQuantity: TC2VecQuantity; const ASelf: TFactoredUnit): TC2VecQuantity; inline;
Public class operator /(const AVector: TC2Vector; const ASelf: TFactoredUnit): TC2VecQuantity; inline;
Public class operator /(const AMatrix: TC3Matrix; const ASelf: TFactoredUnit): TC3MatrixQuantity; inline;
Public class operator /(const AQuantity: TC3MatrixQuantity; const ASelf: TFactoredUnit): TC3MatrixQuantity; inline;
Public class operator /(const AQuantity: TC3VecQuantity; const ASelf: TFactoredUnit): TC3VecQuantity; inline;
Public class operator /(const AVector: TC3Vector; const ASelf: TFactoredUnit): TC3VecQuantity; inline;
Public class operator /(const AMatrix: TC4Matrix; const ASelf: TFactoredUnit): TC4MatrixQuantity; inline;
Public class operator /(const AQuantity: TC4MatrixQuantity; const ASelf: TFactoredUnit): TC4MatrixQuantity; inline;
Public class operator /(const AQuantity: TC4VecQuantity; const ASelf: TFactoredUnit): TC4VecQuantity; inline;
Public class operator /(const AVector: TC4Vector; const ASelf: TFactoredUnit): TC4VecQuantity; inline;
Public class operator /(const AQuantity: TCL3BivecQuantity; const ASelf: TFactoredUnit): TCL3BivecQuantity; inline;
Public class operator /(const AQuantity: TCL3Bivector; const ASelf: TFactoredUnit): TCL3BivecQuantity; inline;
Public class operator /(const AQuantity: TCL3MultivecQuantity; const ASelf: TFactoredUnit): TCL3MultivecQuantity; inline;
Public class operator /(const AQuantity: TCL3Multivector; const ASelf: TFactoredUnit): TCL3MultivecQuantity; inline;
Public class operator /(const AQuantity: TCL3TrivecQuantity; const ASelf: TFactoredUnit): TCL3TrivecQuantity; inline;
Public class operator /(const AQuantity: TCL3Trivector; const ASelf: TFactoredUnit): TCL3TrivecQuantity; inline;
Public class operator /(const AQuantity: TCL3VecQuantity; const ASelf: TFactoredUnit): TCL3VecQuantity; inline;
Public class operator /(const AQuantity: TCL3Vector; const ASelf: TFactoredUnit): TCL3VecQuantity; inline;
Public class operator /(const AValue: TComplex; const ASelf: TFactoredUnit): TComplexQuantity; inline;
Public class operator /(const AQuantity: TComplexQuantity; const ASelf: TFactoredUnit): TComplexQuantity; inline;
Public class operator /(const AQuantity: TQuantity; const ASelf: TFactoredUnit): TQuantity; inline;
Public class operator /(const AMatrix: TR2Matrix; const ASelf: TFactoredUnit): TR2MatrixQuantity; inline;
Public class operator /(const AQuantity: TR2MatrixQuantity; const ASelf: TFactoredUnit): TR2MatrixQuantity; inline;
Public class operator /(const AQuantity: TR2VecQuantity; const ASelf: TFactoredUnit): TR2VecQuantity; inline;
Public class operator /(const AVector: TR2Vector; const ASelf: TFactoredUnit): TR2VecQuantity; inline;
Public class operator /(const AMatrix: TR3Matrix; const ASelf: TFactoredUnit): TR3MatrixQuantity; inline;
Public class operator /(const AQuantity: TR3MatrixQuantity; const ASelf: TFactoredUnit): TR3MatrixQuantity; inline;
Public class operator /(const AQuantity: TR3VecQuantity; const ASelf: TFactoredUnit): TR3VecQuantity; inline;
Public class operator /(const AVector: TR3Vector; const ASelf: TFactoredUnit): TR3VecQuantity; inline;
Public class operator /(const AMatrix: TR4Matrix; const ASelf: TFactoredUnit): TR4MatrixQuantity; inline;
Public class operator /(const AQuantity: TR4MatrixQuantity; const ASelf: TFactoredUnit): TR4MatrixQuantity; inline;
Public class operator /(const AQuantity: TR4VecQuantity; const ASelf: TFactoredUnit): TR4VecQuantity; inline;
Public class operator /(const AVector: TR4Vector; const ASelf: TFactoredUnit): TR4VecQuantity; inline;

Description

Methods

Public class operator *(const AValue: double; const ASelf: TFactoredUnit): TQuantity; inline;

Returns the real quantity AValue * FFactor [dim]. The value is converted to SI base units using FFactor.

Public class operator *(const AMatrix: TC2Matrix; const ASelf: TFactoredUnit): TC2MatrixQuantity; inline;

Returns the 2×2 complex matrix quantity AMatrix * FFactor [dim].

Public class operator *(const AQuantity: TC2MatrixQuantity; const ASelf: TFactoredUnit): TC2MatrixQuantity; inline;

Returns the 2×2 complex matrix quantity rescaled by FFactor.

Public class operator *(const AQuantity: TC2VecQuantity; const ASelf: TFactoredUnit): TC2VecQuantity; inline;

Returns the 2-component complex vector quantity rescaled by FFactor.

Public class operator *(const AVector: TC2Vector; const ASelf: TFactoredUnit): TC2VecQuantity; inline;

Returns the 2-component complex vector quantity AVector * FFactor [dim].

Public class operator *(const AMatrix: TC3Matrix; const ASelf: TFactoredUnit): TC3MatrixQuantity; inline;

Returns the 3×3 complex matrix quantity AMatrix * FFactor [dim].

Public class operator *(const AQuantity: TC3MatrixQuantity; const ASelf: TFactoredUnit): TC3MatrixQuantity; inline;

Returns the 3×3 complex matrix quantity rescaled by FFactor.

Public class operator *(const AQuantity: TC3VecQuantity; const ASelf: TFactoredUnit): TC3VecQuantity; inline;

Returns the 3-component complex vector quantity rescaled by FFactor.

Public class operator *(const AVector: TC3Vector; const ASelf: TFactoredUnit): TC3VecQuantity; inline;

Returns the 3-component complex vector quantity AVector * FFactor [dim].

Public class operator *(const AMatrix: TC4Matrix; const ASelf: TFactoredUnit): TC4MatrixQuantity; inline;

Returns the 4×4 complex matrix quantity AMatrix * FFactor [dim].

Public class operator *(const AQuantity: TC4MatrixQuantity; const ASelf: TFactoredUnit): TC4MatrixQuantity; inline;

Returns the 4×4 complex matrix quantity rescaled by FFactor.

Public class operator *(const AQuantity: TC4VecQuantity; const ASelf: TFactoredUnit): TC4VecQuantity; inline;

Returns the 4-component complex vector quantity rescaled by FFactor.

Public class operator *(const AVector: TC4Vector; const ASelf: TFactoredUnit): TC4VecQuantity; inline;

Returns the 4-component complex vector quantity AVector * FFactor [dim].

Public class operator *(const AQuantity: TCL3BivecQuantity; const ASelf: TFactoredUnit): TCL3BivecQuantity; inline;

Returns the Cl(3,0) bivector quantity rescaled by FFactor.

Public class operator *(const AQuantity: TCL3Bivector; const ASelf: TFactoredUnit): TCL3BivecQuantity; inline;

Returns the Cl(3,0) bivector quantity AQuantity * FFactor [dim].

Public class operator *(const AQuantity: TCL3MultivecQuantity; const ASelf: TFactoredUnit): TCL3MultivecQuantity; inline;

Returns the Cl(3,0) multivector quantity rescaled by FFactor.

Public class operator *(const AQuantity: TCL3Multivector; const ASelf: TFactoredUnit): TCL3MultivecQuantity; inline;

Returns the Cl(3,0) multivector quantity AQuantity * FFactor [dim].

Public class operator *(const AQuantity: TCL3TrivecQuantity; const ASelf: TFactoredUnit): TCL3TrivecQuantity; inline;

Returns the Cl(3,0) trivector quantity rescaled by FFactor.

Public class operator *(const AQuantity: TCL3Trivector; const ASelf: TFactoredUnit): TCL3TrivecQuantity; inline;

Returns the Cl(3,0) trivector quantity AQuantity * FFactor [dim].

Public class operator *(const AQuantity: TCL3VecQuantity; const ASelf: TFactoredUnit): TCL3VecQuantity; inline;

Returns the Cl(3,0) vector quantity rescaled by FFactor.

Public class operator *(const AQuantity: TCL3Vector; const ASelf: TFactoredUnit): TCL3VecQuantity; inline;

Returns the Cl(3,0) vector quantity AQuantity * FFactor [dim].

Public class operator *(const AValue: TComplex; const ASelf: TFactoredUnit): TComplexQuantity; inline;

Returns the complex quantity AValue * FFactor [dim]. Each component is scaled by FFactor.

Public class operator *(const AQuantity: TComplexQuantity; const ASelf: TFactoredUnit): TComplexQuantity; inline;

Returns the complex quantity with dimension and value rescaled by FFactor.

Public class operator *(const AQuantity: TQuantity; const ASelf: TFactoredUnit): TQuantity; inline;

Returns the real quantity with dimension and value rescaled by FFactor. Used for unit conversion between factored units: 5.0*km * (1/Mile) → distance in miles.

Public class operator *(const AMatrix: TR2Matrix; const ASelf: TFactoredUnit): TR2MatrixQuantity; inline;

Returns the 2×2 real matrix quantity AMatrix * FFactor [dim].

Public class operator *(const AQuantity: TR2MatrixQuantity; const ASelf: TFactoredUnit): TR2MatrixQuantity; inline;

Returns the 2×2 real matrix quantity rescaled by FFactor.

Public class operator *(const AQuantity: TR2VecQuantity; const ASelf: TFactoredUnit): TR2VecQuantity; inline;

Returns the 2-component real vector quantity rescaled by FFactor.

Public class operator *(const AVector: TR2Vector; const ASelf: TFactoredUnit): TR2VecQuantity; inline;

Returns the 2-component real vector quantity AVector * FFactor [dim].

Public class operator *(const AMatrix: TR3Matrix; const ASelf: TFactoredUnit): TR3MatrixQuantity; inline;

Returns the 3×3 real matrix quantity AMatrix * FFactor [dim].

Public class operator *(const AQuantity: TR3MatrixQuantity; const ASelf: TFactoredUnit): TR3MatrixQuantity; inline;

Returns the 3×3 real matrix quantity rescaled by FFactor.

Public class operator *(const AQuantity: TR3VecQuantity; const ASelf: TFactoredUnit): TR3VecQuantity; inline;

Returns the 3-component real vector quantity rescaled by FFactor.

Public class operator *(const AVector: TR3Vector; const ASelf: TFactoredUnit): TR3VecQuantity; inline;

Returns the 3-component real vector quantity AVector * FFactor [dim].

Public class operator *(const AMatrix: TR4Matrix; const ASelf: TFactoredUnit): TR4MatrixQuantity; inline;

Returns the 4×4 real matrix quantity AMatrix * FFactor [dim].

Public class operator *(const AQuantity: TR4MatrixQuantity; const ASelf: TFactoredUnit): TR4MatrixQuantity; inline;

Returns the 4×4 real matrix quantity rescaled by FFactor.

Public class operator *(const AQuantity: TR4VecQuantity; const ASelf: TFactoredUnit): TR4VecQuantity; inline;

Returns the 4-component real vector quantity rescaled by FFactor.

Public class operator *(const AVector: TR4Vector; const ASelf: TFactoredUnit): TR4VecQuantity; inline;

Returns the 4-component real vector quantity AVector * FFactor [dim].

Public class operator /(const AValue: double; const ASelf: TFactoredUnit): TQuantity; inline;

Returns the real quantity AValue / FFactor [dim⁻¹]. The value is converted to SI base units using FFactor.

Public class operator /(const AMatrix: TC2Matrix; const ASelf: TFactoredUnit): TC2MatrixQuantity; inline;

Returns the 2×2 complex matrix quantity AMatrix / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TC2MatrixQuantity; const ASelf: TFactoredUnit): TC2MatrixQuantity; inline;

Returns the 2×2 complex matrix quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TC2VecQuantity; const ASelf: TFactoredUnit): TC2VecQuantity; inline;

Returns the 2-component complex vector quantity rescaled by 1/FFactor.

Public class operator /(const AVector: TC2Vector; const ASelf: TFactoredUnit): TC2VecQuantity; inline;

Returns the 2-component complex vector quantity AVector / FFactor [dim⁻¹].

Public class operator /(const AMatrix: TC3Matrix; const ASelf: TFactoredUnit): TC3MatrixQuantity; inline;

Returns the 3×3 complex matrix quantity AMatrix / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TC3MatrixQuantity; const ASelf: TFactoredUnit): TC3MatrixQuantity; inline;

Returns the 3×3 complex matrix quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TC3VecQuantity; const ASelf: TFactoredUnit): TC3VecQuantity; inline;

Returns the 3-component complex vector quantity rescaled by 1/FFactor.

Public class operator /(const AVector: TC3Vector; const ASelf: TFactoredUnit): TC3VecQuantity; inline;

Returns the 3-component complex vector quantity AVector / FFactor [dim⁻¹].

Public class operator /(const AMatrix: TC4Matrix; const ASelf: TFactoredUnit): TC4MatrixQuantity; inline;

Returns the 4×4 complex matrix quantity AMatrix / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TC4MatrixQuantity; const ASelf: TFactoredUnit): TC4MatrixQuantity; inline;

Returns the 4×4 complex matrix quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TC4VecQuantity; const ASelf: TFactoredUnit): TC4VecQuantity; inline;

Returns the 4-component complex vector quantity rescaled by 1/FFactor.

Public class operator /(const AVector: TC4Vector; const ASelf: TFactoredUnit): TC4VecQuantity; inline;

Returns the 4-component complex vector quantity AVector / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TCL3BivecQuantity; const ASelf: TFactoredUnit): TCL3BivecQuantity; inline;

Returns the Cl(3,0) bivector quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TCL3Bivector; const ASelf: TFactoredUnit): TCL3BivecQuantity; inline;

Returns the Cl(3,0) bivector quantity AQuantity / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TCL3MultivecQuantity; const ASelf: TFactoredUnit): TCL3MultivecQuantity; inline;

Returns the Cl(3,0) multivector quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TCL3Multivector; const ASelf: TFactoredUnit): TCL3MultivecQuantity; inline;

Returns the Cl(3,0) multivector quantity AQuantity / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TCL3TrivecQuantity; const ASelf: TFactoredUnit): TCL3TrivecQuantity; inline;

Returns the Cl(3,0) trivector quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TCL3Trivector; const ASelf: TFactoredUnit): TCL3TrivecQuantity; inline;

Returns the Cl(3,0) trivector quantity AQuantity / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TCL3VecQuantity; const ASelf: TFactoredUnit): TCL3VecQuantity; inline;

Returns the Cl(3,0) vector quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TCL3Vector; const ASelf: TFactoredUnit): TCL3VecQuantity; inline;

Returns the Cl(3,0) vector quantity AQuantity / FFactor [dim⁻¹].

Public class operator /(const AValue: TComplex; const ASelf: TFactoredUnit): TComplexQuantity; inline;

Returns the complex quantity AValue / FFactor [dim⁻¹]. Each component is scaled by 1/FFactor.

Public class operator /(const AQuantity: TComplexQuantity; const ASelf: TFactoredUnit): TComplexQuantity; inline;

Returns the complex quantity with dimension and value rescaled by 1/FFactor.

Public class operator /(const AQuantity: TQuantity; const ASelf: TFactoredUnit): TQuantity; inline;

Returns the real quantity with dimension and value rescaled by 1/FFactor. Used for unit conversion: 5000.0*m / km → 5.0.

Public class operator /(const AMatrix: TR2Matrix; const ASelf: TFactoredUnit): TR2MatrixQuantity; inline;

Returns the 2×2 real matrix quantity AMatrix / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TR2MatrixQuantity; const ASelf: TFactoredUnit): TR2MatrixQuantity; inline;

Returns the 2×2 real matrix quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TR2VecQuantity; const ASelf: TFactoredUnit): TR2VecQuantity; inline;

Returns the 2-component real vector quantity rescaled by 1/FFactor.

Public class operator /(const AVector: TR2Vector; const ASelf: TFactoredUnit): TR2VecQuantity; inline;

Returns the 2-component real vector quantity AVector / FFactor [dim⁻¹].

Public class operator /(const AMatrix: TR3Matrix; const ASelf: TFactoredUnit): TR3MatrixQuantity; inline;

Returns the 3×3 real matrix quantity AMatrix / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TR3MatrixQuantity; const ASelf: TFactoredUnit): TR3MatrixQuantity; inline;

Returns the 3×3 real matrix quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TR3VecQuantity; const ASelf: TFactoredUnit): TR3VecQuantity; inline;

Returns the 3-component real vector quantity rescaled by 1/FFactor.

Public class operator /(const AVector: TR3Vector; const ASelf: TFactoredUnit): TR3VecQuantity; inline;

Returns the 3-component real vector quantity AVector / FFactor [dim⁻¹].

Public class operator /(const AMatrix: TR4Matrix; const ASelf: TFactoredUnit): TR4MatrixQuantity; inline;

Returns the 4×4 real matrix quantity AMatrix / FFactor [dim⁻¹].

Public class operator /(const AQuantity: TR4MatrixQuantity; const ASelf: TFactoredUnit): TR4MatrixQuantity; inline;

Returns the 4×4 real matrix quantity rescaled by 1/FFactor.

Public class operator /(const AQuantity: TR4VecQuantity; const ASelf: TFactoredUnit): TR4VecQuantity; inline;

Returns the 4-component real vector quantity rescaled by 1/FFactor.

Public class operator /(const AVector: TR4Vector; const ASelf: TFactoredUnit): TR4VecQuantity; inline;

Returns the 4-component real vector quantity AVector / FFactor [dim⁻¹].


Generated by PasDoc 1.0.4.