Subversion Repositories PlanixRsrch.SVN

Rev

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

#ifndef UNIT_H_
#define UNIT_H_

#include <cstdlib>
#include <cstdio>

#include <mutex>


#include "dq.h"

//#include "qube.h"


class unit
{
public:
    weight_t syns[SYNS_PER_UNIT];
    volatile float sum;
    std::mutex mtx;
    unit() {
        sum=0.0;
        for (int i=0; i<SYNS_PER_UNIT; i++) {
            weight_t r = static_cast <weight_t> (rand()) / static_cast <weight_t> (RAND_MAX);
            syns[i]=r;
        }

    }


    void receive(int from,float val);

    int run(class qube * qube, int me);


    void adjust(int from);


    inline void dump() {
        for (int i=0; i<SYNS_PER_UNIT; i++) {
            printf("[%0.6f]",syns[i]);
        }
    }



    void fire(qube * q,int me, float val);




};

#endif