Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/TimeSeriesSymbols.cs @ 17830

Last change on this file since 17830 was 17830, checked in by pfleck, 3 years ago

#3040 First draft additional vector aggregation symbols (distribution characteristics & time series dynamics)

File size: 22.3 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 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 HEAL.Attic;
23using HeuristicLab.Common;
24using HeuristicLab.Core;
25using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
26
27namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
28
29  // This file contains selected symbols from
30  // M. Christ et al. "Distributed and parallel time series feature extraction for industrial big data applications"
31
32  #region Appendix A.1: Features from summary statistics
33  // maximum
34  // minimum
35  // mean
36  // var
37  // std
38  // skewness
39  // kurtosis
40  // length
41  // median
42
43  [Item("Median", "Symbol that represents the median function."), StorableType("62460F36-459D-4B78-AB91-DCF9B8D6A414")]
44  public sealed class Median : Symbol {
45    public override int MinimumArity => 1;
46    public override int MaximumArity => 1;
47    [StorableConstructor] private Median(StorableConstructorFlag _) : base(_) { }
48    private Median(Median original, Cloner cloner) : base(original, cloner) { }
49    public override IDeepCloneable Clone(Cloner cloner) { return new Median(this, cloner); }
50    public Median() : base("Median", "Symbol that represents the median function.") { }
51  }
52
53  [Item("Quantile", "Symbol that represents the quantile of an empiric distribution."), StorableType("3BEA06D1-7603-473C-9E7D-4DB56AEFEF17")]
54  public sealed class Quantile : Symbol {
55    public override int MinimumArity => 2;
56    public override int MaximumArity => 2;
57    [StorableConstructor] private Quantile(StorableConstructorFlag _) : base(_) { }
58    private Quantile(Quantile original, Cloner cloner) : base(original, cloner) { }
59    public override IDeepCloneable Clone(Cloner cloner) { return new Quantile(this, cloner); }
60    public Quantile() : base("Quantile", "Symbol that represents the quantile of an empiric distribution.") { }
61  }
62  #endregion
63
64  #region Appendix A.2: Additional Characteristics of sample distribution
65  [Item("AbsoluteEnergy", ""), StorableType("4871F884-D23A-4F21-9458-5DB0D7DE2FBD")]
66  public sealed class AbsoluteEnergy : Symbol {
67    public override int MinimumArity => 1;
68    public override int MaximumArity => 1;
69    [StorableConstructor] private AbsoluteEnergy(StorableConstructorFlag _) : base(_) { }
70    private AbsoluteEnergy(AbsoluteEnergy original, Cloner cloner) : base(original, cloner) { }
71    public override IDeepCloneable Clone(Cloner cloner) { return new AbsoluteEnergy(this, cloner); }
72    public AbsoluteEnergy() : base("AbsoluteEnergy", "") { }
73  }
74
75  [Item("BinnedEntropy", ""), StorableType("9AB9F4C3-F9AD-4FE6-A1FA-53C578549F34")]
76  public sealed class BinnedEntropy : Symbol {
77    public override int MinimumArity => 2;
78    public override int MaximumArity => 2;
79    [StorableConstructor] private BinnedEntropy(StorableConstructorFlag _) : base(_) { }
80    private BinnedEntropy(BinnedEntropy original, Cloner cloner) : base(original, cloner) { }
81    public override IDeepCloneable Clone(Cloner cloner) { return new BinnedEntropy(this, cloner); }
82    public BinnedEntropy() : base("BinnedEntropy", "") { }
83  }
84
85  [Item("HasLargeStandardDeviation", ""), StorableType("F17B2C41-2B5F-439F-B7DE-C5EF7C815048")]
86  public sealed class HasLargeStandardDeviation : Symbol {
87    public override int MinimumArity => 1;
88    public override int MaximumArity => 1;
89    [StorableConstructor] private HasLargeStandardDeviation(StorableConstructorFlag _) : base(_) { }
90    private HasLargeStandardDeviation(HasLargeStandardDeviation original, Cloner cloner) : base(original, cloner) { }
91    public override IDeepCloneable Clone(Cloner cloner) { return new HasLargeStandardDeviation(this, cloner); }
92    public HasLargeStandardDeviation() : base("HasLargeStandardDeviation", "") { }
93  }
94
95  [Item("HasVarianceLargerThanStd", ""), StorableType("F2C40872-F7F5-45B8-9DDA-072C6479DF2F")]
96  public sealed class HasVarianceLargerThanStd : Symbol {
97    public override int MinimumArity => 1;
98    public override int MaximumArity => 1;
99    [StorableConstructor] private HasVarianceLargerThanStd(StorableConstructorFlag _) : base(_) { }
100    private HasVarianceLargerThanStd(HasVarianceLargerThanStd original, Cloner cloner) : base(original, cloner) { }
101    public override IDeepCloneable Clone(Cloner cloner) { return new HasVarianceLargerThanStd(this, cloner); }
102    public HasVarianceLargerThanStd() : base("HasVarianceLargerThanStd", "") { }
103  }
104
105  [Item("IsSymmetricLooking", ""), StorableType("1C8AE0D5-5454-42A4-BACB-033D1A1669BA")]
106  public sealed class IsSymmetricLooking : Symbol {
107    public override int MinimumArity => 1;
108    public override int MaximumArity => 1;
109    [StorableConstructor] private IsSymmetricLooking(StorableConstructorFlag _) : base(_) { }
110    private IsSymmetricLooking(IsSymmetricLooking original, Cloner cloner) : base(original, cloner) { }
111    public override IDeepCloneable Clone(Cloner cloner) { return new IsSymmetricLooking(this, cloner); }
112    public IsSymmetricLooking() : base("IsSymmetricLooking", "") { }
113  }
114
115  [Item("NumberDataPointsAboveMean", ""), StorableType("FD9FF3DB-78A6-43D0-89A4-B9FE83D73FFA")]
116  public sealed class NumberDataPointsAboveMean : Symbol {
117    public override int MinimumArity => 1;
118    public override int MaximumArity => 1;
119    [StorableConstructor] private NumberDataPointsAboveMean(StorableConstructorFlag _) : base(_) { }
120    private NumberDataPointsAboveMean(NumberDataPointsAboveMean original, Cloner cloner) : base(original, cloner) { }
121    public override IDeepCloneable Clone(Cloner cloner) { return new NumberDataPointsAboveMean(this, cloner); }
122    public NumberDataPointsAboveMean() : base("NumberDataPointsAboveMean", "") { }
123  }
124
125  [Item("NumberDataPointsAboveMedian", ""), StorableType("D0F78A96-D3DD-488F-838B-E7B8A4BF05F1")]
126  public sealed class NumberDataPointsAboveMedian : Symbol {
127    public override int MinimumArity => 1;
128    public override int MaximumArity => 1;
129    [StorableConstructor] private NumberDataPointsAboveMedian(StorableConstructorFlag _) : base(_) { }
130    private NumberDataPointsAboveMedian(NumberDataPointsAboveMedian original, Cloner cloner) : base(original, cloner) { }
131    public override IDeepCloneable Clone(Cloner cloner) { return new NumberDataPointsAboveMedian(this, cloner); }
132    public NumberDataPointsAboveMedian() : base("NumberDataPointsAboveMedian", "") { }
133  }
134
135  [Item("NumberDataPointsBelowMean", ""), StorableType("EA914163-44AF-42CE-B59E-C4F65DF4D991")]
136  public sealed class NumberDataPointsBelowMean : Symbol {
137    public override int MinimumArity => 1;
138    public override int MaximumArity => 1;
139    [StorableConstructor] private NumberDataPointsBelowMean(StorableConstructorFlag _) : base(_) { }
140    private NumberDataPointsBelowMean(NumberDataPointsBelowMean original, Cloner cloner) : base(original, cloner) { }
141    public override IDeepCloneable Clone(Cloner cloner) { return new NumberDataPointsBelowMean(this, cloner); }
142    public NumberDataPointsBelowMean() : base("NumberDataPointsBelowMean", "") { }
143  }
144
145  [Item("NumberDataPointsBelowMedian", ""), StorableType("93BCF4B5-5716-4A89-BEEC-A69EF59C871F")]
146  public sealed class NumberDataPointsBelowMedian : Symbol {
147    public override int MinimumArity => 1;
148    public override int MaximumArity => 1;
149    [StorableConstructor] private NumberDataPointsBelowMedian(StorableConstructorFlag _) : base(_) { }
150    private NumberDataPointsBelowMedian(NumberDataPointsBelowMedian original, Cloner cloner) : base(original, cloner) { }
151    public override IDeepCloneable Clone(Cloner cloner) { return new NumberDataPointsBelowMedian(this, cloner); }
152    public NumberDataPointsBelowMedian() : base("NumberDataPointsBelowMedian", "") { }
153  }
154  #endregion
155
156  #region Appending A.3: Features derived from observed dynamics
157  [Item("ArimaModelCoefficients", ""), StorableType("BCA361B2-EFE8-481F-8363-40BFE4AA5092")]
158  public sealed class ArimaModelCoefficients : Symbol {
159    public override int MinimumArity => 3;
160    public override int MaximumArity => 3;
161    [StorableConstructor] private ArimaModelCoefficients(StorableConstructorFlag _) : base(_) { }
162    private ArimaModelCoefficients(ArimaModelCoefficients original, Cloner cloner) : base(original, cloner) { }
163    public override IDeepCloneable Clone(Cloner cloner) { return new ArimaModelCoefficients(this, cloner); }
164    public ArimaModelCoefficients() : base("ArimaModelCoefficients", "") { }
165  }
166
167  [Item("ContinuousWaveletTransformationCoefficients", ""), StorableType("F8770E95-4165-49AC-A52A-250C60434BC4")]
168  public sealed class ContinuousWaveletTransformationCoefficients : Symbol {
169    public override int MinimumArity => 3;
170    public override int MaximumArity => 3;
171    [StorableConstructor] private ContinuousWaveletTransformationCoefficients(StorableConstructorFlag _) : base(_) { }
172    private ContinuousWaveletTransformationCoefficients(ContinuousWaveletTransformationCoefficients original, Cloner cloner) : base(original, cloner) { }
173    public override IDeepCloneable Clone(Cloner cloner) { return new ContinuousWaveletTransformationCoefficients(this, cloner); }
174    public ContinuousWaveletTransformationCoefficients() : base("ContinuousWaveletTransformationCoefficients", "") { }
175  }
176
177  [Item("FastFourierTransformationCoefficient", ""), StorableType("417E3923-1318-44B0-A4E2-D324F42ED249")]
178  public sealed class FastFourierTransformationCoefficient : Symbol {
179    public override int MinimumArity => 2;
180    public override int MaximumArity => 2;
181    [StorableConstructor] private FastFourierTransformationCoefficient(StorableConstructorFlag _) : base(_) { }
182    private FastFourierTransformationCoefficient(FastFourierTransformationCoefficient original, Cloner cloner) : base(original, cloner) { }
183    public override IDeepCloneable Clone(Cloner cloner) { return new FastFourierTransformationCoefficient(this, cloner); }
184    public FastFourierTransformationCoefficient() : base("FastFourierTransformationCoefficient", "") { }
185  }
186
187  [Item("FirstIndexMax", ""), StorableType("DF7DE795-61C1-434E-B7AC-123871BB81D9")]
188  public sealed class FirstIndexMax : Symbol {
189    public override int MinimumArity => 1;
190    public override int MaximumArity => 1;
191    [StorableConstructor] private FirstIndexMax(StorableConstructorFlag _) : base(_) { }
192    private FirstIndexMax(FirstIndexMax original, Cloner cloner) : base(original, cloner) { }
193    public override IDeepCloneable Clone(Cloner cloner) { return new FirstIndexMax(this, cloner); }
194    public FirstIndexMax() : base("FirstIndexMax", "") { }
195  }
196
197  [Item("FirstIndexMin", ""), StorableType("AF8DF281-E68B-48AF-B13C-D8AFA212B52C")]
198  public sealed class FirstIndexMin : Symbol {
199    public override int MinimumArity => 1;
200    public override int MaximumArity => 1;
201    [StorableConstructor] private FirstIndexMin(StorableConstructorFlag _) : base(_) { }
202    private FirstIndexMin(FirstIndexMin original, Cloner cloner) : base(original, cloner) { }
203    public override IDeepCloneable Clone(Cloner cloner) { return new FirstIndexMin(this, cloner); }
204    public FirstIndexMin() : base("FirstIndexMin", "") { }
205  }
206
207  [Item("LastIndexMax", ""), StorableType("318EE355-E86B-432C-A72A-44AEEE149032")]
208  public sealed class LastIndexMax : Symbol {
209    public override int MinimumArity => 1;
210    public override int MaximumArity => 1;
211    [StorableConstructor] private LastIndexMax(StorableConstructorFlag _) : base(_) { }
212    private LastIndexMax(LastIndexMax original, Cloner cloner) : base(original, cloner) { }
213    public override IDeepCloneable Clone(Cloner cloner) { return new LastIndexMax(this, cloner); }
214    public LastIndexMax() : base("LastIndexMax", "") { }
215  }
216
217  [Item("LastIndexMin", ""), StorableType("D00C8065-3AC4-40E4-97C3-22C578F51A73")]
218  public sealed class LastIndexMin : Symbol {
219    public override int MinimumArity => 1;
220    public override int MaximumArity => 1;
221    [StorableConstructor] private LastIndexMin(StorableConstructorFlag _) : base(_) { }
222    private LastIndexMin(LastIndexMin original, Cloner cloner) : base(original, cloner) { }
223    public override IDeepCloneable Clone(Cloner cloner) { return new LastIndexMin(this, cloner); }
224    public LastIndexMin() : base("LastIndexMin", "") { }
225  }
226
227  [Item("LongestStrikeAboveMean", ""), StorableType("4720C78C-A2F3-40A6-8675-421B09A78BA5")]
228  public sealed class LongestStrikeAboveMean : Symbol {
229    public override int MinimumArity => 1;
230    public override int MaximumArity => 1;
231    [StorableConstructor] private LongestStrikeAboveMean(StorableConstructorFlag _) : base(_) { }
232    private LongestStrikeAboveMean(LongestStrikeAboveMean original, Cloner cloner) : base(original, cloner) { }
233    public override IDeepCloneable Clone(Cloner cloner) { return new LongestStrikeAboveMean(this, cloner); }
234    public LongestStrikeAboveMean() : base("LongestStrikeAboveMean", "") { }
235  }
236
237  [Item("LongestStrikeAboveMedian", ""), StorableType("2E1232CB-7BDD-4500-AC75-C6FA9DD300A9")]
238  public sealed class LongestStrikeAboveMedian : Symbol {
239    public override int MinimumArity => 1;
240    public override int MaximumArity => 1;
241    [StorableConstructor] private LongestStrikeAboveMedian(StorableConstructorFlag _) : base(_) { }
242    private LongestStrikeAboveMedian(LongestStrikeAboveMedian original, Cloner cloner) : base(original, cloner) { }
243    public override IDeepCloneable Clone(Cloner cloner) { return new LongestStrikeAboveMedian(this, cloner); }
244    public LongestStrikeAboveMedian() : base("LongestStrikeAboveMedian", "") { }
245  }
246
247  [Item("LongestStrikeBelowMean", ""), StorableType("C27B6F0C-37AF-48F7-8619-1B3F836F4740")]
248  public sealed class LongestStrikeBelowMean : Symbol {
249    public override int MinimumArity => 1;
250    public override int MaximumArity => 1;
251    [StorableConstructor] private LongestStrikeBelowMean(StorableConstructorFlag _) : base(_) { }
252    private LongestStrikeBelowMean(LongestStrikeBelowMean original, Cloner cloner) : base(original, cloner) { }
253    public override IDeepCloneable Clone(Cloner cloner) { return new LongestStrikeBelowMean(this, cloner); }
254    public LongestStrikeBelowMean() : base("LongestStrikeBelowMean", "") { }
255  }
256
257  [Item("LongestStrikeBelowMedian", ""), StorableType("E489362B-46E3-4AB3-ABBA-9C3DEC584F80")]
258  public sealed class LongestStrikeBelowMedian : Symbol {
259    public override int MinimumArity => 1;
260    public override int MaximumArity => 1;
261    [StorableConstructor] private LongestStrikeBelowMedian(StorableConstructorFlag _) : base(_) { }
262    private LongestStrikeBelowMedian(LongestStrikeBelowMedian original, Cloner cloner) : base(original, cloner) { }
263    public override IDeepCloneable Clone(Cloner cloner) { return new LongestStrikeBelowMedian(this, cloner); }
264    public LongestStrikeBelowMedian() : base("LongestStrikeBelowMedian", "") { }
265  }
266
267  [Item("LongestStrikePositive", ""), StorableType("F384A095-8DF9-4457-9AC0-A40AACEBE50A")]
268  public sealed class LongestStrikePositive : Symbol {
269    public override int MinimumArity => 1;
270    public override int MaximumArity => 1;
271    [StorableConstructor] private LongestStrikePositive(StorableConstructorFlag _) : base(_) { }
272    private LongestStrikePositive(LongestStrikePositive original, Cloner cloner) : base(original, cloner) { }
273    public override IDeepCloneable Clone(Cloner cloner) { return new LongestStrikePositive(this, cloner); }
274    public LongestStrikePositive() : base("LongestStrikePositive", "") { }
275  }
276
277  [Item("LongestStrikeNegative", ""), StorableType("282AA4BD-88F9-4C87-BA6B-9FCF7D9A983C")]
278  public sealed class LongestStrikeNegative : Symbol {
279    public override int MinimumArity => 1;
280    public override int MaximumArity => 1;
281    [StorableConstructor] private LongestStrikeNegative(StorableConstructorFlag _) : base(_) { }
282    private LongestStrikeNegative(LongestStrikeNegative original, Cloner cloner) : base(original, cloner) { }
283    public override IDeepCloneable Clone(Cloner cloner) { return new LongestStrikeNegative(this, cloner); }
284    public LongestStrikeNegative() : base("LongestStrikeNegative", "") { }
285  }
286
287  [Item("LongestStrikeZero", ""), StorableType("DB3A1172-E975-4F71-AE9D-D2375F777CD4")]
288  public sealed class LongestStrikeZero : Symbol {
289    public override int MinimumArity => 1;
290    public override int MaximumArity => 1;
291    [StorableConstructor] private LongestStrikeZero(StorableConstructorFlag _) : base(_) { }
292    private LongestStrikeZero(LongestStrikeZero original, Cloner cloner) : base(original, cloner) { }
293    public override IDeepCloneable Clone(Cloner cloner) { return new LongestStrikeZero(this, cloner); }
294    public LongestStrikeZero() : base("LongestStrikeZero", "") { }
295  }
296
297  [Item("MeanAbsoluteChange", ""), StorableType("43E6AB4F-BDF4-42B5-84DF-D384C3FFA728")]
298  public sealed class MeanAbsoluteChange : Symbol {
299    public override int MinimumArity => 1;
300    public override int MaximumArity => 1;
301    [StorableConstructor] private MeanAbsoluteChange(StorableConstructorFlag _) : base(_) { }
302    private MeanAbsoluteChange(MeanAbsoluteChange original, Cloner cloner) : base(original, cloner) { }
303    public override IDeepCloneable Clone(Cloner cloner) { return new MeanAbsoluteChange(this, cloner); }
304    public MeanAbsoluteChange() : base("MeanAbsoluteChange", "") { }
305  }
306
307  [Item("MeanAbsoluteChangeQuantiles", ""), StorableType("77BD8C07-9EC0-42B2-8FE4-1AA35A952B28")]
308  public sealed class MeanAbsoluteChangeQuantiles : Symbol {
309    public override int MinimumArity => 3;
310    public override int MaximumArity => 3;
311    [StorableConstructor] private MeanAbsoluteChangeQuantiles(StorableConstructorFlag _) : base(_) { }
312    private MeanAbsoluteChangeQuantiles(MeanAbsoluteChangeQuantiles original, Cloner cloner) : base(original, cloner) { }
313    public override IDeepCloneable Clone(Cloner cloner) { return new MeanAbsoluteChangeQuantiles(this, cloner); }
314    public MeanAbsoluteChangeQuantiles() : base("MeanAbsoluteChangeQuantiles", "") { }
315  }
316
317  [Item("MeanAutocorrelation", ""), StorableType("589F8A85-1332-4B9D-B85E-F81CF2E46C58")]
318  public sealed class MeanAutocorrelation : Symbol {
319    public override int MinimumArity => 1;
320    public override int MaximumArity => 1;
321    [StorableConstructor] private MeanAutocorrelation(StorableConstructorFlag _) : base(_) { }
322    private MeanAutocorrelation(MeanAutocorrelation original, Cloner cloner) : base(original, cloner) { }
323    public override IDeepCloneable Clone(Cloner cloner) { return new MeanAutocorrelation(this, cloner); }
324    public MeanAutocorrelation() : base("MeanAutocorrelation", "") { }
325  }
326
327  [Item("LaggedAutocorrelation", ""), StorableType("E93A8BF9-69EF-4FCA-99B0-FF9157C63814")]
328  public sealed class LaggedAutocorrelation : Symbol {
329    public override int MinimumArity => 2;
330    public override int MaximumArity => 2;
331    [StorableConstructor] private LaggedAutocorrelation(StorableConstructorFlag _) : base(_) { }
332    private LaggedAutocorrelation(LaggedAutocorrelation original, Cloner cloner) : base(original, cloner) { }
333    public override IDeepCloneable Clone(Cloner cloner) { return new LaggedAutocorrelation(this, cloner); }
334    public LaggedAutocorrelation() : base("LaggedAutocorrelation", "") { }
335  }
336
337  [Item("MeanSecondDerivateCentral", ""), StorableType("8C31A24F-83E2-4027-85F1-185AAF7C421D")]
338  public sealed class MeanSecondDerivateCentral : Symbol {
339    public override int MinimumArity => 1;
340    public override int MaximumArity => 1;
341    [StorableConstructor] private MeanSecondDerivateCentral(StorableConstructorFlag _) : base(_) { }
342    private MeanSecondDerivateCentral(MeanSecondDerivateCentral original, Cloner cloner) : base(original, cloner) { }
343    public override IDeepCloneable Clone(Cloner cloner) { return new MeanSecondDerivateCentral(this, cloner); }
344    public MeanSecondDerivateCentral() : base("MeanSecondDerivateCentral", "") { }
345  }
346
347  [Item("NumberPeaksOfSize", ""), StorableType("F57A6E86-F2A2-4884-BD29-9C74A694B3B0")]
348  public sealed class NumberPeaksOfSize : Symbol {
349    public override int MinimumArity => 2;
350    public override int MaximumArity => 2;
351    [StorableConstructor] private NumberPeaksOfSize(StorableConstructorFlag _) : base(_) { }
352    private NumberPeaksOfSize(NumberPeaksOfSize original, Cloner cloner) : base(original, cloner) { }
353    public override IDeepCloneable Clone(Cloner cloner) { return new NumberPeaksOfSize(this, cloner); }
354    public NumberPeaksOfSize() : base("NumberPeaksOfSize", "") { }
355  }
356
357  [Item("LargeNumberOfPeaks", ""), StorableType("0E0EF4C6-0FA7-45C0-92C1-245392B33040")]
358  public sealed class LargeNumberOfPeaks : Symbol {
359    public override int MinimumArity => 3;
360    public override int MaximumArity => 3;
361    [StorableConstructor] private LargeNumberOfPeaks(StorableConstructorFlag _) : base(_) { }
362    private LargeNumberOfPeaks(LargeNumberOfPeaks original, Cloner cloner) : base(original, cloner) { }
363    public override IDeepCloneable Clone(Cloner cloner) { return new LargeNumberOfPeaks(this, cloner); }
364    public LargeNumberOfPeaks() : base("LargeNumberOfPeaks", "") { }
365  }
366
367  [Item("TimeReversalAsymmetryStatistic", ""), StorableType("F4CDC994-0931-46B5-ACE3-765010FF41C4")]
368  public sealed class TimeReversalAsymmetryStatistic : Symbol {
369    public override int MinimumArity => 2;
370    public override int MaximumArity => 2;
371    [StorableConstructor] private TimeReversalAsymmetryStatistic(StorableConstructorFlag _) : base(_) { }
372    private TimeReversalAsymmetryStatistic(TimeReversalAsymmetryStatistic original, Cloner cloner) : base(original, cloner) { }
373    public override IDeepCloneable Clone(Cloner cloner) { return new TimeReversalAsymmetryStatistic(this, cloner); }
374    public TimeReversalAsymmetryStatistic() : base("TimeReversalAsymmetryStatistic", "") { }
375  }
376  #endregion
377}
Note: See TracBrowser for help on using the repository browser.