2021-06-27 20:44:35 +00:00
|
|
|
package androidx.constraintlayout.solver;
|
|
|
|
|
|
|
|
import androidx.constraintlayout.solver.ArrayRow;
|
2021-12-17 21:59:34 +00:00
|
|
|
import b.d.b.a.a;
|
2021-06-27 20:44:35 +00:00
|
|
|
import java.io.PrintStream;
|
|
|
|
import java.util.Arrays;
|
|
|
|
public class ArrayLinkedVariables implements ArrayRow.ArrayRowVariables {
|
|
|
|
private static final boolean DEBUG = false;
|
|
|
|
private static final boolean FULL_NEW_CHECK = false;
|
|
|
|
public static final int NONE = -1;
|
|
|
|
private static float epsilon = 0.001f;
|
|
|
|
private int ROW_SIZE = 8;
|
|
|
|
private SolverVariable candidate = null;
|
|
|
|
public int currentSize = 0;
|
|
|
|
private int[] mArrayIndices = new int[8];
|
|
|
|
private int[] mArrayNextIndices = new int[8];
|
|
|
|
private float[] mArrayValues = new float[8];
|
|
|
|
public final Cache mCache;
|
|
|
|
private boolean mDidFillOnce = false;
|
|
|
|
private int mHead = -1;
|
|
|
|
private int mLast = -1;
|
|
|
|
private final ArrayRow mRow;
|
|
|
|
|
|
|
|
public ArrayLinkedVariables(ArrayRow arrayRow, Cache cache) {
|
|
|
|
this.mRow = arrayRow;
|
|
|
|
this.mCache = cache;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public void add(SolverVariable solverVariable, float f, boolean z2) {
|
|
|
|
float f2 = epsilon;
|
|
|
|
if (f <= (-f2) || f >= f2) {
|
|
|
|
int i = this.mHead;
|
|
|
|
if (i == -1) {
|
|
|
|
this.mHead = 0;
|
|
|
|
this.mArrayValues[0] = f;
|
2021-12-17 21:59:34 +00:00
|
|
|
this.mArrayIndices[0] = solverVariable.f30id;
|
2021-06-27 20:44:35 +00:00
|
|
|
this.mArrayNextIndices[0] = -1;
|
|
|
|
solverVariable.usageInRowCount++;
|
|
|
|
solverVariable.addToRow(this.mRow);
|
|
|
|
this.currentSize++;
|
|
|
|
if (!this.mDidFillOnce) {
|
|
|
|
int i2 = this.mLast + 1;
|
|
|
|
this.mLast = i2;
|
|
|
|
int[] iArr = this.mArrayIndices;
|
|
|
|
if (i2 >= iArr.length) {
|
|
|
|
this.mDidFillOnce = true;
|
|
|
|
this.mLast = iArr.length - 1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
int i3 = 0;
|
|
|
|
int i4 = -1;
|
|
|
|
while (i != -1 && i3 < this.currentSize) {
|
|
|
|
int[] iArr2 = this.mArrayIndices;
|
|
|
|
int i5 = iArr2[i];
|
2021-12-17 21:59:34 +00:00
|
|
|
int i6 = solverVariable.f30id;
|
2021-06-27 20:44:35 +00:00
|
|
|
if (i5 == i6) {
|
|
|
|
float[] fArr = this.mArrayValues;
|
|
|
|
float f3 = fArr[i] + f;
|
|
|
|
float f4 = epsilon;
|
|
|
|
if (f3 > (-f4) && f3 < f4) {
|
|
|
|
f3 = 0.0f;
|
|
|
|
}
|
|
|
|
fArr[i] = f3;
|
|
|
|
if (f3 == 0.0f) {
|
|
|
|
if (i == this.mHead) {
|
|
|
|
this.mHead = this.mArrayNextIndices[i];
|
|
|
|
} else {
|
|
|
|
int[] iArr3 = this.mArrayNextIndices;
|
|
|
|
iArr3[i4] = iArr3[i];
|
|
|
|
}
|
|
|
|
if (z2) {
|
|
|
|
solverVariable.removeFromRow(this.mRow);
|
|
|
|
}
|
|
|
|
if (this.mDidFillOnce) {
|
|
|
|
this.mLast = i;
|
|
|
|
}
|
|
|
|
solverVariable.usageInRowCount--;
|
|
|
|
this.currentSize--;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (iArr2[i] < i6) {
|
|
|
|
i4 = i;
|
|
|
|
}
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i3++;
|
|
|
|
}
|
|
|
|
int i7 = this.mLast;
|
|
|
|
int i8 = i7 + 1;
|
|
|
|
if (this.mDidFillOnce) {
|
|
|
|
int[] iArr4 = this.mArrayIndices;
|
|
|
|
if (iArr4[i7] != -1) {
|
|
|
|
i7 = iArr4.length;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
i7 = i8;
|
|
|
|
}
|
|
|
|
int[] iArr5 = this.mArrayIndices;
|
|
|
|
if (i7 >= iArr5.length && this.currentSize < iArr5.length) {
|
|
|
|
int i9 = 0;
|
|
|
|
while (true) {
|
|
|
|
int[] iArr6 = this.mArrayIndices;
|
|
|
|
if (i9 >= iArr6.length) {
|
|
|
|
break;
|
|
|
|
} else if (iArr6[i9] == -1) {
|
|
|
|
i7 = i9;
|
|
|
|
break;
|
|
|
|
} else {
|
|
|
|
i9++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
int[] iArr7 = this.mArrayIndices;
|
|
|
|
if (i7 >= iArr7.length) {
|
|
|
|
i7 = iArr7.length;
|
|
|
|
int i10 = this.ROW_SIZE * 2;
|
|
|
|
this.ROW_SIZE = i10;
|
|
|
|
this.mDidFillOnce = false;
|
|
|
|
this.mLast = i7 - 1;
|
|
|
|
this.mArrayValues = Arrays.copyOf(this.mArrayValues, i10);
|
|
|
|
this.mArrayIndices = Arrays.copyOf(this.mArrayIndices, this.ROW_SIZE);
|
|
|
|
this.mArrayNextIndices = Arrays.copyOf(this.mArrayNextIndices, this.ROW_SIZE);
|
|
|
|
}
|
2021-12-17 21:59:34 +00:00
|
|
|
this.mArrayIndices[i7] = solverVariable.f30id;
|
2021-06-27 20:44:35 +00:00
|
|
|
this.mArrayValues[i7] = f;
|
|
|
|
if (i4 != -1) {
|
|
|
|
int[] iArr8 = this.mArrayNextIndices;
|
|
|
|
iArr8[i7] = iArr8[i4];
|
|
|
|
iArr8[i4] = i7;
|
|
|
|
} else {
|
|
|
|
this.mArrayNextIndices[i7] = this.mHead;
|
|
|
|
this.mHead = i7;
|
|
|
|
}
|
|
|
|
solverVariable.usageInRowCount++;
|
|
|
|
solverVariable.addToRow(this.mRow);
|
|
|
|
this.currentSize++;
|
|
|
|
if (!this.mDidFillOnce) {
|
|
|
|
this.mLast++;
|
|
|
|
}
|
|
|
|
int i11 = this.mLast;
|
|
|
|
int[] iArr9 = this.mArrayIndices;
|
|
|
|
if (i11 >= iArr9.length) {
|
|
|
|
this.mDidFillOnce = true;
|
|
|
|
this.mLast = iArr9.length - 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public final void clear() {
|
|
|
|
int i = this.mHead;
|
|
|
|
int i2 = 0;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
|
|
|
SolverVariable solverVariable = this.mCache.mIndexedVariables[this.mArrayIndices[i]];
|
|
|
|
if (solverVariable != null) {
|
|
|
|
solverVariable.removeFromRow(this.mRow);
|
|
|
|
}
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
this.mHead = -1;
|
|
|
|
this.mLast = -1;
|
|
|
|
this.mDidFillOnce = false;
|
|
|
|
this.currentSize = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public boolean contains(SolverVariable solverVariable) {
|
|
|
|
int i = this.mHead;
|
|
|
|
if (i == -1) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
int i2 = 0;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
2021-12-17 21:59:34 +00:00
|
|
|
if (this.mArrayIndices[i] == solverVariable.f30id) {
|
2021-06-27 20:44:35 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public void display() {
|
|
|
|
int i = this.currentSize;
|
|
|
|
System.out.print("{ ");
|
|
|
|
for (int i2 = 0; i2 < i; i2++) {
|
|
|
|
SolverVariable variable = getVariable(i2);
|
|
|
|
if (variable != null) {
|
|
|
|
PrintStream printStream = System.out;
|
|
|
|
printStream.print(variable + " = " + getVariableValue(i2) + " ");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
System.out.println(" }");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public void divideByAmount(float f) {
|
|
|
|
int i = this.mHead;
|
|
|
|
int i2 = 0;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
|
|
|
float[] fArr = this.mArrayValues;
|
|
|
|
fArr[i] = fArr[i] / f;
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public final float get(SolverVariable solverVariable) {
|
|
|
|
int i = this.mHead;
|
|
|
|
int i2 = 0;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
2021-12-17 21:59:34 +00:00
|
|
|
if (this.mArrayIndices[i] == solverVariable.f30id) {
|
2021-06-27 20:44:35 +00:00
|
|
|
return this.mArrayValues[i];
|
|
|
|
}
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
return 0.0f;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public int getCurrentSize() {
|
|
|
|
return this.currentSize;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getHead() {
|
|
|
|
return this.mHead;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final int getId(int i) {
|
|
|
|
return this.mArrayIndices[i];
|
|
|
|
}
|
|
|
|
|
|
|
|
public final int getNextIndice(int i) {
|
|
|
|
return this.mArrayNextIndices[i];
|
|
|
|
}
|
|
|
|
|
|
|
|
public SolverVariable getPivotCandidate() {
|
|
|
|
SolverVariable solverVariable = this.candidate;
|
|
|
|
if (solverVariable != null) {
|
|
|
|
return solverVariable;
|
|
|
|
}
|
|
|
|
int i = this.mHead;
|
|
|
|
int i2 = 0;
|
|
|
|
SolverVariable solverVariable2 = null;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
|
|
|
if (this.mArrayValues[i] < 0.0f) {
|
|
|
|
SolverVariable solverVariable3 = this.mCache.mIndexedVariables[this.mArrayIndices[i]];
|
|
|
|
if (solverVariable2 == null || solverVariable2.strength < solverVariable3.strength) {
|
|
|
|
solverVariable2 = solverVariable3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
return solverVariable2;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final float getValue(int i) {
|
|
|
|
return this.mArrayValues[i];
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public SolverVariable getVariable(int i) {
|
|
|
|
int i2 = this.mHead;
|
|
|
|
int i3 = 0;
|
|
|
|
while (i2 != -1 && i3 < this.currentSize) {
|
|
|
|
if (i3 == i) {
|
|
|
|
return this.mCache.mIndexedVariables[this.mArrayIndices[i2]];
|
|
|
|
}
|
|
|
|
i2 = this.mArrayNextIndices[i2];
|
|
|
|
i3++;
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public float getVariableValue(int i) {
|
|
|
|
int i2 = this.mHead;
|
|
|
|
int i3 = 0;
|
|
|
|
while (i2 != -1 && i3 < this.currentSize) {
|
|
|
|
if (i3 == i) {
|
|
|
|
return this.mArrayValues[i2];
|
|
|
|
}
|
|
|
|
i2 = this.mArrayNextIndices[i2];
|
|
|
|
i3++;
|
|
|
|
}
|
|
|
|
return 0.0f;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasAtLeastOnePositiveVariable() {
|
|
|
|
int i = this.mHead;
|
|
|
|
int i2 = 0;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
|
|
|
if (this.mArrayValues[i] > 0.0f) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public int indexOf(SolverVariable solverVariable) {
|
|
|
|
int i = this.mHead;
|
|
|
|
if (i == -1) {
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
int i2 = 0;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
2021-12-17 21:59:34 +00:00
|
|
|
if (this.mArrayIndices[i] == solverVariable.f30id) {
|
2021-06-27 20:44:35 +00:00
|
|
|
return i;
|
|
|
|
}
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public void invert() {
|
|
|
|
int i = this.mHead;
|
|
|
|
int i2 = 0;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
|
|
|
float[] fArr = this.mArrayValues;
|
|
|
|
fArr[i] = fArr[i] * -1.0f;
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public final void put(SolverVariable solverVariable, float f) {
|
|
|
|
if (f == 0.0f) {
|
|
|
|
remove(solverVariable, true);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
int i = this.mHead;
|
|
|
|
if (i == -1) {
|
|
|
|
this.mHead = 0;
|
|
|
|
this.mArrayValues[0] = f;
|
2021-12-17 21:59:34 +00:00
|
|
|
this.mArrayIndices[0] = solverVariable.f30id;
|
2021-06-27 20:44:35 +00:00
|
|
|
this.mArrayNextIndices[0] = -1;
|
|
|
|
solverVariable.usageInRowCount++;
|
|
|
|
solverVariable.addToRow(this.mRow);
|
|
|
|
this.currentSize++;
|
|
|
|
if (!this.mDidFillOnce) {
|
|
|
|
int i2 = this.mLast + 1;
|
|
|
|
this.mLast = i2;
|
|
|
|
int[] iArr = this.mArrayIndices;
|
|
|
|
if (i2 >= iArr.length) {
|
|
|
|
this.mDidFillOnce = true;
|
|
|
|
this.mLast = iArr.length - 1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
int i3 = 0;
|
|
|
|
int i4 = -1;
|
|
|
|
while (i != -1 && i3 < this.currentSize) {
|
|
|
|
int[] iArr2 = this.mArrayIndices;
|
|
|
|
int i5 = iArr2[i];
|
2021-12-17 21:59:34 +00:00
|
|
|
int i6 = solverVariable.f30id;
|
2021-06-27 20:44:35 +00:00
|
|
|
if (i5 == i6) {
|
|
|
|
this.mArrayValues[i] = f;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (iArr2[i] < i6) {
|
|
|
|
i4 = i;
|
|
|
|
}
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i3++;
|
|
|
|
}
|
|
|
|
int i7 = this.mLast;
|
|
|
|
int i8 = i7 + 1;
|
|
|
|
if (this.mDidFillOnce) {
|
|
|
|
int[] iArr3 = this.mArrayIndices;
|
|
|
|
if (iArr3[i7] != -1) {
|
|
|
|
i7 = iArr3.length;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
i7 = i8;
|
|
|
|
}
|
|
|
|
int[] iArr4 = this.mArrayIndices;
|
|
|
|
if (i7 >= iArr4.length && this.currentSize < iArr4.length) {
|
|
|
|
int i9 = 0;
|
|
|
|
while (true) {
|
|
|
|
int[] iArr5 = this.mArrayIndices;
|
|
|
|
if (i9 >= iArr5.length) {
|
|
|
|
break;
|
|
|
|
} else if (iArr5[i9] == -1) {
|
|
|
|
i7 = i9;
|
|
|
|
break;
|
|
|
|
} else {
|
|
|
|
i9++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
int[] iArr6 = this.mArrayIndices;
|
|
|
|
if (i7 >= iArr6.length) {
|
|
|
|
i7 = iArr6.length;
|
|
|
|
int i10 = this.ROW_SIZE * 2;
|
|
|
|
this.ROW_SIZE = i10;
|
|
|
|
this.mDidFillOnce = false;
|
|
|
|
this.mLast = i7 - 1;
|
|
|
|
this.mArrayValues = Arrays.copyOf(this.mArrayValues, i10);
|
|
|
|
this.mArrayIndices = Arrays.copyOf(this.mArrayIndices, this.ROW_SIZE);
|
|
|
|
this.mArrayNextIndices = Arrays.copyOf(this.mArrayNextIndices, this.ROW_SIZE);
|
|
|
|
}
|
2021-12-17 21:59:34 +00:00
|
|
|
this.mArrayIndices[i7] = solverVariable.f30id;
|
2021-06-27 20:44:35 +00:00
|
|
|
this.mArrayValues[i7] = f;
|
|
|
|
if (i4 != -1) {
|
|
|
|
int[] iArr7 = this.mArrayNextIndices;
|
|
|
|
iArr7[i7] = iArr7[i4];
|
|
|
|
iArr7[i4] = i7;
|
|
|
|
} else {
|
|
|
|
this.mArrayNextIndices[i7] = this.mHead;
|
|
|
|
this.mHead = i7;
|
|
|
|
}
|
|
|
|
solverVariable.usageInRowCount++;
|
|
|
|
solverVariable.addToRow(this.mRow);
|
|
|
|
int i11 = this.currentSize + 1;
|
|
|
|
this.currentSize = i11;
|
|
|
|
if (!this.mDidFillOnce) {
|
|
|
|
this.mLast++;
|
|
|
|
}
|
|
|
|
int[] iArr8 = this.mArrayIndices;
|
|
|
|
if (i11 >= iArr8.length) {
|
|
|
|
this.mDidFillOnce = true;
|
|
|
|
}
|
|
|
|
if (this.mLast >= iArr8.length) {
|
|
|
|
this.mDidFillOnce = true;
|
|
|
|
this.mLast = iArr8.length - 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public final float remove(SolverVariable solverVariable, boolean z2) {
|
|
|
|
if (this.candidate == solverVariable) {
|
|
|
|
this.candidate = null;
|
|
|
|
}
|
|
|
|
int i = this.mHead;
|
|
|
|
if (i == -1) {
|
|
|
|
return 0.0f;
|
|
|
|
}
|
|
|
|
int i2 = 0;
|
|
|
|
int i3 = -1;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
2021-12-17 21:59:34 +00:00
|
|
|
if (this.mArrayIndices[i] == solverVariable.f30id) {
|
2021-06-27 20:44:35 +00:00
|
|
|
if (i == this.mHead) {
|
|
|
|
this.mHead = this.mArrayNextIndices[i];
|
|
|
|
} else {
|
|
|
|
int[] iArr = this.mArrayNextIndices;
|
|
|
|
iArr[i3] = iArr[i];
|
|
|
|
}
|
|
|
|
if (z2) {
|
|
|
|
solverVariable.removeFromRow(this.mRow);
|
|
|
|
}
|
|
|
|
solverVariable.usageInRowCount--;
|
|
|
|
this.currentSize--;
|
|
|
|
this.mArrayIndices[i] = -1;
|
|
|
|
if (this.mDidFillOnce) {
|
|
|
|
this.mLast = i;
|
|
|
|
}
|
|
|
|
return this.mArrayValues[i];
|
|
|
|
}
|
|
|
|
i2++;
|
|
|
|
i3 = i;
|
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
}
|
|
|
|
return 0.0f;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public int sizeInBytes() {
|
|
|
|
return (this.mArrayIndices.length * 4 * 3) + 0 + 36;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString() {
|
|
|
|
int i = this.mHead;
|
|
|
|
String str = "";
|
|
|
|
int i2 = 0;
|
|
|
|
while (i != -1 && i2 < this.currentSize) {
|
2021-11-05 06:48:17 +00:00
|
|
|
StringBuilder R = a.R(a.v(str, " -> "));
|
|
|
|
R.append(this.mArrayValues[i]);
|
|
|
|
R.append(" : ");
|
|
|
|
StringBuilder R2 = a.R(R.toString());
|
|
|
|
R2.append(this.mCache.mIndexedVariables[this.mArrayIndices[i]]);
|
|
|
|
str = R2.toString();
|
2021-06-27 20:44:35 +00:00
|
|
|
i = this.mArrayNextIndices[i];
|
|
|
|
i2++;
|
|
|
|
}
|
|
|
|
return str;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
|
|
|
|
public float use(ArrayRow arrayRow, boolean z2) {
|
|
|
|
float f = get(arrayRow.variable);
|
|
|
|
remove(arrayRow.variable, z2);
|
|
|
|
ArrayRow.ArrayRowVariables arrayRowVariables = arrayRow.variables;
|
|
|
|
int currentSize = arrayRowVariables.getCurrentSize();
|
|
|
|
for (int i = 0; i < currentSize; i++) {
|
|
|
|
SolverVariable variable = arrayRowVariables.getVariable(i);
|
|
|
|
add(variable, arrayRowVariables.get(variable) * f, z2);
|
|
|
|
}
|
|
|
|
return f;
|
|
|
|
}
|
|
|
|
}
|