Ejemplo n.º 1
0
void format_ary(void)
{
	memset(ary, 0xff, sizeof(ary)); /* White */
	border();
	crosses();
	label();

}
Ejemplo n.º 2
0
void evalb::add_tree(parse_tree proposed, parse_tree gold)
{

    static multi_transformer<annotation_remover, collinizer, empty_remover>
    trnsfm;

    proposed.transform(trnsfm);
    gold.transform(trnsfm);

    auto prop_const = get_constituents(proposed);
    auto gold_const = get_constituents(gold);

    uint64_t crossings = 0;
    for (const auto& guess : prop_const)
    {
        for (const auto& gold : gold_const)
        {
            if (crosses(guess, gold))
            {
                ++crossings;
                break;
            }
        }
    }
    if (crossings == 0)
        ++zero_crossing_;
    crossed_ += crossings;
    ++total_trees_;

    proposed_total_ += prop_const.size();
    uint64_t gold_total = gold_const.size();
    uint64_t matched = 0;
    for (const auto& guess : prop_const)
    {
        auto it = gold_const.find(guess);
        if (it != gold_const.end())
        {
            ++matched;
            gold_const.erase(it);
        }
    }

    if (matched == gold_total && matched == prop_const.size())
        ++perfect_;

    gold_total_ += gold_total;
    proposed_correct_ += matched;
}
Ejemplo n.º 3
0
  bool Polygon2d::overlaps(Polygon2d p) { // does not seem to work
//    return overlaps(&p);

    for (int i=1;i<=p.vs.len;i++)
      if (crosses(p.linefrom(i)))
        return true;
    bool pin=true;
    bool thisin=true;
    for (int i=1;i<=p.vs.len && pin;i++)
      if (!contains(p.vs.num(i)))
        pin=false;
    for (int i=1;i<=vs.len && thisin;i++)
      if (!p.contains(vs.num(i)))
        thisin=false;
    if (pin)
      return container; // this polygon completely contains p
    if (thisin)
      return contained;
    return false;
  }