I want to make calculations with matrices in the form (for lovers of statistical mechanics, is just the first step replica symmetry breaking)
par1 = MatrixForm[{{A, a1, a1, a0, a0, a0, a0, a0, a0},
{a1, A, a1, a0, a0, a0, a0, a0, a0},
{a1, a1, A, a0, a0, a0, a0, a0, a0},
{a0, a0, a0, A, a1, a1, a0, a0, a0},
{a0, a0, a0, a1, A, a1, a0, a0, a0},
{a0, a0, a0, a1, a1, A, a0, a0, a0},
{a0, a0, a0, a0, a0, a0, A, a1, a1},
{a0, a0, a0, a0, a0, a0, a1, A, a1},
{a0, a0, a0, a0, a0, a0, a1, a1, A}}]
or in traditional latex notation (where \epsilon is nonzero only in the diagonal blocks)
par1_{ab} = (A-a1) \delta_{ab} + (a1-a0) \epsilon_{ab} + a0
The peculiarity is that I want to make calculations (multiplication between matrices of the same kind, calculation of the inverse) for general values for the dimension n of the matrix and the dimension m of the blocks, using just the informations on the functional block form of the matrix.
How can you do this in a smart way in Mathematica?