1 // NOLINT(legal/copyright)
2 // SYMBOL "max_viol"
3 template<typename T1>
casadi_max_viol(casadi_int n,const T1 * x,const T1 * lb,const T1 * ub)4 T1 casadi_max_viol(casadi_int n, const T1* x, const T1* lb, const T1* ub) {
5   T1 r;
6   casadi_int i;
7   const T1 zero = 0;
8   r = 0;
9   for (i=0; i<n; ++i) {
10     T1 x_i, lb_i, ub_i;
11     x_i = x ? *x++ : zero;
12     lb_i = lb ? *lb++ : zero;
13     ub_i = ub ? *ub++ : zero;
14     r = fmax(r, fmax(x_i-ub_i, zero));
15     r = fmax(r, fmax(lb_i-x_i, zero));
16   }
17   return r;
18 }
19