IndyMath (Groovy 2.4.11)
Date: 2017-04-27

org.codehaus.groovy.vmplugin.v7

## Class IndyMath

- java.lang.Object
- - org.codehaus.groovy.vmplugin.v7.IndyMath

-     public class IndyMath
      extends Object

  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.
  Author:
    Jochen "blackdrag" Theodorou

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IndyMath()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method 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 double` | `minus(double a, double b)`
    `static int` | `minus(int a, int b)`
    `static long` | `minus(long a, long b)`
    `static int` | `mod(int a, int b)`
    `static long` | `mod(long a, long b)`
    `static double` | `multiply(double a, double b)`
    `static int` | `multiply(int a, int b)`
    `static long` | `multiply(long a, long b)`
    `static double` | `next(double d)`
    `static int` | `next(int i)`
    `static long` | `next(long l)`
    `static int` | `or(int a, int b)`
    `static long` | `or(long a, long b)`
    `static double` | `plus(double a, double b)`
    `static int` | `plus(int a, int b)`
    `static long` | `plus(long a, long b)`
    `static double` | `previous(double d)`
    `static int` | `previous(int i)`
    `static long` | `previous(long l)`
    `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)`

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

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

- - ### Constructor Detail

    - #### IndyMath

          public IndyMath()

  - ### Method Detail

    - #### chooseMathMethod

          public static boolean chooseMathMethod(Selector info,
                                                 MetaMethod metaMethod)

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

    - #### plus

          public static int plus(int a,
                                 int b)

    - #### minus

          public static int minus(int a,
                                  int b)

    - #### multiply

          public static int multiply(int a,
                                     int b)

    - #### mod

          public static int mod(int a,
                                int b)

    - #### or

          public static int or(int a,
                               int b)

    - #### xor

          public static int xor(int a,
                                int b)

    - #### and

          public static int and(int a,
                                int b)

    - #### leftShift

          public static int leftShift(int a,
                                      int b)

    - #### rightShift

          public static int rightShift(int a,
                                       int b)

    - #### plus

          public static long plus(long a,
                                  long b)

    - #### minus

          public static long minus(long a,
                                   long b)

    - #### multiply

          public static long multiply(long a,
                                      long b)

    - #### mod

          public static long mod(long a,
                                 long b)

    - #### or

          public static long or(long a,
                                long b)

    - #### xor

          public static long xor(long a,
                                 long b)

    - #### and

          public static long and(long a,
                                 long b)

    - #### leftShift

          public static long leftShift(long a,
                                       long b)

    - #### rightShift

          public static long rightShift(long a,
                                        long b)

    - #### plus

          public static double plus(double a,
                                    double b)

    - #### minus

          public static double minus(double a,
                                     double b)

    - #### multiply

          public static double multiply(double a,
                                        double b)

    - #### div

          public static double div(double a,
                                   double b)

    - #### next

          public static int next(int i)

    - #### next

          public static long next(long l)

    - #### next

          public static double next(double d)

    - #### previous

          public static int previous(int i)

    - #### previous

          public static long previous(long l)

    - #### previous

          public static double previous(double d)