Assemble a matrix from four blocks, laid out as
[[A₁₁, A₁₂], [A₂₁, A₂₂]]. The result is (n₁ + n₂) × (m₁ + m₂); Fin.addCases
routes each row/column index to the block it lands in.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Top-left block entry of fromBlocks.
Top-right block entry of fromBlocks.
Bottom-left block entry of fromBlocks.
Bottom-right block entry of fromBlocks.
Extract the top-left n₁ × m₁ block.
Equations
- M.toBlocks₁₁ = Hex.Matrix.ofFn fun (i : Fin n₁) (j : Fin m₁) => M[(Fin.castAdd n₂ i, Fin.castAdd m₂ j)]
Instances For
Extract the top-right n₁ × m₂ block.
Equations
- M.toBlocks₁₂ = Hex.Matrix.ofFn fun (i : Fin n₁) (j : Fin m₂) => M[(Fin.castAdd n₂ i, Fin.natAdd m₁ j)]
Instances For
Extract the bottom-left n₂ × m₁ block.
Equations
- M.toBlocks₂₁ = Hex.Matrix.ofFn fun (i : Fin n₂) (j : Fin m₁) => M[(Fin.natAdd n₁ i, Fin.castAdd m₂ j)]
Instances For
Extract the bottom-right n₂ × m₂ block.
Equations
- M.toBlocks₂₂ = Hex.Matrix.ofFn fun (i : Fin n₂) (j : Fin m₂) => M[(Fin.natAdd n₁ i, Fin.natAdd m₁ j)]
Instances For
Row Fin.castAdd n₂ i of an assembly is the concatenation of the two
top-block rows.
Row Fin.natAdd n₁ i of an assembly is the concatenation of the two
bottom-block rows.
Column Fin.castAdd m₂ j of an assembly is the concatenation of the two
left-block columns.
Column Fin.natAdd m₁ j of an assembly is the concatenation of the two
right-block columns.
Block decomposition of matrix multiplication. The product of two 2×2 block matrices is the assembly of the four quadrant products.