Type Alias SumExponents<A, B>
SumExponents: A extends 0 ? B extends 0 ? 0 : B extends 1 ? 1 : B extends -1 ? -1 : B extends 2 ? 2 : B extends -2 ? -2 : B extends 3 ? 3 : B extends -3 ? -3 : B extends 4 ? 4 : B extends -4 ? -4 : (...)
extends (...)
? (...)
: (...)
: A extends 1 ? B extends 0 ? 1 : B extends 1 ? 2 : B extends -1 ? 0 : B extends 2 ? 3 : B extends -2 ? -1 : B extends 3 ? 4 : B extends -3 ? -2 : B extends 4 ? 5 : (...)
extends (...)
? (...)
: (...)
: A extends -1 ? B extends 0 ? -1 : B extends 1 ? 0 : B extends -1 ? -2 : B extends 2 ? 1 : B extends -2 ? -3 : B extends 3 ? 2 : B extends -3 ? -4 : (...)
extends (...)
? (...)
: (...)
: A extends 2 ? B extends 0 ? 2 : B extends 1 ? 3 : B extends -1 ? 1 : B extends 2 ? 4 : B extends -2 ? 0 : B extends 3 ? 5 : (...)
extends (...)
? (...)
: (...)
: A extends -2 ? B extends 0 ? -2 : B extends 1 ? -1 : B extends -1 ? -3 : B extends 2 ? 0 : B extends -2 ? -4 : (...)
extends (...)
? (...)
: (...)
: A extends 3 ? B extends 0 ? 3 : B extends 1 ? 4 : B extends -1 ? 2 : B extends 2 ? 5 : (...)
extends (...)
? (...)
: (...)
: A extends -3 ? B extends 0 ? -3 : B extends 1 ? -2 : B extends -1 ? -4 : (...)
extends (...)
? (...)
: (...)
: A extends 4 ? B extends 0 ? 4 : B extends 1 ? 5 : (...)
extends (...)
? (...)
: (...)
: A extends -4 ? B extends 0 ? -4 : (...)
extends (...)
? (...)
: (...)
: A extends 5 ? (...)
extends (...)
? (...)
: (...)
: (...)
extends (...)
? (...)
: (...)