// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.

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;
}
