44
55from mathics .builtin .base import Builtin
66from mathics .core .atoms import Integer1 , Integer2
7- from mathics .core .expression import Expression
7+ from mathics .core .expression import Evaluation , Expression
88from mathics .core .symbols import (
99 SymbolAbs ,
1010 SymbolDivide ,
2121)
2222
2323
24- def _norm_calc (head , u , v , evaluation ):
24+ def _norm_calc (head , u , v , evaluation : Evaluation ):
2525 expr = Expression (head , u , v )
2626 old_quiet_all = evaluation .quiet_all
2727 try :
@@ -38,8 +38,11 @@ def _norm_calc(head, u, v, evaluation):
3838
3939class BrayCurtisDistance (Builtin ):
4040 """
41- <url>:Bray-Curtis Dissimilarity:https://en.wikipedia.org/wiki/Bray%E2%80%93Curtis_dissimilarity</url> \
42- (<url>:WMA link:https://reference.wolfram.com/language/ref/BrayCurtisDistance.html</url>)
41+ <url>
42+ :Bray-Curtis Dissimilarity:
43+ https://en.wikipedia.org/wiki/Bray%E2%80%93Curtis_dissimilarity</url> \
44+ (<url>:WMA:
45+ https://reference.wolfram.com/language/ref/BrayCurtisDistance.html</url>)
4346
4447 <dl>
4548 <dt>'BrayCurtisDistance[$u$, $v$]'
@@ -56,7 +59,7 @@ class BrayCurtisDistance(Builtin):
5659
5760 summary_text = "Bray-Curtis distance"
5861
59- def apply (self , u , v , evaluation ):
62+ def eval (self , u , v , evaluation : Evaluation ):
6063 "BrayCurtisDistance[u_, v_]"
6164 t = _norm_calc (SymbolSubtract , u , v , evaluation )
6265 if t is not None :
@@ -71,8 +74,12 @@ def apply(self, u, v, evaluation):
7174
7275class CanberraDistance (Builtin ):
7376 """
74- <url>:Canberra distance:https://en.wikipedia.org/wiki/Canberra_distance</url> \
75- (<url>:WMA link:https://reference.wolfram.com/language/ref/CanberraDistance.html</url>)
77+ <url>
78+ :Canberra distance:
79+ https://en.wikipedia.org/wiki/Canberra_distance</url> \
80+ (<url>
81+ :WMA:
82+ https://reference.wolfram.com/language/ref/CanberraDistance.html</url>)
7683
7784 <dl>
7885 <dt>'CanberraDistance[$u$, $v$]'
@@ -88,7 +95,7 @@ class CanberraDistance(Builtin):
8895
8996 summary_text = "Canberra distance"
9097
91- def apply (self , u , v , evaluation ):
98+ def eval (self , u , v , evaluation : Evaluation ):
9299 "CanberraDistance[u_, v_]"
93100 t = _norm_calc (SymbolSubtract , u , v , evaluation )
94101 if t is not None :
@@ -107,7 +114,9 @@ def apply(self, u, v, evaluation):
107114class ChessboardDistance (Builtin ):
108115 """
109116 <url>:Chebyshev distance:https://en.wikipedia.org/wiki/Chebyshev_distance</url> \
110- (<url>:WMA link:https://reference.wolfram.com/language/ref/ChessboardDistance.html</url>)
117+ (<url>
118+ :WMA:
119+ https://reference.wolfram.com/language/ref/ChessboardDistance.html</url>)
111120
112121 <dl>
113122 <dt>'ChessboardDistance[$u$, $v$]'
@@ -123,7 +132,7 @@ class ChessboardDistance(Builtin):
123132
124133 summary_text = "chessboard distance"
125134
126- def apply (self , u , v , evaluation ):
135+ def eval (self , u , v , evaluation : Evaluation ):
127136 "ChessboardDistance[u_, v_]"
128137 t = _norm_calc (SymbolSubtract , u , v , evaluation )
129138 if t is not None :
@@ -132,8 +141,11 @@ def apply(self, u, v, evaluation):
132141
133142class CosineDistance (Builtin ):
134143 r"""
135- <url>:Cosine similarity:https://en.wikipedia.org/wiki/Cosine_similarity</url> \
136- (<url>:WMA link:https://reference.wolfram.com/language/ref/CosineDistance.html</url>)
144+ <url>
145+ :Cosine similarity:
146+ https://en.wikipedia.org/wiki/Cosine_similarity</url> \
147+ (<url>:WMA:
148+ https://reference.wolfram.com/language/ref/CosineDistance.html</url>)
137149
138150 <dl>
139151 <dt>'CosineDistance[$u$, $v$]'
@@ -152,7 +164,7 @@ class CosineDistance(Builtin):
152164
153165 summary_text = "cosine distance"
154166
155- def apply (self , u , v , evaluation ):
167+ def eval (self , u , v , evaluation : Evaluation ):
156168 "CosineDistance[u_, v_]"
157169 dot = _norm_calc (SymbolDot , u , v , evaluation )
158170 if dot is not None :
@@ -173,8 +185,12 @@ def apply(self, u, v, evaluation):
173185
174186class EuclideanDistance (Builtin ):
175187 """
176- <url>:Euclidean similarity:https://en.wikipedia.org/wiki/Euclidean_distance</url> \
177- (<url>:WMA link:https://reference.wolfram.com/language/ref/EuclideanDistance.html</url>)
188+ <url>
189+ :Euclidean similarity:
190+ https://en.wikipedia.org/wiki/Euclidean_distance</url> \
191+ (<url>
192+ :WMA:
193+ https://reference.wolfram.com/language/ref/EuclideanDistance.html</url>)
178194
179195 <dl>
180196 <dt>'EuclideanDistance[$u$, $v$]'
@@ -193,7 +209,7 @@ class EuclideanDistance(Builtin):
193209
194210 summary_text = "euclidean distance"
195211
196- def apply (self , u , v , evaluation ):
212+ def eval (self , u , v , evaluation : Evaluation ):
197213 "EuclideanDistance[u_, v_]"
198214 t = _norm_calc (SymbolSubtract , u , v , evaluation )
199215 if t is not None :
@@ -202,8 +218,12 @@ def apply(self, u, v, evaluation):
202218
203219class ManhattanDistance (Builtin ):
204220 """
205- <url>:Manhattan distance:https://en.wikipedia.org/wiki/Taxicab_geometry</url> \
206- (<url>:WMA link:https://reference.wolfram.com/language/ref/ManhattanDistance.html</url>)
221+ <url>
222+ :Manhattan distance:
223+ https://en.wikipedia.org/wiki/Taxicab_geometry</url> \
224+ (<url>
225+ :WMA:
226+ https://reference.wolfram.com/language/ref/ManhattanDistance.html</url>)
207227
208228 <dl>
209229 <dt>'ManhattanDistance[$u$, $v$]'
@@ -219,7 +239,7 @@ class ManhattanDistance(Builtin):
219239
220240 summary_text = "Manhattan distance"
221241
222- def apply (self , u , v , evaluation ):
242+ def eval (self , u , v , evaluation : Evaluation ):
223243 "ManhattanDistance[u_, v_]"
224244 t = _norm_calc (SymbolSubtract , u , v , evaluation )
225245 if t is not None :
@@ -228,7 +248,9 @@ def apply(self, u, v, evaluation):
228248
229249class SquaredEuclideanDistance (Builtin ):
230250 """
231- <url>:WMA link:https://reference.wolfram.com/language/ref/SquaredEuclideanDistance.html</url>
251+ <url>
252+ :WMA link:
253+ https://reference.wolfram.com/language/ref/SquaredEuclideanDistance.html</url>
232254
233255 <dl>
234256 <dt>'SquaredEuclideanDistance[$u$, $v$]'
@@ -244,7 +266,7 @@ class SquaredEuclideanDistance(Builtin):
244266
245267 summary_text = "square of the euclidean distance"
246268
247- def apply (self , u , v , evaluation ):
269+ def eval (self , u , v , evaluation : Evaluation ):
248270 "SquaredEuclideanDistance[u_, v_]"
249271 t = _norm_calc (SymbolSubtract , u , v , evaluation )
250272 if t is not None :
0 commit comments