#include #include "StatTools/Funct/Variables.h" #include "StatTools/Funct/FunctManip.h" #include "StatTools/Funct/FunctIO.h" using namespace std; using namespace Funct; int main() { X x; Y y; // test basic function sum cout << sin( x ) << " + " << cos( x ) << " = " << sin( x ) + cos( x ) << endl; cout << sin( x ) << " comp. " << cos( x ) << " = " << sin( cos( x ) ) << endl; // test minus cout << " -( " << sin( x ) << " ) = " << - sin( x ) << endl; cout << " - - ( " << sin( x ) << " ) = " << ( -( - sin( x ) ) ) << endl; cout << sin( x ) << " * " << sin( x ) << " = " << sin( x ) * sin ( x ) << endl; cout << sin( x )<< " ^ " << num<3>() << " = " << pow( sin( x ), num<3>() ) << endl; cout << "2 * " << sin( x ) << " * " << sin( x ) << " = " << num<2>() * sin( x ) * sin ( x ) << endl; cout << sin( x ) << " * " << cos( x ) << " * " << sin( x ) << " = " << sin( x ) * cos( x ) * sin ( x ) << endl; cout << "( " << sin( x ) << " / " << exp( x ) << " ) / " << cos( x ) << " = " << ( sin( x ) / exp( x ) ) / cos ( x ) << endl; cout << sin( x ) << " / ( " << exp( x ) << " / " << cos( x ) << " ) = " << sin( x ) / ( exp( x ) / cos ( x ) ) << endl; cout << ( sin( x ) * exp( x ) ) << " / ( " << sin( x ) << " ) = " << ( sin( x ) * exp( x ) ) / sin ( x ) << endl; cout << ( sin( x ) * exp( x ) ) << " / ( " << exp( x ) << " ) = " << ( sin( x ) * exp( x ) ) / exp ( x ) << endl; cout << sin( x ) << " / " << ( sin( x ) * exp( x ) ) << " ) = " << sin( x ) / ( sin( x ) * exp( x ) ) << endl; cout << exp( x ) << " / " << ( sin( x ) * exp( x ) ) << " ) = " << exp( x ) / ( sin( x ) * exp( x ) ) << endl; cout << sin( x ) << " * " << cos( x ) << " * " << exp( x ) << " * " << pow( sin( x ), num<2>() ) << " = " << sin( x ) * cos( x ) * exp( x ) * pow( sin( x ), num<2>() ) << endl; cout << num<8>() << " " << cos( x ) << " " << sin( x ) << " " << pow( cos( x ), num<3>() ) << " " << sin( x ) << " = " << num<8>() * cos( x ) * sin( x ) * pow( cos( x ), num<3>() ) * sin( x ) << endl; cout << exp( x ) << " * " << sin( x ) << " = " << ( exp( x ) * sin( x ) ) << endl; cout << "log( abs( x ) ) = " << log( abs( x ) ) << endl; cout << "exp( log( x ) ) = " << exp( log( x ) ) << endl; cout << "log( x^2 ) = " << log( pow( x, num<2>() ) ) << endl; cout << exp( x ) << " * " << sin( x ) << " * " << cos( x ) << " = " << ( ( exp( x ) * sin( x ) ) * cos ( x ) ) << endl; cout << sin( x ) << " * " << pow( sin( x ), num<3>() ) << " = " << sin( x ) * pow( sin( x ), num<3>() ) << endl; // difference with negative function cout << sin( x ) << " -( - " << cos( x ) << " ) = " << sin( x ) - ( -cos( x ) ) << endl; // simplification expression cout << sin( x ) << " * 1 = " << sin( x ) * num<1>() << endl; cout << sin( x ) << " / 1 = " << sin( x ) / num<1>() << endl; cout << sin( x ) << " / ( - 1 ) = " << sin( x ) / num<-1>() << endl; cout << sin( x ) << " * 0 = " << sin( x ) * num<0>() << endl; cout << sin( x ) << " * -1 = " << sin( x ) * num<-1>() << endl; cout << sin( x ) << " ^ 1 = " << pow( sin( x ), num<1>() ) << endl; cout << sin( x ) << " ^ 1/2 = " << pow( sin( x ), fract<1,2>() ) << endl; cout << sin( x ) << " ^ -1 = " << pow( sin( x ), num<-1>() ) << endl; cout << sqr( sin( x ) ) << " + " << sqr( cos( x ) ) << " = " << sqr( sin( x ) ) + sqr( cos( x ) ) << endl; cout << tan( x ) << " * " << cos( x ) << " = " << tan( x ) * cos( x ) << endl; cout << sin( x ) << " + " << sin( x ) << " = " << sin( x ) + sin( x ) << endl; cout << sin( x ) << " - " << sin( x ) << " = " << sin( x ) - sin( x ) << endl; cout << sin( x ) << " * " << sin( x ) << " = " << sin( x ) * sin( x ) << endl; cout << sin( x ) << " / " << sin( x ) << " = " << sin( x ) / sin( x ) << endl; cout << sin( x ) << " + " << sin( x ) << " + " << sin( x ) << " = " << sin( x ) + sin( x ) + sin( x ) << endl; cout << sin( x ) + cos( x ) << " / " << cos( x ) + sin( x ) << " = " << ( sin( x ) + cos( x ) ) / ( cos( x ) + sin( x ) )<< endl; cout << sin( x ) * x << " + " << exp( x ) * x * cos( x ) << " = " << sin( x ) * x + exp( x ) * x * cos( x ) << endl; cout << sin( x ) * x << " + " << cos( x ) * x * sin( x ) << " = " << sin( x ) * x + cos( x ) * x * sin( x ) << endl; cout << x * exp( pow( x, num( 2 ) ) ) << " + " << pow( x, num( 3 ) ) * exp( pow( x, num( 2 ) ) ) << " = " << x * exp( pow( x, num( 2 ) ) ) + pow( x, num( 3 ) ) * exp( pow( x, num( 2 ) ) ) << endl; cout << x * sin( x ) << " + " << pow( x, num( 3 ) ) * sin( x ) << " = " << x * sin( x ) + pow( x, num( 3 ) ) * sin( x ) << endl; cout << sin( x ) * cos( x ) << " + " << pow( cos( x ), num( 3 ) ) * sin( x ) << " = " << sin( x ) * cos( x ) + pow( cos( x ), num( 3 ) ) * sin( x ) << endl; cout << pow( cos( x ), num( 3 ) ) << " + " << 2 * pow( sin( x ), num( 2 ) ) * cos( x ) << " = " << pow( cos( x ), num( 3 ) ) + 2 * pow( sin( x ), num( 2 ) ) * cos( x ) << endl; cout << pow( cos( x ), num( 3 ) ) << " - " << 2 * pow( sin( x ), num( 2 ) ) * cos( x ) << " = " << pow( cos( x ), num( 3 ) ) - 2 * pow( sin( x ), num( 2 ) ) * cos( x ) << endl; return 0; }