Newer
Older

Michal Kravcenko
committed
/**
* DESCRIPTION OF THE FILE
*
* @author Michal Kravčenko
* @date 14.6.18 -
*/
#ifndef INC_4NEURO_CONNECTIONWEIGHT_H
#define INC_4NEURO_CONNECTIONWEIGHT_H
Martin Beseda
committed
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/export.hpp>
#include <boost/serialization/vector.hpp>

Michal Kravcenko
committed
#include <functional>

Michal Kravcenko
committed
Martin Beseda
committed
private:
friend class boost::serialization::access;
template <class Archive>
void serialize(Archive & ar, const unsigned int version) {
ar & this->param_indices;
};

Michal Kravcenko
committed
protected:

Michal Kravcenko
committed
std::vector<size_t> param_indices;

Michal Kravcenko
committed
public:
/**
*
*/

Michal Kravcenko
committed
ConnectionFunctionGeneral();

Michal Kravcenko
committed
/**
*
* @param param_count
* @param f
*/

Michal Kravcenko
committed
ConnectionFunctionGeneral(std::vector<size_t> ¶m_indices, std::string &function_string);

Michal Kravcenko
committed
/**
*
*/

Michal Kravcenko
committed
virtual ~ConnectionFunctionGeneral( );

Michal Kravcenko
committed
/**
*
* @return
*/

Michal Kravcenko
committed
virtual double eval( std::vector<double> ¶meter_space );

Michal Kravcenko
committed
/**
* Performs partial derivative of this transfer function according to all parameters. Adds the values multiplied
* by alpha to the corresponding gradient vector

Michal Kravcenko
committed
*/

Michal Kravcenko
committed
virtual void eval_partial_derivative( std::vector<double> ¶meter_space, std::vector<double> &weight_gradient, double alpha );

Michal Kravcenko
committed
};
#endif //INC_4NEURO_CONNECTIONWEIGHT_H