Exemple #1
0
void numSolverSH::compPow(int kp,int up){
    //cerr << "compPow("<< kp << "," << up << ")" << endl;
    
    int k = kp-1;
    boostmat::vector<double> itervect = (*lastOne)[kp];
	boostmat::vector<double> itervect2 =
	boostmat::zero_vector<double> (finalVector->size());
    
    while (k>0 && readbit(up, k)==0){
        //cerr << itervect<< endl;
        (*lastOne)[k]=itervect;
        (*ktable)[k] =(*ktable)[kp];
        //cerr << "k--" << endl;
        k--;
    }
    
	int m = 1<<k;  // (m = 2^k
    for (int i = (int)(*ktable)[kp]+1; i<=up; i++) {
		//cerr << "i: " << i << " k: " << k << " m: " << m << endl;
        itervect2.clear();
        sparseProd(&itervect2,&itervect, transitionsMatrix);
        itervect=itervect2;
        
        if((itervect (0) != 0.0) && (minT== -1))minT=i;
        
		//itervect = boostmat::prod ((*transitionsMatrix), itervect);
		m--;
		if(m==0){
			(*lastOne)[k]=itervect;
            (*ktable)[k] = i;
			k--;
			//cerr << "k--1" << endl;
			while (k>0 && readbit(up, k)==0){
				(*lastOne)[k]=itervect;
                (*ktable)[k] =i;
				//cerr << "k--" << endl;
				k--;
			}
			
			m= 1<<k;
		}
		
	}
	//cerr << "finish";
    //cerr << itervect << endl;
	previous_vect = current_vect;
    current_vect=itervect;
    is_previous=false;
    /*current_vect= boostmat::zero_vector<double> (itervect.size());
	 sparseProd(&current_vect, &itervect, transitionsMatrix);*/
	//current_vect = boostmat::prod ((*transitionsMatrix), itervect);
	//cerr << "finish reset" << endl;
    
    
}
Exemple #2
0
int32_t entropy_decode_value(alac_file* alac,
                             int readSampleSize,
                             int k,
                             int rice_kmodifier_mask)
{
    int32_t x = 0; // decoded value

    // read x, number of 1s before 0 represent the rice value.
    while (x <= RICE_THRESHOLD && readbit(alac))
    {
        x++;
    }

    if (x > RICE_THRESHOLD)
    {
        // read the number from the bit stream (raw value)
        int32_t value;

        value = readbits(alac, readSampleSize);

        // mask value
        value &= (((uint32_t)0xffffffff) >> (32 - readSampleSize));

        x = value;
    }
Exemple #3
0
static u16 amic1608_adc_readdate(void) 
{
	int i;
	u16 data = 0;

	/*
 	 * 启动转换
 	 * 使用模拟SPI控制AMiC-1608AI-5ID时,必须先把CLK置低,再把CS置低启动采样,否则将不能正确读取采样值
 	 */
	clk_low();
	//loop_ten(1);
	ship_select();
	/*
 	 * 先发出6个CLK出去,在这段时间内数据无效,所以不用读取数据
 	 */
	for(i = 0; i < 6; i++) {
		clk_high();
		loop_ten(1);
		clk_low();
		loop_ten(1);
	}

	for (i = 0; i< 16; i++) {
		clk_low();
		data <<= 1;	
		loop_ten(1);
		clk_high();
		loop_ten(1);
		data |= readbit();
	}	
	ship_release();

	return data;
}
Exemple #4
0
byte readbyte(int addr) {
  byte b = 0;
  for (int i = 0; i < 8; i++) {
    b |= (readbit(addr, i) << i);
  }
  return b;
}
Exemple #5
0
// TODO: this method is ugly as shit.
R_API void r_mem_copybits_delta(ut8 *dst, int doff, const ut8 *src, int soff, int bits) {
	int i;
	if (doff < 0 || soff < 0 || !dst || !src) {
		return;
	}
	for (i = 0; i < bits; i++) {
		bool c = readbit (src, i + soff);
// eprintf ("%d %d\n", i, c);
		writebit (dst, i + doff, c);
	}
}
Exemple #6
0
INLINE int
readnbits(Uint8 *data, int n, int pos)
{
    Uint8 result = 0;
    int i;

    for (i = 0; i < n; ++i)
        result = result * 2 + readbit(data, pos + i);

    return result;
}
Exemple #7
0
int readnb(int n) {int i, a = 0; for(i = 0; i < n; i++) a |= readbit() << i; return a;}
Exemple #8
0
int read32() {int i; int a = 0; for(i = 0; i < 32; i++) a |= readbit() << i; return a;}
Exemple #9
0
short read16() {int i; short a = 0; for(i = 0; i < 16; i++) a |= readbit() << i; return a;}
Exemple #10
0
char read8() {int i; char a = 0; for(i = 0; i < 8; i++) a |= readbit() << i; return a;}
Exemple #11
0
int main(int argc, char *argv[])
{
	int i, j, x, z; char fnwoe[384], *e, *minimap, *hmap, **tname; int *tid;
	if(argc < 2) {printf("Usage: bcm2snr \"input.bcm\"\n"); return 0;}
	assert(file = fopen(argv[1], "rb"));

	fseek(file, 12, SEEK_CUR);
	mapw = read32(); maph = read32();

	strcpy(fnwoe, argv[1]);
	e = strrchr(fnwoe, '.');
	if(!e) {e = fnwoe + strlen(fnwoe); *e = '.';}

	strcpy(e, ".snr");
	assert(fsnr = fopen(fnwoe, "w"));
	fprintf(fsnr, "SCENARIO_VERSION 4.00\n");
	fprintf(fsnr, "SCENARIO_DIMENSIONS %u %u\n", mapw, maph);
	fprintf(fsnr, "SCENARIO_EDGE_WIDTH %u\n", read32());
	fprintf(fsnr, "SCENARIO_TEXTURE_DATABASE \""); ReadPrintWString(fsnr);
	fprintf(fsnr, "\"\n");
	strcpy(e, "");
	fprintf(fsnr, "SCENARIO_TERRAIN \"%s.trn\"\n", fnwoe);
	fprintf(fsnr, "SCENARIO_HEIGHTMAP \"%s_heightmap.pcx\"\n", fnwoe);
	fprintf(fsnr, "SCENARIO_HEIGHT_SCALE_FACTOR %f\n", readfloat());
	fprintf(fsnr, "SCENARIO_SUN_COLOUR");
	for(i = 0; i < 3; i++) fprintf(fsnr, " %u", read32());
	fprintf(fsnr, "\n");
	fprintf(fsnr, "SCENARIO_SUN_VECTOR");
	for(i = 0; i < 3; i++) fprintf(fsnr, " %f", readfloat());
	fprintf(fsnr, "\n");
	fprintf(fsnr, "SCENARIO_FOG_COLOUR");
	for(i = 0; i < 3; i++) fprintf(fsnr, " %u", read32());
	fprintf(fsnr, "\n");
	fprintf(fsnr, "SCENARIO_SKY_TEXTURES_DIRECTORY \""); ReadPrintWString(fsnr);
	fprintf(fsnr, "\"\n");
	fprintf(fsnr, "SCENARIO_MINIMAP \"%s_minimap.pcx\"\n", fnwoe);

	strcpy(e, "_minimap.pcx");
	assert(fpcx = fopen(fnwoe, "wb"));
	assert(minimap = (char*)malloc(0xC000));
	fread(minimap, 0xC000, 1, file);
	WritePCXHeader(fpcx, 128, 128, 3);
	WritePCXData(fpcx, minimap, 128, 128, 3);
	fclose(fpcx);
	free(minimap);

	nlakes = readnb(6);
	for(i = 0; i < nlakes; i++)
	{
		fprintf(fsnr, "SCENARIO_LAKE");
		for(j = 0; j < 3; j++) fprintf(fsnr, " %f", readfloat());
		fprintf(fsnr, " 0.0\n");
		readnb(2);
	}

	printf("Number of names: %u\n", nnames = read16());
	assert(tname = (char**)malloc(nnames * sizeof(char*)));
	for(i = 0; i < nnames; i++)
		{tname[i] = (char*)malloc(128); ReadName(tname[i]);}

	printf("Number of IDs: %u\n", nids = read16());
	assert(tid = (int*)malloc(nids * sizeof(int)));
	for(i = 0; i < nids; i++) tid[i] = read32();

	printf("\n------------\n\n");
	ngrpbits = GetMaxBits(nnames); //2;
	nidbits = GetMaxBits(nids); //3;

	strcpy(e, ".trn");
	assert(ftrn = fopen(fnwoe, "w"));
	for(z = maph-1; z >= 0; z--)
	for(x = 0; x < mapw; x++)
	{
		fprintf(ftrn, "X %u Z %u ", x+1, z+1);
		fprintf(ftrn, "GROUP \"%s\" ", tname[readnb(ngrpbits)]);
		fprintf(ftrn, "ID %u ", tid[readnb(nidbits)]);
		fprintf(ftrn, "ROTATION %u ", readnb(2));
		fprintf(ftrn, "XFLIP %u ", readbit());
		fprintf(ftrn, "ZFLIP %u\n", readbit());
	}
	fclose(ftrn);

	printf("End offset: 0x%08X\n", ftell(file));

	printf("\n------------\n\n");

	printf("Num of ?: %u\n", nunk = read32());
	printf("0x62: 0x%X\n", read32());
	for(i = 0; i < nunk; i++)
		{readnb(ngrpbits); readnb(nidbits);}

	assert(hmap = (char*)malloc((mapw+1)*(maph+1)));
	fread(hmap, (mapw+1)*(maph+1), 1, file);
	strcpy(e, "_heightmap.pcx");
	assert(fpcx = fopen(fnwoe, "wb"));
	WritePCXHeader(fpcx, mapw+1, maph+1, 1);
	WritePCXData(fpcx, hmap, mapw+1, maph+1, 1);
	write8(fpcx, 12);
	for(i = 0; i < 256; i++)
		for(j = 0; j < 3; j++)
			write8(fpcx, i);
	fclose(fpcx);
	free(hmap);

	printf("End offset: 0x%08X\n", ftell(file));

	fclose(file);
	fclose(fsnr);
	free(tid);
	for(i = 0; i < nnames; i++) free(tname[i]);
	free(tname);
}