25 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) {
26 casadi_int nrow_x, ncol_x, ncol_y, i, jj, kk, nnz;
27 const casadi_int *colind_x, *row_x, *colind_y, *row_y;
28 casadi_int *mask, *next;
32 nrow_x = sp_x[0]; ncol_x = sp_x[1];
33 colind_x = sp_x+2; row_x = sp_x + 2 + ncol_x+1;
35 colind_y = sp_y+2; row_y = sp_y + 2 + ncol_y+1;
39 mask = iwork + ncol_y+1;
42 for (i=0; i<nrow_x; ++i) mask[i] = -1;
45 for (i=0; i<ncol_y; ++i) {
47 casadi_int row_nnz = 0;
48 for (jj=colind_y[i]; jj < colind_y[i+1]; jj++) {
49 casadi_int j = row_y[jj];
50 for (kk=colind_x[j]; kk < colind_x[j+1]; kk++) {
51 casadi_int k = row_x[kk];
58 next_nnz = nnz + row_nnz;
64 next = iwork + ncol_y+1;
65 for (i=0; i<nrow_x; ++i) next[i] = -1;
67 for (i=0; i<nrow_x; ++i) sums[i] = 0;
70 for (i=0; i<ncol_y; ++i) {
71 casadi_int head, length, jj_start, jj_end;
74 jj_start = colind_y[i];
75 jj_end = colind_y[i+1];
76 for (jj=jj_start; jj<jj_end; ++jj) {
77 casadi_int j, kk_start, kk_end;
81 kk_start = colind_x[j];
82 kk_end = colind_x[j+1];
83 for (kk = kk_start; kk<kk_end; ++kk) {
84 casadi_int k = row_x[kk];
93 for (jj=0; jj<length; ++jj) {
96 T1 a = fabs(sums[head]);