diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2018-07-15 18:00:09 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2018-07-15 18:00:09 +0200 |
commit | 82d1d89d2e68db56890c593a6428cdcbed1105f2 (patch) | |
tree | 7341711df7d1dc24bfec7b408e5b1fc3eeba7a10 /numlib/gnewt.h | |
parent | d27d024c441a3912ac2959dff6183abf0e199d78 (diff) | |
parent | 711b90e2fe8e1b842c3181a6909af1e432fe0fdc (diff) |
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'numlib/gnewt.h')
-rwxr-xr-x | numlib/gnewt.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/numlib/gnewt.h b/numlib/gnewt.h new file mode 100755 index 0000000..322d511 --- /dev/null +++ b/numlib/gnewt.h @@ -0,0 +1,59 @@ +#ifndef GNEWT_H +#define GNEWT_H + +/* Global newton non-linear equation solver */ + +/* + * Copyright 2018 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 + +/* + + return values: + + 0 Success + + 1 Ran out of itterations + + 2 Inverting Jacobian failed + + */ + +int gnewt( + void *fdata, /* Opaque pointer to pass to fcn() and jac() */ + void (*fcn)(void *fdata, int n, double *x, double *fvec), + /* Pointer to function we are solving */ + void (*jac)(void *fdata, int n, double *x, double **fjac), + /* Function to compute jacobian */ + int n, /* Number of functions and variables */ + double x[], /* Initial solution estimate, returns final solution */ + double rfvec[], /* Optionaly return soln. function values */ + double xtol, /* Desired tollerance of root */ + double ftol, /* Desired tollerance of the solution */ + int maxfcn, /* Maximum number of function itterations */ + int maxjac /* Maximum number of jacobian itterations */ +); + +#ifdef __cplusplus + } +#endif + +#endif /* GNEWT_H */ + + + + + + + + + + |