コード例 #1
0
ファイル: LzmaBench.java プロジェクト: bright-spark/appdeck
 public void Generate() {
   RG.Init();
   Rep0 = 1;
   while (Pos < BufferSize) {
     if (GetRndBit() == 0 || Pos < 1) Buffer[Pos++] = (byte) (RG.GetRnd(8));
     else {
       int len;
       if (RG.GetRnd(3) == 0) len = 1 + GetLen1();
       else {
         do Rep0 = GetOffset();
         while (Rep0 >= Pos);
         Rep0++;
         len = 2 + GetLen2();
       }
       for (int i = 0; i < len && Pos < BufferSize; i++, Pos++) Buffer[Pos] = Buffer[Pos - Rep0];
     }
   }
 }
コード例 #2
0
ファイル: LzmaBench.java プロジェクト: bright-spark/appdeck
 int GetLen2() {
   return RG.GetRnd(2 + (int) RG.GetRnd(2));
 }
コード例 #3
0
ファイル: LzmaBench.java プロジェクト: bright-spark/appdeck
 int GetLen1() {
   return RG.GetRnd(1 + (int) RG.GetRnd(2));
 }
コード例 #4
0
ファイル: LzmaBench.java プロジェクト: bright-spark/appdeck
 int GetOffset() {
   if (GetRndBit() == 0) return GetLogRandBits(4);
   return (GetLogRandBits(4) << 10) | RG.GetRnd(10);
 }
コード例 #5
0
ファイル: LzmaBench.java プロジェクト: bright-spark/appdeck
 int GetLogRandBits(int numBits) {
   int len = RG.GetRnd(numBits);
   return RG.GetRnd((int) len);
 }
コード例 #6
0
ファイル: LzmaBench.java プロジェクト: bright-spark/appdeck
 int GetRndBit() {
   return RG.GetRnd(1);
 }