Changeset 10538 for branches/DataPreprocessing/HeuristicLab.Operators
- Timestamp:
- 03/05/14 14:48:13 (11 years ago)
- Location:
- branches/DataPreprocessing
- Files:
-
- 1 deleted
- 8 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/DataPreprocessing
- Property svn:mergeinfo changed
-
branches/DataPreprocessing/HeuristicLab.Operators/3.3/DataReducer.cs
r9456 r10538 69 69 public override IOperation Apply() { 70 70 var values = ParameterToReduce.ActualValue; 71 if (values.Count() > 0) { 72 if (values.All(x => typeof(IntValue).IsAssignableFrom(x.GetType()))) { 73 CalculateResult(values.OfType<IntValue>().Select(x => x.Value), values.First().GetType()); 74 } else if (values.All(x => typeof(DoubleValue).IsAssignableFrom(x.GetType()))) { 75 CalculateResult(values.OfType<DoubleValue>().Select(x => x.Value), values.First().GetType()); 76 } else if (values.All(x => typeof(TimeSpanValue).IsAssignableFrom(x.GetType()))) { 77 CalculateResult(values.OfType<TimeSpanValue>().Select(x => x.Value), values.First().GetType()); 78 } else { 79 throw new ArgumentException(string.Format("Type {0} is not supported by the DataReducer.", values.First().GetType())); 80 } 81 } 71 if (!values.Any()) return base.Apply(); 72 73 if (values.All(x => x is IntValue)) { 74 CalculateResult(values.OfType<IntValue>().Select(x => x.Value), values.First().GetType()); 75 } else if (values.All(x => x is DoubleValue)) { 76 CalculateResult(values.OfType<DoubleValue>().Select(x => x.Value), values.First().GetType()); 77 } else if (values.All(x => x is TimeSpanValue)) { 78 CalculateResult(values.OfType<TimeSpanValue>().Select(x => x.Value), values.First().GetType()); 79 } else if (values.All(x => x is BoolValue)) { 80 CalculateResult(values.OfType<BoolValue>().Select(x => x.Value), values.First().GetType()); 81 } else { 82 throw new ArgumentException(string.Format("Type {0} is not supported by the DataReducer.", values.First().GetType())); 83 } 84 82 85 return base.Apply(); 83 86 } … … 246 249 case ReductionOperations.Assign: 247 250 target = InitializeTarget<TimeSpanValue, TimeSpan>(targetType, new TimeSpan()); 251 target.Value = result; 252 break; 253 default: 254 throw new InvalidOperationException(string.Format("Operation {0} is not supported as TargetOperation for type: {1}.", TargetOperation.Value.Value, targetType)); 255 } 256 } 257 #endregion 258 #region bool reduction 259 private void CalculateResult(IEnumerable<bool> values, Type targetType) { 260 bool result; 261 switch (ReductionOperation.Value.Value) { 262 case ReductionOperations.All: 263 result = values.All(x => x); 264 break; 265 case ReductionOperations.Any: 266 result = values.Any(x => x); 267 break; 268 default: 269 throw new InvalidOperationException(string.Format("Operation {0} is not supported as ReductionOperation for type: {1}.", ReductionOperation.Value.Value, targetType)); 270 } 271 272 BoolValue target; 273 switch (TargetOperation.Value.Value) { 274 case ReductionOperations.Assign: 275 target = InitializeTarget<BoolValue, bool>(targetType, true); 248 276 target.Value = result; 249 277 break; -
branches/DataPreprocessing/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj
r8600 r10538 113 113 <Compile Include="CheckedMultiOperator.cs" /> 114 114 <Compile Include="CombinedOperator.cs" /> 115 <Compile Include="Operator.InstrumentedOperatorWrapper.cs" /> 115 116 <None Include="Plugin.cs.frame" /> 116 117 <Compile Include="ConditionalBranch.cs" /> … … 119 120 <Compile Include="AlgorithmOperator.cs" /> 120 121 <Compile Include="DataReducer.cs" /> 122 <Compile Include="InstrumentedOperator.cs" /> 121 123 <Compile Include="LocalRandomCreator.cs" /> 122 124 <Compile Include="MultiOperator.cs" /> … … 126 128 <Compile Include="Plugin.cs" /> 127 129 <Compile Include="ReductionOperation.cs" /> 128 <Compile Include="ReductionOperations.cs" />129 130 <Compile Include="ScopeCleaner.cs" /> 130 131 <Compile Include="StochasticBranch.cs" /> … … 221 222 --> 222 223 <PropertyGroup> 223 <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)224 <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir) 224 225 set ProjectDir=$(ProjectDir) 225 226 set SolutionDir=$(SolutionDir) … … 228 229 call PreBuildEvent.cmd 229 230 </PreBuildEvent> 230 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">231 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' "> 231 232 export ProjectDir=$(ProjectDir) 232 233 export SolutionDir=$(SolutionDir) -
branches/DataPreprocessing/HeuristicLab.Operators/3.3/MultiOperator.cs
r9838 r10538 34 34 [Item("MultiOperator", "A base class for operators which apply arbitrary many other operators of a specific type.")] 35 35 [StorableClass] 36 public abstract class MultiOperator<T> : SingleSuccessorOperator, IMultiOperator<T> where T : class, IOperator {36 public abstract class MultiOperator<T> : InstrumentedOperator, IMultiOperator<T> where T : class, IOperator { 37 37 private List<IValueParameter<T>> operatorParameters; 38 38 protected IEnumerable<IValueParameter<T>> OperatorParameters { get { return operatorParameters; } } -
branches/DataPreprocessing/HeuristicLab.Operators/3.3/Operator.cs
r9456 r10538 34 34 [Item("Operator", "Base class for operators.")] 35 35 [StorableClass] 36 public abstract class Operator : ParameterizedNamedItem, IOperator, IStatefulItem {36 public abstract partial class Operator : ParameterizedNamedItem, IOperator, IStatefulItem { 37 37 public static new Image StaticItemImage { 38 38 get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; } -
branches/DataPreprocessing/HeuristicLab.Operators/3.3/ReductionOperation.cs
r9456 r10538 27 27 28 28 namespace HeuristicLab.Operators { 29 public enum ReductionOperations { 30 Sum, 31 Product, 32 Count, 33 Min, 34 Max, 35 Avg, 36 Assign, 37 All, 38 Any 39 } 40 29 41 [Item("ReductionOperation", "Represents a certain type of reduction operation.")] 30 42 [StorableClass] -
branches/DataPreprocessing/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs
r9456 r10538 132 132 /// or all selected operators have zero probabitlity.</exception> 133 133 /// <returns>A new operation with the operator that was selected followed by the current operator's successor.</returns> 134 public override IOperation Apply() {134 public override IOperation InstrumentedApply() { 135 135 IRandom random = RandomParameter.ActualValue; 136 136 DoubleArray probabilities = ProbabilitiesParameter.ActualValue; … … 156 156 } 157 157 } 158 OperationCollection next = new OperationCollection(base. Apply());158 OperationCollection next = new OperationCollection(base.InstrumentedApply()); 159 159 if (successor != null) { 160 160 if (TraceSelectedOperatorParameter.Value.Value) -
branches/DataPreprocessing/HeuristicLab.Operators/3.3/SubScopesProcessor.cs
r9456 r10538 67 67 } 68 68 69 public override IOperation Apply() {69 public override IOperation InstrumentedApply() { 70 70 List<IScope> scopes = GetScopesOnLevel(ExecutionContext.Scope, Depth.Value).ToList(); 71 OperationCollection next = new OperationCollection(base. Apply());71 OperationCollection next = new OperationCollection(base.InstrumentedApply()); 72 72 if (scopes.Count != Operators.Count) 73 73 throw new ArgumentException("The number of operators doesn't match the number of sub-scopes at depth " + Depth.Value);
Note: See TracChangeset
for help on using the changeset viewer.