1 Clazz.declarePackage ("JU");
\r
2 c$ = Clazz.declareType (JU, "BC");
\r
3 Clazz.makeConstructor (c$,
\r
6 c$.bytesToFloat = Clazz.defineMethod (c$, "bytesToFloat",
\r
7 function (bytes, j, isBigEndian) {
\r
8 return JU.BC.intToFloat (JU.BC.bytesToInt (bytes, j, isBigEndian));
\r
10 c$.bytesToInt = Clazz.defineMethod (c$, "bytesToInt",
\r
11 function (bytes, j, isBigEndian) {
\r
12 var n = (isBigEndian ? (bytes[j + 3] & 0xff) | (bytes[j + 2] & 0xff) << 8 | (bytes[j + 1] & 0xff) << 16 | (bytes[j] & 0xff) << 24 : (bytes[j++] & 0xff) | (bytes[j++] & 0xff) << 8 | (bytes[j++] & 0xff) << 16 | (bytes[j++] & 0xff) << 24);
\r
14 return (n > 0x7FFFFFFF ? n - 0x100000000 : n);
\r
16 c$.intToFloat = Clazz.defineMethod (c$, "intToFloat",
\r
19 if (x == 0) return 0;
\r
21 if (o.fracIEEE == null)
\r
23 var m = ((x & 0x7F800000) >> 23);
\r
24 return ((x & 0x80000000) == 0 ? 1 : -1) * o.shiftIEEE((x & 0x7FFFFF) | 0x800000, m - 149);
\r
26 c$.bytesToDoubleToFloat = Clazz.defineMethod (c$, "bytesToDoubleToFloat",
\r
27 function (bytes, j, isBigEndian) {
\r
29 if (JU.BC.fracIEEE == null) JU.BC.setFracIEEE ();
\r
32 var b1, b2, b3, b4, b5;
\r
34 b1 = bytes[j] & 0xFF;
\r
35 b2 = bytes[j + 1] & 0xFF;
\r
36 b3 = bytes[j + 2] & 0xFF;
\r
37 b4 = bytes[j + 3] & 0xFF;
\r
38 b5 = bytes[j + 4] & 0xFF;
\r
40 b1 = bytes[j + 7] & 0xFF;
\r
41 b2 = bytes[j + 6] & 0xFF;
\r
42 b3 = bytes[j + 5] & 0xFF;
\r
43 b4 = bytes[j + 4] & 0xFF;
\r
44 b5 = bytes[j + 3] & 0xFF;
\r
46 var s = ((b1 & 0x80) == 0 ? 1 : -1);
\r
47 var e = (((b1 & 0x7F) << 4) | (b2 >> 4)) - 1026;
\r
48 b2 = (b2 & 0xF) | 0x10;
\r
49 return s * (o.shiftIEEE(b2, e) + o.shiftIEEE(b3, e - 8) + o.shiftIEEE(b4, e - 16)
\r
50 + o.shiftIEEE(b5, e - 24));
\r
52 c$.setFracIEEE = Clazz.defineMethod (c$, "setFracIEEE",
\r
54 JU.BC.fracIEEE = Clazz.newFloatArray (270, 0);
\r
55 for (var i = 0; i < 270; i++) JU.BC.fracIEEE[i] = Math.pow (2, i - 141);
\r
58 c$.shiftIEEE = Clazz.defineMethod (c$, "shiftIEEE",
\r
60 if (f == 0 || i < -140) return 0;
\r
61 if (i > 128) return 3.4028235E38;
\r
62 return f * JU.BC.fracIEEE[i + 140];
\r
64 Clazz.defineStatics (c$,
\r