PetaVision  Alpha
NormalizeGroup.hpp
1 /*
2  * NormalizeGroup.hpp
3  *
4  * Created on: Jun 22, 2016
5  * Author: pschultz
6  */
7 
8 #ifndef NORMALIZEGROUP_HPP_
9 #define NORMALIZEGROUP_HPP_
10 
11 #include "NormalizeBase.hpp"
12 
13 namespace PV {
14 
15 class NormalizeGroup : public NormalizeBase {
16  public:
17  NormalizeGroup(char const *name, HyPerCol *hc);
18  virtual ~NormalizeGroup();
19 
20  virtual int ioParamsFillGroup(enum ParamsIOFlag ioFlag) override;
21 
22  virtual Response::Status
23  communicateInitInfo(std::shared_ptr<CommunicateInitInfoMessage const> message) override;
24 
25  protected:
27  int initialize(char const *name, HyPerCol *hc);
28 
33  virtual void ioParam_normalizeArborsIndividually(enum ParamsIOFlag ioFlag) override;
34 
39  virtual void ioParam_normalizeOnInitialize(enum ParamsIOFlag ioFlag) override;
40 
45  virtual void ioParam_normalizeOnWeightUpdate(enum ParamsIOFlag ioFlag) override;
46 
51  virtual void ioParam_normalizeGroupName(enum ParamsIOFlag ioFlag);
52 
58  virtual int normalizeWeights() override;
59 
60  // Data members
61  private:
62  char *mNormalizeGroupName = nullptr;
63  NormalizeBase *mGroupHead = nullptr;
64 }; // class NormalizeGroup
65 
66 } /* namespace PV */
67 
68 #endif /* NORMALIZEGROUP_HPP_ */
virtual int normalizeWeights() override
virtual void ioParam_normalizeOnInitialize(enum ParamsIOFlag ioFlag) override
virtual void ioParam_normalizeArborsIndividually(enum ParamsIOFlag ioFlag) override
virtual int ioParamsFillGroup(enum ParamsIOFlag ioFlag) override
virtual void ioParam_normalizeGroupName(enum ParamsIOFlag ioFlag)
virtual void ioParam_normalizeOnWeightUpdate(enum ParamsIOFlag ioFlag) override