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

📄 jelprocs.java

📁 Java实现的遗传算法工具集:GA Playground
💻 JAVA
字号:
import gnu.jel.*;
import gnu.jel.generated.EC;
import gnu.jel.generated.ParseException;
import gnu.jel.generated.TokenMgrError;
  
  public class JelProcs {
  	
		public static Class[] staticLib;
		public static Library lib;
	  public static Class[] dynamicLib;
	  public static Object[] rtp;
	  public static JelVariableProvider vp;
	  public static CompiledExpression compiledExpr;
  	
  	


	public static boolean initLibs(String expr) {
		
		boolean flag = true;
    staticLib=new Class[1];
    
    GaaMisc.debug("Creating static lib");

    try {
      staticLib[0]=Class.forName("java.lang.Math");
    } 
    catch(ClassNotFoundException e) {
    	return false;
    };
    
    lib=new Library(staticLib,null);
    
    GaaMisc.debug("Marking state-dependent");

    try {
    	lib.markStateDependent("random",null);
    } 
    catch (NoSuchMethodException e) {
    	return false;
    };
    
    dynamicLib=new Class[1];
    rtp=new Object[1];
    
    GaaMisc.debug("Creating variable provider");

    vp=new JelVariableProvider();

    Class oldmath=staticLib[0];
    staticLib=new Class[2];
    staticLib[0]=oldmath;
    staticLib[1]=vp.getClass();  
    
    rtp[0]=vp;
    
    GaaMisc.debug("Creating dynamic lib");

    dynamicLib[0]=vp.getClass();
    lib=new Library(staticLib,dynamicLib);
    try {
    	 GaaMisc.debug("Compiling expression");
       compiledExpr = Evaluator.compile(expr,lib);
    }
    catch (Exception e) {
    	flag = false;	
    }
    
    GaaMisc.debug("Finished Jel libs creation");

    return flag;

  };
  
  
public static double calc(String expr,double vars[]) {
  	
  boolean flag;
  double result;
  
	JelProcs jl = new JelProcs();
	flag = jl.initLibs(expr);
	
	jl.vp.initVariables(vars);
	try {
	 	result = jl.compiledExpr.evaluate_double(jl.rtp);
	    }
	catch (Throwable e) {
	  	result = -12345;
	}
	
	return result;
	
}
  


};

⌨️ 快捷键说明

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