Skip to content

Commit

Permalink
west west
Browse files Browse the repository at this point in the history
  • Loading branch information
DanHarltey committed Mar 26, 2024
1 parent 35a574c commit 6d51488
Show file tree
Hide file tree
Showing 5 changed files with 222 additions and 196 deletions.
33 changes: 2 additions & 31 deletions benchmarks/Fastenshtein.Benchmarking/FastenshteinBenchmark.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,6 @@ public void Fastenshtein()
}
}

[Benchmark]
public void Fastenshtein2()
{
for (int i = 0; i < words.Length; i++)
{
var levenshtein = new global::Fastenshtein.Levenshtein(words[i]);

for (int j = 0; j < words.Length; j++)
{
levenshtein.DistanceFrom2(words[j]);
}
}
}

[Benchmark]
public void Fastenshtein3()
{
Expand All @@ -60,30 +46,15 @@ public void Fastenshtein3()
}

[Benchmark]
public void Fastenshtein4()
{
for (int i = 0; i < words.Length; i++)
{
var levenshtein = new global::Fastenshtein.Levenshtein(words[i]);

for (int j = 0; j < words.Length; j++)
{
levenshtein.DistanceFrom4(words[j]);
}
}
}


[Benchmark]
public void Fastenshtein5()
public void Fastenshtein_Inc()
{
for (int i = 0; i < words.Length; i++)
{
var levenshtein = new global::Fastenshtein.Levenshtein(words[i]);

for (int j = 0; j < words.Length; j++)
{
levenshtein.DistanceFrom5(words[j]);
levenshtein.DistanceFrom_Inc(words[j]);
}
}
}
Expand Down
19 changes: 3 additions & 16 deletions benchmarks/Fastenshtein.Benchmarking/FastenshteinDisassembly.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,36 +15,23 @@ public int Fastenshtein()
return levenshtein.DistanceFrom("test");
}

[Benchmark]
[SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Must be an instance method for BenchmarkDotNet")]
public int Fastenshtein2()
{
var levenshtein = new global::Fastenshtein.Levenshtein("test");
return levenshtein.DistanceFrom2("test");
}
[Benchmark]
[SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Must be an instance method for BenchmarkDotNet")]
public int Fastenshtein3()
{
var levenshtein = new global::Fastenshtein.Levenshtein("test");
return levenshtein.DistanceFrom3("test");
}
[Benchmark]
[SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Must be an instance method for BenchmarkDotNet")]
public int Fastenshtein4()
{
var levenshtein = new global::Fastenshtein.Levenshtein("test");
return levenshtein.DistanceFrom4("test");
}

[Benchmark]
[SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Must be an instance method for BenchmarkDotNet")]
public int Fastenshtein5()
public int Fastenshtein_Inc()
{
var levenshtein = new global::Fastenshtein.Levenshtein("test");
return levenshtein.DistanceFrom5("test");
return levenshtein.DistanceFrom_Inc("test");
}


////[Benchmark(Baseline = true)]
////[SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Must be an instance method for BenchmarkDotNet")]
////public int Fastenshtein_1_0_0_8()
Expand Down
8 changes: 5 additions & 3 deletions src/Fastenshtein/AutoCompleteLevenshtein.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ public static int Distance(string value1, string value2)

int[] costs = new int[value1.Length];

int previousCost = 0;

// Add indexing for insertion to first row
for (int i = 0; i < costs.Length;)
for (; previousCost < costs.Length;)
{
costs[i] = ++i;
costs[previousCost] = ++previousCost;
}

int minSize = value1.Length < value2.Length ? value1.Length : value2.Length;
Expand All @@ -33,7 +35,7 @@ public static int Distance(string value1, string value2)
{
// cost of the first index
int cost = i;
int previousCost = i;
previousCost = i;

// cache value for inner loop to avoid index lookup and bonds checking, profiled this is quicker
char value2Char = value2[i];
Expand Down
Loading

0 comments on commit 6d51488

Please sign in to comment.