Beispiel #1
0
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;
}
Beispiel #2
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;
}