Class LibDivide

java.lang.Object
org.lwjgl.util.libdivide.LibDivide

public class LibDivide extends Object
Native bindings to libdivide.

libdivide allows you to replace expensive integer divides with comparatively cheap multiplication and bitshifts. Compilers usually do this, but only when the divisor is known at compile time. libdivide allows you to take advantage of it at runtime. The result is that integer division can become faster - a lot faster.

LWJGL: This is a hybrid implementation. Divider recovery methods use standard JNI bindings. All *_gen, *_do & *_get_algorithm functions have been ported to pure Java. This eliminates the JNI overhead and enables the JVM to inline and further optimize these methods.

  • Field Details

  • Method Details

    • nlibdivide_s16_recover

      public static short nlibdivide_s16_recover(long denom)
    • libdivide_s16_recover

      public static short libdivide_s16_recover(LibDivideS16 denom)
    • nlibdivide_u16_recover

      public static short nlibdivide_u16_recover(long denom)
    • libdivide_u16_recover

      public static short libdivide_u16_recover(LibDivideU16 denom)
    • nlibdivide_s32_recover

      public static int nlibdivide_s32_recover(long denom)
    • libdivide_s32_recover

      public static int libdivide_s32_recover(LibDivideS32 denom)
    • nlibdivide_u32_recover

      public static int nlibdivide_u32_recover(long denom)
    • libdivide_u32_recover

      public static int libdivide_u32_recover(LibDivideU32 denom)
    • nlibdivide_s64_recover

      public static long nlibdivide_s64_recover(long denom)
    • libdivide_s64_recover

      public static long libdivide_s64_recover(LibDivideS64 denom)
    • nlibdivide_u64_recover

      public static long nlibdivide_u64_recover(long denom)
    • libdivide_u64_recover

      public static long libdivide_u64_recover(LibDivideU64 denom)
    • nlibdivide_s16_branchfree_recover

      public static short nlibdivide_s16_branchfree_recover(long denom)
    • libdivide_s16_branchfree_recover

      public static short libdivide_s16_branchfree_recover(LibDivideS16BranchFree denom)
    • nlibdivide_u16_branchfree_recover

      public static short nlibdivide_u16_branchfree_recover(long denom)
    • libdivide_u16_branchfree_recover

      public static short libdivide_u16_branchfree_recover(LibDivideU16BranchFree denom)
    • nlibdivide_s32_branchfree_recover

      public static int nlibdivide_s32_branchfree_recover(long denom)
    • libdivide_s32_branchfree_recover

      public static int libdivide_s32_branchfree_recover(LibDivideS32BranchFree denom)
    • nlibdivide_u32_branchfree_recover

      public static int nlibdivide_u32_branchfree_recover(long denom)
    • libdivide_u32_branchfree_recover

      public static int libdivide_u32_branchfree_recover(LibDivideU32BranchFree denom)
    • nlibdivide_s64_branchfree_recover

      public static long nlibdivide_s64_branchfree_recover(long denom)
    • libdivide_s64_branchfree_recover

      public static long libdivide_s64_branchfree_recover(LibDivideS64BranchFree denom)
    • nlibdivide_u64_branchfree_recover

      public static long nlibdivide_u64_branchfree_recover(long denom)
    • libdivide_u64_branchfree_recover

      public static long libdivide_u64_branchfree_recover(LibDivideU64BranchFree denom)
    • libdivide_s16_gen

      public static LibDivideS16 libdivide_s16_gen(short denom, LibDivideS16 __result)
    • libdivide_u16_gen

      public static LibDivideU16 libdivide_u16_gen(short denom, LibDivideU16 __result)
    • libdivide_s32_gen

      public static LibDivideS32 libdivide_s32_gen(int denom, LibDivideS32 __result)
    • libdivide_u32_gen

      public static LibDivideU32 libdivide_u32_gen(int denom, LibDivideU32 __result)
    • libdivide_s64_gen

      public static LibDivideS64 libdivide_s64_gen(long denom, LibDivideS64 __result)
    • libdivide_u64_gen

      public static LibDivideU64 libdivide_u64_gen(long denom, LibDivideU64 __result)
    • libdivide_s16_branchfree_gen

      public static LibDivideS16BranchFree libdivide_s16_branchfree_gen(short denom, LibDivideS16BranchFree __result)
    • libdivide_u16_branchfree_gen

      public static LibDivideU16BranchFree libdivide_u16_branchfree_gen(short denom, LibDivideU16BranchFree __result)
    • libdivide_s32_branchfree_gen

      public static LibDivideS32BranchFree libdivide_s32_branchfree_gen(int denom, LibDivideS32BranchFree __result)
    • libdivide_u32_branchfree_gen

      public static LibDivideU32BranchFree libdivide_u32_branchfree_gen(int denom, LibDivideU32BranchFree __result)
    • libdivide_s64_branchfree_gen

      public static LibDivideS64BranchFree libdivide_s64_branchfree_gen(long denom, LibDivideS64BranchFree __result)
    • libdivide_u64_branchfree_gen

      public static LibDivideU64BranchFree libdivide_u64_branchfree_gen(long denom, LibDivideU64BranchFree __result)
    • libdivide_s16_do

      public static short libdivide_s16_do(short numer, LibDivideS16 denom)
    • libdivide_s16_do

      public static short libdivide_s16_do(short numer, short magic, byte more)
    • libdivide_u16_do

      public static short libdivide_u16_do(short numer, LibDivideU16 denom)
    • libdivide_u16_do

      public static short libdivide_u16_do(short numer, short magic, byte more)
    • libdivide_s32_do

      public static int libdivide_s32_do(int numer, LibDivideS32 denom)
    • libdivide_s32_do

      public static int libdivide_s32_do(int numer, int magic, byte more)
    • libdivide_u32_do

      public static int libdivide_u32_do(int numer, LibDivideU32 denom)
    • libdivide_u32_do

      public static int libdivide_u32_do(int numer, int magic, byte more)
    • libdivide_s64_do

      public static long libdivide_s64_do(long numer, LibDivideS64 denom)
    • libdivide_s64_do

      public static long libdivide_s64_do(long numer, long magic, byte more)
    • libdivide_u64_do

      public static long libdivide_u64_do(long numer, LibDivideU64 denom)
    • libdivide_u64_do

      public static long libdivide_u64_do(long numer, long magic, byte more)
    • libdivide_s16_branchfree_do

      public static short libdivide_s16_branchfree_do(short numer, LibDivideS16BranchFree denom)
    • libdivide_s16_branchfree_do

      public static short libdivide_s16_branchfree_do(short numer, short magic, byte more)
    • libdivide_u16_branchfree_do

      public static short libdivide_u16_branchfree_do(short numer, LibDivideU16BranchFree denom)
    • libdivide_u16_branchfree_do

      public static short libdivide_u16_branchfree_do(short numer, short magic, byte more)
    • libdivide_s32_branchfree_do

      public static int libdivide_s32_branchfree_do(int numer, LibDivideS32BranchFree denom)
    • libdivide_s32_branchfree_do

      public static int libdivide_s32_branchfree_do(int numer, int magic, byte more)
    • libdivide_u32_branchfree_do

      public static int libdivide_u32_branchfree_do(int numer, LibDivideU32BranchFree denom)
    • libdivide_u32_branchfree_do

      public static int libdivide_u32_branchfree_do(int numer, int magic, byte more)
    • libdivide_s64_branchfree_do

      public static long libdivide_s64_branchfree_do(long numer, LibDivideS64BranchFree denom)
    • libdivide_s64_branchfree_do

      public static long libdivide_s64_branchfree_do(long numer, long magic, byte more)
    • libdivide_u64_branchfree_do

      public static long libdivide_u64_branchfree_do(long numer, LibDivideU64BranchFree denom)
    • libdivide_u64_branchfree_do

      public static long libdivide_u64_branchfree_do(long numer, long magic, byte more)