rational.h