AUTOMATIC DERIVATIVE METHOD FOR A COMPUTER PROGRAMMING LANGUAGE
First Claim
Patent Images
1. A computing system, comprising a processor;
- and a first memory in communication with the processor, the first memory storing programming instructions executable by the processor to;
accept a function expressed as a program in a formal language of a formal system;
automatically process the program to yield an output; and
store the output of the processing in a second memory;
wherein the formal language includes at least one automatic differentiation (AD) construct thattakes as its input a first object expressed in the formal language,provides as its output a second object expressed in the formal language, where the second object calculates the derivative of the first object, andwherein the second object is produced by transforming the first object within the formal system.
3 Assignments
0 Petitions
Accused Products
Abstract
The disclosed system provides a transformation-based implementation of forward-mode and reverse-mode automatic differentiation as a built-in, first-class function in a functional programming language. Each of these constructs imposes only a small constant factor of the computational burden (time) of the function itself, and the forward construct has the same properties in terms of space. The functions can be applied to any function, including those involving derivatives and nested closures.
66 Citations
37 Claims
-
1. A computing system, comprising a processor;
- and a first memory in communication with the processor, the first memory storing programming instructions executable by the processor to;
accept a function expressed as a program in a formal language of a formal system; automatically process the program to yield an output; and store the output of the processing in a second memory; wherein the formal language includes at least one automatic differentiation (AD) construct that takes as its input a first object expressed in the formal language, provides as its output a second object expressed in the formal language, where the second object calculates the derivative of the first object, and wherein the second object is produced by transforming the first object within the formal system. - View Dependent Claims (2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 17, 18, 19, 21, 24, 25)
- and a first memory in communication with the processor, the first memory storing programming instructions executable by the processor to;
-
6. (canceled)
-
8. (canceled)
-
10. (canceled)
-
12. (canceled)
-
16. (canceled)
-
20. A computing system, comprising a processor and a first memory in communication with the processor, the first memory storing programming instructions executable by the processor to:
-
accept a function expressed as a program in a formal language of a formal system; automatically process the program to yield an output; and store the output of the processing in a second memory; wherein the formal language includes at least one forward-mode automatic differentiation (AD) construct that operates in the presence of multivariate derivatives and to maintain a stream of higher-order derivatives, the stream being at least one of; lazy and truncated at some finite order greater than one.
-
-
22. (canceled)
-
23. (canceled)
-
26. A computing system, comprising a processor;
- and a first memory in communication with the processor, the first memory storing programming instructions executable by the processor to;
accept a function expressed as a program in a formal language of a formal system; automatically process the program, where the processing is selected from the group consisting of interpreting the program to produce the program'"'"'s output, and compiling the program to produce as output an executable form of the program; and store the output in a second memory; wherein the formal language includes an intrinsic operation by which an additional operation is defined with its forward- and backward-mode AD transforms; and wherein the automatic processing correctly applies the new operation in programs wherein AD constructs are used in a nested fashion, and in programs wherein higher-order derivatives are taken of functions defined using the additional construct. - View Dependent Claims (28)
- and a first memory in communication with the processor, the first memory storing programming instructions executable by the processor to;
-
27. (canceled)
-
29. A computing system, comprising a processor and a first memory in communication with the processor, the first memory storing programming instructions executable by the processor to:
-
accept a function expressed as a program; automatically process the program to produce an output; and store the output in a second memory; wherein the automatic processing interprets an automatic differentiation (AD) construct that takes a first function as its input, provides a second function as its output, where the second function calculates the derivative of the first function, and wherein the first function includes a nested AD operation such that at least one of the following hold; the first function provides cascaded use of the AD construct, with or without intermediate operations on the resulting value;
orthe code for the first function invokes the AD construct. - View Dependent Claims (32, 33, 36, 37)
-
-
30. (canceled)
-
31. (canceled)
-
34. (canceled)
-
35. (canceled)
Specification