add numerical recipes library
This commit is contained in:
25
lib/nr/k_and_r/recipes/amotry.c
Normal file
25
lib/nr/k_and_r/recipes/amotry.c
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
#include "nrutil.h"
|
||||
|
||||
float amotry(p,y,psum,ndim,funk,ihi,fac)
|
||||
float (*funk)(),**p,fac,psum[],y[];
|
||||
int ihi,ndim;
|
||||
{
|
||||
int j;
|
||||
float fac1,fac2,ytry,*ptry;
|
||||
|
||||
ptry=vector(1,ndim);
|
||||
fac1=(1.0-fac)/ndim;
|
||||
fac2=fac1-fac;
|
||||
for (j=1;j<=ndim;j++) ptry[j]=psum[j]*fac1-p[ihi][j]*fac2;
|
||||
ytry=(*funk)(ptry);
|
||||
if (ytry < y[ihi]) {
|
||||
y[ihi]=ytry;
|
||||
for (j=1;j<=ndim;j++) {
|
||||
psum[j] += ptry[j]-p[ihi][j];
|
||||
p[ihi][j]=ptry[j];
|
||||
}
|
||||
}
|
||||
free_vector(ptry,1,ndim);
|
||||
return ytry;
|
||||
}
|
||||
Reference in New Issue
Block a user