From: Rainer M. <ra...@tb...> - 2006-09-06 10:42:19
|
On Tue, 5 Sep 2006, W Eryk Wolski wrote: > Hi, > > Can we move the function > static int CvodeSettings_setTimeSeries(cvodeSettings_t *set, double > *timeseries, int PrintStep); > > to the API interface please? If one wants to set a whole time series > it is much more straightforward to do this using this function than > using: > > SBML_ODESOLVER_API int CvodeSettings_setTimeStep(cvodeSettings_t *, > int, double); > Especially that in case of this function it is not clear how to > specify the length of the time series to set first. > > > All the best. > Eryk Hi Eryk, Your point is good, but I remember that there was a reason to make this function "static/private". Unfortunately, I currently don't remember what the reason was ... It might either a) cause conflicts with the indefinitely setting or b) cause potential problems when a user sets a time series with starting values other then 0. However b seems to be avoided anyways because it is set to 0 and the first value of the passed time series is ignored. So I just added set->Indefinitely == 0; to be safe, and made this function part of the API. Or are there any concerns? Can anyone think of another reason to have this function private? Is it un-safe to have a function where two values must correspond to each other (PrintStep is the size of the array timeseries)? James, would you also want to move CvodeSettings_setAdjTimeSeries to the API? If no objections are brought up, I can submit these changes to CVS. Rainer |