#### 16.4.1.7 Matrix Exponentiation Operator `**` ¶

The result of `A**B` is defined as follows when `A` is a square matrix and `B` is an integer scalar:

- For `B > 0`, `A**B` is `A*…*A`, where there are `B` ‘`A`’s. (PSPP implements this efficiently for large `B`, using exponentiation by squaring.)
- For `B < 0`, `A**B` is `INV(A**(-B))`.
- For `B = 0`, `A**B` is the identity matrix.

PSPP reports an error if `A` is not square or `B` is not an integer.

Examples:

`{2, 5; 1, 4}**3` | ⇒ | `{48, 165; 33, 114}`
`{2, 5; 1, 4}**0` | ⇒ | `{1, 0; 0, 1}`
`10*{4, 7; 2, 6}**-1` | ⇒ | `{6, -7; -2, 4}`