001 /*
002 * This file is part of the Jikes RVM project (http://jikesrvm.org).
003 *
004 * This file is licensed to You under the Eclipse Public License (EPL);
005 * You may not use this file except in compliance with the License. You
006 * may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/eclipse-1.0.php
009 *
010 * See the COPYRIGHT.txt file distributed with this work for information
011 * regarding copyright ownership.
012 */
013 package org.jikesrvm.runtime;
014
015 import org.vmmagic.pragma.Entrypoint;
016
017 /**
018 * Placeholder for constants that are accessed from
019 * generated code.
020 */
021 public class MathConstants {
022 /*
023 * Constants that are used by the compilers in generated code.
024 */
025 @Entrypoint
026 static final double I2Dconstant = Double.longBitsToDouble(0x4330000080000000L);
027 @Entrypoint
028 static final double IEEEmagic = Double.longBitsToDouble(0x4338000000000000L);
029 @Entrypoint
030 static final long longOne = 1L;
031 @Entrypoint
032 static final float minusOne = -1.0F;
033 @Entrypoint
034 static final float zero = 0.0F;
035 @Entrypoint
036 static final float half = 0.5F;
037 @Entrypoint
038 static final float one = 1.0F;
039 @Entrypoint
040 static final float two = 2.0F;
041 @Entrypoint
042 static final double zeroD = 0.0;
043 @Entrypoint
044 static final double oneD = 1.0;
045 @Entrypoint
046 static final float half32 = java.lang.Float.intBitsToFloat(0x2f800000);
047 @Entrypoint
048 static final float two32 = java.lang.Float.intBitsToFloat(0x4f800000);
049 @Entrypoint
050 static final double billionth = 1e-9;
051
052 /** largest double that can be rounded to an int */
053 @Entrypoint
054 static final double maxint = 0.5D + 0x7FFFFFFF;
055 /** largest double that can be rounded to a long */
056 @Entrypoint
057 static final double maxlong = 0.5D + 0x7FFFFFFFFFFFFFFFL;
058 /** largest float that can be rounded to an int (0x7FFFFFFF) */
059 @Entrypoint
060 static final float maxintF = java.lang.Float.intBitsToFloat(0x4F000000);
061 /** largest float that can be rounded to a long (0x7FFFFFFFFFFFFFFF) */
062 @Entrypoint
063 static final float maxlongF = java.lang.Float.intBitsToFloat(0x5F000000);
064
065 // smallest double that can be rounded to an int
066 @Entrypoint
067 static final double minint = (double) Integer.MIN_VALUE;
068 }