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