final class org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch extends java.lang.Object
{
static final long[] SEED;
static final long RESET_MASK;
static final long ONE_MASK;
final int randomSeed;
int sampleSize;
int tableMask;
long[] table;
int size;
public void <init>()
{
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
java.util.concurrent.ThreadLocalRandom v;
int v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <java.util.concurrent.ThreadLocalRandom: java.util.concurrent.ThreadLocalRandom current()>();
v = virtualinvoke v.<java.util.concurrent.ThreadLocalRandom: int nextInt()>();
v = v & 1;
if v != 0 goto label;
v = v + 1;
goto label;
label:
v = v;
label:
v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int randomSeed> = v;
return;
}
public void ensureCapacity(long)
{
long v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
long[] v, v, v, v;
byte v, v;
int v, v, v, v, v, v, v;
boolean v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
v := @parameter: long;
v = v cmp 0L;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.Caffeine: void requireArgument(boolean)>(v);
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 1073741823L);
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
if v == null goto label;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = lengthof v;
if v < v goto label;
return;
label:
if v != 0 goto label;
v = 1;
goto label;
label:
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int ceilingNextPowerOfTwo(int)>(v);
label:
v = newarray (long)[v];
v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table> = v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = lengthof v;
v = v - 1;
v = staticinvoke <java.lang.Math: int max(int,int)>(0, v);
v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int tableMask> = v;
v = v cmp 0L;
if v != 0 goto label;
v = 10;
goto label;
label:
v = 10 * v;
label:
v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int sampleSize> = v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int sampleSize>;
if v > 0 goto label;
v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int sampleSize> = 2147483647;
label:
v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int size> = 0;
return;
}
public boolean isNotInitialized()
{
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
long[] v;
boolean v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int frequency(java.lang.Object)
{
long v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
long[] v;
int v, v, v, v, v, v, v, v, v;
boolean v;
java.lang.Object v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: boolean isNotInitialized()>();
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int spread(int)>(v);
v = v & 3;
v = v << 2;
v = 2147483647;
v = 0;
label:
if v >= 4 goto label;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int indexOf(int,int)>(v, v);
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = v[v];
v = v + v;
v = v << 2;
v = v >>> v;
v = v & 15L;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v + 1;
goto label;
label:
return v;
}
public void increment(java.lang.Object)
{
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v, v;
java.lang.Object v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: boolean isNotInitialized()>();
if v == 0 goto label;
return;
label:
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int spread(int)>(v);
v = v & 3;
v = v << 2;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int indexOf(int,int)>(v, 0);
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int indexOf(int,int)>(v, 1);
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int indexOf(int,int)>(v, 2);
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int indexOf(int,int)>(v, 3);
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: boolean incrementAt(int,int)>(v, v);
v = v + 1;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: boolean incrementAt(int,int)>(v, v);
v = v | v;
v = v + 2;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: boolean incrementAt(int,int)>(v, v);
v = v | v;
v = v + 3;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: boolean incrementAt(int,int)>(v, v);
v = v | v;
if v == 0 goto label;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int size>;
v = v + 1;
v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int size> = v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int sampleSize>;
if v != v goto label;
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: void reset()>();
label:
return;
}
boolean incrementAt(int, int)
{
long v, v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
long[] v, v;
byte v;
int v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
v := @parameter: int;
v := @parameter: int;
v = v << 2;
v = 15L << v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = v[v];
v = v & v;
v = v cmp v;
if v == 0 goto label;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = v[v];
v = 1L << v;
v = v + v;
v[v] = v;
return 1;
label:
return 0;
}
void reset()
{
long v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
long[] v, v, v, v;
int v, v, v, v, v, v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
v = 0;
v = 0;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = v[v];
v = v & 1229782938247303441L;
v = staticinvoke <java.lang.Long: int bitCount(long)>(v);
v = v + v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] table>;
v = v[v];
v = v >>> 1;
v = v & 8608480567731124087L;
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int size>;
v = v >>> 1;
v = v >>> 2;
v = v - v;
v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int size> = v;
return;
}
int indexOf(int, int)
{
long v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
long[] v;
int v, v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
v := @parameter: int;
v := @parameter: int;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] SEED>;
v = v[v];
v = v * v;
v = v >> 32;
v = v + v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int tableMask>;
v = v & v;
return v;
}
int spread(int)
{
org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch v;
int v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch;
v := @parameter: int;
v = v >>> 16;
v = v ^ v;
v = v * 73244475;
v = v >>> 16;
v = v ^ v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: int randomSeed>;
v = v * v;
v = v >>> 16;
v = v ^ v;
return v;
}
static int ceilingNextPowerOfTwo(int)
{
int v, v, v, v, v;
v := @parameter: int;
v = v - 1;
v = staticinvoke <java.lang.Integer: int numberOfLeadingZeros(int)>(v);
v = 32 - v;
v = 1 << v;
return v;
}
static void <clinit>()
{
long[] v;
v = newarray (long)[4];
v[0] = -4348849565147123417L;
v[1] = -5435081209227447693L;
v[2] = -7286425919675154353L;
v[3] = -3750763034362895579L;
<org.apache.camel.com.github.benmanes.caffeine.cache.FrequencySketch: long[] SEED> = v;
return;
}
}