get a new Schur instance that includes conditional update from
        some parameters becoming known perfectly

        Parameters
        ----------
        parameter_names : list
            parameters that are to be treated as notionally perfectly
            known

        Returns
        -------
        la_cond : Schur
            a new Schur instance conditional on perfect knowledge
            of some parameters

        Note
        ----
        this method is used by the get_parameter_contribution() method -
        don't call this method directly

def get_conditional_instance(self, parameter_names):
        """ get a new Schur instance that includes conditional update from
        some parameters becoming known perfectly

        Parameters
        ----------
        parameter_names : list
            parameters that are to be treated as notionally perfectly
            known

        Returns
        -------
        la_cond : Schur
            a new Schur instance conditional on perfect knowledge
            of some parameters

        Note
        ----
        this method is used by the get_parameter_contribution() method -
        don't call this method directly

        """
        if not isinstance(parameter_names, list):
            parameter_names = [parameter_names]

        for iname, name in enumerate(parameter_names):
            name = str(name).lower()
            parameter_names[iname] = name
            assert name in self.jco.col_names,\
                "contribution parameter " + name + " not found jco"
        keep_names = []
        for name in self.jco.col_names:
            if name not in parameter_names:
                keep_names.append(name)
        if len(keep_names) == 0:
            raise Exception("Schur.contribution_from_Parameters " +
                            "atleast one parameter must remain uncertain")
        #get the reduced predictions
        if self.predictions is None:
            raise Exception("Schur.contribution_from_Parameters " +
                            "no predictions have been set")
        # cond_preds = []
        # for pred in self.predictions:
        #     cond_preds.append(pred.get(keep_names, pred.col_names))
        cond_preds = self.predictions.get(row_names=keep_names)
        la_cond = Schur(jco=self.jco.get(self.jco.row_names, keep_names),
                        parcov=self.parcov.condition_on(parameter_names),
                        obscov=self.obscov, predictions=cond_preds,verbose=False)
        return la_cond