示例#1
0
        /// <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;
 }