exerciseopcodes.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 1,444 行 · 第 1/5 页

JAVA
1,444
字号
        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = -1;            long value = el.exerciseLShr(value1, value2);            reportPassIf("exerciseLShr(value1, " + value2 + ")",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 0;            long value = el.exerciseLShr(value1, value2);            reportPassIf("exerciseLShr(value1, " + value2 + ")",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 63;            long value = el.exerciseLShr(value1, value2);            reportPassIf("exerciseLShr(value1, " + value2 + ")",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 64;            long value = el.exerciseLShr(value1, value2);            reportPassIf("exerciseLShr(value1, " + value2 + ")",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 65;            long value = el.exerciseLShr(value1, value2);            reportPassIf("exerciseLShr(value1, " + value2 + ")",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = -1;            long value = el.exerciseLShrm1(value1);            reportPassIf("exerciseLShrm1(value1)",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 0;            long value = el.exerciseLShr0(value1);            reportPassIf("exerciseLShr0(value1)",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 63;            long value = el.exerciseLShr63(value1);            reportPassIf("exerciseLShr63(value1)",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 64;            long value = el.exerciseLShr64(value1);            reportPassIf("exerciseLShr64(value1)",                         value, (value1 >> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 65;            long value = el.exerciseLShr65(value1);            reportPassIf("exerciseLShr65(value1)",                         value, (value1 >> value2));        }        // Test LUShr permutations:        {            long value1 = 0xA555AAAA5555AAAAl;            long value = el.exerciseLUShr(value1, 15);            reportPassIf("exerciseLUShr(value1, 15)", value, (value1 >>> 15l));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = -1;            long value = el.exerciseLUShr(value1, value2);            reportPassIf("exerciseLUShr(value1, " + value2 + ")",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 0;            long value = el.exerciseLUShr(value1, value2);            reportPassIf("exerciseLUShr(value1, " + value2 + ")",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 63;            long value = el.exerciseLUShr(value1, value2);            reportPassIf("exerciseLUShr(value1, " + value2 + ")",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 64;            long value = el.exerciseLUShr(value1, value2);            reportPassIf("exerciseLUShr(value1, " + value2 + ")",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 65;            long value = el.exerciseLUShr(value1, value2);            reportPassIf("exerciseLUShr(value1, " + value2 + ")",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = -1;            long value = el.exerciseLUShrm1(value1);            reportPassIf("exerciseLUShrm1(value1)",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 0;            long value = el.exerciseLUShr0(value1);            reportPassIf("exerciseLUShr0(value1)",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 63;            long value = el.exerciseLUShr63(value1);            reportPassIf("exerciseLUShr63(value1)",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 64;            long value = el.exerciseLUShr64(value1);            reportPassIf("exerciseLUShr64(value1)",                         value, (value1 >>> value2));        }        {            long value1 = 0x5555AAAA5555AAAAl;            int value2 = 65;            long value = el.exerciseLUShr65(value1);            reportPassIf("exerciseLUShr65(value1)",                         value, (value1 >>> value2));        }        {            long value = el.exerciseLStore(0, 0, 0, 0, 0l);            reportPassIf("exerciseLStore(0, 0, 0, 0, 0l)", value, 1l);        }        {            long value = el.exerciseLStore0(0l);            reportPassIf("exerciseLStore0(0l)", value, 1l);        }        {            long value = el.exerciseLStore1(0, 0l);            reportPassIf("exerciseLStore1(0, 0l)", value, 1l);        }        {            long value = el.exerciseLStore2(0, 0, 0l);            reportPassIf("exerciseLStore2(0, 0, 0l)", value, 1l);        }        {            long value = el.exerciseLStore3(0, 0, 0, 0l);            reportPassIf("exerciseLStore3(0, 0, 0, 0l)", value, 1l);        }        {            long value = el.exerciseLSub(2345l, 543l);            reportPassIf("exerciseLSub(2345l, 543l)", value, (2345l - 543l));        }        {            long value1 = 0x55555555AAAAAAAAl;            long value2 = 0x5555AAAA5555AAAAl;            long value = el.exerciseLXor(value1, value2);            reportPassIf("exerciseLXor(value1, value2)", value, (value1 ^ value2));        }        if (verbose) {            System.out.println("");        }        // Exercise the Float opcodes:        System.out.println("Testing Float Opcodes:");        ExerciseFloatOpcodes ef = new ExerciseFloatOpcodes();        {            double value;            value = ef.exerciseF2D(5.0f);            reportPassIf("exerciseF2D(5.0f)", value, 5.0d);            value = ef.exerciseF2D(0.0f);            reportPassIf("exerciseF2D(0.0f)", value, (double)(0.0f));            value = ef.exerciseF2D(-0.0f);            reportPassIf("exerciseF2D(-0.0f)", value, (double)(-0.0f));            value = ef.exerciseF2D(467.24856f);            reportPassIf("exerciseF2D(467.24856f)", value, (double)(467.24856f));            value = ef.exerciseF2D(-467.24856f);            reportPassIf("exerciseF2D(-467.24856f)", value, (double)(-467.24856f));            value = ef.exerciseF2D(Float.NaN);            reportPassIf("exerciseF2D(Float.NaN)", value, (double)(Float.NaN));            value = ef.exerciseF2D(Float.POSITIVE_INFINITY);            reportPassIf("exerciseF2D(Float.POSITIVE_INFINITY)", value, (double)(Float.POSITIVE_INFINITY));            value = ef.exerciseF2D(Float.NEGATIVE_INFINITY);            reportPassIf("exerciseF2D(Float.NEGATIVE_INFINITY)", value, (double)(Float.NEGATIVE_INFINITY));            value = ef.exerciseF2D(Float.MAX_VALUE);            reportPassIf("exerciseF2D(Float.MAX_VALUE)", value, (double)(Float.MAX_VALUE));            value = ef.exerciseF2D(-Float.MAX_VALUE);            reportPassIf("exerciseF2D(-Float.MAX_VALUE)", value, (double)(-Float.MAX_VALUE));            value = ef.exerciseF2D(Float.MIN_VALUE);            reportPassIf("exerciseF2D(Float.MIN_VALUE)", value, (double)(Float.MIN_VALUE));            value = ef.exerciseF2D(-Float.MIN_VALUE);            reportPassIf("exerciseF2D(-Float.MIN_VALUE)", value, (double)(-Float.MIN_VALUE));        }        {            int value = ef.exerciseF2I(5.0f);            reportPassIf("exerciseF2I(5.0f)", value, 5);        }        {            long value = ef.exerciseF2L(5.0f);            reportPassIf("exerciseF2L(5.0f)", value, 5l);        }        {            float value;            {                float f3 = (float)16777215;                float f4 = 2.0f;                float f5 = (float)33554430;                float f6 = (float)16777216;                boolean success;                value = ef.exerciseFAdd(f3, f4);                success = reportPassIf("exerciseFAdd(" + f3 + ", " + f4 + ")",                                       value, (f3 + f4));                if (!success) {                    dumpValue(f3);                    dumpValue(f4);                }                value = ef.exerciseFAdd(f3, f3);                success = reportPassIf("exerciseFAdd(" + f3 + ", " + f3 + ")",                                       value, (f3 + f3));                if (!success) {                    dumpValue(f3);                    dumpValue(f4);                }            }            for (int j = 0; j < 48; j++)            {                float start3 = 1e10f;                float a3 = 1e20f;                float c3 = 3f;                float c4 = 4f;                float r0, r1, r2, r3, r7;                float x;                x = start3;                for (int i = 0; i < j; i++) {                    r0 = x - a3;                    r7 = x + a3;                    r1 = c4 * x;                    r2 = r0 / r1;                    r3 = r2 * r7;                    x = r3;                }                value = ef.exerciseFSub(x, a3);                reportPassIf("exerciseFSub(" + x + ", " + a3 + ")",                             value, (x - a3));                value = ef.exerciseFAdd(x, a3);                reportPassIf("exerciseFAdd(" + x + ", " + a3 + ")",                             value, (x + a3));            }            {                float float1 = (1L << 24) - 1; // Max mantissa.                value = ef.exerciseFAdd(float1, 0.5f);                reportPassIf("exerciseFAdd((1L << 24) - 1, 0.5f)", value, (float1 + 0.5f));                value = float1 + 0.5f;                float float2 = value;                value = ef.exerciseFSub(float2, float1);                reportPassIf("exerciseFSub( (((1L<<24)-1) + 0.5), 0.5f)", value, 1.0f);            }            value = ef.exerciseFAdd(1.0f, 1.0f);            reportPassIf("exerciseFAdd(1.0f, 1.0f)", value, (1.0f + 1.0f));            value = ef.exerciseFAdd(1.0f, -1.0f);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?