@@ -26,4 +26,46 @@ struct MKLDirectSolver <: LinearSolver end
26
26
27
27
export scs_solve
28
28
29
+ import PrecompileTools
30
+
31
+ PrecompileTools. @setup_workload begin
32
+ PrecompileTools. @compile_workload begin
33
+ model = MOI. Utilities. CachingOptimizer (
34
+ MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ()),
35
+ MOI. instantiate (SCS. Optimizer; with_bridge_type = Float64),
36
+ )
37
+ MOI. set (model, MOI. Silent (), true )
38
+ x = MOI. add_variables (model, 3 )
39
+ MOI. supports (model, MOI. VariableName (), typeof (x[1 ]))
40
+ MOI. set (model, MOI. VariableName (), x[1 ], " x1" )
41
+ MOI. set (model, MOI. VariablePrimalStart (), x[1 ], 0.0 )
42
+ sets = (MOI. GreaterThan (0.0 ), MOI. LessThan (0.0 ), MOI. GreaterThan (0.0 ))
43
+ for (i, set) in enumerate (sets)
44
+ MOI. add_constrained_variable (model, set)
45
+ MOI. supports_constraint (model, typeof (x[i]), typeof (set))
46
+ MOI. add_constraint (model, x[i], set)
47
+ MOI. supports_constraint (model, typeof (1.0 * x[i]), typeof (set))
48
+ c = MOI. add_constraint (model, 1.0 * x[i] + 0.0 , set)
49
+ MOI. supports (model, MOI. ConstraintName (), typeof (c))
50
+ MOI. set (model, MOI. ConstraintName (), c, " c1" )
51
+ end
52
+ f = 1.0 * x[1 ] + x[2 ] + x[3 ]
53
+ MOI. set (model, MOI. ObjectiveSense (), MOI. MIN_SENSE)
54
+ MOI. set (model, MOI. ObjectiveSense (), MOI. MAX_SENSE)
55
+ g_vov = MOI. VectorOfVariables (x)
56
+ g_vaf = MOI. Utilities. vectorize (1.0 .* x)
57
+ for set in (MOI. ExponentialCone (), MOI. SecondOrderCone (3 ))
58
+ MOI. add_constraint (model, g_vov, set)
59
+ MOI. add_constraint (model, g_vaf, set)
60
+ end
61
+ MOI. supports (model, MOI. ObjectiveFunction {typeof(f)} ())
62
+ MOI. set (model, MOI. ObjectiveFunction {typeof(f)} (), f)
63
+ MOI. optimize! (model)
64
+ MOI. get (model, MOI. TerminationStatus ())
65
+ MOI. get (model, MOI. PrimalStatus ())
66
+ MOI. get (model, MOI. DualStatus ())
67
+ MOI. get (model, MOI. VariablePrimal (), x)
68
+ end
69
+ end
70
+
29
71
end
0 commit comments