mlpack
reset_cell_visitor_impl.hpp
Go to the documentation of this file.
1 
12 #ifndef MLPACK_METHODS_ANN_VISITOR_RESET_CELL_VISITOR_IMPL_HPP
13 #define MLPACK_METHODS_ANN_VISITOR_RESET_CELL_VISITOR_IMPL_HPP
14 
15 // In case it hasn't been included yet.
16 #include "reset_cell_visitor.hpp"
17 
18 namespace mlpack {
19 namespace ann {
20 
22 inline ResetCellVisitor::ResetCellVisitor(const size_t size) : size(size)
23 {
24  /* Nothing to do here. */
25 }
26 
28 template<typename LayerType>
29 inline void ResetCellVisitor::operator()(LayerType* layer) const
30 {
31  ResetCell(layer);
32 }
33 
34 inline void ResetCellVisitor::operator()(MoreTypes layer) const
35 {
36  layer.apply_visitor(*this);
37 }
38 
39 template<typename T>
40 inline typename std::enable_if<
41  HasResetCellCheck<T, void(T::*)(const size_t)>::value, void>::type
42 ResetCellVisitor::ResetCell(T* layer) const
43 {
44  layer->ResetCell(size);
45 }
46 
47 template<typename T>
48 inline typename std::enable_if<
49  !HasResetCellCheck<T, void(T::*)(const size_t)>::value, void>::type
50 ResetCellVisitor::ResetCell(T* /* layer */) const
51 {
52  /* Nothing to do here. */
53 }
54 
55 } // namespace ann
56 } // namespace mlpack
57 
58 #endif
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
ResetCellVisitor(const size_t size)
Reset the cell using the given size.
Definition: reset_cell_visitor_impl.hpp:22
void operator()(LayerType *layer) const
Execute the ResetCell() function.
Definition: reset_cell_visitor_impl.hpp:29