Newer
Older

Michal Kravcenko
committed
/**
* DESCRIPTION OF THE FILE
*
* @author Michal Kravčenko
* @date 14.6.18 -
*/
#ifndef INC_4NEURO_CONNECTIONWEIGHTIDENTITY_H
#define INC_4NEURO_CONNECTIONWEIGHTIDENTITY_H
kra568
committed
#include "../settings.h"

Michal Kravcenko
committed
#include "ConnectionFunctionGeneral.h"

Michal Kravcenko
committed
Martin Beseda
committed
//class ConnectionFunctionGeneral;

Michal Kravcenko
committed
/**
*
*/
Martin Beseda
committed
class ConnectionFunctionIdentity : public ConnectionFunctionGeneral {
// friend class boost::serialization::access;
// friend class NeuralNetwork;
Martin Beseda
committed

Michal Kravcenko
committed
private:

Michal Kravcenko
committed
size_t param_idx = 0;
bool is_unitary = false;
Martin Beseda
committed
//protected:
// template<class Archive>
// void serialize(Archive & ar, const unsigned int version){
// ar & boost::serialization::base_object<ConnectionFunctionGeneral>(*this);
// ar & this->param_idx;
// ar & this->is_unitary;
// };
Martin Beseda
committed

Michal Kravcenko
committed
public:
Martin Beseda
committed
struct access;
/**
*
*/
kra568
committed
LIB4NEURO_API ConnectionFunctionIdentity( );

Michal Kravcenko
committed
/**
*
*/
kra568
committed
LIB4NEURO_API ConnectionFunctionIdentity( size_t pidx );

Michal Kravcenko
committed
/**
*
* @return
*/
kra568
committed
LIB4NEURO_API double eval( std::vector<double> ¶meter_space ) override;
/**
*
* @param weight_gradient
* @param alpha
*/
kra568
committed
LIB4NEURO_API void eval_partial_derivative(std::vector<double> ¶meter_space, std::vector<double> &weight_gradient, double alpha) override;

Michal Kravcenko
committed
};
#endif //INC_4NEURO_CONNECTIONWEIGHTIDENTITY_H