You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
julia>using Convex
julia> A =Variable(2,2)
Variable
size: (2, 2)
sign: real
vexity: affine
id:406…508
julia> B =Variable(2,2)
Variable
size: (2, 2)
sign: real
vexity: affine
id:169…045
julia> K =rand(2,2)
2×2 Matrix{Float64}:0.3889520.2270430.646080.220724
julia>lieb_ando(A, B, K, 1//1)
real (affine; real)
└─ sum (affine; real)
└─ diag (affine; real)
└─ * (affine; real)
├─ …
└─ …
julia>lieb_ando(A, B, K, -1//2)
real (affine; real)
└─ sum (affine; real)
└─ diag (affine; real)
└─ * (affine; real)
├─ …
└─ …
help?> lieb_ando
search: lieb_ando
Returns LinearAlgebra.tr(K'* A^{1-t} * K * B^t) where A and B are positive
semidefinite matrices and K is an arbitrary matrix (possibly rectangular).
Disciplined convex programming information:lieb_ando(A,B,K,t) is concave in
(A,B) for t in [0,1], and convex in (A,B) for t in [-1,0] or [1,2]. K is a
fixed matrix.
Seems like these should be concave/convex, not affine. The issue is similar to #682 (comment): extended formulations typically must be atoms to propagate DCP information correctly. Here, we add constraints to a new variable we create here and here.
I didn't see any other extended formulations in src/reformulations luckily; the other reformulations there simply compose operations without adding new variables or constraints.
We should also update the dev docs to mention this. I for one didn't fully realize this issue until today.
The text was updated successfully, but these errors were encountered:
Seems like these should be concave/convex, not affine. The issue is similar to #682 (comment): extended formulations typically must be atoms to propagate DCP information correctly. Here, we add constraints to a new variable we create here and here.
I didn't see any other extended formulations in
src/reformulations
luckily; the other reformulations there simply compose operations without adding new variables or constraints.We should also update the dev docs to mention this. I for one didn't fully realize this issue until today.
The text was updated successfully, but these errors were encountered: