:- use_module(library(clpBNR)).
clpBNR
(and Prolog) arithmetic syntax. Examples:
?- partial_derivative(X**2,X,Drv). Drv = 2*X. ?- partial_derivative(X/Y,X,Drv). Drv = 1/Y. ?- partial_derivative(X/Y,Y,Drv). Drv = -1*X/Y**2. ?- partial_derivative(max(X,Y),Y,Drv). false.
This predicate can be used in generating additional constraints, e.g., local optima with a gradient of 0, or in constructing meta-contractors like the Taylor series contractor described in the User Guide.