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