- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
int main()
{
using ToString::ExprToString;
using Result1 = Eval<Expr<Add,
Expr<Div, Int<5>, Int<3>>,
Expr<Div, Int<6>, Int<8>>>>;
std::cout << ExprToString<Result1>::toString() << std::endl; // 5/3 + 6/8 = (29 / 12)
using Result2 = Eval<Expr<Div, Int<100>, Int<20>>>;
std::cout << ExprToString<Result2>::toString() << std::endl; // 5
using Result3 = Eval<Expr<Div, Int<27>, Int<24>>>;
std::cout << ExprToString<Result3>::toString() << std::endl; // (9 / 8)
using Result4 = Eval<Expr<Mul,
Expr<Div, Int<5>, Int<3>>,
Expr<Div, Int<6>, Int<8>>>>;
std::cout << ExprToString<Result4>::toString() << std::endl; // 5/3 * 6/8 = (5 / 4)
using Result5 = Eval<Expr<Derivative, Var<0>, Expr<Mul, Var<0>, Var<0>>>>;
std::cout << ExprToString<Result5>::toString() << std::endl; // d/dx x*x = 2*x = (Var(0) * 2)
using Result6 = Eval<Expr<Derivative, Var<0>, Expr<Div, Int<2>, Var<0>>>>;
std::cout << ExprToString<Result6>::toString() << std::endl; // d/dx 2/x = -2 * x^2
return EXIT_SUCCESS;
}