Ejemplo n.º 1
0
void sample(uint32_t *s, RAND_CTX *rand_ctx) {
	int i, j;
	for (i = 0; i < 16; i++) {
		uint64_t r = RANDOM64(rand_ctx);
		for (j = 0; j < 64; j++) {
			uint64_t rnd[3];
			int32_t m;
			RANDOM192(rnd, rand_ctx);
			m = (r & 1);
			r >>= 1;
			m = 2 * m - 1;
			s[i * 64 + j] = single_sample(rnd);
			if (m == -1) {
				s[i * 64 + j] = 0xFFFFFFFF - s[i * 64 + j];
			}
		}
	}
}
Ejemplo n.º 2
0
Archivo: rlwe.c Proyecto: google/jalic
void sample(uint32_t *s) {
	RANDOM_VARS
	int i, j;
	for (i = 0; i < 16; i++) {
		uint64_t r = RANDOM64;
		for (j = 0; j < 64; j++) {
			uint64_t rnd[3];
			int32_t m;
			RANDOM192(rnd);
			m = (r & 1);
			r >>= 1;
			m = 2 * m - 1;
			s[i * 64 + j] = single_sample(rnd);
			if (m == -1) {
				s[i * 64 + j] = 0xFFFFFFFF - s[i * 64 + j];
			}
		}
	}
}
Ejemplo n.º 3
0
//run magnetometer
//read data from the magnetometer and print to terminal
int mag_take_data(char **argv,unsigned short argc) {
    unsigned short single=0,gauss=0,addr=0x14;
    unsigned char c,mag_addr=0x14;
    long result[2];
    float time=0;
    int i,res;
    MAGon();
    //parse arguments
    for(i=1; i<=argc; i++) {
        if(!strcmp("single",argv[i])) {
            single=1;
        } else if(!strcmp("gauss",argv[i])) {
            gauss=1;
        } else if((addr=getI2C_addr(argv[i],0,magAddrSym))!=0xFF) {
            mag_addr=addr;
        } else {

            printf("Error Unknown argument \'%s\'.\r\n",argv[i]);
            return -1;
        }
    }
    //run until abort is detected
    do {
        res=single_sample(mag_addr,result);
        if(res!=0) {
            printf("Error encountered. Aborting\r\n");
            break;
        }
        if(gauss) {
            printf("%f %f\r\n",ADCtoGauss(result[0])/2,ADCtoGauss(result[1])/2);
        } else {
            printf("%li %li\r\n",result[0],result[1]);
        }
        c=async_CheckKey();
    } while(!(c==0x03  || c=='Q' || c=='q' || single||c==' '));
    return 0;
    MAGoff();
}