You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
letlongPangram=Array("This pangram contains four As, one B, two Cs, one D, thirty Es, six Fs, five Gs, seven Hs, eleven Is, one J, one K, two Ls, two Ms, eighteen Ns, fifteen Os, two Ps, one Q, five Rs, twenty-seven Ss, eighteen Ts, two Us, seven Vs, eight Ws, two Xs, three Ys, & one Z")
58
+
lettypingPangram=Array("The quick brown fox jumps over the lazy dog")
59
+
letloremIpsum=Array("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.")
60
+
letunabridgedLorem=Array("Lorem ipsum, quia dolor sit amet consectetur adipisci[ng] velit, sed quia non-numquam [do] eius modi tempora inci[di]dunt, ut labore et dolore magnam aliqua.")
61
+
letloremReverse=Array(".auqila angam erolod te erobal tu tnudidicni ropmet domsuie od des ,tile gnicsipida rutetcesnoc ,tema tis rolod muspi meroL")
62
+
63
+
64
+
@inline(never)
65
+
publicfunc run_DiffSame(_ N:Int){
66
+
if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6,*){
67
+
for_in1...N {
68
+
let _ = longPangram.difference(from: longPangram)
69
+
}
70
+
}
71
+
}
72
+
73
+
@inline(never)
74
+
publicfunc run_DiffPangramToAlphabet(_ N:Int){
75
+
if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6,*){
76
+
for_in1...N {
77
+
let _ = longPangram.difference(from: alphabets)
78
+
}
79
+
}
80
+
}
81
+
82
+
@inline(never)
83
+
publicfunc run_DiffPangrams(_ N:Int){
84
+
if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6,*){
85
+
for_in1...N {
86
+
let _ = longPangram.difference(from: typingPangram)
87
+
}
88
+
}
89
+
}
90
+
91
+
@inline(never)
92
+
publicfunc run_DiffReversedAlphabets(_ N:Int){
93
+
if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6,*){
94
+
for_in1...N {
95
+
let _ = alphabets.difference(from: alphabetsReversed)
96
+
}
97
+
}
98
+
}
99
+
100
+
@inline(never)
101
+
publicfunc run_DiffReversedLorem(_ N:Int){
102
+
if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6,*){
103
+
for_in1...N {
104
+
let _ = loremIpsum.difference(from: loremReverse)
105
+
}
106
+
}
107
+
}
108
+
109
+
@inline(never)
110
+
publicfunc run_DiffDisparate(_ N:Int){
111
+
if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6,*){
112
+
for_in1...N {
113
+
let _ = alphabets.difference(from: numbersAndSymbols)
114
+
}
115
+
}
116
+
}
117
+
118
+
@inline(never)
119
+
publicfunc run_DiffSimilar(_ N:Int){
120
+
if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6,*){
121
+
for_in1...N {
122
+
let _ = loremIpsum.difference(from: unabridgedLorem)
letloremShort=Array("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.")
20
+
letloremLong=Array("Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt, explicabo. Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem ipsum, quia dolor sit amet consectetur adipisci[ng] velit, sed quia non-numquam [do] eius modi tempora inci[di]dunt, ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum[d] exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla pariatur?")
21
+
22
+
@inline(never)
23
+
publicfunc run_Myers(N:Int){
24
+
if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6,*){
25
+
for_in1...N {
26
+
let _ =myers(from: loremShort, to: loremLong, using:==)
27
+
}
28
+
}
29
+
}
30
+
31
+
// _V is a rudimentary type made to represent the rows of the triangular matrix type used by the Myer's algorithm
32
+
//
33
+
// This type is basically an array that only supports indexes in the set `stride(from: -d, through: d, by: 2)` where `d` is the depth of this row in the matrix
34
+
// `d` is always known at allocation-time, and is used to preallocate the structure.
35
+
fileprivatestruct_V{
36
+
37
+
privatevara:[Int]
38
+
39
+
// The way negative indexes are implemented is by interleaving them in the empty slots between the valid positive indexes
0 commit comments