45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
#ifndef ROOT_H
|
|
#define ROOT_H
|
|
|
|
/*
|
|
* Copyright 2000 Graeme W. Gill
|
|
* All rights reserved.
|
|
*
|
|
* This material is licenced under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 :-
|
|
* see the License.txt file for licencing details.
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* 1 dimentional root finding code */
|
|
|
|
/* Bracket search function */
|
|
/* return 0 on sucess */
|
|
/* -1 on no range */
|
|
/* -2 on too many itterations */
|
|
int zbrac(
|
|
double *x1, /* Input and output bracket values */
|
|
double *x2,
|
|
double (*func)(void *fdata, double tp), /* function to evaluate */
|
|
void *fdata); /* Opaque data pointer */
|
|
|
|
/* Root finder */
|
|
/* return 0 on sucess */
|
|
/* -1 on root not bracketed */
|
|
/* -2 on too many itterations */
|
|
int zbrent(
|
|
double *rv, /* Return value */
|
|
double x1, /* Bracket to search */
|
|
double x2, /* (Min, Max) */
|
|
double tol, /* Desired tollerance */
|
|
double (*func)(void *fdata, double tp), /* function to evaluate */
|
|
void *fdata); /* Opaque data pointer */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* ROOT_H */
|