Exemple #1
0
void toNormalizedNEXUS(ifstream & inf, ostream *os)
	{
	NxsTaxaBlock taxa;
	NxsTreesBlock trees(&taxa);
	NxsAssumptionsBlock assumptions(&taxa);
	NxsCharactersBlock character(&taxa, &assumptions);
	NxsDataBlock data(&taxa, &assumptions);
	NxsDistancesBlock distances(&taxa);
	NxsUnalignedBlock unaligned(&taxa, &assumptions);

	NormalizingReader nexus(os);
	nexus.Add(&taxa);
	nexus.Add(&trees);
	nexus.Add(&assumptions);
	nexus.Add(&character);
	nexus.Add(&data);
	nexus.Add(&distances);
	nexus.Add(&unaligned);

	if (os)
		{
		*os << "#NEXUS\n";
		}
	NormalizingToken token(inf, os);
	
	nexus.Execute(token);
	}
Exemple #2
0
z3::check_result Z3AssumptionSolverImpl::check(const Query &query) {
    std::list<ConditionNodeRef> cur_constraints;
    for (ConditionNodeRef node = query.constraints.head(),
            root = query.constraints.root();
            node != root; node = node->parent()) {
        cur_constraints.push_front(node);
    }

    z3::expr_vector assumptions(context_);

    for (std::list<ConditionNodeRef>::iterator it = cur_constraints.begin(),
            ie = cur_constraints.end(); it != ie; ++it) {
        assumptions.push_back(getAssumption((*it)->expr()));
    }
    assumptions.push_back(getAssumption(Expr::createIsZero(query.expr)));
    return solver_.check(assumptions);
}