<?xml version="1.0"?>
<paste-with-annotations>
  <paste>
    <number>
      <integer>50979</integer>
    </number>
    <user>
      <string>perlbot</string>
    </user>
    <title>
      <string>WHY USE LISP!?  C IS FASTAR?!?!?</string>
    </title>
    <contents>
      <string>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-&gt;num_fields = 0;

    for (i = 0; i &lt; set1-&gt;num_fields; ++i)
    {
	int j,
	    found = 0;

	for (j = 0; j &lt; set2-&gt;num_fields; ++j)
	    if (set1-&gt;fields[i].x == set2-&gt;fields[j].x &amp;&amp; set1-&gt;fields[i].y == set2-&gt;fields[j].y)
	    {
		found = 1;
		break;
	    }

	if (!found)
	    difference-&gt;fields[difference-&gt;num_fields++] = set1-&gt;fields[i];
    }

    if (difference-&gt;num_fields == 0)
    {
	free(difference);
	return 0;
    }

    intersect_fields = set1-&gt;num_fields - difference-&gt;num_fields;
    set1_alone_fields = set1-&gt;num_fields - intersect_fields;
    set2_alone_fields = set2-&gt;num_fields - intersect_fields;

    intersect_min_mines = MAX(0, MAX(set1-&gt;min_mines - set1_alone_fields,
				   set2-&gt;min_mines - set2_alone_fields));
    difference-&gt;max_mines = MIN(difference-&gt;num_fields, set1-&gt;max_mines - intersect_min_mines);

    intersect_max_mines = MIN(intersect_fields, MIN(set1-&gt;max_mines, set2-&gt;max_mines));
    difference-&gt;min_mines = MAX(0, set1-&gt;min_mines - intersect_max_mines);

    make_set_bounds(difference);
    canonize_set(difference);

    return difference;
}

</string>
    </contents>
    <universal-time>
      <integer>3404302075</integer>
    </universal-time>
    <channel>
      <string>#lispcafe</string>
    </channel>
    <colorization-mode>
      <string>C</string>
    </colorization-mode>
    <maybe-spam>
      <null/>
    </maybe-spam>
    <is-unicode>
      <null/>
    </is-unicode>
  </paste>
</paste-with-annotations>