@@ -18,15 +18,15 @@ os = OptimizationSystem(eqs, [x,y,z],[σ,ρ,β])
18
18
"""
19
19
struct OptimizationSystem <: AbstractSystem
20
20
""" Vector of equations defining the system."""
21
- op:: Operation
21
+ op:: Any
22
22
""" Unknown variables."""
23
- states:: Vector{Variable}
23
+ states:: Vector
24
24
""" Parameters."""
25
- ps:: Vector{Variable}
26
- pins:: Vector{Variable}
25
+ ps:: Vector
26
+ pins:: Vector
27
27
observed:: Vector{Equation}
28
28
equality_constraints:: Vector{Equation}
29
- inequality_constraints:: Vector{Operation}
29
+ inequality_constraints:: Vector
30
30
"""
31
31
Name: the name of the system
32
32
"""
@@ -38,27 +38,27 @@ struct OptimizationSystem <: AbstractSystem
38
38
end
39
39
40
40
function OptimizationSystem (op, states, ps;
41
- pins = Variable [],
42
- observed = Operation [],
41
+ pins = [],
42
+ observed = [],
43
43
equality_constraints = Equation[],
44
- inequality_constraints = Operation [],
44
+ inequality_constraints = [],
45
45
name = gensym (:OptimizationSystem ),
46
46
systems = OptimizationSystem[])
47
- OptimizationSystem (op, convert .(Variable, states), convert .(Variable, ps), pins, observed, equality_constraints, inequality_constraints, name, systems)
47
+ OptimizationSystem (value (op), value .( states), value .( ps), value .( pins) , observed, equality_constraints, inequality_constraints, name, systems)
48
48
end
49
49
50
50
function calculate_gradient (sys:: OptimizationSystem )
51
- expand_derivatives .(gradient (equations (sys), [ dv () for dv in states (sys)] ))
51
+ expand_derivatives .(gradient (equations (sys), states (sys)))
52
52
end
53
53
54
54
function generate_gradient (sys:: OptimizationSystem , vs = states (sys), ps = parameters (sys); kwargs... )
55
55
grad = calculate_gradient (sys)
56
- return build_function (grad, convert .(Variable,vs), convert .(Variable,ps) ;
56
+ return build_function (grad, vs, ps ;
57
57
conv = AbstractSysToExpr (sys),kwargs... )
58
58
end
59
59
60
60
function calculate_hessian (sys:: OptimizationSystem )
61
- expand_derivatives .(hessian (equations (sys), [ dv () for dv in states (sys)] ))
61
+ expand_derivatives .(hessian (equations (sys), states (sys)))
62
62
end
63
63
64
64
function generate_hessian (sys:: OptimizationSystem , vs = states (sys), ps = parameters (sys);
@@ -67,22 +67,20 @@ function generate_hessian(sys::OptimizationSystem, vs = states(sys), ps = parame
67
67
if sparse
68
68
hes = sparse (hes)
69
69
end
70
- return build_function (hes, convert .(Variable,vs), convert .(Variable,ps) ;
70
+ return build_function (hes, vs, ps ;
71
71
conv = AbstractSysToExpr (sys),kwargs... )
72
72
end
73
73
74
74
function generate_function (sys:: OptimizationSystem , vs = states (sys), ps = parameters (sys); kwargs... )
75
- vs′ = convert .(Variable,vs)
76
- ps′ = convert .(Variable,ps)
77
- return build_function (equations (sys), vs′, ps′;
75
+ return build_function (equations (sys), vs, ps;
78
76
conv = AbstractSysToExpr (sys),kwargs... )
79
77
end
80
78
81
- equations (sys:: OptimizationSystem ) = isempty (sys. systems) ? sys. op : sys. op + reduce (+ ,namespace_operation .(sys. systems))
82
- namespace_operation (sys:: OptimizationSystem ) = namespace_operation (sys. op,sys. name,nothing )
79
+ equations (sys:: OptimizationSystem ) = isempty (sys. systems) ? sys. op : sys. op + reduce (+ ,namespace_expr .(sys. systems))
80
+ namespace_expr (sys:: OptimizationSystem ) = namespace_expr (sys. op,sys. name,nothing )
83
81
84
82
hessian_sparsity (sys:: OptimizationSystem ) =
85
- hessian_sparsity (sys. op,[ dv () for dv in states (sys)] )
83
+ hessian_sparsity (sys. op, states (sys))
86
84
87
85
"""
88
86
```julia
0 commit comments