Quickenshtein

Making the quickest and most memory efficient implementation of Levenshtein Distance with SIMD and Threading support

MIT License

Stars
273

Bot releases are hidden (Show)

Quickenshtein - 1.5.1 Latest Release

Published by Turnerj over 3 years ago

  • Fixes MissingMethodException relating to .NET Standard 2.0 string variants of GetDistance (#45, #46)
Quickenshtein - 1.5.0

Published by Turnerj over 4 years ago

Performance Improvements

  • Support for 16-bit (ushort) diagonal calculations (#20) - approximately 15% faster under certain workloads
  • Improving pointer handling for diagonal calculations (d6ef6d4) - approximately 8% faster
  • Improving end-of-string trimming performance (c7be0ac) - approximately 5% faster
Quickenshtein - 1.4.0

Published by Turnerj over 4 years ago

Performance Improvements

  • Replaced primary .NET Core implementation with new Diagonal Levenshtein Calculation, based on Anna Henningsen's C implementation of Levenshtein Distance - approximately 40% faster than previous
  • Faster sequential filling for non-diagonal calculations - approximately 20-40% faster than previous
Quickenshtein - 1.3.0

Published by Turnerj over 4 years ago

Performance Improvements

  • Up-to 8x outer loop unrolling (.NET Core)
  • Multi-threading support (.NET Core & .NET Framework)
  • Minor other performance improvements (.NET Core)
Quickenshtein - 1.2.0

Published by Turnerj over 4 years ago

Performance Improvements & Bug Fixes

  • Smarter handling of vectors during row calculation (.NET Core)
  • Fixed bug in intrinsic trimming (.NET Core)
  • Unrolling outer row loop (.NET Core & .NET Framework)

Note: This version is the first correctly calculating version after version 1.1.0 and 1.1.1 had issues. Additional tests have been added to hopefully mitigate this from happening again in the future.

Quickenshtein - 1.0.0

Published by Turnerj over 4 years ago

Initial release of Quickenshtein

  • Supports AVX2 and SSE2 intrinsics for some operations
  • Zero allocations in both .NET Framework and .NET Core
  • Various optimizations including equality trimming