/// <summary> /// Creates new initialized instance. /// </summary> /// <param name="cfg">The configuration.</param> public PredictorsProvider(PredictorsProviderSettings cfg) { int reqAMDWCapacity = 0; int reqFMDWCapacity = 0; _predictorCollection = new List <IPredictor>(cfg.NumOfPredictors); _activationMDW = null; _firingMDW = null; _activationStat = null; _activationDiffStat = null; foreach (IPredictorSettings predictorCfg in cfg.PredictorCfgCollection) { IPredictor predictor = PredictorFactory.CreatePredictor(predictorCfg); reqAMDWCapacity = Math.Max(reqAMDWCapacity, predictor.Cfg.RequiredWndSizeOfActivations); reqFMDWCapacity = Math.Max(reqFMDWCapacity, predictor.Cfg.RequiredWndSizeOfFirings); if (predictor.Cfg.NeedsContinuousActivationStat && _activationStat == null) { _activationStat = new BasicStat(); } if (predictor.Cfg.NeedsContinuousActivationDiffStat && _activationDiffStat == null) { _activationDiffStat = new BasicStat(); } _predictorCollection.Add(predictor); } if (reqAMDWCapacity > 0) { _activationMDW = new MovingDataWindow(reqAMDWCapacity); } if (reqFMDWCapacity > 0) { _firingMDW = new SimpleQueue <byte>(reqFMDWCapacity); } Reset(); return; }
/// <summary> /// The deep copy constructor /// </summary> /// <param name="source">The source instance.</param> public PredictorsProviderSettings(PredictorsProviderSettings source) : this(source.PredictorCfgCollection) { return; }