Skip to content

Commit c8b113d

Browse files
committed
doc: Use citations for a bunch of papers instead of plaintext
This is far from exhaustive, but covers the frequently-repeated ones.
1 parent 51e4b2c commit c8b113d

File tree

6 files changed

+82
-24
lines changed

6 files changed

+82
-24
lines changed

clifford/_layout.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ def canonical_reordering_sign(bitmap_a, bitmap_b, metric):
6060
def gmt_element(bitmap_a, bitmap_b, sig_array):
6161
"""
6262
Element of the geometric multiplication table given blades a, b.
63-
The implementation used here is described in chapter 19 of
64-
Leo Dorst's book, Geometric Algebra For Computer Science
63+
The implementation used here is described in :cite:`ga4cs` chapter 19.
6564
"""
6665
output_sign = canonical_reordering_sign(bitmap_a, bitmap_b, sig_array)
6766
output_bitmap = bitmap_a^bitmap_b

clifford/_multivector.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ def isBlade(self) -> bool:
636636

637637
def isVersor(self) -> bool:
638638
"""Returns true if multivector is a versor.
639-
From Leo Dorsts GA for computer science section 21.5, definition from 7.6.4
639+
From :cite:`ga4cs` section 21.5, definition from 7.6.4
640640
"""
641641
Vhat = self.gradeInvol()
642642
Vrev = ~self
@@ -837,7 +837,7 @@ def factorise(self) -> Tuple[List['MultiVector'], numbers.Number]:
837837
"""
838838
Factorises a blade into basis vectors and an overall scale.
839839
840-
Uses Leo Dorsts algorithm from 21.6 of GA for Computer Science
840+
Uses the algorithm from :cite:`ga4cs`, section 21.6.
841841
"""
842842
if not self.isBlade():
843843
raise ValueError("self is not a blade")

clifford/tools/g3c/cost_functions.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ def midpoint_and_error_of_line_cluster(line_cluster):
9595
"""
9696
Gets an approximate center point of a line cluster
9797
as well as an estimate of the error
98-
Hadfield and Lasenby AGACSE2018
98+
99+
From :cite:`rotor-between`.
99100
"""
100101
line_cluster_array = np.array([l.value for l in line_cluster])
101102
cp_val = val_midpoint_of_line_cluster(line_cluster_array)
@@ -106,7 +107,8 @@ def midpoint_and_error_of_line_cluster_grad(line_cluster):
106107
"""
107108
Gets an approximate center point of a line cluster
108109
as well as an estimate of the error
109-
Hadfield and Lasenby AGACSE2018
110+
111+
From :cite:`rotor-between`.
110112
"""
111113
line_cluster_array = np.array([l.value for l in line_cluster])
112114
cp_val = val_midpoint_of_line_cluster_grad(line_cluster_array)

clifford/tools/g3c/rotor_parameterisation.py

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ def dorst_sinh(A):
3636

3737
def dorst_atanh2(s, c):
3838
"""
39-
Atanh2 of a bivector as given in square root and logarithm of rotors
40-
by Dorst and Valkenburg
39+
Atanh2 of a bivector as given in :cite:`log-of-rotors`
4140
"""
4241
s2 = (s * s)[0]
4342
if s2 > 0:
@@ -72,8 +71,8 @@ def decompose_bivector(F):
7271
def general_logarithm(R):
7372
"""
7473
Takes a general conformal rotor and returns the log
75-
From square root and loagrithm of rotors by Leo Dorst
76-
and Robert Valkenburg
74+
75+
From :cite:`log-of-rotors`.
7776
"""
7877
F = 2 * (R(4) - R[0]) * R(2)
7978
S1, S2 = decompose_bivector(F)
@@ -197,8 +196,8 @@ def ga_exp(B):
197196
def interpolate_TR_rotors(R_n_plus_1, R_n, interpolation_fraction):
198197
"""
199198
Interpolates TR type rotors
200-
Mesh Vertex Pose and Position Interpolation using Geometric Algebra.
201-
Rich Wareham and Joan Lasenby
199+
200+
From :cite:`wareham-interpolation`.
202201
"""
203202
if interpolation_fraction < np.finfo(float).eps:
204203
return R_n
@@ -211,11 +210,7 @@ def interpolate_TR_rotors(R_n_plus_1, R_n, interpolation_fraction):
211210
def interpolate_rotors(R_n_plus_1, R_n, interpolation_fraction):
212211
"""
213212
Interpolates all conformal type rotors
214-
Mesh Vertex Pose and Position Interpolation using Geometric Algebra
215-
Rich Wareham and Joan Lasenby
216-
and
217-
Square Root and Logarithm of Rotors
218-
Leo Dorst and Robert Valkenburg
213+
From :cite:`wareham-interpolation` and :cite:`log-of-rotors`.
219214
"""
220215
if interpolation_fraction < np.finfo(float).eps:
221216
return R_n
@@ -228,8 +223,8 @@ def interpolate_rotors(R_n_plus_1, R_n, interpolation_fraction):
228223
def extractRotorComponents(R):
229224
"""
230225
Extracts the translation and rotation information from a TR rotor
231-
Mesh Vertex Pose and Position Interpolation using Geometric Algebra.
232-
Rich Wareham and Joan Lasenby
226+
227+
From :cite:`wareham-interpolation`.
233228
"""
234229
phi = np.arccos(float(R[0])) # scalar
235230
phi2 = phi * phi # scalar
@@ -245,10 +240,10 @@ def ga_log(R):
245240
"""
246241
R must be a TR rotor. grades in [0, 2, 4]
247242
248-
Presented by R. Wareham (Applications of CGA)
249-
243+
Presented in :cite:`wareham-applications`.
250244
251-
WARNING: DOES NOT COMMUTE log(A * B) != log(A) + log(B)
245+
.. warning::
246+
Does not commute, ``log(A * B) != log(A) + log(B)``
252247
"""
253248
phiP, t_normal_n, t_perpendicular_n = extractRotorComponents(R)
254249
return phiP + t_normal_n + t_perpendicular_n

clifford/transformations.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def adjoint(self) -> "LinearMatrix":
124124
125125
This is such that :math:`f(a) * b = a * \bar f(b)`, where :math:`*` is the scalar product.
126126
127-
See GA4CS section 4.3.2.
127+
See :cite:`ga4cs` section 4.3.2.
128128
"""
129129
raise NotImplementedError
130130

@@ -319,7 +319,7 @@ class OutermorphismMatrix(LinearMatrix):
319319
320320
Such a transformation is grade preserving.
321321
322-
See GA4CS Chapter 4 for more information
322+
See :cite:`ga4cs` Chapter 4 for more information
323323
324324
Arguments
325325
---------

docs/refs.bib

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
@book{ga4cs,
2+
author = {Dorst, Leo and Fontijne, Daniel and Mann, Stephen},
3+
title = {Geometric Algebra for Computer Science: An Object-Oriented Approach to Geometry},
4+
shorttitle = {Geometric algebra for computer science},
5+
year = {2009},
6+
isbn = {9780080553108},
7+
publisher = {Morgan Kaufmann Publishers Inc.}
8+
}
9+
10+
@inbook{log-of-rotors,
11+
author = {Dorst, Leo and Valkenburg, Robert},
12+
year = {2011},
13+
month = {01},
14+
pages = {81--104},
15+
title = {Square Root and Logarithm of Rotors in 3D Conformal Geometric Algebra Using Polar Decomposition},
16+
doi = {10.1007/978-0-85729-811-9_5},
17+
}
18+
19+
@inproceedings{wareham-interpolation,
20+
author = {Wareham, Rich and Lasenby, Joan},
21+
title = {Mesh Vertex Pose and Position Interpolation Using Geometric Algebra},
22+
booktitle = {Articulated Motion and Deformable Objects},
23+
year = {2008},
24+
publisher = {Springer Berlin Heidelberg},
25+
address = {Berlin, Heidelberg},
26+
pages = {122--131},
27+
isbn = {978-3-540-70517-8}
28+
}
29+
30+
@inproceedings{wareham-applications,
31+
author = {Wareham, Rich and Cameron, Jonathan and Lasenby, Joan},
32+
editor = {Li, Hongbo and Olver, Peter J. and Sommer, Gerald},
33+
title = {Applications of Conformal Geometric Algebra in Computer Vision and Graphics},
34+
booktitle = {Computer Algebra and Geometric Algebra with Applications},
35+
year = {2005},
36+
publisher = {Springer Berlin Heidelberg},
37+
address = {Berlin, Heidelberg},
38+
pages = {329--349},
39+
isbn = {978-3-540-32119-4}
40+
}
41+
42+
@article{rotor-between,
43+
author = {Lasenby, Joan and Hadfield, Hugo and Lasenby, Anthony},
44+
year = {2019},
45+
month = {10},
46+
pages = {102},
47+
title = {Calculating the Rotor Between Conformal Objects},
48+
volume = {29},
49+
journal = {Advances in Applied Clifford Algebras},
50+
doi = {10.1007/s00006-019-1014-8}
51+
}
52+
53+
@article{direct-linear-interpolation,
54+
author = {Hadfield, Hugo and Lasenby, Joan},
55+
year = {2019},
56+
month = {09},
57+
pages = {},
58+
title = {Direct Linear Interpolation of Geometric Objects in Conformal Geometric Algebra},
59+
volume = {29},
60+
journal = {Advances in Applied Clifford Algebras},
61+
doi = {10.1007/s00006-019-1003-y}
62+
}

0 commit comments

Comments
 (0)