'Compute the inverse transformation matrix from the base to the
canonical dimension basis.
It corresponds to the matrix where columns are the vector of base
dimensions in canonical basis.
This matrix will almost never be used because dimensions are always
define with respect to the canonical basis, so no work has to be done
to get them in this basis. Nonetheless if this matrix is not square
(or not invertible) it means that we have chosen a bad basis.'

@property
def inv_can_transf_matrix(self):

    matrix = reduce((lambda x, y: x.row_join(y)), [self.dim_can_vector(d) for d in self._base_dims])
    return matrix
