Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Functions/FunctionBase.cs @ 274

Last change on this file since 274 was 229, checked in by gkronber, 16 years ago

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

File size: 3.2 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23using System.Collections.Generic;
24using System.Text;
25using HeuristicLab.Data;
26using HeuristicLab.Core;
27using System.Xml;
28using HeuristicLab.DataAnalysis;
29
30namespace HeuristicLab.Functions {
31  /// <summary>
32  /// Functions are like operators except that they do not allow sub-operators and the normal form of evaluation
33  /// is to evaluate all children first.
34  /// </summary>
35  public abstract class FunctionBase : OperatorBase, IFunction {
36
37    public virtual double Apply(Dataset dataset, int sampleIndex, double[] args) {
38      throw new NotImplementedException();
39    }
40
41    public virtual void Accept(IFunctionVisitor visitor) {
42      visitor.Visit(this);
43    }
44
45    public virtual IFunctionTree GetTreeNode() {
46      return new BakedFunctionTree(this);
47    }
48
49    // operator-tree style evaluation is not supported for functions.
50    public override IOperation Apply(IScope scope) {
51      throw new NotSupportedException();
52    }
53
54    private static readonly List<IOperator> emptySubOperatorList = new List<IOperator>();
55    public override IList<IOperator> SubOperators {
56      get { return emptySubOperatorList; }
57    }
58
59    public override void AddSubOperator(IOperator subOperator) {
60      throw new NotSupportedException();
61    }
62
63    public override bool TryAddSubOperator(IOperator subOperator) {
64      throw new NotSupportedException();
65    }
66
67    public override bool TryAddSubOperator(IOperator subOperator, int index) {
68      throw new NotSupportedException();
69    }
70
71    public override bool TryAddSubOperator(IOperator subOperator, int index, out ICollection<IConstraint> violatedConstraints) {
72      throw new NotSupportedException();
73    }
74
75    public override bool TryAddSubOperator(IOperator subOperator, out ICollection<IConstraint> violatedConstraints) {
76      throw new NotSupportedException();
77    }
78
79    public override void AddSubOperator(IOperator subOperator, int index) {
80      throw new NotSupportedException();
81    }
82
83    public override void RemoveSubOperator(int index) {
84      throw new NotSupportedException();
85    }
86
87    public override bool TryRemoveSubOperator(int index) {
88      throw new NotSupportedException();
89    }
90
91    public override bool TryRemoveSubOperator(int index, out ICollection<IConstraint> violatedConstraints) {
92      throw new NotSupportedException();
93    }
94  }
95}
Note: See TracBrowser for help on using the repository browser.