LCS-XS

 view release on metacpan or  search on metacpan

XS.xs  view on Meta::CPAN

      RETVAL 

void lcs_LCS(obj, s1, s2)
    SV *obj
    AV * s1
    AV * s2

    PREINIT:
        struct CTX *ctx = (struct CTX *)SvIVX(SvRV(obj));

    PPCODE:
        int d, sn, i;
        struct varray *ses = varray_new(sizeof(struct diff_edit), NULL);
  
        IV n;
        IV m;
        n = av_len(s1);
        m = av_len(s2);

        d = diff(s1, 0, n+1, s2, 0, m+1, &_cmp_idx,  NULL, 0, ses, &sn, NULL);

XS.xs  view on Meta::CPAN



void lcs_LCSs(obj, s1, s2)
    SV *obj
    SV * s1
    SV * s2

    PREINIT:
        struct CTX *ctx = (struct CTX *)SvIVX(SvRV(obj));

    PPCODE:
        int d, sn, i;
        struct varray *ses = varray_new(sizeof(struct diff_edit), NULL);

        STRLEN n;
        STRLEN m;
        char *a = SvPV (s1, n);
        char *b = SvPV (s2, m);
   
        d = diff(a, 0, n, b, 0, m, NULL, NULL, 0, ses, &sn, NULL);

XS.xs  view on Meta::CPAN


void lcs_cLCSs(obj, s1, s2)

    SV *obj
    SV * s1
    SV * s2

    PREINIT:
        struct CTX *ctx = (struct CTX *)SvIVX(SvRV(obj));

    PPCODE:
        int d, sn, i;
        struct varray *ses = varray_new(sizeof(struct diff_edit), NULL);

        STRLEN n;
        STRLEN m;
        char *a = SvPV (s1, n);
        char *b = SvPV (s2, m);
   
        d = diff(a, 0, n, b, 0, m, NULL, NULL, 0, ses, &sn, NULL);



( run in 1.055 second using v1.01-cache-2.11-cpan-5511b514fd6 )