Skip to content

Commit f3fb62f

Browse files
authored
Merge pull request #269 from JuliaReach/schillic/bibliography
Use `DocumenterCitations` for bibliography
2 parents 184f01b + ddb3e82 commit f3fb62f

File tree

12 files changed

+156
-120
lines changed

12 files changed

+156
-120
lines changed

docs/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
[deps]
22
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
3+
DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244"
34
IntervalArithmetic = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
45

56
[compat]
67
Documenter = "1"
8+
DocumenterCitations = "1.3"
79
IntervalArithmetic = "0.21, =0.21" # v0.22 changed the output format

docs/make.jl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
using Documenter, IntervalMatrices
1+
using Documenter, IntervalMatrices, DocumenterCitations
22

33
DocMeta.setdocmeta!(IntervalMatrices, :DocTestSetup, :(using IntervalMatrices);
44
recursive=true)
55

6+
bib = CitationBibliography(joinpath(@__DIR__, "src", "refs.bib"); style=:alpha)
7+
68
makedocs(; sitename="IntervalMatrices.jl",
79
modules=[IntervalMatrices],
810
format=Documenter.HTML(; prettyurls=get(ENV, "CI", nothing) == "true",
9-
assets=["assets/aligned.css"], sidebar_sitename=true),
11+
assets=["assets/aligned.css", "assets/citations.css"],
12+
sidebar_sitename=true),
1013
pagesonly=true,
14+
plugins=[bib],
1115
pages=["Home" => "index.md",
1216
"Library" => Any["Types" => "lib/types.md",
1317
"Methods" => "lib/methods.md"],
1418
"About" => "about.md",
15-
"References" => "references.md"])
19+
"Bibliography" => "bibliography.md"])
1620

1721
deploydocs(; repo="github.com/JuliaReach/IntervalMatrices.jl.git",
1822
push_preview=true)

docs/src/assets/citations.css

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
.citation dl {
2+
display: grid;
3+
grid-template-columns: max-content auto; }
4+
.citation dt {
5+
grid-column-start: 1; }
6+
.citation dd {
7+
grid-column-start: 2;
8+
margin-bottom: 0.75em; }
9+
.citation ul {
10+
padding: 0 0 2.25em 0;
11+
margin: 0;
12+
list-style: none !important;}
13+
.citation ul li {
14+
text-indent: -2.25em;
15+
margin: 0.33em 0.5em 0.5em 2.25em;}
16+
.citation ol li {
17+
padding-left:0.75em;}

docs/src/bibliography.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Bibliography
2+
3+
```@bibliography
4+
```

docs/src/index.md

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ See the section [Library Outline](@ref) below for details.
1919
An application of interval matrices is to find the set of states reachable by
2020
a dynamical system whose coefficients are uncertain. The library
2121
[ReachabilityAnalysis.jl](http://github.com/JuliaReach/ReachabilityAnalysis.jl)
22-
implements algorithms that use interval matrices [^3] [^4].
22+
implements algorithms that use interval matrices [AlthoffKS11, Liou66](@cite).
2323

2424
## Installing
2525

@@ -100,9 +100,10 @@ relevant definitions and algebraic rules that apply.
100100

101101
However, the straightforward application of the rules of interval arithmetic does
102102
not always give the exact result: in general it only gives an overapproximation
103-
[^1] [^2]. To illustrate, suppose that we are interested in the quadratic term
104-
``At + \frac{1}{2}A^2 t^2``, which corresponds to the Taylor-series expansion at order two of
105-
``e^{At} - I``. Then, at ``t = 1.0``,
103+
[AlthoffSB08, KoshelevaKMN05](@cite). To illustrate, suppose that we
104+
are interested in the quadratic term ``At + \frac{1}{2}A^2 t^2``, which
105+
corresponds to the Taylor-series expansion at order two of ``e^{At} - I``.
106+
Then, at ``t = 1.0``,
106107

107108
```jldoctest quickstart
108109
julia> A + 1/2 * A^2
@@ -138,20 +139,3 @@ Pages = [
138139
]
139140
Depth = 2
140141
```
141-
142-
## References
143-
144-
[^1]: Althoff, Matthias, Olaf Stursberg, and Martin Buss. *Reachability analysis
145-
of nonlinear systems with uncertain parameters using conservative linearization.*
146-
2008 47th IEEE Conference on Decision and Control. IEEE, 2008.
147-
148-
[^2]: Kosheleva, Olga, et al. *Computing the cube of an interval matrix is NP-hard.*
149-
Proceedings of the 2005 ACM symposium on Applied computing. ACM, 2005.
150-
151-
[^3]: Althoff, Matthias, Bruce H. Krogh, and Olaf Stursberg. *Analyzing reachability
152-
of linear dynamic systems with parametric uncertainties.*
153-
Modeling, Design, and Simulation of Systems with Uncertainties.
154-
Springer, Berlin, Heidelberg, 2011. 69-94.
155-
156-
[^4]: Liou, M. L. *A novel method of evaluating transient response.*
157-
Proceedings of the IEEE 54.1 (1966): 20-23.

docs/src/references.md

Lines changed: 0 additions & 53 deletions
This file was deleted.

docs/src/refs.bib

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
@article{Liou66,
2+
title={A novel method of evaluating transient response},
3+
author={Liou, ML},
4+
journal={Proceedings of the {IEEE}},
5+
volume={54},
6+
number={1},
7+
pages={20--23},
8+
year={1966},
9+
publisher={IEEE}
10+
}
11+
12+
@article{Rump99,
13+
title={Fast and parallel interval arithmetic},
14+
author={Rump, Siegfried M},
15+
journal={{BIT} Numerical Mathematics},
16+
volume={39},
17+
number={3},
18+
pages={534--554},
19+
year={1999},
20+
publisher={Springer},
21+
url={https://www.tuhh.de/ti3/paper/rump/Ru99b.pdf}
22+
}
23+
24+
@inproceedings{KoshelevaKMN05,
25+
author = {Olga Kosheleva and
26+
Vladik Kreinovich and
27+
G{\"{u}}nter Mayer and
28+
Hung T. Nguyen},
29+
editor = {Hisham Haddad and
30+
Lorie M. Liebrock and
31+
Andrea Omicini and
32+
Roger L. Wainwright},
33+
title = {Computing the cube of an interval matrix is NP-Hard},
34+
booktitle = {Symposium on Applied Computing ({SAC})},
35+
pages = {1449--1453},
36+
publisher = {{ACM}},
37+
year = {2005},
38+
url = {https://doi.org/10.1145/1066677.1067007},
39+
doi = {10.1145/1066677.1067007}
40+
}
41+
42+
@inproceedings{AlthoffSB07,
43+
author = {Matthias Althoff and
44+
Olaf Stursberg and
45+
Martin Buss},
46+
title = {Reachability analysis of linear systems with uncertain parameters
47+
and inputs},
48+
booktitle = {Conference on Decision and Control ({CDC})},
49+
pages = {726--732},
50+
publisher = {{IEEE}},
51+
year = {2007},
52+
url = {https://doi.org/10.1109/CDC.2007.4434084},
53+
doi = {10.1109/CDC.2007.4434084}
54+
}
55+
56+
@inproceedings{AlthoffSB08,
57+
author = {Matthias Althoff and
58+
Olaf Stursberg and
59+
Martin Buss},
60+
title = {Reachability analysis of nonlinear systems with uncertain parameters
61+
using conservative linearization},
62+
booktitle = {Conference on Decision and Control ({CDC})},
63+
pages = {4042--4048},
64+
publisher = {{IEEE}},
65+
year = {2008},
66+
url = {https://doi.org/10.1109/CDC.2008.4738704},
67+
doi = {10.1109/CDC.2008.4738704}
68+
}
69+
70+
@phdthesis{Althoff10,
71+
title={Reachability analysis and its application to the safety assessment of autonomous cars},
72+
author={Althoff, Matthias},
73+
year={2010},
74+
school={Technische Universit{\"a}t M{\"u}nchen}
75+
}
76+
77+
@article{Rump10,
78+
author = {Siegfried M. Rump},
79+
title = {Verification methods: Rigorous results using floating-point arithmetic},
80+
journal = {Acta Numerica},
81+
volume = {19},
82+
pages = {287--449},
83+
year = {2010},
84+
url = {https://www.tuhh.de/ti3/paper/rump/Ru10.pdf},
85+
doi = {10.1017/S096249291000005X}
86+
}
87+
88+
@article{AlthoffKS11,
89+
title={Analyzing reachability of linear dynamic systems with parametric uncertainties},
90+
author={Althoff, Matthias and Krogh, Bruce H and Stursberg, Olaf},
91+
journal={Modeling, Design, and Simulation of Systems with Uncertainties},
92+
pages={69--94},
93+
year={2011},
94+
publisher={Springer}
95+
}
96+
97+
@article{GoldsztejnN14,
98+
author = {Alexandre Goldsztejn and
99+
Arnold Neumaier},
100+
title = {On the Exponentiation of Interval Matrices},
101+
journal = {Reliable Computing},
102+
volume = {20},
103+
pages = {53--72},
104+
year = {2014},
105+
url = {http://interval.louisiana.edu/reliable-computing-journal/volume-20/reliable-computing-20-pp-053-072.pdf}
106+
}

src/correction_matrices.jl

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@ An interval matrix representing the correction term.
1616
1717
### Algorithm
1818
19-
See Theorem 3 in [1].
20-
21-
[1] M. Althoff, O. Stursberg, M. Buss. Reachability Analysis of Linear Systems
22-
with Uncertain Parameters and Inputs. CDC 2007.
19+
See [AlthoffSB07; Theorem 3](@citet).
2320
"""
2421
function correction_hull(A::IntervalMatrix{T}, t, p) where {T}
2522
F = _exp_remainder(A, t, p)
@@ -51,10 +48,7 @@ An interval matrix representing the correction matrix.
5148
5249
### Algorithm
5350
54-
See Proposition 3.4 in [1].
55-
56-
[1] M. Althoff. Reachability analysis and its application to the safety
57-
assessment of autonomous cars. 2010.
51+
See [Althoff10; Proposition 3.4](@citet).
5852
"""
5953
function input_correction(A::IntervalMatrix{T}, t, p) where {T}
6054
n = checksquare(A)

src/exponential.jl

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ such that `[exp(A*t)]_{ij} ⊆ m_{ij}`.
6767
6868
### Algorithm
6969
70-
See Theorem 1 in *Reachability Analysis of Linear Systems with Uncertain
71-
Parameters and Inputs* by M. Althoff, O. Stursberg, M. Buss.
70+
See [AlthoffSB07; Theorem 1](@citet).
7271
"""
7372
function exp_overapproximation(A::IntervalMatrix{T}, t, p) where {T}
7473
n = checksquare(A)
@@ -77,9 +76,7 @@ function exp_overapproximation(A::IntervalMatrix{T}, t, p) where {T}
7776
return S + E
7877
end
7978

80-
# Implementation of Prop. 1 in Althoff, Matthias, Bruce H. Krogh, and Olaf Stursberg.
81-
# "Analyzing reachability of linear dynamic systems with parametric uncertainties."
82-
# Modeling, Design, and Simulation of Systems with Uncertainties. Springer, Berlin, Heidelberg, 2011. 69-94.
79+
# Implementation of [AlthoffKS11; Prop. 1](@citet).
8380
function _exp_remainder(A::IntervalMatrix{T}, t, p; n=checksquare(A)) where {T}
8481
C = max.(abs.(inf(A)), abs.(sup(A)))
8582
# compute Q = I + Ct + (Ct)^2/2! + ... + (Ct)^p/p!
@@ -101,10 +98,8 @@ function _exp_remainder(A::IntervalMatrix{T}, t, p; n=checksquare(A)) where {T}
10198
return E
10299
end
103100

104-
# Estimates the sum of the series in the matrix exponential. See Theorem 1
105-
# in [1] Althoff, Matthias, Olaf Stursberg, and Martin Buss.
106-
# Reachability analysis of nonlinear systems with uncertain parameters using conservative linearization.
107-
# 2008 47th IEEE Conference on Decision and Control. IEEE, 2008.
101+
# Estimates the sum of the series in the matrix exponential. See
102+
# [AlthoffSB08; Theorem 1](@citet).
108103
function _exp_remainder_series(A::IntervalMatrix{T}, t, p; n=checksquare(A)) where {T}
109104
nA = opnorm(A, Inf)
110105
c = nA * t / (p + 2)
@@ -134,8 +129,7 @@ such that `m_{ij} ⊆ [exp(A*t)]_{ij}`.
134129
135130
### Algorithm
136131
137-
See Theorem 2 in *Reachability Analysis of Linear Systems with Uncertain
138-
Parameters and Inputs* by M. Althoff, O. Stursberg, M. Buss.
132+
See [AlthoffSB07; Theorem 2](@citet).
139133
"""
140134
function exp_underapproximation(A::IntervalMatrix{T}, t, p) where {T}
141135
@assert p > 1 "the order $p < 2 is not supported"
@@ -196,7 +190,7 @@ An interval matrix that encloses ``B := αA + βA^2``.
196190
197191
### Algorithm
198192
199-
This a variation of the algorithm in [1, Section 6]. If ``A = (aᵢⱼ)`` and
193+
This a variation of the algorithm in [KoshelevaKMN05; Section 6](@citet). If ``A = (aᵢⱼ)`` and
200194
``B := αA + βA^2 = (bᵢⱼ)``, the idea is to compute each ``bᵢⱼ`` by factoring
201195
out repeated expressions (thus the term *single-use expressions*).
202196
@@ -211,9 +205,6 @@ Now consider ``i ≠ j``. Then,
211205
```math
212206
bᵢⱼ = β\\sum_\\{k, k ≠ i, k ≠ j} a_{ik} a_{kj} + (α + βa_{ii} + βa_{jj}) a_{ij}.
213207
```
214-
215-
[1] Kosheleva, Kreinovich, Mayer, Nguyen. Computing the cube of an interval
216-
matrix is NP-hard. SAC 2005.
217208
"""
218209
function quadratic_expansion(A::IntervalMatrix, α::Real, β::Real)
219210
B = similar(A)
@@ -323,16 +314,13 @@ Compute the matrix exponential using scaling and squaring.
323314
324315
### Algorithm
325316
326-
We use the algorithm in [1, Section 4.3], which first scales `A` by factor
317+
We use the algorithm in [GoldsztejnN14; Section 4.3](@citet), which first scales `A` by factor
327318
``2^{-l}``, computes the matrix exponential for the scaled matrix, and then
328319
squares the result ``l`` times.
329320
330321
```math
331322
\\exp(A * 2^{-l})^{2^l}
332323
```
333-
334-
[1] Goldsztejn, Alexandre, Arnold Neumaier. "On the exponentiation of interval
335-
matrices". Reliable Computing. 2014.
336324
"""
337325
function scale_and_square(A::IntervalMatrix{T}, l::Integer, t, p;
338326
validate::Bool=true) where {T}
@@ -390,10 +378,7 @@ Compute the matrix exponential using the Horner scheme.
390378
391379
### Algorithm
392380
393-
We use the algorithm in [1, Section 4.2].
394-
395-
[1] Goldsztejn, Alexandre, Arnold Neumaier. "On the exponentiation of interval
396-
matrices". Reliable Computing. 2014.
381+
We use the algorithm in [GoldsztejnN14; Section 4.2](@citet).
397382
"""
398383
function horner(A::IntervalMatrix{T}, K::Integer;
399384
validate::Bool=true) where {T}
@@ -418,7 +403,7 @@ function horner(A::IntervalMatrix{T}, K::Integer;
418403
H = Iₙ + A / i * H
419404
end
420405

421-
# remainder; ref [1] uses a less precise computation here
406+
# remainder; ref [GoldsztejnN14] uses a less precise computation here
422407
R = _exp_remainder(A, one(T), K)
423408

424409
return H + R

0 commit comments

Comments
 (0)