Z28867

{
    "Z1K1": "Z2",
    "Z2K1": {
        "Z1K1": "Z6",
        "Z6K1": "Z28867"
    },
    "Z2K2": {
        "Z1K1": "Z46",
        "Z46K1": "Z28867",
        "Z46K2": "Z20838",
        "Z46K3": {
            "Z1K1": "Z16",
            "Z16K1": "Z600",
            "Z16K2": "function Z28867( Z28867K1 ) {\n\t// is it a special value?\n\tlet special = Z28867K1.Z20838K4.Z20825K1;\n\tif (typeof special === 'object') {\n\t\tspecial = special.Z9K1;\n\t}\n\tif ( special === 'Z20829' ) {\n\t\treturn +0.0;\n\t}\n\tif ( special === 'Z20831' ) {\n\t\treturn -0.0;\n\t}\n\tif ( special === 'Z20832' ) {\n\t\treturn Number.POSITIVE_INFINITY;\n\t}\n\tif ( special === 'Z20833' ) {\n\t\treturn Number.NEGATIVE_INFINITY;\n\t}\n\tif ( ( special === 'Z20834' )\n\t  || ( special === 'Z20835' )\n\t  || ( special === 'Z20836' ) ) {\n\t\treturn Number.NaN;\n\t}\n\t\n\t// is it a positive number?\n\tlet sign = Z28867K1.Z20838K1.Z16659K1;\n\tif (typeof sign === 'object') {\n\t\tsign = sign.Z9K1;\n\t}\n\tconst positive = ( sign === 'Z16660' ) ? 0n : 1n;\n\tconst signBit = positive \u003C\u003C 63n;\n\t\n\t// exponent\n\tlet expvalue = Z28867K1.Z20838K2.Z16683K2.Z13518K1;\n\tif (typeof expvalue === 'string') {\n\t\texpvalue = BigInt( Z28867K1.Z20838K2.Z16683K2.Z13518K1 );\n\t} else {\n\t\texpvalue = BigInt( Z28867K1.Z20838K2.Z16683K2.Z13518K1.Z6K1 );\n\t}\n\tlet expsign = Z28867K1.Z20838K2.Z16683K1.Z16659K1;\n\t\n\twhile ( typeof expsign === 'object' ) {\n\t\tif ( 'Z9K1' in expsign ) {\n\t\t\texpsign = expsign.Z9K1;\n\t\t} else if ( 'Z16659K1' in expsign ) {\n\t\t\texpsign = expsign.Z16659K1;\n\t\t} else {\n\t\t\texpsign = '';\n\t\t}\n\t}\n\tif ( expsign === 'Z16662' ) { \n\t\texpsign = -1n;\n\t} else {\n\t\texpsign = 1n;\n\t}\n\tconst exponent = expsign * expvalue;\n\tif ( ( exponent \u003E 1023n ) || ( exponent \u003C -1023n ) ) {\n\t\treturn Number.NaN;\n\t}\n\n\t// mantissa\n\tlet mantvalue = Z28867K1.Z20838K3.Z13518K1;\n\tif (typeof mantvalue === 'string') {\n\t\tmantvalue = BigInt( mantvalue );\n\t} else {\n\t\tmantvalue = BigInt( mantvalue.Z6K1 );\n\t}\n\t\n    // Handle subnormals separately (exponent = -1023)\n\tlet exponentBits, mantissaBits;\n\tif (exponent === -1023n) {\n\t\t// subnormal: exponent bits are all 0, raw mantissa used directly\n\t\texponentBits = 0n;\n\t\tmantissaBits = mantvalue;\n\t} else {\n\t\t// normalised: exponent bias +1023\n\t\texponentBits = ((exponent + 1023n) \u0026 0x7FFn) \u003C\u003C 52n;\n\t\tconst MANTISSA_MASK = (1n \u003C\u003C 52n) - 1n;\n    \tmantissaBits = mantvalue \u0026 MANTISSA_MASK;\n\t}\n    \n    const floatBits = signBit | exponentBits | mantissaBits;\n\n    // Convert to a JavaScript Number\n    const buffer = new ArrayBuffer(8);\n    const view = new DataView(buffer);\n    view.setBigUint64(0, floatBits, false); // Big-endian\n    return view.getFloat64(0, false);\t\n}\n"
        },
        "Z46K4": "number"
    },
    "Z2K3": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11",
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1002",
                "Z11K2": "JavaScript converter from float64 with subnormals"
            }
        ]
    },
    "Z2K4": {
        "Z1K1": "Z32",
        "Z32K1": [
            "Z31"
        ]
    },
    "Z2K5": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11"
        ]
    }
}