Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/11/08 08:55:19 (16 years ago)
Author:
gkronber
Message:

merged changes (r201 r203 r206 r208 r220 r223 r224 r225 r226 r227) from branch ExperimentalFunctionsBaking into the trunk. (ticket #139)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Functions/ProgrammableFunction.cs

    r189 r229  
    3636
    3737namespace HeuristicLab.Functions {
    38   public class ProgrammableFunction : ProgrammableOperator, IFunction {
     38  public sealed class ProgrammableFunction : ProgrammableOperator, IFunction {
    3939    private MethodInfo applyMethod;
    4040    public ProgrammableFunction()
     
    120120
    121121    public IFunctionTree GetTreeNode() {
    122       return new ProgrammableFunctionTree(this);
     122      return new BakedFunctionTree(this);
    123123    }
    124124
     
    187187  }
    188188
    189   class ProgrammableFunctionTree : FunctionTree {
    190     private ProgrammableFunction progFun;
    191     public ProgrammableFunctionTree() : base() { }
    192     public ProgrammableFunctionTree(ProgrammableFunction progFun) : base(progFun) {
    193       this.progFun = progFun;
    194     }
    195     public override double Evaluate(Dataset dataset, int sampleIndex) {
    196       // evaluate sub-trees
    197       double[] evaluationResults = new double[SubTrees.Count];
    198       for(int subTree = 0; subTree < SubTrees.Count; subTree++) {
    199         evaluationResults[subTree] = SubTrees[subTree].Evaluate(dataset, sampleIndex);
    200       }
    201 
    202       // collect parameters
    203       object[] parameters = new object[LocalVariables.Count + 3];
    204       parameters[0] = dataset;
    205       parameters[1] = sampleIndex;
    206       int i = 2;
    207       // all local variables are available in the custom function
    208       foreach(IVariable variable in LocalVariables) {
    209         parameters[i] = variable;
    210         i++;
    211       }
    212       parameters[i] = evaluationResults;
    213       return progFun.Call(parameters);
    214     }
    215   }
     189  //class ProgrammableFunctionTree : FunctionTree {
     190  //  private ProgrammableFunction progFun;
     191  //  public ProgrammableFunctionTree() : base() { }
     192  //  public ProgrammableFunctionTree(ProgrammableFunction progFun) : base(progFun) {
     193  //    this.progFun = progFun;
     194  //  }
     195  //  public override double Evaluate(Dataset dataset, int sampleIndex) {
     196  //    // evaluate sub-trees
     197  //    double[] evaluationResults = new double[SubTrees.Count];
     198  //    for(int subTree = 0; subTree < SubTrees.Count; subTree++) {
     199  //      evaluationResults[subTree] = SubTrees[subTree].Evaluate(dataset, sampleIndex);
     200  //    }
     201
     202  //    // collect parameters
     203  //    object[] parameters = new object[LocalVariables.Count + 3];
     204  //    parameters[0] = dataset;
     205  //    parameters[1] = sampleIndex;
     206  //    int i = 2;
     207  //    // all local variables are available in the custom function
     208  //    foreach(IVariable variable in LocalVariables) {
     209  //      parameters[i] = variable;
     210  //      i++;
     211  //    }
     212  //    parameters[i] = evaluationResults;
     213  //    return progFun.Call(parameters);
     214  //  }
     215  //}
    216216}
Note: See TracChangeset for help on using the changeset viewer.