get the posterior parameter covariance matrix.  If Schur.__posterior_parameter
        is None, the posterior parameter covariance matrix is calculated via
        Schur compliment before returning

        Returns
        -------
        posterior_parameter : pyemu.Cov
            the posterior parameter covariance matrix

        Note
        ----
        returns a reference

        Example
        -------
        ``>>>import pyemu``

        ``>>>sc = pyemu.Schur(jco="pest.jcb")``

        ``>>>post_cov = sc.posterior_parameter``

        ``>>>post_cov.to_ascii("post.cov")``

def posterior_parameter(self):
        """get the posterior parameter covariance matrix.  If Schur.__posterior_parameter
        is None, the posterior parameter covariance matrix is calculated via
        Schur compliment before returning

        Returns
        -------
        posterior_parameter : pyemu.Cov
            the posterior parameter covariance matrix

        Note
        ----
        returns a reference

        Example
        -------
        ``>>>import pyemu``

        ``>>>sc = pyemu.Schur(jco="pest.jcb")``

        ``>>>post_cov = sc.posterior_parameter``

        ``>>>post_cov.to_ascii("post.cov")``


        """
        if self.__posterior_parameter is not None:
            return self.__posterior_parameter
        else:
            self.clean()
            self.log("Schur's complement")
            try:
                pinv = self.parcov.inv
                r = self.xtqx + pinv
                r = r.inv
            except Exception as e:
                self.xtqx.to_binary("xtqx.err.jcb")
                pinv.to_ascii("parcov_inv.err.cov")
                self.logger.warn("error forming schur's complement: {0}".
                                format(str(e)))
                self.logger.warn("problemtic xtqx saved to xtqx.err.jcb")
                self.logger.warn("problematic inverse parcov saved to parcov_inv.err.cov")
                raise Exception("error forming schur's complement: {0}".
                                format(str(e)))
            assert r.row_names == r.col_names
            self.__posterior_parameter = Cov(r.x, row_names=r.row_names,
                                             col_names=r.col_names)
            self.log("Schur's complement")
            return self.__posterior_parameter