8 #ifndef PATCHGEOMETRY_HPP_ 9 #define PATCHGEOMETRY_HPP_ 11 #include "components/Patch.hpp" 12 #include "include/PVLayerLoc.h" 67 std::string
const &name,
165 Patch const &
getPatch(
int patchIndex)
const {
return mPatchVector[patchIndex]; }
174 std::size_t
getAPostOffset(
int patchIndex)
const {
return mAPostOffset[patchIndex]; }
183 return mTransposeItemIndex[kernelIndex][itemInPatch];
189 int getPatchStrideX()
const {
return mPatchStrideX; }
190 int getPatchStrideY()
const {
return mPatchStrideY; }
191 int getPatchStrideF()
const {
return mPatchStrideF; }
212 static int calcPatchStartInPost(
213 int indexRestrictedPre,
221 std::string
const &name,
233 static int verifyPatchSize(
int numPreRestricted,
int numPostRestricted,
int patchSize);
252 static void calcPatchData(
254 int numPreRestricted,
257 int numPostRestricted,
263 int *postPatchStartRestricted,
264 int *postPatchStartExtended,
265 int *postPatchUnshrunkenStart);
280 std::vector<Patch> mPatchVector;
281 std::vector<std::size_t> mGSynPatchStart;
282 std::vector<std::size_t> mAPostOffset;
283 std::vector<long> mUnshrunkenStart;
284 std::vector<std::vector<int>> mTransposeItemIndex;
292 bool mSelfConnectionFlag;
297 #endif // PATCHGEOMETRY_HPP_ PVLayerLoc const & getPostLoc() const
int getNumPatchesX() const
int getLog2ScaleDiffY() const
int getNumKernelsF() const
int getNumPatches() const
int getPatchSizeOverall() const
void setMargins(PVHalo const &preHalo, PVHalo const &postHalo)
int getPatchSizeX() const
std::size_t getGSynPatchStart(int patchIndex) const
int getLog2ScaleDiffX() const
void initialize(std::string const &name, int patchSizeX, int patchSizeY, int patchSizeF, PVLayerLoc const *preLoc, PVLayerLoc const *postLoc)
bool getSelfConnectionFlag() const
int getNumKernelsY() const
int getPatchSizeF() const
std::size_t getTransposeItemIndex(int kernelIndex, int itemInPatch) const
std::size_t getAPostOffset(int patchIndex) const
Patch const & getPatch(int patchIndex) const
int getNumKernelsX() const
void allocateDataStructures()
int getNumPatchesF() const
std::vector< std::size_t > const & getAPostOffset() const
int getPatchSizeY() const
void setTransposeItemIndices()
PatchGeometry(std::string const &name, int patchSizeX, int patchSizeY, int patchSizeF, PVLayerLoc const *preLoc, PVLayerLoc const *postLoc)
int getNumKernels() const
PVLayerLoc const & getPreLoc() const
int getNumPatchesY() const
long getUnshrunkenStart(int patchIndex) const
std::vector< std::size_t > const & getGSynPatchStart() const