Ejemplo n.º 1
0
void oggpack_adv(oggpack_buffer *b,int bits){
	//printf("Entering oggpack_adv\n");
  bits+=b->endbit;
 // b->ptr+=bits/8;
  incr_ptr(&b->ptr, bits/8);
  b->endbyte+=bits/8;
  b->endbit=bits&7;
}
Ejemplo n.º 2
0
REAL matrD2::mult_line(size_t J, extvec::const_iterator b_begin, extvec::const_iterator b_end) {

	if (mask_solved_undefined->get(J))
		return REAL(0);

	REAL res = REAL(0);
	extvec::const_iterator p;
	bool b[10];
	
	bool flag = false;
	
	mask->get10(J, b);
	
//
//  dxdx
//

	// u_{i,j} - 2 u_{i+1,j} + u_{i+2,j}
	if (FIRST_X) {

		p = b_begin + J - 1;
		
		flag = incr_ptr(p,J,mask_solved_undefined);

		if (flag) {
			CHECK_PTR(p)
				res += *p * _hx4; // 1;
			else
				assert(0);
		}

		flag = incr_ptr(p,J+1,mask_solved_undefined);

		if (flag) {
			CHECK_PTR(p)
				res += -2 * (*p) * _hx4; // -2;
			else
				assert(0);
		}
Ejemplo n.º 3
0
/* bits <= 32 */
long oggpack_read(oggpack_buffer *b,int bits)
{
  long ret;
  unsigned long m=mask[bits];

  bits+=b->endbit;

  if(b->endbyte+4>=b->storage)
  {
    /* not the main path */
    ret=-1L;
    if(b->endbyte*8+bits>b->storage*8)goto overflow;
  }
  
  //ret=b->ptr[0]>>b->endbit;
  ret=(incr_ptr_getbyte(b->ptr,0) & 0x000000FF)>>b->endbit;

  if(bits>8)
  {
    //ret|=b->ptr[1]<<(8-b->endbit);
	  ret|=(incr_ptr_getbyte(b->ptr,1) & 0x000000FF)<<(8-b->endbit);
    if(bits>16)
	{
      ret|=(incr_ptr_getbyte(b->ptr,2) & 0x000000FF)<<(16-b->endbit);  
      if(bits>24)
	  {
		ret|=(incr_ptr_getbyte(b->ptr,3) & 0x000000FF)<<(24-b->endbit);  
		if(bits>32 && b->endbit)
		{
			ret|=(incr_ptr_getbyte(b->ptr,4) & 0x000000FF)<<(32-b->endbit);
		}
      }
    }
  }

  ret&=m;
  
 overflow:

  //b->ptr+=bits/8;
  incr_ptr(&b->ptr,bits/8);
  b->endbyte+=bits/8;
  b->endbit=bits&7;
  return(ret);
}
Ejemplo n.º 4
0
			CHECK_PTR(p)
				res += *p * _hx4; // 1;
			else
				assert(0);
		}

		flag = incr_ptr(p,J+1,mask_solved_undefined);

		if (flag) {
			CHECK_PTR(p)
				res += -2 * (*p) * _hx4; // -2;
			else
				assert(0);
		}

		flag = incr_ptr(p,J+2,mask_solved_undefined);

		if (flag) {
			CHECK_PTR(p)
				res += *p * _hx4; // 1;
			else
				assert(0);
		}

	}

	// - 2 u_{i-1,j} + 4 u_{i,j} - 2 u_{i+1,j}
	if (SECOND_X) {
		
		p = b_begin + J - 1 - 1;