mirror of
https://bitbucket.org/cosmicvoids/vide_public.git
synced 2025-07-04 23:31:12 +00:00
beginning to fold in HOD code with jeremy tinker's approval
This commit is contained in:
parent
d8108d3a8e
commit
44cd0eb71f
95 changed files with 21950 additions and 0 deletions
38
c_tools/hod/linmin.c
Normal file
38
c_tools/hod/linmin.c
Normal file
|
@ -0,0 +1,38 @@
|
|||
#define NRANSI
|
||||
#include "nrutil.h"
|
||||
#define TOL 2.0e-4
|
||||
|
||||
int ncom;
|
||||
double *pcom,*xicom,(*nrfunc)(double []);
|
||||
|
||||
void linmin(double p[], double xi[], int n, double *fret, double (*func)(double []))
|
||||
{
|
||||
double brent(double ax, double bx, double cx,
|
||||
double (*f)(double), double tol, double *xmin);
|
||||
double f1dim(double x);
|
||||
void mnbrak(double *ax, double *bx, double *cx, double *fa, double *fb,
|
||||
double *fc, double (*func)(double));
|
||||
int j;
|
||||
double xx,xmin,fx,fb,fa,bx,ax;
|
||||
|
||||
ncom=n;
|
||||
pcom=dvector(1,n);
|
||||
xicom=dvector(1,n);
|
||||
nrfunc=func;
|
||||
for (j=1;j<=n;j++) {
|
||||
pcom[j]=p[j];
|
||||
xicom[j]=xi[j];
|
||||
}
|
||||
ax=0.0;
|
||||
xx=1.0;
|
||||
mnbrak(&ax,&xx,&bx,&fa,&fx,&fb,f1dim);
|
||||
*fret=brent(ax,xx,bx,f1dim,TOL,&xmin);
|
||||
for (j=1;j<=n;j++) {
|
||||
xi[j] *= xmin;
|
||||
p[j] += xi[j];
|
||||
}
|
||||
free_dvector(xicom,1,n);
|
||||
free_dvector(pcom,1,n);
|
||||
}
|
||||
#undef TOL
|
||||
#undef NRANSI
|
Loading…
Add table
Add a link
Reference in a new issue