Skip to content

Commit 24d8017

Browse files
committed
Addresses Daniel's comments
1 parent 57a785d commit 24d8017

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

cvxpy/atoms/affine/hstack.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ def _verify_hess_vec_args(self):
116116

117117
def _hess_vec(self, vec):
118118
result = {}
119+
keys_require_summing = []
119120

120121
flat_offset = 0
121122
for arg in self.args:
@@ -131,12 +132,13 @@ def _hess_vec(self, vec):
131132
np.concatenate([old_cols, new_cols]),
132133
np.concatenate([old_vals, new_vals]),
133134
)
135+
keys_require_summing.append(k)
134136
else:
135137
result[k] = v
136138

137139
flat_offset += arg.size
138140

139-
for k in result:
141+
for k in set(keys_require_summing):
140142
rows, cols, vals = result[k]
141143
var1, var2 = k
142144
hess = coo_matrix((vals, (rows, cols)), shape=(var1.size, var2.size))

cvxpy/atoms/affine/vstack.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ def _verify_hess_vec_args(self):
113113
def _hess_vec(self, vec):
114114
M = self.shape[0]
115115
result = {}
116+
keys_require_summing = []
116117

117118
row_offset = 0
118119
for arg in self.args:
@@ -132,12 +133,13 @@ def _hess_vec(self, vec):
132133
np.concatenate([old_cols, new_cols]),
133134
np.concatenate([old_vals, new_vals]),
134135
)
136+
keys_require_summing.append(k)
135137
else:
136138
result[k] = v
137139

138140
row_offset += m_j
139141

140-
for k in result:
142+
for k in set(keys_require_summing):
141143
rows, cols, vals = result[k]
142144
var1, var2 = k
143145
hess = coo_matrix((vals, (rows, cols)), shape=(var1.size, var2.size))

cvxpy/reductions/dnlp2smooth/canonicalizers/prod_canon.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ def prod_canon(expr, args):
2626
Since prod is a smooth function with implemented gradients,
2727
we simply ensure the argument is a Variable.
2828
"""
29+
if isinstance(args[0], Variable):
30+
return expr.copy([args[0]]), []
31+
2932
t = Variable(args[0].shape)
3033

3134
if args[0].value is not None:

0 commit comments

Comments
 (0)