22 mxArray* casadi_to_mex(
const casadi_int* sp,
const T1* x) {
23 casadi_int nrow, ncol, c, k;
24 #ifndef CASADI_MEX_NO_SPARSE
27 const casadi_int *colind, *row;
30 #ifndef CASADI_MEX_NO_SPARSE
38 #ifndef CASADI_MEX_NO_SPARSE
41 p = mxCreateSparse(nrow, ncol, nnz, mxREAL);
42 for (i=0, j=mxGetJc(p); i<=ncol; ++i) *j++ = *colind++;
43 for (i=0, j=mxGetIr(p); i<nnz; ++i) *j++ = *row++;
45 d = (
double*)mxGetData(p);
46 for (i=0; i<nnz; ++i) *d++ = casadi_to_double(*x++);
51 p = mxCreateDoubleMatrix(nrow, ncol, mxREAL);
53 d = (
double*)mxGetData(p);
54 for (c=0; c<ncol; ++c) {
55 for (k=colind[c]; k<colind[c+1]; ++k) {
56 d[row[k]+c*nrow] = casadi_to_double(*x++);