public int totalSizeInBits(){
  if (converted) {
    return 24 + this.countC * 3 + this.countS * blocksize_S + this.countE * blocksize_E + this.countB * blocksize_B + this.countL * blocksize_L + this.countT * 8;
  }
  converted=true;
  if (this.blocksize_B > 0) {
    this.blocksize_B=(int)Math.ceil(Math.log(blocksize_B + 1) / Math.log(2.));
  }
 else   if (this.countB > 0) {
    this.blocksize_B=1;
  }
  if (this.blocksize_E > 0) {
    this.blocksize_E=(int)Math.ceil(Math.log(blocksize_E + 1) / Math.log(2.));
  }
 else   if (this.countE > 0) {
    this.blocksize_E=1;
  }
  if (this.blocksize_L > 0) {
    this.blocksize_L=(int)Math.ceil(Math.log(blocksize_L + 1) / Math.log(2.));
  }
 else   if (this.countL > 0) {
    this.blocksize_L=1;
  }
  if (this.blocksize_S > 0) {
    this.blocksize_S=(int)Math.ceil(Math.log(blocksize_S + 1) / Math.log(2.));
  }
 else   if (this.countS > 0) {
    this.blocksize_S=1;
  }
  return 24 + this.countC * 3 + this.countS * blocksize_S + this.countE * blocksize_E + this.countB * blocksize_B + this.countL * blocksize_L + this.countT * 8;
}

public int totalSizeInBits ( ) { if ( converted ) { return 24 + this . countC * 3 + this . countS * blocksize_S + this . countE * blocksize_E + this . countB * blocksize_B + this . countL * blocksize_L + this . countT * 8 ; } converted = true ; if ( this . blocksize_B > 0 ) { this . blocksize_B = ( int ) Math . ceil ( Math . log ( blocksize_B + 1 ) / Math . log ( 2. ) ) ; } else if ( this . countB > 0 ) { this . blocksize_B = 1 ; } if ( this . blocksize_E > 0 ) { this . blocksize_E = ( int ) Math . ceil ( Math . log ( blocksize_E + 1 ) / Math . log ( 2. ) ) ; } else if ( this . countE > 0 ) { this . blocksize_E = 1 ; } if ( this . blocksize_L > 0 ) { this . blocksize_L = ( int ) Math . ceil ( Math . log ( blocksize_L + 1 ) / Math . log ( 2. ) ) ; } else if ( this . countL > 0 ) { this . blocksize_L = 1 ; } if ( this . blocksize_S > 0 ) { this . blocksize_S = ( int ) Math . ceil ( Math . log ( blocksize_S + 1 ) / Math . log ( 2. ) ) ; } else if ( this . countS > 0 ) { this . blocksize_S = 1 ; } return 24 + this . countC * 3 + this . countS * blocksize_S + this . countE * blocksize_E + this . countB * blocksize_B + this . countL * blocksize_L + this . countT * 8 ; }
converts the input information into their log2 values . if an operation is contained in the diff , the minimum number of bits used to encode this block is 1 byte .
