hfawzi / cvxquad Goto Github PK
View Code? Open in Web Editor NEWImplementation in MATLAB-based CVX of various convex/concave functions of matrices (matrix geometric means, quantum relative entropy, ...)
License: MIT License
Implementation in MATLAB-based CVX of various convex/concave functions of matrices (matrix geometric means, quantum relative entropy, ...)
License: MIT License
Hi, sorry for the noise but I'm interested in knowing: (1) the dual cones of your recognized cones, and (2) the conjugate functions of your recognized convex functions. I didn't see this in the reference in the readme, so I'm wondering if you can point to any sources that might help me with this.
FYI @lkapelevich and I work on a generic conic interior point solver https://github.com/chriscoey/Hypatia.jl and we want to support some of these cones (and cones constructed from your functions). We think we can construct SC barriers for some cones (eg a matrix entropy perspective cone), and for others we can construct non-SC but probably "good-enough" barriers (eg matrix relative entropy cone).
Thanks!
Minimum reproducible example of trace_mpower
with exponent t = 1 producing concave expression.
cvx_begin
variable A(2,2) semidefinite
trace_mpower(A,1)
ans =
cvx concave expression (scalar)
In comparison:
trace(A)
ans =
cvx real affine expression (scalar)
Of course, this bug can be circumvented by using trace
instead of trace_mpower
if t
is known to be 1.
I try to run examples/rel_entr_entanglement.m
, but get the following error.
>> rel_entr_entanglement
Undefined function or variable 'randRho'
I've searched the whole repo and cannot find its definition (similar issue for Tx
). Could you please provide these functions? thx
I put CVXQUAD;s exponential.m in the CVX sets directory, CVXQUAD's Pade approximation was invoked for entr
and rel_entr
., as expected.
However, CVX's successive approximation method was used for log_det
. I have not looked to see exactly which "exponential cone" inducing functions or circumstances use CVX's successive approximation method rather than CVXQUAD's Pade approximation.
I have been attempting to get this ported to Julia's Convex.jl. I believe the maintainer of Convex.jl (or maybe myself) has contacted you about this a while back. He was requesting that we cite the cvxquad license in the Convex.jl license file. Can you please add a license to your code? I believe that either BSD or MIT would be compatible with Convex.jl, though of course it's your software and your choice.
There is a bug in quantum_rel_entr which is triggered when 2nd argument is numeric but 1st argument is not.
Line 69
elseif cvx_isconstant(A) || cvx_isconstant(B)
of quantum_rel_entr.m should not have
|| cvx_isconstant(B)
because
cvx_optval = -quantum_entr(A,m,k) - trace_logm(B,A,m,k);
is triggered by satisfying this, is not correct for that case, and and will trip an error in trace_logm.
I leave it to you whether to add an
elseif cvx_isconstant(B)
with a following appropriate line of code. As far as I know (I could be wrong), that is not necessary, but I leave it to you whether there's a more efficient path than skipping to the affine code at that point.
I installed CVXQUAD following this link
http://ask.cvxr.com/t/cvxquad-how-to-use-cvxquads-pade-approximant-instead-of-cvxs-unreliable-successive-approximation-for-gp-mode-log-exp-entr-rel-entr-kl-div-log-det-det-rootn-exponential-cone-cvxquads-quantum-matrix-entropy-matrix-log-related-functions/5598
but received the error: Undefined function or variable 'op_rel_entr_epi_cone'.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.