Copyright by Richard D. Neidinger and Ben Altman, Davidson College 2016.
Free for academic research or teaching purposes.
Developed as part of an undergraduate honors project and refined into 
presentation and paper for AD2016.

Implementation of Direct Forward AD (Algorithmic Differentiation)
for functions of n variables, computing up to d degree multivariate 
Taylor series, and hence order d partial derivatives.

Finds series or derivatives for functions of the form
    y = f(x) where y is scalar and x is a vector of n variables.
    Example function tennis.m is provided.
Only the standard scalar-valued functions may be used.

Example sequence of commands:
-----------------------------
setsncGlobals(3,25)  % or load(seriesn3d25globals.mat) if already done
    % saves global variables for n=3 variables up to any order <= 25
snc = mvseries(@tennis,[20,44,9],3);
    % returns seriesncorner object for function, point, order d <=25
disp(snc);  % displays a table of multi-index, series coef, derivative
coefs = double(snc);  
    % returns one column of series coefficients
derivs = to_derivs(snc);  % returns one column of derivative values

Limitations in this prototype:
------------------------------
WARNING: both n and d large can use too much memory, try to keep
    nchoosek(n+d,d) < 200,000,
since this is the number of coeficients (unique derivatives).
I've handled up to 2,700,000 (n=12, d=12) on my laptop.

ONLY the standard scalar-valued functions are overloaded.

NO treatment of sparsity.

Files in this package:
----------------------
seriesncorner.m -- class containing the object-oriented programming
setsncGlobals.m
mvseries.m
tennis.m
IntroContents.txt
