michael@0: // Copyright 2009 the Sputnik authors. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * Closures are admitted michael@0: * michael@0: * @path ch13/13.2/S13.2.1_A5_T2.js michael@0: * @description Returning a function that approximates the derivative of f michael@0: * using an interval of dx, which should be appropriately small michael@0: */ michael@0: michael@0: // Return a function that approximates the derivative of f michael@0: // using an interval of dx, which should be appropriately small. michael@0: function derivative(f, dx) { michael@0: return function(x) { michael@0: return (f(x + dx) - f(x)) / dx; michael@0: }; michael@0: } michael@0: michael@0: ////////////////////////////////////////////////////////////////////////////// michael@0: //CHECK#1 michael@0: if (Math.abs(derivative(Math.sin, 0.0001)(0) - derivative(Math.sin, 0.0001)(2*Math.PI)) >= 1/65536.0) { michael@0: $ERROR('#1: Math.abs(derivative(Math.sin, 0.0001)(0) - derivative(Math.sin, 0.0001)(2*Math.PI)) <= 1/65536.0'); michael@0: } michael@0: // michael@0: ////////////////////////////////////////////////////////////////////////////// michael@0: