Skip to content

Commit 19e2a00

Browse files
committed
yagni: Get rid of unused temporal structure trait logic
1 parent 6b036de commit 19e2a00

File tree

5 files changed

+7
-52
lines changed

5 files changed

+7
-52
lines changed

src/TrajectoryGamesBase.jl

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,7 @@ using GeometryBasics: GeometryBasics
99
using Polyhedra: Polyhedra
1010

1111
include("dynamics.jl")
12-
export AbstractTemporalStructureTrait,
13-
control_bounds,
14-
control_dim,
15-
get_constraints_from_box_bounds,
16-
horizon,
17-
num_players,
18-
rollout,
19-
state_bounds,
20-
state_dim,
21-
temporal_structure_trait,
22-
TimeInvariant,
23-
TimeVarying
12+
export control_bounds, control_dim, get_constraints_from_box_bounds, horizon, num_players, rollout, state_bounds, state_dim
2413

2514
include("product_dynamics.jl")
2615
export ProductDynamics

src/dynamics.jl

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,3 @@
1-
abstract type AbstractTemporalStructureTrait end
2-
struct TimeVarying <: AbstractTemporalStructureTrait end
3-
struct TimeInvariant <: AbstractTemporalStructureTrait end
4-
5-
"""
6-
temporal_structure_trait(object)
7-
8-
Returns an `AbstractTemporalStructureTrait` to signal if this object (e.g. strategy or dynamics) is
9-
time varying or not.
10-
"""
11-
function temporal_structure_trait end
12-
131
"""
142
dynamics(state, controls[, t, context]).
153

src/linear_dynamics.jl

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,17 @@ Base.@kwdef struct LinearDynamics{TA,TB,TSB,TCB} <: AbstractDynamics
1414
control_bounds::TCB = (; lb = fill(-Inf, size(first(B), 2)), ub = fill(Inf, size(first(B), 2)))
1515
end
1616

17-
function LinearDynamics(dynamics::ProductDynamics{<:AbstractVector{<:LinearDynamics}})
18-
(; A, B) = _block_diagonalize(
19-
temporal_structure_trait(dynamics),
20-
dynamics.subsystems,
21-
horizon(dynamics),
22-
)
17+
function LinearDynamics(
18+
dynamics::ProductDynamics{<:AbstractVector{<:LinearDynamics{<:Fill,<:Fill}}},
19+
)
20+
(; A, B) = _block_diagonalize(dynamics.subsystems, horizon(dynamics))
2321
sb = state_bounds(dynamics)
2422
cb = control_bounds(dynamics)
2523

2624
LinearDynamics(; A, B, state_bounds = sb, control_bounds = cb)
2725
end
2826

29-
function _block_diagonalize(::TimeInvariant, linear_subsystems, horizon)
27+
function _block_diagonalize(linear_subsystems, horizon)
3028
A = Fill(blockdiag([sparse(sub.A.value) for sub in linear_subsystems]...), horizon)
3129

3230
B = let
@@ -39,14 +37,6 @@ function _block_diagonalize(::TimeInvariant, linear_subsystems, horizon)
3937
(; A, B)
4038
end
4139

42-
function TrajectoryGamesBase.temporal_structure_trait(::LinearDynamics{<:Fill,<:Fill})
43-
TimeInvariant()
44-
end
45-
46-
function TrajectoryGamesBase.temporal_structure_trait(::LinearDynamics)
47-
TimeVarying()
48-
end
49-
5040
function time_invariant_linear_dynamics(; A, B, horizon = ∞, bounds...)
5141
LinearDynamics(; A = Fill(A, horizon), B = Fill(B, horizon), bounds...)
5242
end
@@ -55,9 +45,7 @@ function (sys::LinearDynamics)(x, u, t::Int, ::Any = nothing)
5545
sys.A[t] * x + sys.B[t] * u
5646
end
5747

58-
function (sys::LinearDynamics)(x, u, ::Nothing = nothing, ::Any = nothing)
59-
temporal_structure_trait(sys) isa TimeInvariant ||
60-
error("Only time-invariant systems can ommit the `t` argument.")
48+
function (sys::LinearDynamics{<:Fill,<:Fill})(x, u, ::Nothing = nothing, ::Any = nothing)
6149
sys.A.value * x + sys.B.value * u
6250
end
6351

src/product_dynamics.jl

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,3 @@ end
6969
function horizon(dynamics::ProductDynamics)
7070
horizon(first(dynamics.subsystems))
7171
end
72-
73-
function temporal_structure_trait(dynamics::ProductDynamics)
74-
if all(sub -> temporal_structure_trait(sub) isa TimeInvariant, dynamics.subsystems)
75-
return TimeInvariant()
76-
end
77-
TimeVarying()
78-
end

test/runtests.jl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,6 @@ end # Mock module
114114
@test control_dim(linear_dynamics) == control_dim(game.dynamics) == 4
115115
@test control_dim(linear_dynamics, 1) == control_dim(game.dynamics, 1) == 2
116116
@test num_players(linear_dynamics) == num_players(game.dynamics) == 2
117-
@test temporal_structure_trait(linear_dynamics) ==
118-
temporal_structure_trait(game.dynamics) ==
119-
TimeInvariant()
120117
end
121118

122119
@testset "cost" begin

0 commit comments

Comments
 (0)