Dear list,

Using GiNaC one can define a symbolic/formal function f of two variables as follows:

    DECLARE_FUNCTION_2P(f)
    REGISTER_FUNCTION(f, dummy())

Formal derivatives can be computed by defining symbols x, y and calculating e.g.

    f(x,y).diff(x, 3).diff(y, 2)

which is printed as

    D[0,0,0,1,1](f)(x,y)

This is fantastic. Now, I would like to obtain the list [0, 0, 0, 1, 1] from the above expression.
Checking the printing code GiNaC::fderivative::do_print, this is stored in a GiNaC::paramset.
However, it's protected, and it doesn't seem to be accessible by any method. My attempt

    if (is_a<fderivative>(e))
    {
        fderivative fder = ex_to<fderivative>(e);
        for (auto x : fder.parameter_set)
            cout << x << ", ";
    }

therefore fails. Could an accessor or some such be implemented so this (basic) operation becomes possible?

Best regards,
Ricardo