//
//  gex.cpp
//

#include <iostream>
#include <ginac/ginac.h>

using namespace std;
using namespace GiNaC;


int main(int argc, char **argv)
    {
    //
    // Define some symbols.
    //
    symbol a("a"), b("b"), c("c");
    symbol x("x"), y("y");

    //
    // Create an expression.
    //
    ex f = x*sin(3*a*x) - exp(-b*y) + c*tanh(c*x*y*y);

    //
    // Take some derivatives.
    //
    ex dfx = f.diff(x);
    ex dfy = f.diff(y);

    cout << "f = " << f << endl;
    cout << "df/dx = " << dfx << endl;
    cout << "df/dy = " << dfy << endl;
    }


