Class: StringMetric::Levenshtein::IterativeWithTwoMatrixRowsExt
- Inherits:
-
Object
- Object
- StringMetric::Levenshtein::IterativeWithTwoMatrixRowsExt
- Defined in:
- lib/string_metric/levenshtein/iterative_with_two_matrix_rows_ext.rb,
ext/string_metric/levenshtein/iterative_with_two_matrix_rows/iterative_with_two_matrix_rows_ext.c
Class Method Summary collapse
Class Method Details
.distance(from, to, options = {}) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/string_metric/levenshtein/iterative_with_two_matrix_rows_ext.rb', line 8 def self.distance(from, to, = {}) max_distance = [:max_distance] insertion_cost = [:insertion_cost] || 1 deletion_cost = [:deletion_cost] || 1 substitution_cost = [:substitution_cost] || 1 from_len = from.length to_len = to.length if max_distance && (to_len - from_len).abs >= max_distance return max_distance end return 0 if from == to return to_len if from_len.zero? return from_len if to_len.zero? from = from.codepoints.to_a to = to.codepoints.to_a distance_ext(from, to, from_len, to_len, max_distance || 0, insertion_cost, deletion_cost, substitution_cost) end |
.distance_ext ⇒ Object
23 24 25 |
# File 'ext/string_metric/levenshtein/iterative_with_two_matrix_rows/iterative_with_two_matrix_rows_ext.c', line 23 VALUE distance_ext(VALUE self, VALUE v_from, VALUE v_to, VALUE v_from_len, VALUE v_to_len, VALUE v_max_distance, VALUE v_insertion_cost, VALUE v_deletion_cost, VALUE v_substitution_cost); |