INTERVAL_MATRIX IntervalGradient (int l1,int l2,INTERVAL_VECTOR & x)
Note that if ALIAS_Store_Gradient has not been set to 0 we will store the simplified Jacobian matrix for each box. Indeed if for a given box B the interval evaluation of one element of the gradient has a constant sign (indicating a monotonic behavior of the function) setting the simplified jacobian matrix element to -1 or 1 allows to avoid unnecessary evaluation of the element of the Jacobian for the box resulting from a bisection of B as they will exhibit the same monotonic behavior. Although this idea may sound quite simple it has a very positive effect on the computation time. The name of the storage variable of the simplified jacobian is:
INTEGER_MATRIX Gradient_Solve_General_Interval
If a function is not differentiable you just set the value of grad(i,..) to the interval [-1e30,1e30]. It is important to define here a large interval as the program Compute_Interval_Function_Gradient that computes the interval evaluation of the function by using their derivatives uses also the Taylor evaluation based on the value of the derivatives: a small interval value of the derivatives may lead to a wrong function evaluation.
Note also that a convenient way to write the Gradient procedure is to use the procedure MakeJ offered by ALIAS-Maple (see the ALIAS-Maple manual). Take care also of the interval valuation problems of the element of the Jacobian (see section 2.1.1.3) which may be different from the one of the functions: for example if a function is it is interval-valuable as soon as the lower bound of is greater or equal to 0 although the gradient will involve which is not interval-valuable if the lower bound of is equal to 0. ALIAS-Maple offers also the possibility to treat automatically the interval-valuation problems of the jacobian elements.