derivative method in VisAD


To increase support for the development of discipline
specific VisAD applications, we have decided to add
a derivative method to the core system's Function

For starters, here are the method signatures we've
considered thus far:

    Function derivative( RealType dx, RealType derivType );

         Here, the derivative is evaluated at the function's
         sample points along the specified axis so the return
         data object should be the Function whose domain is that
         of the original fucntion's, and the range is that
         function's derivative.

    Tuple derivative();

         In this case no partial is specified, so the method evaluates
         the derivatives as above and returns a Tuple of Functions each
         of which corresponds to the partial derivative along each of
         the fucntion's domain axes.

    Data derivative( RealType dx, RealTuple location );

    Tuple derivative( RealTuple location );

         These last two are analogous to the previous two,
         except the derivative evaluation occurs at a
         specified point (location) in the function's domain.
         The return type is Data since the result is likely to
         be a Function or a Real.

    Where the arguements of these signatures represent,

         RealType dx:    partial derivative along this Real axis of the
                         functoion's domain.

         RealType derivType:  Type (name) of the derivative (optional)

         if ( derivType == null )
              derivType = "d_RangeName_/_d_dx"

         RealTuple location:  point in function's domain where the
                              derivative is to be evaluated.

Expect some revision, and possible additional signatures of this
method since I've just begun the development of this functionality.

Of course, comments and suggestions are welcomed.

Thank you,

Tom Rink                                             rink@xxxxxxxxxxxxx
Space Science and Engineering Center          Univ of Wisconsin-Madison
Phone: 608-265-2324