EFFICIENT SYMBOLIC DIFFERENTIATION USING DERIVATIVE GRAPH FACTORIZATION
First Claim
1. A method for performing symbolic differentiation of a function using a computing device, comprising:
- representing the function as an expression graph;
constructing a derivative graph from the expression graph to graphically represent a derivative of the function;
factoring out factor subgraphs from the derivative graph to generate a factored derivative graph; and
computing the derivative as a sum of products along all product paths in the factored derivative graph.
2 Assignments
0 Petitions
Accused Products
Abstract
An efficient symbolic differentiation method and system that automatically computes one or more derivatives of a function using a computing device. A derivative graph is used to graphically represent the derivative of a function. Repeated factorization of the derivative graph yields a factored derivative graph. The derivative is computed by summing the products along all product paths in the factored derivative graph. The efficient symbolic differentiation method and system operates on both single input/single output and multiple input/multiple output functions. For a single input/single output function, the order of the factoring does not matter. However, for a multiple input/multiple output function, the factoring order is such that the factor subgraph appearing most frequently in the derivative graph is factored first. The method and system also use a product pairs priority queue to avoid the re-computing of sub-strings that are common between product paths.
21 Citations
20 Claims
-
1. A method for performing symbolic differentiation of a function using a computing device, comprising:
-
representing the function as an expression graph; constructing a derivative graph from the expression graph to graphically represent a derivative of the function; factoring out factor subgraphs from the derivative graph to generate a factored derivative graph; and computing the derivative as a sum of products along all product paths in the factored derivative graph. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable medium having computer-executable instructions running on a computing device for computing a derivative of a function having a single input and a single output, comprising:
-
constructing a derivative graph that graphically represents the derivative of the function, the derivative graph having nodes and edges that connect the nodes such that each edge represent a term; determining that at least one node of the derivative graph satisfies the postdominator test or the dominator test; generating a factored derivative graph by factoring the derivative graph until no additional factoring can occur; and computing the derivative as the sum of products along all possible product paths in the factored derivative graph. - View Dependent Claims (11, 12, 13)
-
-
14. A computer-implemented process for computing a derivative of a function having multiple inputs and multiple outputs, comprising:
-
expressing the function as an expression graph; generating a derivative graph from the expression graph, wherein the derivative graph contains a plurality of nodes and edges that connect the nodes to each other, wherein each of the edges has an associated mathematical term; determining that at least one node of the derivative graph satisfies the postdominator test or the dominator test; factoring out factor subgraphs from the derivative graph such that a factor subgraph appearing most frequently in the derivative graph is factored first to generate a factored derivative graph; and computing the derivative by summing the each product of all product paths along the factored derivative graph. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification