22 T1 casadi_norm_inf_mul(
const T1* x,
const casadi_int* sp_x,
const T1* y,
const casadi_int* sp_y, T1* dwork, casadi_int* iwork) {
23 casadi_int nrow_x, ncol_x, ncol_y, i, jj, kk, nnz;
24 const casadi_int *colind_x, *row_x, *colind_y, *row_y;
25 casadi_int *mask, *next;
29 nrow_x = sp_x[0]; ncol_x = sp_x[1];
30 colind_x = sp_x+2; row_x = sp_x + 2 + ncol_x+1;
32 colind_y = sp_y+2; row_y = sp_y + 2 + ncol_y+1;
36 mask = iwork + ncol_y+1;
39 for (i=0; i<nrow_x; ++i) mask[i] = -1;
42 for (i=0; i<ncol_y; ++i) {
44 casadi_int row_nnz = 0;
45 for (jj=colind_y[i]; jj < colind_y[i+1]; jj++) {
46 casadi_int j = row_y[jj];
47 for (kk=colind_x[j]; kk < colind_x[j+1]; kk++) {
48 casadi_int k = row_x[kk];
55 next_nnz = nnz + row_nnz;
61 next = iwork + ncol_y+1;
62 for (i=0; i<nrow_x; ++i) next[i] = -1;
64 for (i=0; i<nrow_x; ++i) sums[i] = 0;
67 for (i=0; i<ncol_y; ++i) {
68 casadi_int head, length, jj_start, jj_end;
71 jj_start = colind_y[i];
72 jj_end = colind_y[i+1];
73 for (jj=jj_start; jj<jj_end; ++jj) {
74 casadi_int j, kk_start, kk_end;
78 kk_start = colind_x[j];
79 kk_end = colind_x[j+1];
80 for (kk = kk_start; kk<kk_end; ++kk) {
81 casadi_int k = row_x[kk];
90 for (jj=0; jj<length; ++jj) {
93 T1 a = fabs(sums[head]);