Files
2025-02-Numerical/lib/nr/k_and_r/recipes/zbrak.c
2025-09-12 18:55:25 +09:00

24 lines
310 B
C

void zbrak(fx,x1,x2,n,xb1,xb2,nb)
float (*fx)(),x1,x2,xb1[],xb2[];
int *nb,n;
{
int nbb,i;
float x,fp,fc,dx;
nbb=0;
dx=(x2-x1)/n;
fp=(*fx)(x=x1);
for (i=1;i<=n;i++) {
fc=(*fx)(x += dx);
if (fc*fp <= 0.0) {
xb1[++nbb]=x-dx;
xb2[nbb]=x;
if(*nb == nbb) return;
}
fp=fc;
}
*nb = nbb;
}