예제 #1
0
파일: sym.cpp 프로젝트: rieutord/ester
sym pow(const sym &s,const rational &q) {

	if(typeid(*s.expr)==typeid(sym::sym_num)) 
		return sym(pow(((sym::sym_num *)s.expr)->value,q.eval()));

	sym snew;
	
	snew.context=s.check_context();
	delete snew.expr;
	snew.expr=s.expr->clone();
	snew.expr=snew.expr->pow(q)->reduce();

	return snew;
}
예제 #2
0
bool rational::operator<(const rational &q) const {
	return eval()<q.eval();
}
예제 #3
0
bool rational::operator>(const rational &q) const {
	return eval()>q.eval();
}
예제 #4
0
파일: sym.cpp 프로젝트: rieutord/ester
sym::sym(const rational &q) {
	context=NULL;
	expr=new sym::sym_num(q.eval());
}