Package: org.codehaus.groovy.vmplugin.v7

## [Java] Class IndyMath

- org.codehaus.groovy.vmplugin.v7.IndyMath

- This class contains math operations used by indy instead of the normal meta method and call site caching system. The goal is to avoid boxing, thus use primitive types for parameters and return types where possible. WARNING: This class is for internal use only. Do not use it outside of the org.codehaus.groovy.vmplugin.v7 package of groovy-core.

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `static int` | `and(int a, int b)`
    `` | `static long` | `and(long a, long b)`
    `` | `static boolean` | `chooseMathMethod(Selector info, MetaMethod metaMethod)` Choose a method to replace the originally chosen metaMethod to have a more efficient call path.
    `` | `static double` | `div(double a, double b)`
    `` | `static int` | `leftShift(int a, int b)`
    `` | `static long` | `leftShift(long a, long b)`
    `` | `static int` | `minus(int a, int b)`
    `` | `static long` | `minus(long a, long b)`
    `` | `static double` | `minus(double a, double b)`
    `` | `static int` | `mod(int a, int b)`
    `` | `static long` | `mod(long a, long b)`
    `` | `static int` | `multiply(int a, int b)`
    `` | `static long` | `multiply(long a, long b)`
    `` | `static double` | `multiply(double a, double b)`
    `` | `static int` | `next(int i)`
    `` | `static long` | `next(long l)`
    `` | `static double` | `next(double d)`
    `` | `static int` | `or(int a, int b)`
    `` | `static long` | `or(long a, long b)`
    `` | `static int` | `plus(int a, int b)`
    `` | `static long` | `plus(long a, long b)`
    `` | `static double` | `plus(double a, double b)`
    `` | `static int` | `previous(int i)`
    `` | `static long` | `previous(long l)`
    `` | `static double` | `previous(double d)`
    `` | `static int` | `rightShift(int a, int b)`
    `` | `static long` | `rightShift(long a, long b)`
    `` | `static int` | `xor(int a, int b)`
    `` | `static long` | `xor(long a, long b)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Method Detail

    - #### public static int and(int a, int b)

    - #### public static long and(long a, long b)

    - #### public static boolean chooseMathMethod(Selector info, MetaMethod metaMethod)

      Choose a method to replace the originally chosen metaMethod to have a more efficient call path.

    - #### public static double div(double a, double b)

    - #### public static int leftShift(int a, int b)

    - #### public static long leftShift(long a, long b)

    - #### public static int minus(int a, int b)

    - #### public static long minus(long a, long b)

    - #### public static double minus(double a, double b)

    - #### public static int mod(int a, int b)

    - #### public static long mod(long a, long b)

    - #### public static int multiply(int a, int b)

    - #### public static long multiply(long a, long b)

    - #### public static double multiply(double a, double b)

    - #### public static int next(int i)

    - #### public static long next(long l)

    - #### public static double next(double d)

    - #### public static int or(int a, int b)

    - #### public static long or(long a, long b)

    - #### public static int plus(int a, int b)

    - #### public static long plus(long a, long b)

    - #### public static double plus(double a, double b)

    - #### public static int previous(int i)

    - #### public static long previous(long l)

    - #### public static double previous(double d)

    - #### public static int rightShift(int a, int b)

    - #### public static long rightShift(long a, long b)

    - #### public static int xor(int a, int b)

    - #### public static long xor(long a, long b)