fafu js 优化
#include
#define N 2
float gs(float z[N])
{
float f;
//f=10*(z[0]+z[1]-5)*(z[0]+z[1]-5)+(z[0]-z[1])*(z[0]-z[1]);
f=4+4.5*z[0]-4*z[1]+z[0]*z[0]+2*z[1]*z[1]-2*z[0]*z[1]+z[0]*z[0]*z[0]*z[0]-2*z[0]*z[0]*z
[1];
//f=1.5*z[0]*z[0]+0.5*z[1]*z[1]-z[0]*z[1]-2*z[0];
return(f);
}
float ywyh(float x[N],float t,float s[N],float z[N])
{
float q=0.618,e,A[N],f[2],a,b,c=0.1,d=0.1;
int i,j=0;
a=0;b=t;
f[0]=gs(x);
for(i=0;i
z[i]=x[i]+b*s[i];
f[1]=gs(z);
if(f[1]
{
do
{t=2*t;b=b+t;f[0]=f[1];
for(i=0;i
z[i]=x[i]+b*s[i];
f[1]=gs(z);
if(f[0]>f[1])
a=b-t;
else break;}
while(f[0]>f[1]);
}
else
{
t=0-t;
do
{a=a+t;f[1]=f[0];
for(i=0;i
z[i]=x[i]+a*s[i];
f[0]=gs(z);
if(f[1]>f[0])
{