The JuMP approach would be something like this:
using JuMP, SCS
function main(K, g, α)
model = Model(SCS.Optimizer)
@variable(model, f[1:size(K, 2)] >= 0)
@variable(model, t[1:2])
@constraint(model, [t[1]; 0.5; g - K * f] in RotatedSecondOrderCone())
@constraint(model, [t[2]; 0.5; f] in RotatedSecondOrderCone())
@objective(model, Min, t[1] + α * t[2])
optimize!(model)
@assert is_solved_and_feasible(model)
return value.(f)
end
m, n = 300, 10_000
K = rand(m, n);
g = rand(m);
α = 0.5
main(K, g, α)
See the docs: