IMPROVES-i6 wrapper sequal(a,b,shold) : sequal_full(...)
This commit is contained in:
21
lib11sht.h
21
lib11sht.h
@@ -12,8 +12,9 @@
|
||||
#define LEVN_SBUFF 256 /* min size for s1/s2 buffers and bounded input */
|
||||
|
||||
/* Compare similarity between two strings (after asciify + trim + lowercase).
|
||||
* Symmetric in shape with fequal(a, b, delta).
|
||||
* Returns:
|
||||
* 0 if equal or similar above the given threshold ratio
|
||||
* 0 if equal or similar above the lratio threshold
|
||||
* -1 if a < b alphabetically (after normalization)
|
||||
* +1 if a > b alphabetically (after normalization)
|
||||
* On error: sets errno = EINVAL and returns 0; comparison result is undefined.
|
||||
@@ -21,12 +22,20 @@
|
||||
*
|
||||
* Parameters:
|
||||
* a, b input strings (NUL-terminated, may contain UTF-8 accented Latin chars)
|
||||
* thr Levenshtein similarity threshold 0.0..1.0; matches above this count as equal
|
||||
* ratio out: Levenshtein similarity 0.0..1.0 (1.0 on exact-after-normalize)
|
||||
* s1, s2 out: caller-provided buffers (>= LEVN_SBUFF) filled with the
|
||||
* normalized inputs (useful for diagnostics; can be ignored)
|
||||
* shold Levenshtein similarity threshold 0.0..1.0; matches above this count as equal
|
||||
*/
|
||||
int sequal(char *a, char *b, float thr, float *ratio, char *s1, char *s2);
|
||||
int sequal(char *a, char *b, float shold);
|
||||
|
||||
/* Full variant of sequal: same comparison but also returns diagnostics.
|
||||
* Used by callers that need the computed ratio or the normalized strings
|
||||
* (e.g. cmp11sht CLI's -o / -n flags).
|
||||
*
|
||||
* Extra parameters:
|
||||
* ratio out: Levenshtein similarity 0.0..1.0 (1.0 on exact-after-normalize)
|
||||
* s1, s2 out: caller-provided buffers (>= LEVN_SBUFF) filled with the
|
||||
* normalized inputs
|
||||
*/
|
||||
int sequal_full(char *a, char *b, float shold, float *ratio, char *s1, char *s2);
|
||||
|
||||
/* Compare two floats within ±delta.
|
||||
* Returns:
|
||||
|
||||
Reference in New Issue
Block a user