Currently, assigning to an invalid location (outside band or triangular component) in a mutable matrix will throw an assertion.
Should be able to configure via build setting at compile time:
strict asserts on assigning a value:
lazy assignment lets you assign anywhere in the matrix and invalidate state accordingly:
This would also convert the internal representation to conventional if the symmetry/band/triangular property is violated.