193 lines
6.1 KiB
Java
193 lines
6.1 KiB
Java
package com.google.common.primitives;
|
|
|
|
import com.google.common.base.Preconditions;
|
|
import java.io.Serializable;
|
|
import java.util.AbstractList;
|
|
import java.util.Arrays;
|
|
import java.util.Collection;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.RandomAccess;
|
|
import java.util.regex.Pattern;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class Doubles {
|
|
|
|
private static class DoubleArrayAsList extends AbstractList<Double> implements RandomAccess, Serializable {
|
|
final double[] a;
|
|
final int b;
|
|
final int c;
|
|
|
|
DoubleArrayAsList(double[] dArr, int i, int i2) {
|
|
this.a = dArr;
|
|
this.b = i;
|
|
this.c = i2;
|
|
}
|
|
|
|
@Override // java.util.AbstractList, java.util.List
|
|
/* renamed from: a, reason: merged with bridge method [inline-methods] */
|
|
public Double set(int i, Double d) {
|
|
Preconditions.a(i, size());
|
|
double[] dArr = this.a;
|
|
int i2 = this.b;
|
|
double d2 = dArr[i2 + i];
|
|
Preconditions.a(d);
|
|
dArr[i2 + i] = d.doubleValue();
|
|
return Double.valueOf(d2);
|
|
}
|
|
|
|
@Override // java.util.AbstractCollection, java.util.Collection, java.util.List
|
|
public boolean contains(Object obj) {
|
|
return (obj instanceof Double) && Doubles.c(this.a, ((Double) obj).doubleValue(), this.b, this.c) != -1;
|
|
}
|
|
|
|
@Override // java.util.AbstractList, java.util.Collection, java.util.List
|
|
public boolean equals(Object obj) {
|
|
if (obj == this) {
|
|
return true;
|
|
}
|
|
if (!(obj instanceof DoubleArrayAsList)) {
|
|
return super.equals(obj);
|
|
}
|
|
DoubleArrayAsList doubleArrayAsList = (DoubleArrayAsList) obj;
|
|
int size = size();
|
|
if (doubleArrayAsList.size() != size) {
|
|
return false;
|
|
}
|
|
for (int i = 0; i < size; i++) {
|
|
if (this.a[this.b + i] != doubleArrayAsList.a[doubleArrayAsList.b + i]) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override // java.util.AbstractList, java.util.Collection, java.util.List
|
|
public int hashCode() {
|
|
int i = 1;
|
|
for (int i2 = this.b; i2 < this.c; i2++) {
|
|
i = (i * 31) + Doubles.a(this.a[i2]);
|
|
}
|
|
return i;
|
|
}
|
|
|
|
@Override // java.util.AbstractList, java.util.List
|
|
public int indexOf(Object obj) {
|
|
int c;
|
|
if (!(obj instanceof Double) || (c = Doubles.c(this.a, ((Double) obj).doubleValue(), this.b, this.c)) < 0) {
|
|
return -1;
|
|
}
|
|
return c - this.b;
|
|
}
|
|
|
|
@Override // java.util.AbstractCollection, java.util.Collection, java.util.List
|
|
public boolean isEmpty() {
|
|
return false;
|
|
}
|
|
|
|
@Override // java.util.AbstractList, java.util.List
|
|
public int lastIndexOf(Object obj) {
|
|
int d;
|
|
if (!(obj instanceof Double) || (d = Doubles.d(this.a, ((Double) obj).doubleValue(), this.b, this.c)) < 0) {
|
|
return -1;
|
|
}
|
|
return d - this.b;
|
|
}
|
|
|
|
@Override // java.util.AbstractCollection, java.util.Collection, java.util.List
|
|
public int size() {
|
|
return this.c - this.b;
|
|
}
|
|
|
|
@Override // java.util.AbstractList, java.util.List
|
|
public List<Double> subList(int i, int i2) {
|
|
Preconditions.b(i, i2, size());
|
|
if (i == i2) {
|
|
return Collections.emptyList();
|
|
}
|
|
double[] dArr = this.a;
|
|
int i3 = this.b;
|
|
return new DoubleArrayAsList(dArr, i + i3, i3 + i2);
|
|
}
|
|
|
|
@Override // java.util.AbstractCollection
|
|
public String toString() {
|
|
StringBuilder sb = new StringBuilder(size() * 12);
|
|
sb.append('[');
|
|
sb.append(this.a[this.b]);
|
|
int i = this.b;
|
|
while (true) {
|
|
i++;
|
|
if (i >= this.c) {
|
|
sb.append(']');
|
|
return sb.toString();
|
|
}
|
|
sb.append(", ");
|
|
sb.append(this.a[i]);
|
|
}
|
|
}
|
|
|
|
@Override // java.util.AbstractList, java.util.List
|
|
public Double get(int i) {
|
|
Preconditions.a(i, size());
|
|
return Double.valueOf(this.a[this.b + i]);
|
|
}
|
|
|
|
double[] a() {
|
|
return Arrays.copyOfRange(this.a, this.b, this.c);
|
|
}
|
|
}
|
|
|
|
static {
|
|
a();
|
|
}
|
|
|
|
public static boolean b(double d) {
|
|
return Double.NEGATIVE_INFINITY < d && d < Double.POSITIVE_INFINITY;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public static int c(double[] dArr, double d, int i, int i2) {
|
|
while (i < i2) {
|
|
if (dArr[i] == d) {
|
|
return i;
|
|
}
|
|
i++;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public static int d(double[] dArr, double d, int i, int i2) {
|
|
for (int i3 = i2 - 1; i3 >= i; i3--) {
|
|
if (dArr[i3] == d) {
|
|
return i3;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
public static int a(double d) {
|
|
return Double.valueOf(d).hashCode();
|
|
}
|
|
|
|
public static double[] a(Collection<? extends Number> collection) {
|
|
if (collection instanceof DoubleArrayAsList) {
|
|
return ((DoubleArrayAsList) collection).a();
|
|
}
|
|
Object[] array = collection.toArray();
|
|
int length = array.length;
|
|
double[] dArr = new double[length];
|
|
for (int i = 0; i < length; i++) {
|
|
Object obj = array[i];
|
|
Preconditions.a(obj);
|
|
dArr[i] = ((Number) obj).doubleValue();
|
|
}
|
|
return dArr;
|
|
}
|
|
|
|
private static Pattern a() {
|
|
return Pattern.compile("[+-]?(?:NaN|Infinity|" + ("(?:\\d++(?:\\.\\d*+)?|\\.\\d++)(?:[eE][+-]?\\d++)?[fFdD]?") + "|" + ("0[xX](?:\\p{XDigit}++(?:\\.\\p{XDigit}*+)?|\\.\\p{XDigit}++)[pP][+-]?\\d++[fFdD]?") + ")");
|
|
}
|
|
}
|