내 응용 프로그램 라이브러리는 최적화 루틴을 호출 할 필요가 :C 콜백 기능
err = optim(int n, double *x, double *f, void *obj)
루틴은 다음 목적 함수 값을 요청하기 위해 목적 함수를 호출합니다.
void obj(int n, double *x, double *f)
optim()는 (는) 외부 라이브러리의 일부입니다. optim() 및 obj()에 대한 서명은 고정되어 있습니다.
기능 obj()
은 단일 개체 '모델'에 포함 된 데이터에 액세스해야합니다. 다른 모든 함수는 모델 객체에 대한 포인터를 전달합니다.
err = doOptimize(model)
doOptimize()
가 obj()
기능 액세스 변수 model
에 상주 할 수있는 질문은 optim()
err= optim(model->n, model->x, model->f, model->obj)
을 문제를 설정하고 호출합니다 : 같은 최적화 프로그램을 실행하기 위해 호출 할 수있다 오브젝트, n
, x
및 f
외에?
updateParms(model);
computeF(model);
내가 obj()
실제 핸들없이이 통화를 할 수 있는지 확실하지 않다 : obj()
기능은 실제 계산을 수행 할 model
객체를 필요로 다른 함수를 호출 할 필요가? 다음과 같은 작업을 할 수 있습니까?
updateParms();
computeF();
감사합니다,
'n', 'x'및 'f'회원 이외의 데이터에 대해 이야기하고 있습니까? 좀 더 정교한 코드 샘플을 제공하고 정확하게하려는 것을 나타낼 수 있습니까? –