Nick Logan > Text-Levenshtein-Damerau-XS-2.5 > Text::Levenshtein::Damerau::XS

Download:
Text-Levenshtein-Damerau-XS-2.5.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  1
View/Report Bugs
Module Version: 2.5   Source   Latest Release: Text-Levenshtein-Damerau-XS-3.0

NAME ^

Text::Levenshtein::Damerau::XS - XS Damerau Levenshtein edit distance.

SYNOPSIS ^

        use Text::Levenshtein::Damerau::XS qw/xs_edistance/;

        print xs_edistance('Neil','Niel');
        # prints 1

DESCRIPTION ^

Returns the true Damerau Levenshtein edit distance of strings with adjacent transpositions. XS implementation (requires a C compiler). Works correctly with utf8.

        use Text::Levenshtein::Damerau::XS qw/xs_edistance/;
        use utf8;

        xs_edistance('ⓕⓞⓤⓡ','ⓕⓤⓞⓡ'), 
        # prints 1

Speed improvements over Text::Levenshtein::Damerau::PP:

        # Text::Levenshtein::Damerau::PP::pp_edistance("four","fuor")
        timethis 1000000: 381 wallclock secs (380.45 usr +  0.01 sys = 
                 380.46 CPU) @ 2628.40/s (n=1000000)

        # Text::Levenshtein::Damerau::XS::xs_edistance("four","fuor")
        timethis 1000000: 19 wallclock secs (19.43 usr +  0.00 sys = 
                 19.43 CPU) @ 51466.80/s (n=1000000)

METHODS ^

xs_edistance

Arguments: source string and target string.

Returns: int that represents the edit distance between the two argument. Stops calculations and returns -1 if max distance is set and reached.

Wrapper function to take the edit distance between a source and target string using XS algorithm implementation.

        use Text::Levenshtein::Damerau::XS qw/xs_edistance/;
        print xs_edistance('Neil','Niel');
        # prints 1

       # Max edit distance of 1
        print xs_edistance('Neil','Niely',1); # distance is 2
        # prints -1

TODO ^

SEE ALSO ^

BUGS ^

Please report bugs to:

https://rt.cpan.org/Public/Dist/Display.html?Name=Text-Levenshtein-Damerau-XS

AUTHOR ^

Nick Logan <ug@skunkds.com>

LICENSE AND COPYRIGHT ^

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: