'Returns a LinOp representing the lower triangular entries.
Scales the strictly lower triangular entries by
sqrt(2) as required by SCS.'

def _scaled_lower_tri(self):

    rows = cols = self.size[0]
    entries = ((rows * (cols + 1)) // 2)
    val_arr = []
    row_arr = []
    col_arr = []
    count = 0
    for j in range(cols):
        for i in range(rows):
            if (j <= i):
                col_arr.append(((j * rows) + i))
                row_arr.append(count)
                if (j == i):
                    val_arr.append(1.0)
                else:
                    val_arr.append(np.sqrt(2))
                count += 1
    size = (entries, (rows * cols))
    coeff = sp.coo_matrix((val_arr, (row_arr, col_arr)), size).tocsc()
    coeff = lu.create_const(coeff, size, sparse=True)
    vect = lu.reshape(self.A, ((rows * cols), 1))
    return lu.mul_expr(coeff, vect, (entries, 1))
