This thesis describes the characteristics of a novel computational technique called automatic differentiation, and gives an implementation of this technique in the Ada® programming language. Automatic differentiation is a technique with which one can directly calculate the value of any partial derivative of nearly any function that has been programmed into a computer (at any point of interest), without requiring the algebraic derivation of the desired partial derivative of the function of interest. It is closely related to the technique of power series manipulation, with which one can find, for example, the sum, product, square root, etc., of given power series. The result of this work is an Ada package called DIFFERENTIALS, which exports various types and functions that can be included in user programs. The first half of this thesis describes the technique of automatic differentiation, gives the fundamental specification for the DIFFERENTIALS package, and explains the details of the implementation. The second half of this thesis gives specific examples of the use of DIFFERENTIALS in the area of optical system analysis. Presented there are several user programs that use the DIFFERENTIALS package to calculate various partial derivatives of the ray tracing function, and illustrate the proper usage of this package.

Library of Congress Subject Headings

Computable functions--Data processing; Ada (Computer program language); Optics, Adaptive--Data processing

Publication Date


Document Type


Student Type


Degree Name

Computer Science (MS)

Department, Program, or Center

Computer Science (GCCIS)


Stanislaw Radziszowski

Advisor/Committee Member

Peter Anderson

Advisor/Committee Member

Jack Hollingsworth


Physical copy available from RIT's Wallace Library at QA9.59.H47 1987


RIT – Main Campus