static CB_FUNC(int) jacobian_evaluation(void *v, int n, double *z, int wantf, double *f, int *nnz, int *col_start, int *col_len, int *row, double *data) { int element; if (wantf) { function_evaluation(v, n, z, f); } if (!filled) { for (element = 0; element < nMax; element++) { col_start[element] = m_start[element]; col_len[element] = m_len[element]; } for (element = 0; element < actualNnz; element++) { row[element] = m_row[element]; data[element] = m_data[element]; } filled = 1; } *nnz = actualNnz; return 0; }
static CB_FUNC(int) jacobian_evaluation(void *id, int n, double *z, int wantf, double *f, int *nnz, int *col_start, int *col_len, int *row, double *data) { int i, err = 0; if (wantf) { err += function_evaluation(id, n, z, f); } err += problem.j_eval(n, *nnz, z, col_start, col_len, row, data); (*nnz) = 0; for (i = 0; i < n; i++) { (*nnz) += col_len[i]; } return err; }