public class oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap extends java.lang.Object implements java.io.Serializable
{
protected static final byte FREE;
protected static final byte FULL;
protected static final byte REMOVED;
private static final long serialVersionUID;
private static final float LOAD_FACTOR;
private static final int DEFAULT_EXPECTED_SIZE;
private static final int RESIZE_MULTIPLIER;
private static final int PERTURB_SHIFT;
private int[] keys;
private double[] values;
private byte[] states;
private final double missingEntries;
private int size;
private int mask;
private transient int count;
public void <init>()
{
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: void <init>(int,double)>(16, #NaN);
return;
}
public void <init>(double)
{
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
double v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: double;
specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: void <init>(int,double)>(16, v);
return;
}
public void <init>(int)
{
int v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: void <init>(int,double)>(v, #NaN);
return;
}
public void <init>(int, double)
{
byte[] v;
double[] v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
int[] v;
int v, v, v;
double v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
v := @parameter: double;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int computeCapacity(int)>(v);
v = newarray (int)[v];
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys> = v;
v = newarray (double)[v];
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values> = v;
v = newarray (byte)[v];
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states> = v;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries> = v;
v = v - 1;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask> = v;
return;
}
public void <init>(oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap)
{
byte[] v, v, v;
double[] v, v, v;
int[] v, v, v, v;
int v, v, v, v;
double v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v, v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
specialinvoke v.<java.lang.Object: void <init>()>();
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys>;
v = lengthof v;
v = newarray (int)[v];
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys> = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = newarray (double)[v];
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values> = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = newarray (byte)[v];
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states> = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries>;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries> = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int size>;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int size> = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask> = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int count>;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int count> = v;
return;
}
private static int computeCapacity(int)
{
int v, v, v;
float v;
double v;
v := @parameter: int;
if v != 0 goto label;
return 1;
label:
v = v / 0.5F;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double ceil(double)>(v);
v = staticinvoke <java.lang.Integer: int highestOneBit(int)>(v);
if v != v goto label;
return v;
label:
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int nextPowerOfTwo(int)>(v);
return v;
}
private static int nextPowerOfTwo(int)
{
int v, v, v;
v := @parameter: int;
v = staticinvoke <java.lang.Integer: int highestOneBit(int)>(v);
v = v << 1;
return v;
}
public double get(int)
{
byte[] v, v;
double[] v, v;
byte v, v;
int v, v, v, v, v, v, v;
boolean v, v;
double v, v, v, v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int hashOf(int)>(v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v = v & v;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: boolean containsKey(int,int)>(v, v);
if v == 0 goto label;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
v = v[v];
return v;
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v[v];
if v != 0 goto label;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries>;
return v;
label:
v = v;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int perturb(int)>(v);
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v[v];
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int probe(int,int)>(v, v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v = v & v;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: boolean containsKey(int,int)>(v, v);
if v == 0 goto label;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
v = v[v];
return v;
label:
v = v >> 5;
goto label;
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries>;
return v;
}
public boolean containsKey(int)
{
byte[] v, v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
byte v, v;
int v, v, v, v, v, v, v;
boolean v, v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int hashOf(int)>(v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v = v & v;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: boolean containsKey(int,int)>(v, v);
if v == 0 goto label;
return 1;
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v[v];
if v != 0 goto label;
return 0;
label:
v = v;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int perturb(int)>(v);
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v[v];
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int probe(int,int)>(v, v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v = v & v;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: boolean containsKey(int,int)>(v, v);
if v == 0 goto label;
return 1;
label:
v = v >> 5;
goto label;
label:
return 0;
}
public oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap$Iterator iterator()
{
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap$Iterator v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v = new oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap$Iterator;
specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap$Iterator: void <init>(oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap)>(v);
return v;
}
private static int perturb(int)
{
int v, v;
v := @parameter: int;
v = v & 2147483647;
return v;
}
private int findInsertionIndex(int)
{
byte[] v;
int[] v;
int v, v, v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int findInsertionIndex(int[],byte[],int,int)>(v, v, v, v);
return v;
}
private static int findInsertionIndex(int[], byte[], int, int)
{
byte[] v;
byte v, v, v, v, v, v, v, v;
int[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: int[];
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int hashOf(int)>(v);
v = v & v;
v = v[v];
if v != 0 goto label;
return v;
label:
v = v[v];
if v != 1 goto label;
v = v[v];
if v != v goto label;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int changeIndexSign(int)>(v);
return v;
label:
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int perturb(int)>(v);
v = v;
v = v[v];
if v != 1 goto label;
label:
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int probe(int,int)>(v, v);
v = v & v;
v = v >> 5;
v = v[v];
if v != 1 goto label;
v = v[v];
if v != v goto label;
label:
v = v[v];
if v != 0 goto label;
return v;
label:
v = v[v];
if v != 1 goto label;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int changeIndexSign(int)>(v);
return v;
label:
v = v;
label:
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int probe(int,int)>(v, v);
v = v & v;
v = v[v];
if v != 0 goto label;
return v;
label:
v = v[v];
if v != 1 goto label;
v = v[v];
if v != v goto label;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int changeIndexSign(int)>(v);
return v;
label:
v = v >> 5;
goto label;
}
private static int probe(int, int)
{
int v, v, v, v, v, v;
v := @parameter: int;
v := @parameter: int;
v = v << 2;
v = v + v;
v = v + v;
v = v + 1;
return v;
}
private static int changeIndexSign(int)
{
int v, v, v;
v := @parameter: int;
v = neg v;
v = v - 1;
return v;
}
public int size()
{
int v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int size>;
return v;
}
public double remove(int)
{
byte[] v, v;
byte v, v;
int v, v, v, v, v, v, v;
boolean v, v;
double v, v, v, v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int hashOf(int)>(v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v = v & v;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: boolean containsKey(int,int)>(v, v);
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double doRemove(int)>(v);
return v;
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v[v];
if v != 0 goto label;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries>;
return v;
label:
v = v;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int perturb(int)>(v);
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v[v];
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int probe(int,int)>(v, v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v = v & v;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: boolean containsKey(int,int)>(v, v);
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double doRemove(int)>(v);
return v;
label:
v = v >> 5;
goto label;
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries>;
return v;
}
private boolean containsKey(int, int)
{
byte[] v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
byte v;
int[] v;
int v, v, v;
boolean v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
v := @parameter: int;
if v != 0 goto label;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = v[v];
if v != 1 goto label;
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys>;
v = v[v];
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private double doRemove(int)
{
byte[] v;
double[] v, v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
int[] v;
int v, v, v, v, v;
double v, v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys>;
v[v] = 0;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v[v] = 2;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
v = v[v];
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries>;
v[v] = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int size>;
v = v - 1;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int size> = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int count>;
v = v + 1;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int count> = v;
return v;
}
public double put(int, double)
{
byte[] v;
double[] v, v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
int[] v;
int v, v, v, v, v, v;
boolean v, v;
double v, v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: int;
v := @parameter: double;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int findInsertionIndex(int)>(v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double missingEntries>;
v = 1;
if v >= 0 goto label;
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int changeIndexSign(int)>(v);
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
v = v[v];
v = 0;
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys>;
v[v] = v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v[v] = 1;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
v[v] = v;
if v == 0 goto label;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int size>;
v = v + 1;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int size> = v;
v = specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: boolean shouldGrowTable()>();
if v == 0 goto label;
specialinvoke v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: void growTable()>();
label:
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int count>;
v = v + 1;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int count> = v;
label:
return v;
}
private void growTable()
{
byte[] v, v, v;
double[] v, v;
byte v;
int[] v, v;
int v, v, v, v, v, v;
double v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = lengthof v;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states>;
v = 2 * v;
v = newarray (int)[v];
v = newarray (double)[v];
v = newarray (byte)[v];
v = v - 1;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v != 1 goto label;
v = v[v];
v = staticinvoke <oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int findInsertionIndex(int[],byte[],int,int)>(v, v, v, v);
v[v] = v;
v = v[v];
v[v] = v;
v[v] = 1;
label:
v = v + 1;
goto label;
label:
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask> = v;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int[] keys> = v;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: double[] values> = v;
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: byte[] states> = v;
return;
}
private boolean shouldGrowTable()
{
byte v;
int v, v, v;
float v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
boolean v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int size>;
v = v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int mask>;
v = v + 1;
v = v * 0.5F;
v = v cmpl v;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static int hashOf(int)
{
int v, v, v, v, v, v, v, v, v;
v := @parameter: int;
v = v >>> 20;
v = v >>> 12;
v = v ^ v;
v = v ^ v;
v = v >>> 7;
v = v ^ v;
v = v >>> 4;
v = v ^ v;
return v;
}
private void readObject(java.io.ObjectInputStream) throws java.io.IOException, java.lang.ClassNotFoundException
{
java.io.ObjectInputStream v;
oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap v;
v := @this: oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap;
v := @parameter: java.io.ObjectInputStream;
virtualinvoke v.<java.io.ObjectInputStream: void defaultReadObject()>();
v.<oadd.org.apache.commons.math.util.OpenIntToDoubleHashMap: int count> = 0;
return;
}
}