CloudCastle UnitConvertor

Dimension
in package
implements JsonSerializable, Stringable

FinalYes

Вектор физической размерности — иммутабельная алгебра экспонент базовых осей.

Оси: 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
string

divide()

Частное размерностей: экспоненты вычитаются.

public divide(self $other) : self
Parameters
$other : self
Return values
self

equals()

Совпадают ли размерности полностью.

public equals(self $other) : bool
Parameters
$other : self
Return values
bool

exponents()

Карта экспонент по осям (только ненулевые, в каноническом порядке).

public exponents() : array<string, int>
Return values
array<string, int>

fromSignature()

Восстанавливает размерность из канонической сигнатуры вида «L.T-1».

public static fromSignature(string $signature) : self
Parameters
$signature : string
Tags
throws
MathException

при некорректной сигнатуре

Return values
self

invert()

Обратная размерность (все экспоненты меняют знак).

public invert() : self
Return values
self

isScalar()

Является ли размерность безразмерной (скалярной).

public isScalar() : bool
Return values
bool

jsonSerialize()

Сериализация в JSON — каноническая сигнатура.

public jsonSerialize() : string
Attributes
#[Override]
Return values
string

multiply()

Произведение размерностей: экспоненты складываются.

public multiply(self $other) : self
Parameters
$other : self
Return values
self

of()

Создаёт размерность из карты экспонент; нулевые экспоненты отбрасываются.

public static of(array<string, int> $exponents) : self
Parameters
$exponents : array<string, int>

ось (L|M|T|I|K|N|J|D|A) → экспонента

Tags
throws
MathException

при неизвестной оси или экспоненте вне допустимого диапазона

Return values
self

pow()

Возведение размерности в целую степень.

public pow(int $power) : self
Parameters
$power : int
Return values
self

scalar()

Безразмерная (скалярная) размерность.

public static scalar() : self
Return values
self

siCode()

ASCII-код производной СИ-единицы этой размерности: «m2*kg/s2».

public siCode() : string
Return values
string

signature()

Каноническая сигнатура: оси в фиксированном порядке, единичная экспонента опускается: «L», «L2», «L.T-1», «» для скаляра.

public signature() : string
Return values
string

siSymbol()

Отображаемый символ производной СИ-единицы: «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
Return values
string
On this page

Search results