Skip to content

Commit 66de0b2

Browse files
authored
Merge pull request #38 from jw3126/fieldnames
rename fieldnames of affine maps
2 parents dea3467 + b53b54e commit 66de0b2

File tree

1 file changed

+53
-53
lines changed

1 file changed

+53
-53
lines changed

src/affine.jl

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,28 @@ Construct the `Translation` transformation for translating Cartesian points by
99
an offset `v = (dx, dy, ...)`
1010
"""
1111
struct Translation{V} <: AbstractAffineMap
12-
v::V
12+
translation::V
1313
end
1414
Translation(x::Tuple) = Translation(SVector(x))
1515
Translation(x,y) = Translation(SVector(x,y))
1616
Translation(x,y,z) = Translation(SVector(x,y,z))
17-
Base.show(io::IO, trans::Translation) = print(io, "Translation$((trans.v...,))")
17+
Base.show(io::IO, trans::Translation) = print(io, "Translation$((trans.translation...,))")
1818

1919
function (trans::Translation{V})(x) where {V}
20-
x + trans.v
20+
x + trans.translation
2121
end
2222

23-
Base.inv(trans::Translation) = Translation(-trans.v)
23+
Base.inv(trans::Translation) = Translation(-trans.translation)
2424

2525
function compose(trans1::Translation, trans2::Translation)
26-
Translation(trans1.v + trans2.v)
26+
Translation(trans1.translation + trans2.translation)
2727
end
2828

2929
transform_deriv(trans::Translation, x) = I
3030
transform_deriv_params(trans::Translation, x) = I
3131

3232
function Base.isapprox(t1::Translation, t2::Translation; kwargs...)
33-
isapprox(t1.v, t2.v; kwargs...)
33+
isapprox(t1.translation, t2.translation; kwargs...)
3434
end
3535

3636

@@ -42,43 +42,43 @@ A general linear transformation, constructed using `LinearMap(M)`
4242
for any matrix-like object `M`.
4343
"""
4444
struct LinearMap{M} <: AbstractAffineMap
45-
m::M
45+
linear::M
4646
end
47-
Base.show(io::IO, trans::LinearMap) = print(io, "LinearMap($(trans.m))") # TODO make this output more petite
47+
Base.show(io::IO, trans::LinearMap) = print(io, "LinearMap($(trans.linear))") # TODO make this output more petite
4848

4949
function (trans::LinearMap{M})(x) where {M}
50-
trans.m * x
50+
trans.linear * x
5151
end
5252

53-
Base.inv(trans::LinearMap) = LinearMap(inv(trans.m))
53+
Base.inv(trans::LinearMap) = LinearMap(inv(trans.linear))
5454

55-
compose(t1::LinearMap, t2::LinearMap) = LinearMap(t1.m * t2.m)
55+
compose(t1::LinearMap, t2::LinearMap) = LinearMap(t1.linear * t2.linear)
5656

5757
function Base.isapprox(t1::LinearMap, t2::LinearMap; kwargs...)
58-
isapprox(t1.m, t2.m; kwargs...)
58+
isapprox(t1.linear, t2.linear; kwargs...)
5959
end
6060

6161
function Base.isapprox(t1::LinearMap, t2::Translation; kwargs...)
62-
isapprox(vecnorm(t1.m), 0; kwargs...) &&
63-
isapprox(vecnorm(t2.v),0; kwargs...)
62+
isapprox(vecnorm(t1.linear), 0; kwargs...) &&
63+
isapprox(vecnorm(t2.translation),0; kwargs...)
6464
end
6565

6666
function Base.isapprox(t1::Translation, t2::LinearMap; kwargs...)
67-
isapprox(vecnorm(t1.v), 0; kwargs...) &&
68-
isapprox(vecnorm(t2.m),0; kwargs...)
67+
isapprox(vecnorm(t1.translation), 0; kwargs...) &&
68+
isapprox(vecnorm(t2.linear),0; kwargs...)
6969
end
7070

7171
function Base.:(==)(t1::LinearMap, t2::Translation)
72-
vecnorm(t1.m) == 0 &&
73-
0 == vecnorm(t2.v)
72+
vecnorm(t1.linear) == 0 &&
73+
0 == vecnorm(t2.translation)
7474
end
7575

7676
function Base.:(==)(t1::Translation, t2::LinearMap)
77-
vecnorm(t1.v) == 0 &&
78-
vecnorm(t2.m) == 0
77+
vecnorm(t1.translation) == 0 &&
78+
vecnorm(t2.linear) == 0
7979
end
8080

81-
transform_deriv(trans::LinearMap, x) = trans.m
81+
transform_deriv(trans::LinearMap, x) = trans.linear
8282
# TODO transform_deriv_params
8383

8484
"""
@@ -96,12 +96,12 @@ converted into an affine approximation by linearizing about a point `x` using
9696
For transformations which are already affine, `x` may be omitted.
9797
"""
9898
struct AffineMap{M, V} <: AbstractAffineMap
99-
m::M
100-
v::V
99+
linear::M
100+
translation::V
101101
end
102102

103103
function (trans::AffineMap{M, V})(x) where {M, V}
104-
trans.m * x + trans.v
104+
trans.linear * x + trans.translation
105105
end
106106

107107
# Note: the expression `Tx - dT*Tx` will have large cancellation error for
@@ -121,88 +121,88 @@ function AffineMap(trans::Transformation, x0)
121121
AffineMap(dT, Tx - dT*x0)
122122
end
123123

124-
Base.show(io::IO, trans::AffineMap) = print(io, "AffineMap($(trans.m), $(trans.v))") # TODO make this output more petite
124+
Base.show(io::IO, trans::AffineMap) = print(io, "AffineMap($(trans.linear), $(trans.translation))") # TODO make this output more petite
125125

126126
function compose(t1::Translation, t2::LinearMap)
127-
AffineMap(t2.m, t1.v)
127+
AffineMap(t2.linear, t1.translation)
128128
end
129129

130130
function compose(t1::LinearMap, t2::Translation)
131-
AffineMap(t1.m, t1.m * t2.v)
131+
AffineMap(t1.linear, t1.linear * t2.translation)
132132
end
133133

134134
function compose(t1::AffineMap, t2::AffineMap)
135-
AffineMap(t1.m * t2.m, t1.v + t1.m * t2.v)
135+
AffineMap(t1.linear * t2.linear, t1.translation + t1.linear * t2.translation)
136136
end
137137

138138
function compose(t1::AffineMap, t2::LinearMap)
139-
AffineMap(t1.m * t2.m, t1.v)
139+
AffineMap(t1.linear * t2.linear, t1.translation)
140140
end
141141

142142
function compose(t1::LinearMap, t2::AffineMap)
143-
AffineMap(t1.m * t2.m, t1.m * t2.v)
143+
AffineMap(t1.linear * t2.linear, t1.linear * t2.translation)
144144
end
145145

146146
function compose(t1::AffineMap, t2::Translation)
147-
AffineMap(t1.m, t1.v + t1.m * t2.v)
147+
AffineMap(t1.linear, t1.translation + t1.linear * t2.translation)
148148
end
149149

150150
function compose(t1::Translation, t2::AffineMap)
151-
AffineMap(t2.m, t1.v + t2.v)
151+
AffineMap(t2.linear, t1.translation + t2.translation)
152152
end
153153

154154
function Base.inv(trans::AffineMap)
155-
m_inv = inv(trans.m)
156-
AffineMap(m_inv, m_inv * (-trans.v))
155+
m_inv = inv(trans.linear)
156+
AffineMap(m_inv, m_inv * (-trans.translation))
157157
end
158158

159159
function Base.isapprox(t1::AffineMap, t2::AffineMap; kwargs...)
160-
isapprox(t1.m, t2.m; kwargs...) &&
161-
isapprox(t1.v, t2.v; kwargs...)
160+
isapprox(t1.linear, t2.linear; kwargs...) &&
161+
isapprox(t1.translation, t2.translation; kwargs...)
162162
end
163163

164164
function Base.isapprox(t1::AffineMap, t2::Translation; kwargs...)
165-
isapprox(vecnorm(t1.m), 0; kwargs...) &&
166-
isapprox(t1.v, t2.v; kwargs...)
165+
isapprox(vecnorm(t1.linear), 0; kwargs...) &&
166+
isapprox(t1.translation, t2.translation; kwargs...)
167167
end
168168

169169
function Base.isapprox(t1::Translation, t2::AffineMap; kwargs...)
170-
isapprox(vecnorm(t2.m), 0; kwargs...) &&
171-
isapprox(t1.v, t2.v; kwargs...)
170+
isapprox(vecnorm(t2.linear), 0; kwargs...) &&
171+
isapprox(t1.translation, t2.translation; kwargs...)
172172
end
173173

174174
function Base.isapprox(t1::AffineMap, t2::LinearMap; kwargs...)
175-
isapprox(t1.m, t2.m; kwargs...) &&
176-
isapprox(vecnorm(t1.v), 0; kwargs...)
175+
isapprox(t1.linear, t2.linear; kwargs...) &&
176+
isapprox(vecnorm(t1.translation), 0; kwargs...)
177177
end
178178

179179
function Base.isapprox(t1::LinearMap, t2::AffineMap; kwargs...)
180-
isapprox(t1.m, t2.m; kwargs...) &&
181-
isapprox(0, vecnorm(t2.v); kwargs...)
180+
isapprox(t1.linear, t2.linear; kwargs...) &&
181+
isapprox(0, vecnorm(t2.translation); kwargs...)
182182
end
183183

184184

185185
function Base.:(==)(t1::AffineMap, t2::Translation)
186-
vecnorm(t1.m) == 0 &&
187-
t1.v == t2.v
186+
vecnorm(t1.linear) == 0 &&
187+
t1.translation == t2.translation
188188
end
189189

190190
function Base.:(==)(t1::Translation, t2::AffineMap)
191-
vecnorm(t2.m) == 0 &&
192-
t1.v == t2.v
191+
vecnorm(t2.linear) == 0 &&
192+
t1.translation == t2.translation
193193
end
194194

195195
function Base.:(==)(t1::AffineMap, t2::LinearMap)
196-
t1.m == t2.m &&
197-
vecnorm(t1.v) == 0
196+
t1.linear == t2.linear &&
197+
vecnorm(t1.translation) == 0
198198
end
199199

200200
function Base.:(==)(t1::LinearMap, t2::AffineMap)
201-
t1.m == t2.m &&
202-
0 == vecnorm(t2.v)
201+
t1.linear == t2.linear &&
202+
0 == vecnorm(t2.translation)
203203
end
204204

205205
recenter(trans::AbstractMatrix, origin::AbstractVector) = recenter(LinearMap(trans), origin)
206206

207-
transform_deriv(trans::AffineMap, x) = trans.m
207+
transform_deriv(trans::AffineMap, x) = trans.linear
208208
# TODO transform_deriv_params

0 commit comments

Comments
 (0)