From f4b01ad679d593e49eaccf3280015fe5fdbc7b17 Mon Sep 17 00:00:00 2001
From: Mingchung Xia <mingchung.xia@gmail.com>
Date: Thu, 25 Jan 2024 19:56:59 -0500
Subject: [PATCH] Fixed CartesianDistanceMetric to run in reasonable compiler
 time

---
 Sources/SwiftNLP/1. Data Collection/HNSWCorpus.swift | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/Sources/SwiftNLP/1. Data Collection/HNSWCorpus.swift b/Sources/SwiftNLP/1. Data Collection/HNSWCorpus.swift
index a30c397e..ceda75a3 100644
--- a/Sources/SwiftNLP/1. Data Collection/HNSWCorpus.swift	
+++ b/Sources/SwiftNLP/1. Data Collection/HNSWCorpus.swift	
@@ -46,7 +46,8 @@ class HNSWCorpus<Scalar: BinaryFloatingPoint & Codable>: SNLPCorpus {
     
     @inlinable
     func addUntokenizedDocument(_ document: String) {
-        encodedDocuments.insert((_documentEncoder.encodeSentence(document) as! [Scalar]))
+        // Forced cast to [Scalar] is unnecessary
+        encodedDocuments.insert((_documentEncoder.encodeSentence(document)))
     }
 }
 
@@ -86,9 +87,10 @@ public struct DeterministicSampleVectorIndex<Vector: Collection & Codable> where
 
 public struct CartesianDistanceMetric<Vector: Collection & Codable>: SimilarityMetric where Vector.Element: BinaryFloatingPoint {
     public func similarity(between someItem: Vector, _ otherItem: Vector) -> Vector.Element {
-        let squaredSum = zip(someItem, otherItem)
-                .map { (x, y) in (x - y) * (x - y) }
-                .reduce(0, +)
+        
+        let squaredDifferences = zip(someItem, otherItem).map { (x, y) in (x - y) * (x - y) }
+        let squaredSum = squaredDifferences.reduce(0, +)
+        
         return sqrt(squaredSum)
     }
 }
-- 
GitLab