com.oracle.truffle.api.utilities

## Class PrimitiveValueProfile

- java.lang.Object
- - com.oracle.truffle.api.utilities.ValueProfile
  - - com.oracle.truffle.api.utilities.PrimitiveValueProfile

    public class PrimitiveValueProfile
    extends ValueProfile

Represents a `ValueProfile` that speculates on the primitive equality or object identity of values.

Note that for {code float} and `double` values we compare primitive equality via `Float.floatToRawIntBits(float)` and `Double.doubleToRawLongBits(double)`, so that for example `-0.0` is not considered the same as `0.0`, even though primitive equality would normally say that it was.

### Method Summary

Methods
`static boolean` `exactCompare(double a, double b)`
`static boolean` `exactCompare(float a, float b)`
`java.lang.Object` `getCachedValue()`
`boolean` `isGeneric()`
`boolean` `isUninitialized()`
`boolean` `profile(boolean value)`
`byte` `profile(byte value)`
`char` `profile(char value)`
`double` `profile(double value)`
`float` `profile(float value)`
`int` `profile(int value)`
`long` `profile(long value)`
`java.lang.Object` `profile(java.lang.Object value)`
`short` `profile(short value)`
`java.lang.String` `toString()`

### Methods inherited from class com.oracle.truffle.api.utilities.ValueProfile

`createClassProfile, createIdentityProfile, createPrimitiveProfile`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### profile

    public java.lang.Object profile(java.lang.Object value)

Specified by:
  `profile` in class `ValueProfile`

#### profile

    public byte profile(byte value)

#### profile

    public short profile(short value)

#### profile

    public int profile(int value)

#### profile

    public long profile(long value)

#### profile

    public float profile(float value)

#### profile

    public double profile(double value)

#### profile

    public boolean profile(boolean value)

#### profile

    public char profile(char value)

#### isGeneric

    public boolean isGeneric()

#### isUninitialized

    public boolean isUninitialized()

#### getCachedValue

    public java.lang.Object getCachedValue()

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### exactCompare

    public static boolean exactCompare(float a,
                       float b)

#### exactCompare

    public static boolean exactCompare(double a,
                       double b)