exception Unstable;; (* generally thrown when there is a divide by zero *) exception Fatal;; (* generally indicates an uncorrected bug *) (* represents a closed interval [lo,hi] of the real line *) type interval = { lo : float; hi : float; };; (* represents a function u:real->real, its derivative du, and 2nd derivative *) type univariate = { u : interval -> interval; du : interval -> interval; ddu : interval -> interval; };; (* represents the value f of a function and its derivative at some point y *) type line = { f : interval; df : interval; };; (* represents approximation data for a function f on a rectangular domain [x,z]. l gives the value and the derivative of f at some point y in the domain. dd gives interval bounds on the second derivative over the entire domain. w i is an upper bound on widths (z - y) and (y - x). *) type taylor_interval = { l : line; w : float; dd : interval; };;