NNFW - 1.2.1
Utilities
Configuration
GA
NNFW
WorldSim
Total 99%
Experiments
Main Page
Related Pages
Modules
Classes
Files
File List
nnfw
src
normlinker.cpp
1
/********************************************************************************
2
* Neural Network Framework. *
3
* Copyright (C) 2005-2011 Gianluca Massera <emmegian@yahoo.it> *
4
* *
5
* This program is free software; you can redistribute it and/or modify *
6
* it under the terms of the GNU General Public License as published by *
7
* the Free Software Foundation; either version 2 of the License, or *
8
* (at your option) any later version. *
9
* *
10
* This program is distributed in the hope that it will be useful, *
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13
* GNU General Public License for more details. *
14
* *
15
* You should have received a copy of the GNU General Public License *
16
* along with this program; if not, write to the Free Software *
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
18
********************************************************************************/
19
20
#include "
normlinker.h
"
21
#include <cmath>
22
23
namespace
farsa {
24
25
NormLinker::NormLinker
(
Cluster
* from,
Cluster
* to, QString name )
26
:
MatrixLinker
(from, to, name), temp( from->numNeurons() ) {
27
}
28
29
NormLinker::NormLinker
(
ConfigurationParameters
& params, QString prefix )
30
:
MatrixLinker
( params, prefix ) {
31
// there are no extra parameters to configure
32
}
33
34
NormLinker::~NormLinker
() {
35
}
36
37
void
NormLinker::update
() {
38
// check if cluster 'To' needs a reset
39
if
(
to
()->needReset() ) {
40
to
()->
resetInputs
();
41
}
42
const
DoubleVector
& outs =
fromVector
();
43
DoubleVector
& ins =
toVector
();
44
const
DoubleMatrix
& mat =
matrix
();
45
temp.
zeroing
();
46
for
(
unsigned
int
j=0; j<
cols
(); j++ ) {
47
ins[j] += sqrt(
sum
(
square
(
subtract
( temp, outs, mat.
column
(j) ) ) ) );
48
}
49
return
;
50
}
51
52
void
NormLinker::save
(
ConfigurationParameters
& params, QString prefix) {
53
MatrixLinker::save
( params, prefix );
54
params.
startObjectParameters
( prefix,
"NormLinker"
,
this
);
55
}
56
57
}