Paste number 50979: WHY USE LISP!? C IS FASTAR?!?!?

Paste number 50979: WHY USE LISP!? C IS FASTAR?!?!?
Pasted by: perlbot
8 months, 1 week ago
#lispcafe | Context in IRC logs
Paste contents:
Raw Source | XML | Display As
field_set*
set_difference (field_set *set1, field_set *set2)
{
    field_set *difference = (field_set*)malloc(sizeof(field_set));
    int i,
        set1_alone_fields,
        set2_alone_fields,
        intersect_fields,
        intersect_min_mines,
        intersect_max_mines;

    difference->num_fields = 0;

    for (i = 0; i < set1->num_fields; ++i)
    {
        int j,
            found = 0;

        for (j = 0; j < set2->num_fields; ++j)
            if (set1->fields[i].x == set2->fields[j].x && set1->fields[i].y == set2->fields[j].y)
            {
                found = 1;
                break;
            
}


        if (!found)
            difference->fields[difference->num_fields++] = set1->fields[i];
    
}


    if (difference->num_fields == 0)
    {
        free(difference);
        return 0;
    
}


    intersect_fields = set1->num_fields - difference->num_fields;
    set1_alone_fields = set1->num_fields - intersect_fields;
    set2_alone_fields = set2->num_fields - intersect_fields;

    intersect_min_mines = MAX(0, MAX(set1->min_mines - set1_alone_fields,
                                   set2->min_mines - set2_alone_fields
)
)
;
    difference->max_mines = MIN(difference->num_fields, set1->max_mines - intersect_min_mines);

    intersect_max_mines = MIN(intersect_fields, MIN(set1->max_mines, set2->max_mines));
    difference->min_mines = MAX(0, set1->min_mines - intersect_max_mines);

    make_set_bounds(difference);
    canonize_set(difference);

    return difference;
}


This paste has no annotations.

Colorize as:
Show Line Numbers

Ads absolutely not by Google

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.