# NAME

Math::Symbolic::Derivative - Derive Math::Symbolic trees

# SYNOPSIS

```
use Math::Symbolic::Derivative qw/:all/;
$derived = partial_derivative($term, $variable);
# or:
$derived = total_derivative($term, $variable);
```

# DESCRIPTION

This module implements derivatives for Math::Symbolic trees. Derivatives are Math::Symbolic::Operators, but their implementation is drawn from this module because it is significantly more complex than the implementation of most operators.

Derivatives come in two flavours. There are partial- and total derivatives.

Explaining the precise difference between partial- and total derivatives is beyond the scope of this document, but in the context of Math::Symbolic, the difference is simply that partial derivatives just derive in terms of *explicit* dependency on the differential variable while total derivatives recongnize implicit dependencies from variable signatures.

Partial derivatives are faster, have been tested more thoroughly, and are probably what you want for simpler applications anyway.

## EXPORT

None by default. But you may choose to import the total_derivative() and partial_derivative() functions.

# CLASS DATA

The package variable %Partial_Rules contains partial derivative rules as key-value pairs of names and subroutines.

# SUBROUTINES

## partial_derivative

Takes a Math::Symbolic tree and a Math::Symbolic::Variable as argument. third argument is an optional boolean indicating whether or not the tree has to be cloned before being derived. If it is true, the subroutine happily stomps on any code that might rely on any components of the Math::Symbolic tree that was passed to the sub as first argument.

## total_derivative

Takes a Math::Symbolic tree and a Math::Symbolic::Variable as argument. third argument is an optional boolean indicating whether or not the tree has to be cloned before being derived. If it is true, the subroutine happily stomps on any code that might rely on any components of the Math::Symbolic tree that was passed to the sub as first argument.

# AUTHOR

Please send feedback, bug reports, and support requests to the Math::Symbolic support mailing list: math-symbolic-support at lists dot sourceforge dot net. Please consider letting us know how you use Math::Symbolic. Thank you.

If you're interested in helping with the development or extending the module's functionality, please contact the developers' mailing list: math-symbolic-develop at lists dot sourceforge dot net.

List of contributors:

```
Steffen M�ller, symbolic-module at steffen-mueller dot net
Stray Toaster, mwk at users dot sourceforge dot net
Oliver Ebenh�h
```

# SEE ALSO

New versions of this module can be found on http://steffen-mueller.net or CPAN. The module development takes place on Sourceforge at http://sourceforge.net/projects/math-symbolic/