Dimension
in package
implements
JsonSerializable, Stringable
Вектор физической размерности — иммутабельная алгебра экспонент базовых осей.
Оси: L — длина, M — масса, T — время, I — сила тока, K — температура, N — количество вещества, J — сила света, D — информация (бит), A — плоский угол.
Умножение и деление величин складывает и вычитает экспоненты, что позволяет автоматически выводить размерность результата: L¹ / T¹ = скорость (L.T-1).
Table of Contents
Interfaces
- JsonSerializable
- Stringable
Constants
- AXES : mixed = ['L', 'M', 'T', 'I', 'K', 'N', 'J', 'D', 'A']
- Канонический порядок осей в сигнатуре.
- MAX_EXPONENT : mixed = 32
- Максимальная абсолютная экспонента оси — защита от переполнения при pow().
Properties
- $exponents : array<string|int, mixed>
Methods
- __toString() : string
- Сигнатура как строковое представление.
- divide() : self
- Частное размерностей: экспоненты вычитаются.
- equals() : bool
- Совпадают ли размерности полностью.
- exponents() : array<string, int>
- Карта экспонент по осям (только ненулевые, в каноническом порядке).
- fromSignature() : self
- Восстанавливает размерность из канонической сигнатуры вида «L.T-1».
- invert() : self
- Обратная размерность (все экспоненты меняют знак).
- isScalar() : bool
- Является ли размерность безразмерной (скалярной).
- jsonSerialize() : string
- Сериализация в JSON — каноническая сигнатура.
- multiply() : self
- Произведение размерностей: экспоненты складываются.
- of() : self
- Создаёт размерность из карты экспонент; нулевые экспоненты отбрасываются.
- pow() : self
- Возведение размерности в целую степень.
- scalar() : self
- Безразмерная (скалярная) размерность.
- siCode() : string
- ASCII-код производной СИ-единицы этой размерности: «m2*kg/s2».
- signature() : string
- Каноническая сигнатура: оси в фиксированном порядке, единичная экспонента опускается: «L», «L2», «L.T-1», «» для скаляра.
- siSymbol() : string
- Отображаемый символ производной СИ-единицы: «m2·kg/s2».
- __construct() : mixed
- siNotation() : string
- Сборка нотации производной СИ-единицы из экспонент.
Constants
AXES
Канонический порядок осей в сигнатуре.
private
mixed
AXES
= ['L', 'M', 'T', 'I', 'K', 'N', 'J', 'D', 'A']
MAX_EXPONENT
Максимальная абсолютная экспонента оси — защита от переполнения при pow().
private
mixed
MAX_EXPONENT
= 32
Properties
$exponents read-only
private
array<string|int, mixed>
$exponents
Methods
__toString()
Сигнатура как строковое представление.
public
__toString() : string
Attributes
- #[Override]
Return values
stringdivide()
Частное размерностей: экспоненты вычитаются.
public
divide(self $other) : self
Parameters
- $other : self
Return values
selfequals()
Совпадают ли размерности полностью.
public
equals(self $other) : bool
Parameters
- $other : self
Return values
boolexponents()
Карта экспонент по осям (только ненулевые, в каноническом порядке).
public
exponents() : array<string, int>
Return values
array<string, int>fromSignature()
Восстанавливает размерность из канонической сигнатуры вида «L.T-1».
public
static fromSignature(string $signature) : self
Parameters
- $signature : string
Tags
Return values
selfinvert()
Обратная размерность (все экспоненты меняют знак).
public
invert() : self
Return values
selfisScalar()
Является ли размерность безразмерной (скалярной).
public
isScalar() : bool
Return values
booljsonSerialize()
Сериализация в JSON — каноническая сигнатура.
public
jsonSerialize() : string
Attributes
- #[Override]
Return values
stringmultiply()
Произведение размерностей: экспоненты складываются.
public
multiply(self $other) : self
Parameters
- $other : self
Return values
selfof()
Создаёт размерность из карты экспонент; нулевые экспоненты отбрасываются.
public
static of(array<string, int> $exponents) : self
Parameters
- $exponents : array<string, int>
-
ось (L|M|T|I|K|N|J|D|A) → экспонента
Tags
Return values
selfpow()
Возведение размерности в целую степень.
public
pow(int $power) : self
Parameters
- $power : int
Return values
selfscalar()
Безразмерная (скалярная) размерность.
public
static scalar() : self
Return values
selfsiCode()
ASCII-код производной СИ-единицы этой размерности: «m2*kg/s2».
public
siCode() : string
Return values
stringsignature()
Каноническая сигнатура: оси в фиксированном порядке, единичная экспонента опускается: «L», «L2», «L.T-1», «» для скаляра.
public
signature() : string
Return values
stringsiSymbol()
Отображаемый символ производной СИ-единицы: «m2·kg/s2».
public
siSymbol() : string
Return values
string__construct()
private
__construct(array<string, int> $exponents) : mixed
Parameters
- $exponents : array<string, int>
-
ось → экспонента; без нулевых значений, в каноническом порядке осей
siNotation()
Сборка нотации производной СИ-единицы из экспонент.
private
siNotation(string $mulSign, string $divSign) : string
Parameters
- $mulSign : string
- $divSign : string