~ubuntu-branches/ubuntu/trusty/mira/trusty-proposed

« back to all changes in this revision

Viewing changes to src/knn_abi373/nplus.c

  • Committer: Package Import Robot
  • Author(s): Andreas Tille, Thorsten Alteholz, Dmitrijs Ledkovs, Andreas Tille
  • Date: 2013-06-07 08:34:21 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130607083421-w2r4euqt8ktu1184
Tags: 3.9.17-1
[ Thorsten Alteholz ]
* new upstream version
* debian/control: Standards-Version set to 3.9.4 (no changes)
* debian/control: DM-Upload-Allowed: removed
* debian/control: use dh 9
* debian/control: add dependency to libboost-iostreams-dev
* debian/control: improve extended descriptions
* debian/control: change VCS-tags according to new lintian
* debian/rules: get-orig-source added
* debian/watch: do not look at dev-versions
* debian/mira-doc.README.Debian: correct path to documentation

[ Dmitrijs Ledkovs ]
* Build depend on libboost-all-dev and libbz2-dev.
* Add boost-minimal patch, to add boost-libraries in final linking,
  fixing FTBFS (Closes: #701322)
* Enable parallel builds, to speed up compilation.

[ Andreas Tille ]
* delete debian/README.source which is outdated / wrong
* debian/*.1: Wrote / reviewed manpages for all installed programs
* debian/miraSearchESTSNPs.1: Wrote manpage but mention that this
  functionality is deactivated in version 3.9.17
* debian/mira-assembler.manpages: Simply install all manpages that can be
  found
* Removed debian/obsolete.mira-assembler.install
* debian/control: The actual scripts do not contain the .tcl suffix
  in our installation
* debian/rules:
   - Currently miraSearchESTSNPs and miraclip claim to be deactivated so
     why bothering installing these?
   - Use xz compression for binaries

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*********************************************************
2
 
  nplus.c
3
 
  --------------------------------------------------------
4
 
  generated at Tue Feb 22 14:20:39 2000
5
 
  by snns2c ( Bernward Kett 1995 ) 
6
 
*********************************************************/
7
 
 
8
 
#include <math.h>
9
 
 
10
 
#define Act_Logistic(sum, bias)  ( (sum+bias<10000.0) ? ( 1.0/(1.0 + exp(-sum-bias) ) ) : 0.0 )
11
 
#define NULL (void *)0
12
 
 
13
 
typedef struct UT {
14
 
          float act;         /* Activation       */
15
 
          float Bias;        /* Bias of the Unit */
16
 
          int   NoOfSources; /* Number of predecessor units */
17
 
   struct UT   **sources; /* predecessor units */
18
 
          float *weights; /* weights from predecessor units */
19
 
        } UnitType, *pUnit;
20
 
 
21
 
  /* Forward Declaration for all unit types */
22
 
  static UnitType Units[13];
23
 
  /* Sources definition section */
24
 
  static pUnit Sources[] =  {
25
 
Units + 1, Units + 2, Units + 3, Units + 4, Units + 5, Units + 6, Units + 7, 
26
 
Units + 1, Units + 2, Units + 3, Units + 4, Units + 5, Units + 6, Units + 7, 
27
 
Units + 1, Units + 2, Units + 3, Units + 4, Units + 5, Units + 6, Units + 7, 
28
 
Units + 1, Units + 2, Units + 3, Units + 4, Units + 5, Units + 6, Units + 7, 
29
 
Units + 8, Units + 9, Units + 10, Units + 11, 
30
 
 
31
 
  };
32
 
 
33
 
  /* Weigths definition section */
34
 
  static float Weights[] =  {
35
 
3.547170, -3.553980, -1.116620, -0.025180, 1.089420, 0.803130, 0.529420, 
36
 
-0.325320, -0.799210, -0.662850, -0.085720, 0.610610, 0.408650, -0.561280, 
37
 
3.562170, -3.912450, -1.808290, 0.690540, 1.446580, 0.627760, 1.319640, 
38
 
-2.048400, 2.575210, 1.037980, -0.229640, -1.377640, 0.538870, -1.307310, 
39
 
4.001350, 0.610380, 4.446260, -3.682270, 
40
 
 
41
 
  };
42
 
 
43
 
  /* unit definition section (see also UnitType) */
44
 
  static UnitType Units[13] = 
45
 
  {
46
 
    { 0.0, 0.0, 0, NULL , NULL },
47
 
    { /* unit 1 (Old: 1) */
48
 
      0.0, -0.489050, 0,
49
 
       &Sources[0] , 
50
 
       &Weights[0] , 
51
 
      },
52
 
    { /* unit 2 (Old: 2) */
53
 
      0.0, 0.314600, 0,
54
 
       &Sources[0] , 
55
 
       &Weights[0] , 
56
 
      },
57
 
    { /* unit 3 (Old: 3) */
58
 
      0.0, 0.777830, 0,
59
 
       &Sources[0] , 
60
 
       &Weights[0] , 
61
 
      },
62
 
    { /* unit 4 (Old: 4) */
63
 
      0.0, 0.155320, 0,
64
 
       &Sources[0] , 
65
 
       &Weights[0] , 
66
 
      },
67
 
    { /* unit 5 (Old: 5) */
68
 
      0.0, 0.837780, 0,
69
 
       &Sources[0] , 
70
 
       &Weights[0] , 
71
 
      },
72
 
    { /* unit 6 (Old: 6) */
73
 
      0.0, -0.712880, 0,
74
 
       &Sources[0] , 
75
 
       &Weights[0] , 
76
 
      },
77
 
    { /* unit 7 (Old: 7) */
78
 
      0.0, 0.002400, 0,
79
 
       &Sources[0] , 
80
 
       &Weights[0] , 
81
 
      },
82
 
    { /* unit 8 (Old: 8) */
83
 
      0.0, 0.302570, 7,
84
 
       &Sources[0] , 
85
 
       &Weights[0] , 
86
 
      },
87
 
    { /* unit 9 (Old: 9) */
88
 
      0.0, -0.386940, 7,
89
 
       &Sources[7] , 
90
 
       &Weights[7] , 
91
 
      },
92
 
    { /* unit 10 (Old: 10) */
93
 
      0.0, 1.267810, 7,
94
 
       &Sources[14] , 
95
 
       &Weights[14] , 
96
 
      },
97
 
    { /* unit 11 (Old: 11) */
98
 
      0.0, -0.653340, 7,
99
 
       &Sources[21] , 
100
 
       &Weights[21] , 
101
 
      },
102
 
    { /* unit 12 (Old: 12) */
103
 
      0.0, -2.467430, 4,
104
 
       &Sources[28] , 
105
 
       &Weights[28] , 
106
 
      }
107
 
 
108
 
  };
109
 
 
110
 
 
111
 
 
112
 
int nplus(float *in, float *out, int init)
113
 
{
114
 
  int member, source;
115
 
  float sum;
116
 
  enum{OK, Error, Not_Valid};
117
 
  pUnit unit;
118
 
 
119
 
 
120
 
  /* layer definition section (names & member units) */
121
 
 
122
 
  static pUnit Input[7] = {Units + 1, Units + 2, Units + 3, Units + 4, Units + 5, Units + 6, Units + 7}; /* members */
123
 
 
124
 
  static pUnit Hidden1[4] = {Units + 8, Units + 9, Units + 10, Units + 11}; /* members */
125
 
 
126
 
  static pUnit Output1[1] = {Units + 12}; /* members */
127
 
 
128
 
  static int Output[1] = {12};
129
 
 
130
 
  for(member = 0; member < 7; member++) {
131
 
    Input[member]->act = in[member];
132
 
  }
133
 
 
134
 
  for (member = 0; member < 4; member++) {
135
 
    unit = Hidden1[member];
136
 
    sum = 0.0;
137
 
    for (source = 0; source < unit->NoOfSources; source++) {
138
 
      sum += unit->sources[source]->act
139
 
             * unit->weights[source];
140
 
    }
141
 
    unit->act = Act_Logistic(sum, unit->Bias);
142
 
  };
143
 
 
144
 
  for (member = 0; member < 1; member++) {
145
 
    unit = Output1[member];
146
 
    sum = 0.0;
147
 
    for (source = 0; source < unit->NoOfSources; source++) {
148
 
      sum += unit->sources[source]->act
149
 
             * unit->weights[source];
150
 
    }
151
 
    unit->act = Act_Logistic(sum, unit->Bias);
152
 
  };
153
 
 
154
 
  for(member = 0; member < 1; member++) {
155
 
    out[member] = Units[Output[member]].act;
156
 
  }
157
 
 
158
 
  return(OK);
159
 
}