def select_instances_sparse()

in automl21/scs_neural/solver/neural_scs_batched.py [0:0]


    def select_instances_sparse(self, multi_instance, index):
        A_select = [multi_instance.A[i] for i in index]
        b_select = multi_instance.b[index]
        c_select = multi_instance.c[index]
        cones_select = multi_instance.all_cones  # assume only one cone present, and identical
        scaled_data = None
        if hasattr(multi_instance, "D"):
            D_select = multi_instance.D[index]
            E_select = multi_instance.E[index]
            sigma_select = multi_instance.sigma[index]
            rho_select = multi_instance.rho[index]
            b_orig = multi_instance.orig_b[index]
            c_orig = multi_instance.orig_c[index]
            scaled_data = [D_select, E_select, sigma_select, rho_select,
                           b_orig, c_orig]
        upd_multi_instance = ScsMultiInstance(A_select, b_select, c_select,
                                              cones_select,
                                              scaled_data, device=self.device,
                                              use_tensors=False)
        if hasattr(multi_instance, "QplusI"):
            QplusI = [multi_instance.QplusI[i] for i in index]
            upd_multi_instance.QplusI = QplusI
        if hasattr(multi_instance, "QplusI_lu"):
            QplusI_lu_select = [multi_instance.QplusI_lu[i] for i in index]
            upd_multi_instance.QplusI_lu = QplusI_lu_select
        if hasattr(multi_instance, "QplusI_t_lu"):
            QplusI_t_lu_select = [multi_instance.QplusI_t_lu[i] for i in index]
            upd_multi_instance.QplusI_t_lu = QplusI_t_lu_select
        if hasattr(multi_instance, "soln"):
            upd_multi_instance.soln = multi_instance.soln[index]
        return upd_multi_instance