25 #ifndef OPTIMIZATIONARRAY_HPP_
26 #define OPTIMIZATIONARRAY_HPP_
35 namespace serialization {
41 namespace neural_nets {
42 namespace optimization {
65 template <
typename opT>
66 void add( std::string name_,
size_t rows_,
size_t cols_){
68 functions.push_back ( std::make_shared< opT > ( opT ( rows_, cols_ ) ) );
72 template <
typename opT>
73 void add( std::string name_, std::shared_ptr<opT> opt_){
89 std::shared_ptr<mic::neural_nets::optimization::OptimizationFunction<T> > &
operator[] (
size_t number_ ) {
101 std::shared_ptr<mic::neural_nets::optimization::OptimizationFunction<T> > &
operator[] (
char key_ ) {
104 return ( *
this ) [std::string ( 1, key_ )];
113 std::shared_ptr<mic::neural_nets::optimization::OptimizationFunction<T> > &
operator[] ( std::string key ) {
116 std::cout <<
"Warning !!! " <<
117 "::[] - key not found:" << key << std::endl;
130 friend std::ostream& operator<<(std::ostream& os_, const mic::neural_nets::optimization::OptimizationArray<T> & obj_) {
132 for (
auto& i: obj_.keys_map) {
134 os_ <<
"[" << i.first <<
"] \n";
143 std::map<std::string, size_t>
keys() {
156 std::vector<std::shared_ptr< mic::neural_nets::optimization::OptimizationFunction<T> > >
functions;
164 friend class boost::serialization::access;
std::shared_ptr< mic::neural_nets::optimization::OptimizationFunction< T > > & operator[](size_t number_)
void add(std::string name_, std::shared_ptr< opT > opt_)
void add(std::string name_, size_t rows_, size_t cols_)
std::map< std::string, size_t > keys()
std::vector< std::shared_ptr< mic::neural_nets::optimization::OptimizationFunction< T > > > functions
Vector of pointers of optimization functions.
OptimizationArray()=default
A dynamic array of optimization functions (a hash-table).
std::map< std::string, size_t > keys_map
Vector of keys of consecutive functions in the array.