⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lnsrch.java

📁 数值方面的优化算法
💻 JAVA
字号:
class lnsrch extends c2jrt{   private static String class_name = "lnsrch";   static Class pclnsrch[]=   {   java.lang.Integer.TYPE,java.lang.Integer.TYPE,java.lang.Float.TYPE,java.lang.Integer.TYPE,java.lang.Integer.TYPE,java.lang.Integer.TYPE,java.lang.Integer.TYPE,java.lang.Float.TYPE,java.lang.Integer.TYPE,java.lang.Integer.TYPE   }   ;   public static int clnsrch;   static   {    try   {      clnsrch=getMethod(Class.forName(class_name),"clnsrch",pclnsrch);   }catch(Exception ex){    ex.printStackTrace();   }   }public static 	float  csqrarg_19= 0;public static 	double  cdsqrarg_20= 0;public static 	double  cdmaxarg1_21= 0;public static 	double  cdmaxarg2_22= 0;public static 	double  cdminarg1_23= 0;public static 	double  cdminarg2_24= 0;public static 	float  cmaxarg1_25= 0;public static 	float  cmaxarg2_26= 0;public static 	float  cminarg1_27= 0;public static 	float  cminarg2_28= 0;public static 	int  clmaxarg1_29= 0;public static 	int  clmaxarg2_30= 0;public static 	int  clminarg1_31= 0;public static 	int  clminarg2_32= 0;public static 	int  cimaxarg1_33= 0;public static 	int  cimaxarg2_34= 0;public static 	int  ciminarg1_35= 0;public static 	int  ciminarg2_36= 0;static int strlnsrch2= jtocstr("Roundoff problem in lnsrch.");      /* file C:/ProjFinal/N Recipes/lnsrch.c line 19*/      public static void clnsrch(int  cn,int  cxold,float  cfold,int  cg,int  cp,int  cx,int  cf,float  cstpmax,int  ccheck,int  cfunc)   {      nextlevel();      if(true)      {      int label= 0;      int  ci_12= 0;      float  ca_13= 0;      float  calam_14= 0;      float  calam2_15= 0;      float  calamin_16= 0;      float  cb_17= 0;      float  cdisc_18= 0;      float  cf2_19= 0;      float  crhs1_20= 0;      float  crhs2_21= 0;      float  cslope_22= 0;      float  csum_23= 0;      float  ctemp_24= 0;      float  ctest_25= 0;      float  ctmplam_26= 0;      int y7= 0;                  {         ci_12= 0;         ca_13= 0;         calam_14= 0;         calam2_15= 0;         calamin_16= 0;         cb_17= 0;         cdisc_18= 0;         cf2_19= 0;         crhs1_20= 0;         crhs2_21= 0;         cslope_22= 0;         csum_23= 0;         ctemp_24= 0;         ctest_25= 0;         ctmplam_26= 0;         setMEMINT((int)(ccheck),(int)(0));                  /* file C:/ProjFinal/N Recipes/lnsrch.c line 23*/         csum_23=(float)(0.0);         ci_12=1;         lab_lnsrch16 : for( ; (((ci_12)<=(cn))?1:0)!=0 ; )         {         csum_23+=(getMEMFLOAT((int)((cp + ((int)(ci_12)*4))))*getMEMFLOAT((int)((cp + ((int)(ci_12)*4)))));         ci_12++;                  }         csum_23=(float)(         /* file C:/ProjFinal/N Recipes/lnsrch.c line 24*/         csqrt(csum_23));                  /* file C:/ProjFinal/N Recipes/lnsrch.c line 26*/         if( (((csum_23)>(cstpmax))?1:0)!=0)         {         	         /* file C:/ProjFinal/N Recipes/lnsrch.c line 26*/         ci_12=1;         lab_lnsrch17 : for( ; (((ci_12)<=(cn))?1:0)!=0 ; )         {         y7= (int)((cp + ((int)(ci_12)*4)));         setMEMFLOAT((int)(y7),(float)((getMEMFLOAT((int)(y7))*(cstpmax/csum_23))));         ci_12++;                  }                  };                  /* file C:/ProjFinal/N Recipes/lnsrch.c line 27*/         cslope_22=(float)(0.0);         ci_12=1;         lab_lnsrch18 : for( ; (((ci_12)<=(cn))?1:0)!=0 ; )         {         cslope_22+=(getMEMFLOAT((int)((cg + ((int)(ci_12)*4))))*getMEMFLOAT((int)((cp + ((int)(ci_12)*4)))));         ci_12++;                  }                  /* file C:/ProjFinal/N Recipes/lnsrch.c line 28*/         if( (((cslope_22)>=(0.0))?1:0)!=0)         {         	         /* file C:/ProjFinal/N Recipes/lnsrch.c line 28*/         UndefFcs.cnrerror((int)(strlnsrch2));                  };         ctest_25=(float)(0.0);                  /* file C:/ProjFinal/N Recipes/lnsrch.c line 35*/         ci_12=1;         lab_lnsrch19 : for( ; (((ci_12)<=(cn))?1:0)!=0 ; )         {                        {            cmaxarg1_25=(float)(            /* file C:/ProjFinal/N Recipes/lnsrch.c line 33*/            cfabs(getMEMFLOAT((int)((cxold + ((int)(ci_12)*4))))));            cmaxarg2_26=(float)(1.0);            ctemp_24=(float)((            /* file C:/ProjFinal/N Recipes/lnsrch.c line 33*/            cfabs(getMEMFLOAT((int)((cp + ((int)(ci_12)*4)))))/(double)(((((cmaxarg1_25)>(cmaxarg2_26))?1:0)!=0 ?cmaxarg1_25:cmaxarg2_26))));                        /* file C:/ProjFinal/N Recipes/lnsrch.c line 34*/            if( (((ctemp_24)>(ctest_25))?1:0)!=0)            {            	ctest_25=ctemp_24;                        };                        }         ci_12++;                  }         calamin_16=(float)((1.0e-7/(double)(ctest_25)));         calam_14=(float)(1.0);                  /* file C:/ProjFinal/N Recipes/lnsrch.c line 75*/         lab_lnsrch20 : for( ;  ; )         {                        {                        /* file C:/ProjFinal/N Recipes/lnsrch.c line 41*/            ci_12=1;            lab_lnsrch21 : for( ; (((ci_12)<=(cn))?1:0)!=0 ; )            {            setMEMFLOAT((int)((cx + ((int)(ci_12)*4))),(float)((getMEMFLOAT((int)((cxold + ((int)(ci_12)*4)))) + (calam_14*getMEMFLOAT((int)((cp + ((int)(ci_12)*4))))))));            ci_12++;                        }            Object[] y8=             {            new java.lang.Integer((int)(cx))            }            ;            setMEMFLOAT((int)(cf),(float)(            /* file C:/ProjFinal/N Recipes/lnsrch.c line 42*/            funcall(cfunc,y8)));                        /* file C:/ProjFinal/N Recipes/lnsrch.c line 44*/            if( (((calam_14)<(calamin_16))?1:0)!=0)            {            	                  {                              /* file C:/ProjFinal/N Recipes/lnsrch.c line 46*/               ci_12=1;               lab_lnsrch22 : for( ; (((ci_12)<=(cn))?1:0)!=0 ; )               {               setMEMFLOAT((int)((cx + ((int)(ci_12)*4))),(float)(getMEMFLOAT((int)((cxold + ((int)(ci_12)*4))))));               ci_12++;                              }               setMEMINT((int)(ccheck),(int)(1));               if(true)               {               prevlevel();               return ;               };                              }                        }            else            {            	            /* file C:/ProjFinal/N Recipes/lnsrch.c line 49*/            if( (((getMEMFLOAT((int)(cf)))<=((cfold + ((1.0e-4*(double)(calam_14))*(double)(cslope_22)))))?1:0)!=0)            {            	if(true)            {            prevlevel();            return ;            };                        }            else            {            	                  {                              /* file C:/ProjFinal/N Recipes/lnsrch.c line 53*/               if( (((calam_14)==(1.0))?1:0)!=0)               {               	ctmplam_26=(float)(((-(cslope_22))/(2.0*(double)(((getMEMFLOAT((int)(cf)) - cfold) - cslope_22)))));                              }               else               {               	                     {                  crhs1_20=((getMEMFLOAT((int)(cf)) - cfold) - (calam_14*cslope_22));                  crhs2_21=((cf2_19 - cfold) - (calam2_15*cslope_22));                  ca_13=(((crhs1_20/(calam_14*calam_14)) - (crhs2_21/(calam2_15*calam2_15)))/(calam_14 - calam2_15));                  cb_17=(((((-(calam2_15))*crhs1_20)/(calam_14*calam_14)) + ((calam_14*crhs2_21)/(calam2_15*calam2_15)))/(calam_14 - calam2_15));                                    /* file C:/ProjFinal/N Recipes/lnsrch.c line 61*/                  if( (((ca_13)==(0.0))?1:0)!=0)                  {                  	ctmplam_26=(float)(((-(cslope_22))/(2.0*(double)(cb_17))));                                    }                  else                  {                  	                        {                     cdisc_18=(float)(((cb_17*cb_17) - ((3.0*(double)(ca_13))*(double)(cslope_22))));                                          /* file C:/ProjFinal/N Recipes/lnsrch.c line 65*/                     if( (((cdisc_18)<(0.0))?1:0)!=0)                     {                     	ctmplam_26=(float)((0.5*(double)(calam_14)));                                          }                     else                     {                     	                     /* file C:/ProjFinal/N Recipes/lnsrch.c line 66*/                     if( (((cb_17)<=(0.0))?1:0)!=0)                     {                     	ctmplam_26=(float)((((-(cb_17)) +                      /* file C:/ProjFinal/N Recipes/lnsrch.c line 66*/                     csqrt(cdisc_18))/(3.0*(double)(ca_13))));                                          }                     else                     {                     	ctmplam_26=(float)(((-(cslope_22))/(cb_17 +                      /* file C:/ProjFinal/N Recipes/lnsrch.c line 67*/                     csqrt(cdisc_18))));                                          };                                          };                                          }                                    };                                    /* file C:/ProjFinal/N Recipes/lnsrch.c line 69*/                  if( (((ctmplam_26)>((0.5*(double)(calam_14))))?1:0)!=0)                  {                  	ctmplam_26=(float)((0.5*(double)(calam_14)));                                    };                                    }                              };                              }                        };                        };            calam2_15=calam_14;            cf2_19=getMEMFLOAT((int)(cf));            cmaxarg1_25=ctmplam_26;            cmaxarg2_26=(float)((0.1*(double)(calam_14)));            calam_14=((((cmaxarg1_25)>(cmaxarg2_26))?1:0)!=0 ?cmaxarg1_25:cmaxarg2_26);                        }                  }                  }      };      prevlevel();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -