Handling 4-block oriented matrix product and inversion in Maxima
===

I am concerned in finding symbolic solutions and expansion to matrix products and inversions. Actually, it is something I would like to define by myself. I will explain myself.

I want to create a "mathematical" object that i will call `B4MAT` which represents a square matrix whose elements are 4 square half-sized matrices. So I want to define the product between two `B4MAT` giving me back another `B4MAT` whose components are calculated by applying product rules, but among matrices, not scalars.

Furthermore, and this is a very important point, consider [Blockwise Inversion][1] of a matrix. I want to define inversion of a `B4MAT` as an operation returning me another `B4MAT` whose elements are calculated using the blockwise inversion algorithm in the link.

How to achieve this in Maxima?

Thankyou


  [1]: http://en.wikipedia.org/wiki/Invertible_matrix#Blockwise_inversion