Subversion Repositories PlanixRsrch.SVN

Rev

Rev 289 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
45 7u83 1
#ifndef UNIT_H_
2
#define UNIT_H_
3
 
4
#include <cstdlib>
474 7u83 5
#include <cstdio>
6
 
45 7u83 7
#include <mutex>
8
 
9
 
10
#include "dq.h"
11
 
12
//#include "qube.h"
13
 
14
 
15
class unit
16
{
17
public:
18
    weight_t syns[SYNS_PER_UNIT];
19
    volatile float sum;
20
    std::mutex mtx;
21
    unit() {
22
        sum=0.0;
23
        for (int i=0; i<SYNS_PER_UNIT; i++) {
24
            weight_t r = static_cast <weight_t> (rand()) / static_cast <weight_t> (RAND_MAX);
25
            syns[i]=r;
26
        }
27
 
28
    }
29
 
30
 
31
    void receive(int from,float val);
32
 
33
    int run(class qube * qube, int me);
34
 
35
 
36
    void adjust(int from);
37
 
38
 
39
    inline void dump() {
40
        for (int i=0; i<SYNS_PER_UNIT; i++) {
41
            printf("[%0.6f]",syns[i]);
42
        }
43
    }
44
 
45
 
46
 
47
    void fire(qube * q,int me, float val);
48
 
49
 
50
 
51
 
52
};
53
 
54
#endif