Skip to content
Snippets Groups Projects
ConnectionFunctionIdentity.cpp 1.08 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * DESCRIPTION OF THE FILE
     *
     * @author Michal Kravčenko
     * @date 14.6.18 -
     */
    
    
    Michal Kravcenko's avatar
    Michal Kravcenko committed
    #include "ConnectionFunctionIdentity.h"
    
    #include "ConnectionFunctionIdentitySerialization.h"
    #include "ConnectionFunctionGeneralSerialization.h"
    
    BOOST_CLASS_EXPORT_IMPLEMENT(ConnectionFunctionIdentity);
    
    Martin Beseda's avatar
    Martin Beseda committed
    ConnectionFunctionIdentity::ConnectionFunctionIdentity() {
    
    Martin Beseda's avatar
    Martin Beseda committed
    ConnectionFunctionIdentity::ConnectionFunctionIdentity(size_t pidx) {
    
        this->param_idx  = pidx;
    
    Martin Beseda's avatar
    Martin Beseda committed
    double ConnectionFunctionIdentity::eval(std::vector<double>& parameter_space) {
    
    Martin Beseda's avatar
    Martin Beseda committed
        if (this->is_unitary) {
    
            return 1.0;
        }
    
        return parameter_space.at(this->param_idx);
    
    Martin Beseda's avatar
    Martin Beseda committed
    void ConnectionFunctionIdentity::eval_partial_derivative(std::vector<double>& parameter_space,
                                                             std::vector<double>& weight_gradient,
                                                             double alpha) {
    
    Martin Beseda's avatar
    Martin Beseda committed
        if (this->is_unitary) {
    
    Michal Kravcenko's avatar
    Michal Kravcenko committed
        weight_gradient[this->param_idx] += alpha;