mirror of
https://github.com/corda/corda.git
synced 2025-06-06 09:21:47 +00:00
Merge branch 'master' of oss:/var/local/git/avian
This commit is contained in:
commit
35d4d19c07
@ -431,6 +431,70 @@ Java_java_lang_System_doMapLibraryName(JNIEnv* e, jclass, jstring name)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jboolean JNICALL
|
||||||
|
Java_java_lang_Double_isInfinite(JNIEnv*, jclass, jdouble val)
|
||||||
|
{
|
||||||
|
return !isfinite(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jboolean JNICALL
|
||||||
|
Java_java_lang_Double_isNaN(JNIEnv*, jclass, jdouble val)
|
||||||
|
{
|
||||||
|
return isnan(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jdouble JNICALL
|
||||||
|
Java_java_lang_Double_doubleFromString(JNIEnv*e, jclass, jstring s,
|
||||||
|
jintArray numDoublesRead)
|
||||||
|
{
|
||||||
|
const char* chars = e->GetStringUTFChars(s, 0);
|
||||||
|
double d = 0.0;
|
||||||
|
jint numRead = 0;
|
||||||
|
|
||||||
|
if (chars) {
|
||||||
|
char* lastRead;
|
||||||
|
d = strtod(chars, &lastRead);
|
||||||
|
if ((lastRead != chars) && ((chars + strlen(chars)) == lastRead)) {
|
||||||
|
numRead = 1;
|
||||||
|
}
|
||||||
|
e->ReleaseStringUTFChars(s, chars);
|
||||||
|
}
|
||||||
|
e->SetIntArrayRegion(numDoublesRead, 0, 1, &numRead);
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jboolean JNICALL
|
||||||
|
Java_java_lang_Float_isInfinite(JNIEnv*, jclass, jfloat val)
|
||||||
|
{
|
||||||
|
return !isfinite(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jboolean JNICALL
|
||||||
|
Java_java_lang_Float_isNaN(JNIEnv*, jclass, jfloat val)
|
||||||
|
{
|
||||||
|
return isnan(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jfloat JNICALL
|
||||||
|
Java_java_lang_Float_floatFromString(JNIEnv*e, jclass, jstring s,
|
||||||
|
jintArray numFloatsRead)
|
||||||
|
{
|
||||||
|
const char* chars = e->GetStringUTFChars(s, 0);
|
||||||
|
float f = 0.0;
|
||||||
|
jint numRead = 0;
|
||||||
|
|
||||||
|
if (chars) {
|
||||||
|
char* lastRead;
|
||||||
|
f = strtof(chars, &lastRead);
|
||||||
|
if ((lastRead != chars) && ((chars + strlen(chars)) == lastRead)) {
|
||||||
|
numRead = 1;
|
||||||
|
}
|
||||||
|
e->ReleaseStringUTFChars(s, chars);
|
||||||
|
}
|
||||||
|
e->SetIntArrayRegion(numFloatsRead, 0, 1, &numRead);
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT jdouble JNICALL
|
extern "C" JNIEXPORT jdouble JNICALL
|
||||||
Java_java_lang_Math_sin(JNIEnv*, jclass, jdouble val)
|
Java_java_lang_Math_sin(JNIEnv*, jclass, jdouble val)
|
||||||
{
|
{
|
||||||
|
@ -31,6 +31,10 @@ public final class Double extends Number {
|
|||||||
return new Double(value);
|
return new Double(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Double valueOf(String s) {
|
||||||
|
return new Double(s);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
return o instanceof Double && ((Double) o).value == value;
|
return o instanceof Double && ((Double) o).value == value;
|
||||||
}
|
}
|
||||||
@ -74,9 +78,22 @@ public final class Double extends Number {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isInfinite() {
|
||||||
|
return isInfinite(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNaN() {
|
||||||
|
return isNaN(value);
|
||||||
|
}
|
||||||
|
|
||||||
public static double parseDouble(String s) {
|
public static double parseDouble(String s) {
|
||||||
// todo
|
int[] numRead = new int[1];
|
||||||
throw new NumberFormatException(s);
|
double d = doubleFromString(s, numRead);
|
||||||
|
if (numRead[0] == 1) {
|
||||||
|
return d;
|
||||||
|
} else {
|
||||||
|
throw new NumberFormatException(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static native int fillBufferWithDouble(double value, byte[] buffer,
|
public static native int fillBufferWithDouble(double value, byte[] buffer,
|
||||||
@ -85,4 +102,10 @@ public final class Double extends Number {
|
|||||||
public static native long doubleToRawLongBits(double value);
|
public static native long doubleToRawLongBits(double value);
|
||||||
|
|
||||||
public static native double longBitsToDouble(long bits);
|
public static native double longBitsToDouble(long bits);
|
||||||
|
|
||||||
|
public static native boolean isInfinite(double value);
|
||||||
|
|
||||||
|
public static native boolean isNaN(double value);
|
||||||
|
|
||||||
|
public static native double doubleFromString(String s, int[] numRead);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,10 @@ public final class Float extends Number {
|
|||||||
|
|
||||||
private final float value;
|
private final float value;
|
||||||
|
|
||||||
|
public Float(String value) {
|
||||||
|
this.value = parseFloat(value);
|
||||||
|
}
|
||||||
|
|
||||||
public Float(float value) {
|
public Float(float value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
@ -23,6 +27,10 @@ public final class Float extends Number {
|
|||||||
return new Float(value);
|
return new Float(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Float valueOf(String s) {
|
||||||
|
return new Float(s);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
return o instanceof Float && ((Float) o).value == value;
|
return o instanceof Float && ((Float) o).value == value;
|
||||||
}
|
}
|
||||||
@ -63,12 +71,31 @@ public final class Float extends Number {
|
|||||||
return (double) value;
|
return (double) value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isInfinite() {
|
||||||
|
return isInfinite(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNaN() {
|
||||||
|
return isNaN(value);
|
||||||
|
}
|
||||||
|
|
||||||
public static float parseFloat(String s) {
|
public static float parseFloat(String s) {
|
||||||
// todo
|
int[] numRead = new int[1];
|
||||||
throw new NumberFormatException(s);
|
float f = floatFromString(s, numRead);
|
||||||
|
if (numRead[0] == 1) {
|
||||||
|
return f;
|
||||||
|
} else {
|
||||||
|
throw new NumberFormatException(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static native int floatToRawIntBits(float value);
|
public static native int floatToRawIntBits(float value);
|
||||||
|
|
||||||
public static native float intBitsToFloat(int bits);
|
public static native float intBitsToFloat(int bits);
|
||||||
|
|
||||||
|
public static native boolean isInfinite(float value);
|
||||||
|
|
||||||
|
public static native boolean isNaN(float value);
|
||||||
|
|
||||||
|
public static native float floatFromString(String s, int[] numRead);
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,13 @@ public class HashMap<K, V> implements Map<K, V> {
|
|||||||
this(0);
|
this(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HashMap(Map<K, V> map) {
|
||||||
|
this(map.size());
|
||||||
|
for (Map.Entry<K, V> entry : map.entrySet()) {
|
||||||
|
put(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append("{");
|
sb.append("{");
|
||||||
|
@ -18,4 +18,8 @@ public class Random {
|
|||||||
public int nextInt() {
|
public int nextInt() {
|
||||||
return (int)(Math.random()*Integer.MAX_VALUE);
|
return (int)(Math.random()*Integer.MAX_VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double nextDouble() {
|
||||||
|
return Math.random();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user