Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

GenericFunction.java

00001 /*
00002  * GenericFunction.java
00003  *
00004  * Created on 19 December 2002, 14:47
00005  */
00006 
00007 package Sct.function;
00008 
00009 import hep.aida.*;
00010 
00015 public abstract class GenericFunction implements IFunction {
00016     protected int dim;
00017     protected String title;
00018     protected double[] params;
00019     protected String[] paramNames;
00020     protected String[] varNames;
00021     
00023     public GenericFunction(int dimension, int params) {
00024         dim = dimension;
00025         varNames = new String[dimension];
00026         this.params = new double[params];
00027         paramNames = new String[params];
00028         title = getName();
00029     }
00030     
00031     public hep.aida.IAnnotation annotation() {
00032         return null;
00033     }
00034     
00035     public String codeletString() {        
00036         return "codelet:" + this.getClass().getName() + ":file:";
00037     }
00038     
00039     public int dimension() {
00040         return dim;
00041     }
00042     
00043     public double[] gradient(double[] values) {
00044         return null;
00045     }
00046     
00047     public int indexOfParameter(String str) {
00048         for (int i=0; i<params.length; i++) {
00049             if (paramNames[i].equals(str)) return i;
00050         }
00051         return -1;  //Will cause an exception if used to address anywhere
00052     }
00053     
00054     public boolean isEqual(hep.aida.IFunction iFunction) {
00055         return this==iFunction;
00056     }
00057     
00058     public int numberOfParameters() {
00059         return params.length;
00060     }
00061     
00062     public double parameter(String str) {
00063         return params[indexOfParameter(str)];
00064     }
00065     
00066     public String[] parameterNames() {
00067         return paramNames;
00068     }
00069     
00070     public double[] parameters() {
00071         return params;
00072     }
00073     
00074     public boolean providesGradient() {
00075         return false;
00076     }
00077     
00078     public void setParameter(String str, double param) throws java.lang.IllegalArgumentException {
00079         params[indexOfParameter(str)] = param;
00080     }
00081     
00082     public void setParameters(double[] values) {
00083         if (values.length == params.length) params = values;
00084     }
00085         
00086     public String variableName(int param) {
00087         return varNames[param];
00088     }
00089     
00090     public String[] variableNames() {
00091         return varNames;
00092     }
00093 
00094     public String title() {
00095         return title;
00096     }
00097 
00098     public void setTitle(String title) {
00099         this.title = title;
00100     }
00101     
00102     public abstract String getName();    
00103 }

Generated on Thu Jul 15 09:55:42 2004 for SCT DAQ/DCS Software - Java by doxygen 1.3.5