PetaVision  Alpha
PtwiseQuotientLayer.hpp
1 /*
2  * PtwiseQuotientLayer.hpp
3  *
4  * created by gkenyon, 06/2016g
5  * based on PtwiseProductLayer Created on: Apr 25, 2011
6  * Author: peteschultz
7  */
8 
9 #ifndef PTWISEQUOTIENTLAYER_HPP_
10 #define PTWISEQUOTIENTLAYER_HPP_
11 
12 #include "ANNLayer.hpp"
13 
14 namespace PV {
15 
23 class PtwiseQuotientLayer : public ANNLayer {
24  public:
25  PtwiseQuotientLayer(const char *name, HyPerCol *hc);
26  virtual ~PtwiseQuotientLayer();
27 
28  virtual Response::Status allocateDataStructures() override;
29  virtual Response::Status updateState(double timef, double dt) override;
30 
31  protected:
33  int initialize(const char *name, HyPerCol *hc);
34 
35  /* static */ void doUpdateState(
36  double timef,
37  double dt,
38  const PVLayerLoc *loc,
39  float *A,
40  float *V,
41  int num_channels,
42  float *gSynHead);
43 
44  private:
45  int initialize_base();
46 }; // end class PtwiseQuotientLayer
47 
48 } // end namespace PV
49 
50 #endif /* PTWISEQUOTIENTLAYER_HPP_ */