*To*: mathgroup@smc.vnet.net*Subject*: [mg11017] Block diagonalisation of matrices*From*: mabi@solidmr.kun.nl (Marlies Brinksma)*Date*: Mon, 16 Feb 1998 18:15:23 -0500

Hello everybody, I was wondering whether there exists a function which performs the so-called block diagonalisation. (For example a fucntion which returns the permutation vector for the basis transformation.) To illustrate this, consider the following matrix: 0 0 0 0 -I 0 0 0 0 I 0 -I 0 0 0 0 I 0 0 -I 0 0 0 0 I 0 -I 0 0 0 0 I 0 0 0 0 which should be converted to: 0 -I 0 0 0 0 I 0 -I 0 0 0 0 I 0 0 0 0 0 0 0 0 I -I 0 0 0 -I 0 0 0 0 0 I 0 0 The permutation vector for the basis transformation is: {1,5,3,2,4,6} Just searched through mathsource, but couldn't find the feature I was looking for. Does anyone know whether such a function has already been implemented? Or, in case this code doesn't exist yet, does anyone have any ideas how to implement this (time)efficiently? Thanks in advance for any help! Marlies Brinksma