'Construct a contrast matrix C so that
colspan(dot(D, C)) = colspan(dot(D, dot(pinv(D), T)))
where pinv(D) is the generalized inverse of D=design.'

def compute_matrix(self):

    T = self.term
    if (T.ndim == 1):
        T = T[:, None]
    self.T = clean0(T)
    self.D = self.design
    self._contrast_matrix = contrastfromcols(self.T, self.D)
    try:
        self.rank = self.matrix.shape[1]
    except:
        self.rank = 1
