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
kra568
committed
#include "../settings.h"
Martin Beseda
committed
//#include "../ISerializable.h"
kra568
committed

Michal Kravcenko
committed
#include <functional>

Michal Kravcenko
committed
Martin Beseda
committed

Michal Kravcenko
committed
protected:

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

Michal Kravcenko
committed
public:
Martin Beseda
committed
/**
* Struct used to access private properties from
* the serialization function
*/
struct access;

Michal Kravcenko
committed
/**
*
*/
kra568
committed
LIB4NEURO_API ConnectionFunctionGeneral();

Michal Kravcenko
committed
/**
*
* @param param_count
* @param f
*/
kra568
committed
LIB4NEURO_API ConnectionFunctionGeneral(std::vector<size_t> ¶m_indices, std::string &function_string);

Michal Kravcenko
committed
/**
*
*/
kra568
committed
LIB4NEURO_API virtual ~ConnectionFunctionGeneral( );

Michal Kravcenko
committed
/**
*
* @return
*/
kra568
committed
LIB4NEURO_API 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
*/
kra568
committed
LIB4NEURO_API 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