in automl21/scs_neural/solver/cone_projection.py [0:0]
def dprojection(v, cones, dual=False):
offset = 0
all_linops = []
for cone, sz in cones:
sz = sz if isinstance(sz, (tuple, list)) else (sz,)
if sum(sz) == 0:
continue
for dim in sz:
if cone == 's':
upd_dim = int(dim * (dim + 1) / 2)
dim = upd_dim
elif cone in ['e', 'ep', 'ed']:
raise NotImplementedError("Exp cone not implemented")
curr_linop = ConeProjection._dprojection(
v[:, offset:offset+dim], cone, dual
)
all_linops.append(curr_linop)
offset += dim
return BlockDiagonalLinearOperator(all_linops)