@Mark_L_Stone

@Michal_Adamaszek

I am new to conic programming using Mosek.

I am trying to reformulate a model into conic programming, and then I would need to solve it using Mosek/MosekTools.

Based on the definition of the exponential cone, a constraint like x*e^(y/x) <= t can be represented as ( t, x , y) \in K_exp.

However, I have faced the following constraint in a part of my model:

(c1): x*e^y <= t (where x >=0)

Since x>=0, function f(x,y) = x*e^y is convex.

My question is: How can I represent this constraint into a conic form (exponential, second-order cone, etc.)?

I have tried a few things:

I converted (c1) into e^y <= t/x and then represented it as an exponential cone (y,1,t/x) \in K_exp.

However, I get the following error as Mosek does not support inverse.

`ERROR: LoadError: inv is not defined for type AbstractVariableRef. Are you trying to build a nonlinear problem? Make sure you use @NLconstraint@NLobjective:`

Also, changing the constraint to NLconstraint does not work since Mosek does not support nonlinear constraints.

Introducing a variable s >= e^y, we can write () as the intersection of (s,1,y) \in K_exp and constraint xs <= t (c2). But now, we need to reformulate (c2) into a conic form supported by Mosek.

One way is to let x=e^u and s=e^v and then reformulate (c2) as (t,1,u+v) \in K_exp.

However, the challenge is that when I add constraints

`@constraint(model, x == ℯ^u) @constraint(model, s == ℯ^v) `

I get the following error:

`ERROR: LoadError: MethodError: no method matching ^(::Irrational{:ℯ}, ::VariableRef) Closest candidates are: ^(::Irrational{:ℯ}, ::AbstractIrrational) at mathconstants.jl:91 ^(::Irrational{:ℯ}, ::Rational) at mathconstants.jl:91 ^(::Irrational{:ℯ}, ::Integer) at mathconstants.jl:91`

Is there any other solver that could address this issue?

Any suggestion would be appreciated.