UNPKG

@fractorysolutions/safe-units

Version:
160 lines (159 loc) 2.77 kB
import { Exponent } from "./exponent"; export type MultiplyExponents<L extends Exponent, R extends Exponent> = MultiplyTable[L][R]; interface MultiplyTable { "-5": MultiplyByNeg5Table; "-4": MultiplyByNeg4Table; "-3": MultiplyByNeg3Table; "-2": MultiplyByNeg2Table; "-1": MultiplyByNeg1Table; "0": MultiplyByZeroTable; "1": MultiplyByPos1Table; "2": MultiplyByPos2Table; "3": MultiplyByPos3Table; "4": MultiplyByPos4Table; "5": MultiplyByPos5Table; } interface MultiplyByNeg5Table { "-5": never; "-4": never; "-3": never; "-2": never; "-1": "5"; "0": "0"; "1": "-5"; "2": never; "3": never; "4": never; "5": never; } interface MultiplyByNeg4Table { "-5": never; "-4": never; "-3": never; "-2": never; "-1": "4"; "0": "0"; "1": "-4"; "2": never; "3": never; "4": never; "5": never; } interface MultiplyByNeg3Table { "-5": never; "-4": never; "-3": never; "-2": never; "-1": "3"; "0": "0"; "1": "-3"; "2": never; "3": never; "4": never; "5": never; } interface MultiplyByNeg2Table { "-5": never; "-4": never; "-3": never; "-2": "4"; "-1": "2"; "0": "0"; "1": "-2"; "2": "-4"; "3": never; "4": never; "5": never; } interface MultiplyByNeg1Table { "-5": "5"; "-4": "4"; "-3": "3"; "-2": "2"; "-1": "1"; "0": "0"; "1": "-1"; "2": "-2"; "3": "-3"; "4": "-4"; "5": "-5"; } interface MultiplyByZeroTable { "-5": "0"; "-4": "0"; "-3": "0"; "-2": "0"; "-1": "0"; "0": "0"; "1": "0"; "2": "0"; "3": "0"; "4": "0"; "5": "0"; } interface MultiplyByPos1Table { "-5": "-5"; "-4": "-4"; "-3": "-3"; "-2": "-2"; "-1": "-1"; "0": "0"; "1": "1"; "2": "2"; "3": "3"; "4": "4"; "5": "5"; } interface MultiplyByPos2Table { "-5": never; "-4": never; "-3": never; "-2": "-4"; "-1": "-2"; "0": "0"; "1": "2"; "2": "4"; "3": never; "4": never; "5": never; } interface MultiplyByPos3Table { "-5": never; "-4": never; "-3": never; "-2": never; "-1": "-3"; "0": "0"; "1": "3"; "2": never; "3": never; "4": never; "5": never; } interface MultiplyByPos4Table { "-5": never; "-4": never; "-3": never; "-2": never; "-1": "-4"; "0": "0"; "1": "4"; "2": never; "3": never; "4": never; "5": never; } interface MultiplyByPos5Table { "-5": never; "-4": never; "-3": never; "-2": never; "-1": "-5"; "0": "0"; "1": "5"; "2": never; "3": never; "4": never; "5": never; } export {};