#include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { std::cout << "Expression Simplifier example program (i1)" << std::endl; try { std::string exprStr(argc == 2 ? argv[1] : "x^x"); std::auto_ptr >expr(math::TReader::parse(exprStr)); std::cout << "original : " << math::TPrinter::print(expr.get()) << std::endl; for (int n = 1; n <= 4; ++n) { std::auto_ptr >den(math::derive(expr.get(), n)); std::cout << n << ". derivation : " << math::TPrinter::print(den.get()) << std::endl; } } catch (const math::EMath& e) { std::cout << "exception caught: " << e.reason() << std::endl; return 1; } catch (...) { std::cout << "further exception caught." << std::endl; return 1; } return 0; }