- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
544 lines
21 KiB
Java
544 lines
21 KiB
Java
package androidx.collection;
|
|
|
|
import androidx.annotation.IntRange;
|
|
import kotlin.ULong;
|
|
import kotlin.collections.ArraysKt___ArraysJvmKt;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlin.jvm.internal.SourceDebugExtension;
|
|
|
|
@SourceDebugExtension({"SMAP\nFloatSet.kt\nKotlin\n*S Kotlin\n*F\n+ 1 FloatSet.kt\nandroidx/collection/MutableFloatSet\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n+ 3 ScatterMap.kt\nandroidx/collection/ScatterMapKt\n+ 4 _Arrays.kt\nkotlin/collections/ArraysKt___ArraysKt\n+ 5 FloatSet.kt\nandroidx/collection/FloatSet\n+ 6 FloatSet.kt\nandroidx/collection/FloatSetKt\n*L\n1#1,853:1\n832#1,2:997\n836#1,5:1005\n832#1,2:1036\n836#1,5:1044\n832#1,2:1061\n836#1,5:1069\n832#1,2:1075\n836#1,5:1083\n1#2:854\n1672#3,6:855\n1826#3:874\n1688#3:878\n1619#3:895\n1615#3:898\n1795#3,3:902\n1809#3,3:906\n1733#3:910\n1721#3:912\n1715#3:913\n1728#3:918\n1818#3:920\n1619#3:934\n1615#3:937\n1795#3,3:941\n1809#3,3:945\n1733#3:949\n1721#3:951\n1715#3:952\n1728#3:957\n1818#3:959\n1826#3:981\n1688#3:985\n1672#3,6:999\n1672#3,6:1010\n1615#3:1019\n1619#3:1020\n1795#3,3:1021\n1809#3,3:1024\n1733#3:1027\n1721#3:1028\n1715#3:1029\n1728#3:1030\n1818#3:1031\n1682#3:1032\n1661#3:1033\n1680#3:1034\n1661#3:1035\n1672#3,6:1038\n1795#3,3:1049\n1826#3:1052\n1715#3:1053\n1685#3:1054\n1661#3:1055\n1615#3:1059\n1619#3:1060\n1672#3,6:1063\n1661#3:1074\n1672#3,6:1077\n1672#3,6:1088\n1672#3,6:1094\n13614#4,2:861\n13614#4,2:968\n262#5,4:863\n232#5,7:867\n243#5,3:875\n246#5,2:879\n266#5,2:881\n249#5,6:883\n268#5:889\n442#5:890\n443#5:894\n445#5,2:896\n447#5,3:899\n450#5:905\n451#5:909\n452#5:911\n453#5,4:914\n459#5:919\n460#5,8:921\n442#5:929\n443#5:933\n445#5,2:935\n447#5,3:938\n450#5:944\n451#5:948\n452#5:950\n453#5,4:953\n459#5:958\n460#5,8:960\n262#5,4:970\n232#5,7:974\n243#5,3:982\n246#5,2:986\n266#5,2:988\n249#5,6:990\n268#5:996\n849#6,3:891\n849#6,3:930\n849#6,3:1016\n849#6,3:1056\n*S KotlinDebug\n*F\n+ 1 FloatSet.kt\nandroidx/collection/MutableFloatSet\n*L\n673#1:997,2\n673#1:1005,5\n731#1:1036,2\n731#1:1044,5\n803#1:1061,2\n803#1:1069,5\n818#1:1075,2\n818#1:1083,5\n526#1:855,6\n595#1:874\n595#1:878\n607#1:895\n607#1:898\n607#1:902,3\n607#1:906,3\n607#1:910\n607#1:912\n607#1:913\n607#1:918\n607#1:920\n620#1:934\n620#1:937\n620#1:941,3\n620#1:945,3\n620#1:949\n620#1:951\n620#1:952\n620#1:957\n620#1:959\n663#1:981\n663#1:985\n673#1:999,6\n683#1:1010,6\n697#1:1019\n698#1:1020\n705#1:1021,3\n706#1:1024,3\n707#1:1027\n708#1:1028\n708#1:1029\n712#1:1030\n715#1:1031\n724#1:1032\n724#1:1033\n730#1:1034\n730#1:1035\n731#1:1038,6\n745#1:1049,3\n746#1:1052\n748#1:1053\n798#1:1054\n798#1:1055\n801#1:1059\n803#1:1060\n803#1:1063,6\n816#1:1074\n818#1:1077,6\n833#1:1088,6\n839#1:1094,6\n573#1:861,2\n642#1:968,2\n595#1:863,4\n595#1:867,7\n595#1:875,3\n595#1:879,2\n595#1:881,2\n595#1:883,6\n595#1:889\n607#1:890\n607#1:894\n607#1:896,2\n607#1:899,3\n607#1:905\n607#1:909\n607#1:911\n607#1:914,4\n607#1:919\n607#1:921,8\n620#1:929\n620#1:933\n620#1:935,2\n620#1:938,3\n620#1:944\n620#1:948\n620#1:950\n620#1:953,4\n620#1:958\n620#1:960,8\n663#1:970,4\n663#1:974,7\n663#1:982,3\n663#1:986,2\n663#1:988,2\n663#1:990,6\n663#1:996\n607#1:891,3\n620#1:930,3\n696#1:1016,3\n800#1:1056,3\n*E\n"})
|
|
/* loaded from: classes.dex */
|
|
public final class MutableFloatSet extends FloatSet {
|
|
private int growthLimit;
|
|
|
|
public MutableFloatSet() {
|
|
this(0, 1, null);
|
|
}
|
|
|
|
public final void minusAssign(FloatSet elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
float[] fArr = elements.elements;
|
|
long[] jArr = elements.metadata;
|
|
int length = jArr.length - 2;
|
|
if (length < 0) {
|
|
return;
|
|
}
|
|
int i = 0;
|
|
while (true) {
|
|
long j = jArr[i];
|
|
if ((((~j) << 7) & j & (-9187201950435737472L)) != -9187201950435737472L) {
|
|
int i2 = 8 - ((~(i - length)) >>> 31);
|
|
for (int i3 = 0; i3 < i2; i3++) {
|
|
if ((255 & j) < 128) {
|
|
minusAssign(fArr[(i << 3) + i3]);
|
|
}
|
|
j >>= 8;
|
|
}
|
|
if (i2 != 8) {
|
|
return;
|
|
}
|
|
}
|
|
if (i == length) {
|
|
return;
|
|
} else {
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
public final void plusAssign(FloatSet elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
float[] fArr = elements.elements;
|
|
long[] jArr = elements.metadata;
|
|
int length = jArr.length - 2;
|
|
if (length < 0) {
|
|
return;
|
|
}
|
|
int i = 0;
|
|
while (true) {
|
|
long j = jArr[i];
|
|
if ((((~j) << 7) & j & (-9187201950435737472L)) != -9187201950435737472L) {
|
|
int i2 = 8 - ((~(i - length)) >>> 31);
|
|
for (int i3 = 0; i3 < i2; i3++) {
|
|
if ((255 & j) < 128) {
|
|
plusAssign(fArr[(i << 3) + i3]);
|
|
}
|
|
j >>= 8;
|
|
}
|
|
if (i2 != 8) {
|
|
return;
|
|
}
|
|
}
|
|
if (i == length) {
|
|
return;
|
|
} else {
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
public /* synthetic */ MutableFloatSet(int i, int i2, DefaultConstructorMarker defaultConstructorMarker) {
|
|
this((i2 & 1) != 0 ? 6 : i);
|
|
}
|
|
|
|
public MutableFloatSet(int i) {
|
|
super(null);
|
|
if (i < 0) {
|
|
throw new IllegalArgumentException("Capacity must be a positive value.".toString());
|
|
}
|
|
initializeStorage(ScatterMapKt.unloadedCapacity(i));
|
|
}
|
|
|
|
private final void initializeStorage(int i) {
|
|
int max = i > 0 ? Math.max(7, ScatterMapKt.normalizeCapacity(i)) : 0;
|
|
this._capacity = max;
|
|
initializeMetadata(max);
|
|
this.elements = new float[max];
|
|
}
|
|
|
|
private final void initializeMetadata(int i) {
|
|
long[] jArr;
|
|
if (i == 0) {
|
|
jArr = ScatterMapKt.EmptyGroup;
|
|
} else {
|
|
jArr = new long[((i + 15) & (-8)) >> 3];
|
|
ArraysKt___ArraysJvmKt.fill$default(jArr, -9187201950435737472L, 0, 0, 6, (Object) null);
|
|
}
|
|
this.metadata = jArr;
|
|
int i2 = i >> 3;
|
|
long j = 255 << ((i & 7) << 3);
|
|
jArr[i2] = (jArr[i2] & (~j)) | j;
|
|
initializeGrowth();
|
|
}
|
|
|
|
private final void initializeGrowth() {
|
|
this.growthLimit = ScatterMapKt.loadedCapacity(getCapacity()) - this._size;
|
|
}
|
|
|
|
public final boolean add(float f) {
|
|
int i = this._size;
|
|
this.elements[findAbsoluteInsertIndex(f)] = f;
|
|
return this._size != i;
|
|
}
|
|
|
|
public final void plusAssign(float f) {
|
|
this.elements[findAbsoluteInsertIndex(f)] = f;
|
|
}
|
|
|
|
public final boolean addAll(float[] elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int i = this._size;
|
|
plusAssign(elements);
|
|
return i != this._size;
|
|
}
|
|
|
|
public final boolean addAll(FloatSet elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int i = this._size;
|
|
plusAssign(elements);
|
|
return i != this._size;
|
|
}
|
|
|
|
public final boolean removeAll(float[] elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int i = this._size;
|
|
minusAssign(elements);
|
|
return i != this._size;
|
|
}
|
|
|
|
public final boolean removeAll(FloatSet elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int i = this._size;
|
|
minusAssign(elements);
|
|
return i != this._size;
|
|
}
|
|
|
|
public final void clear() {
|
|
this._size = 0;
|
|
long[] jArr = this.metadata;
|
|
if (jArr != ScatterMapKt.EmptyGroup) {
|
|
ArraysKt___ArraysJvmKt.fill$default(jArr, -9187201950435737472L, 0, 0, 6, (Object) null);
|
|
long[] jArr2 = this.metadata;
|
|
int i = this._capacity;
|
|
int i2 = i >> 3;
|
|
long j = 255 << ((i & 7) << 3);
|
|
jArr2[i2] = (jArr2[i2] & (~j)) | j;
|
|
}
|
|
initializeGrowth();
|
|
}
|
|
|
|
@IntRange(from = 0)
|
|
public final int trim() {
|
|
int i = this._capacity;
|
|
int normalizeCapacity = ScatterMapKt.normalizeCapacity(ScatterMapKt.unloadedCapacity(this._size));
|
|
if (normalizeCapacity >= i) {
|
|
return 0;
|
|
}
|
|
resizeStorage(normalizeCapacity);
|
|
return i - this._capacity;
|
|
}
|
|
|
|
private final void adjustStorage() {
|
|
if (this._capacity > 8 && Long.compareUnsigned(ULong.m4068constructorimpl(ULong.m4068constructorimpl(this._size) * 32), ULong.m4068constructorimpl(ULong.m4068constructorimpl(this._capacity) * 25)) <= 0) {
|
|
removeDeletedMarkers();
|
|
} else {
|
|
resizeStorage(ScatterMapKt.nextCapacity(this._capacity));
|
|
}
|
|
}
|
|
|
|
private final void resizeStorage(int i) {
|
|
long[] jArr;
|
|
float[] fArr;
|
|
long[] jArr2 = this.metadata;
|
|
float[] fArr2 = this.elements;
|
|
int i2 = this._capacity;
|
|
initializeStorage(i);
|
|
float[] fArr3 = this.elements;
|
|
int i3 = 0;
|
|
while (i3 < i2) {
|
|
if (((jArr2[i3 >> 3] >> ((i3 & 7) << 3)) & 255) < 128) {
|
|
float f = fArr2[i3];
|
|
int hashCode = Float.hashCode(f) * ScatterMapKt.MurmurHashC1;
|
|
int i4 = hashCode ^ (hashCode << 16);
|
|
int findFirstAvailableSlot = findFirstAvailableSlot(i4 >>> 7);
|
|
long j = i4 & 127;
|
|
long[] jArr3 = this.metadata;
|
|
int i5 = findFirstAvailableSlot >> 3;
|
|
int i6 = (findFirstAvailableSlot & 7) << 3;
|
|
jArr = jArr2;
|
|
fArr = fArr2;
|
|
jArr3[i5] = ((~(255 << i6)) & jArr3[i5]) | (j << i6);
|
|
int i7 = this._capacity;
|
|
int i8 = ((findFirstAvailableSlot - 7) & i7) + (i7 & 7);
|
|
int i9 = i8 >> 3;
|
|
int i10 = (i8 & 7) << 3;
|
|
jArr3[i9] = ((~(255 << i10)) & jArr3[i9]) | (j << i10);
|
|
fArr3[findFirstAvailableSlot] = f;
|
|
} else {
|
|
jArr = jArr2;
|
|
fArr = fArr2;
|
|
}
|
|
i3++;
|
|
jArr2 = jArr;
|
|
fArr2 = fArr;
|
|
}
|
|
}
|
|
|
|
private final int findAbsoluteInsertIndex(float f) {
|
|
int hashCode = Float.hashCode(f) * ScatterMapKt.MurmurHashC1;
|
|
int i = hashCode ^ (hashCode << 16);
|
|
int i2 = i >>> 7;
|
|
int i3 = i & 127;
|
|
int i4 = this._capacity;
|
|
int i5 = i2 & i4;
|
|
int i6 = 0;
|
|
while (true) {
|
|
long[] jArr = this.metadata;
|
|
int i7 = i5 >> 3;
|
|
int i8 = (i5 & 7) << 3;
|
|
long j = ((jArr[i7 + 1] << (64 - i8)) & ((-i8) >> 63)) | (jArr[i7] >>> i8);
|
|
long j2 = i3;
|
|
int i9 = i6;
|
|
long j3 = j ^ (j2 * ScatterMapKt.BitmaskLsb);
|
|
for (long j4 = (~j3) & (j3 - ScatterMapKt.BitmaskLsb) & (-9187201950435737472L); j4 != 0; j4 &= j4 - 1) {
|
|
int numberOfTrailingZeros = ((Long.numberOfTrailingZeros(j4) >> 3) + i5) & i4;
|
|
if (this.elements[numberOfTrailingZeros] == f) {
|
|
return numberOfTrailingZeros;
|
|
}
|
|
}
|
|
if ((((~j) << 6) & j & (-9187201950435737472L)) != 0) {
|
|
int findFirstAvailableSlot = findFirstAvailableSlot(i2);
|
|
if (this.growthLimit == 0 && ((this.metadata[findFirstAvailableSlot >> 3] >> ((findFirstAvailableSlot & 7) << 3)) & 255) != 254) {
|
|
adjustStorage();
|
|
findFirstAvailableSlot = findFirstAvailableSlot(i2);
|
|
}
|
|
this._size++;
|
|
int i10 = this.growthLimit;
|
|
long[] jArr2 = this.metadata;
|
|
int i11 = findFirstAvailableSlot >> 3;
|
|
long j5 = jArr2[i11];
|
|
int i12 = (findFirstAvailableSlot & 7) << 3;
|
|
this.growthLimit = i10 - (((j5 >> i12) & 255) == 128 ? 1 : 0);
|
|
jArr2[i11] = (j5 & (~(255 << i12))) | (j2 << i12);
|
|
int i13 = this._capacity;
|
|
int i14 = ((findFirstAvailableSlot - 7) & i13) + (i13 & 7);
|
|
int i15 = i14 >> 3;
|
|
int i16 = (i14 & 7) << 3;
|
|
jArr2[i15] = ((~(255 << i16)) & jArr2[i15]) | (j2 << i16);
|
|
return findFirstAvailableSlot;
|
|
}
|
|
i6 = i9 + 8;
|
|
i5 = (i5 + i6) & i4;
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Code restructure failed: missing block: B:16:0x0063, code lost:
|
|
|
|
if (((r4 & ((~r4) << 6)) & (-9187201950435737472L)) == 0) goto L16;
|
|
*/
|
|
/* JADX WARN: Code restructure failed: missing block: B:19:0x0065, code lost:
|
|
|
|
r10 = -1;
|
|
*/
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public final void minusAssign(float r14) {
|
|
/*
|
|
r13 = this;
|
|
int r0 = java.lang.Float.hashCode(r14)
|
|
r1 = -862048943(0xffffffffcc9e2d51, float:-8.293031E7)
|
|
int r0 = r0 * r1
|
|
int r1 = r0 << 16
|
|
r0 = r0 ^ r1
|
|
r1 = r0 & 127(0x7f, float:1.78E-43)
|
|
int r2 = r13._capacity
|
|
int r0 = r0 >>> 7
|
|
r0 = r0 & r2
|
|
r3 = 0
|
|
L13:
|
|
long[] r4 = r13.metadata
|
|
int r5 = r0 >> 3
|
|
r6 = r0 & 7
|
|
int r6 = r6 << 3
|
|
r7 = r4[r5]
|
|
long r7 = r7 >>> r6
|
|
int r5 = r5 + 1
|
|
r9 = r4[r5]
|
|
int r4 = 64 - r6
|
|
long r4 = r9 << r4
|
|
long r9 = (long) r6
|
|
long r9 = -r9
|
|
r6 = 63
|
|
long r9 = r9 >> r6
|
|
long r4 = r4 & r9
|
|
long r4 = r4 | r7
|
|
long r6 = (long) r1
|
|
r8 = 72340172838076673(0x101010101010101, double:7.748604185489348E-304)
|
|
long r6 = r6 * r8
|
|
long r6 = r6 ^ r4
|
|
long r8 = r6 - r8
|
|
long r6 = ~r6
|
|
long r6 = r6 & r8
|
|
r8 = -9187201950435737472(0x8080808080808080, double:-2.937446524422997E-306)
|
|
long r6 = r6 & r8
|
|
L3f:
|
|
r10 = 0
|
|
int r12 = (r6 > r10 ? 1 : (r6 == r10 ? 0 : -1))
|
|
if (r12 == 0) goto L5c
|
|
int r10 = java.lang.Long.numberOfTrailingZeros(r6)
|
|
int r10 = r10 >> 3
|
|
int r10 = r10 + r0
|
|
r10 = r10 & r2
|
|
float[] r11 = r13.elements
|
|
r11 = r11[r10]
|
|
int r11 = (r11 > r14 ? 1 : (r11 == r14 ? 0 : -1))
|
|
if (r11 != 0) goto L56
|
|
goto L66
|
|
L56:
|
|
r10 = 1
|
|
long r10 = r6 - r10
|
|
long r6 = r6 & r10
|
|
goto L3f
|
|
L5c:
|
|
long r6 = ~r4
|
|
r12 = 6
|
|
long r6 = r6 << r12
|
|
long r4 = r4 & r6
|
|
long r4 = r4 & r8
|
|
int r4 = (r4 > r10 ? 1 : (r4 == r10 ? 0 : -1))
|
|
if (r4 == 0) goto L6c
|
|
r10 = -1
|
|
L66:
|
|
if (r10 < 0) goto L6b
|
|
r13.removeElementAt(r10)
|
|
L6b:
|
|
return
|
|
L6c:
|
|
int r3 = r3 + 8
|
|
int r0 = r0 + r3
|
|
r0 = r0 & r2
|
|
goto L13
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: androidx.collection.MutableFloatSet.minusAssign(float):void");
|
|
}
|
|
|
|
/* JADX WARN: Code restructure failed: missing block: B:17:0x0066, code lost:
|
|
|
|
if (((r6 & ((~r6) << 6)) & (-9187201950435737472L)) == 0) goto L18;
|
|
*/
|
|
/* JADX WARN: Code restructure failed: missing block: B:20:0x0068, code lost:
|
|
|
|
r10 = -1;
|
|
*/
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public final boolean remove(float r17) {
|
|
/*
|
|
r16 = this;
|
|
r0 = r16
|
|
int r1 = java.lang.Float.hashCode(r17)
|
|
r2 = -862048943(0xffffffffcc9e2d51, float:-8.293031E7)
|
|
int r1 = r1 * r2
|
|
int r2 = r1 << 16
|
|
r1 = r1 ^ r2
|
|
r2 = r1 & 127(0x7f, float:1.78E-43)
|
|
int r3 = r0._capacity
|
|
int r1 = r1 >>> 7
|
|
r1 = r1 & r3
|
|
r4 = 0
|
|
r5 = r4
|
|
L16:
|
|
long[] r6 = r0.metadata
|
|
int r7 = r1 >> 3
|
|
r8 = r1 & 7
|
|
int r8 = r8 << 3
|
|
r9 = r6[r7]
|
|
long r9 = r9 >>> r8
|
|
r11 = 1
|
|
int r7 = r7 + r11
|
|
r12 = r6[r7]
|
|
int r6 = 64 - r8
|
|
long r6 = r12 << r6
|
|
long r12 = (long) r8
|
|
long r12 = -r12
|
|
r8 = 63
|
|
long r12 = r12 >> r8
|
|
long r6 = r6 & r12
|
|
long r6 = r6 | r9
|
|
long r8 = (long) r2
|
|
r12 = 72340172838076673(0x101010101010101, double:7.748604185489348E-304)
|
|
long r8 = r8 * r12
|
|
long r8 = r8 ^ r6
|
|
long r12 = r8 - r12
|
|
long r8 = ~r8
|
|
long r8 = r8 & r12
|
|
r12 = -9187201950435737472(0x8080808080808080, double:-2.937446524422997E-306)
|
|
long r8 = r8 & r12
|
|
L42:
|
|
r14 = 0
|
|
int r10 = (r8 > r14 ? 1 : (r8 == r14 ? 0 : -1))
|
|
if (r10 == 0) goto L5f
|
|
int r10 = java.lang.Long.numberOfTrailingZeros(r8)
|
|
int r10 = r10 >> 3
|
|
int r10 = r10 + r1
|
|
r10 = r10 & r3
|
|
float[] r14 = r0.elements
|
|
r14 = r14[r10]
|
|
int r14 = (r14 > r17 ? 1 : (r14 == r17 ? 0 : -1))
|
|
if (r14 != 0) goto L59
|
|
goto L69
|
|
L59:
|
|
r14 = 1
|
|
long r14 = r8 - r14
|
|
long r8 = r8 & r14
|
|
goto L42
|
|
L5f:
|
|
long r8 = ~r6
|
|
r10 = 6
|
|
long r8 = r8 << r10
|
|
long r6 = r6 & r8
|
|
long r6 = r6 & r12
|
|
int r6 = (r6 > r14 ? 1 : (r6 == r14 ? 0 : -1))
|
|
if (r6 == 0) goto L72
|
|
r10 = -1
|
|
L69:
|
|
if (r10 < 0) goto L6c
|
|
r4 = r11
|
|
L6c:
|
|
if (r4 == 0) goto L71
|
|
r0.removeElementAt(r10)
|
|
L71:
|
|
return r4
|
|
L72:
|
|
int r5 = r5 + 8
|
|
int r1 = r1 + r5
|
|
r1 = r1 & r3
|
|
goto L16
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: androidx.collection.MutableFloatSet.remove(float):boolean");
|
|
}
|
|
|
|
public final void plusAssign(float[] elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
for (float f : elements) {
|
|
plusAssign(f);
|
|
}
|
|
}
|
|
|
|
public final void minusAssign(float[] elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
for (float f : elements) {
|
|
minusAssign(f);
|
|
}
|
|
}
|
|
|
|
private final void removeDeletedMarkers() {
|
|
long[] jArr = this.metadata;
|
|
int i = this._capacity;
|
|
int i2 = 0;
|
|
for (int i3 = 0; i3 < i; i3++) {
|
|
int i4 = i3 >> 3;
|
|
int i5 = (i3 & 7) << 3;
|
|
if (((jArr[i4] >> i5) & 255) == 254) {
|
|
long[] jArr2 = this.metadata;
|
|
jArr2[i4] = (128 << i5) | (jArr2[i4] & (~(255 << i5)));
|
|
int i6 = this._capacity;
|
|
int i7 = ((i3 - 7) & i6) + (i6 & 7);
|
|
int i8 = i7 >> 3;
|
|
int i9 = (i7 & 7) << 3;
|
|
jArr2[i8] = ((~(255 << i9)) & jArr2[i8]) | (128 << i9);
|
|
i2++;
|
|
}
|
|
}
|
|
this.growthLimit += i2;
|
|
}
|
|
|
|
private final void removeElementAt(int i) {
|
|
this._size--;
|
|
long[] jArr = this.metadata;
|
|
int i2 = i >> 3;
|
|
int i3 = (i & 7) << 3;
|
|
jArr[i2] = (jArr[i2] & (~(255 << i3))) | (254 << i3);
|
|
int i4 = this._capacity;
|
|
int i5 = ((i - 7) & i4) + (i4 & 7);
|
|
int i6 = i5 >> 3;
|
|
int i7 = (i5 & 7) << 3;
|
|
jArr[i6] = (jArr[i6] & (~(255 << i7))) | (254 << i7);
|
|
}
|
|
|
|
private final void writeMetadata(int i, long j) {
|
|
long[] jArr = this.metadata;
|
|
int i2 = i >> 3;
|
|
int i3 = (i & 7) << 3;
|
|
jArr[i2] = (jArr[i2] & (~(255 << i3))) | (j << i3);
|
|
int i4 = this._capacity;
|
|
int i5 = ((i - 7) & i4) + (i4 & 7);
|
|
int i6 = i5 >> 3;
|
|
int i7 = (i5 & 7) << 3;
|
|
jArr[i6] = (j << i7) | (jArr[i6] & (~(255 << i7)));
|
|
}
|
|
|
|
private final int findFirstAvailableSlot(int i) {
|
|
int i2 = this._capacity;
|
|
int i3 = i & i2;
|
|
int i4 = 0;
|
|
while (true) {
|
|
long[] jArr = this.metadata;
|
|
int i5 = i3 >> 3;
|
|
int i6 = (i3 & 7) << 3;
|
|
long j = ((jArr[i5 + 1] << (64 - i6)) & ((-i6) >> 63)) | (jArr[i5] >>> i6);
|
|
long j2 = j & ((~j) << 7) & (-9187201950435737472L);
|
|
if (j2 != 0) {
|
|
return (i3 + (Long.numberOfTrailingZeros(j2) >> 3)) & i2;
|
|
}
|
|
i4 += 8;
|
|
i3 = (i3 + i4) & i2;
|
|
}
|
|
}
|
|
}
|