Top Description Fields Constructors Methods
org.lwjgl.util.libdivide

public Class LibDivide

extends Object
Class Inheritance
Imports
org.lwjgl.system.*

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 Summary

Modifier and TypeField and Description
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
LIBDIVIDE_VERSION_MAJOR

Library version.

public static final int
LIBDIVIDE_VERSION_MINOR

Library version.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
private static long
libdivide_128_div_64_to_64(long u1, long u0, long v, long remainder)

private static int
libdivide_mullhi_s16(short x, short y)

private static int
libdivide_mullhi_s32(int x, int y)

private static int
libdivide_mullhi_u16(short x, short y)

private static int
libdivide_mullhi_u32(int x, int y)

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

pack-priv static short
public static LibDivideS16BranchFree
pack-priv static LibDivideS16BranchFree
public static short
public static short
libdivide_s16_do(short numer, LibDivideS16 denom)

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

pack-priv static short
libdivide_s16_do_ref(short numer, LibDivideS16 denom)

public static LibDivideS16
libdivide_s16_gen(short denom, LibDivideS16 __result)

pack-priv static LibDivideS16
libdivide_s16_gen_ref(short denom, LibDivideS16 __result)

public static short
public static int
public static int
libdivide_s32_branchfree_do(int numer, int magic, byte more)

pack-priv static int
public static LibDivideS32BranchFree
pack-priv static LibDivideS32BranchFree
public static int
public static int
libdivide_s32_do(int numer, LibDivideS32 denom)

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

pack-priv static int
public static LibDivideS32
libdivide_s32_gen(int denom, LibDivideS32 __result)

pack-priv static LibDivideS32
libdivide_s32_gen_ref(int denom, LibDivideS32 __result)

public static int
public static long
public static long
libdivide_s64_branchfree_do(long numer, long magic, byte more)

pack-priv static long
public static LibDivideS64BranchFree
pack-priv static LibDivideS64BranchFree
public static long
public static long
libdivide_s64_do(long numer, LibDivideS64 denom)

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

pack-priv static long
public static LibDivideS64
libdivide_s64_gen(long denom, LibDivideS64 __result)

pack-priv static LibDivideS64
libdivide_s64_gen_ref(long denom, LibDivideS64 __result)

public static long
public static short
public static short
libdivide_u16_branchfree_do(short numer, short magic, byte more)

pack-priv static short
public static LibDivideU16BranchFree
pack-priv static LibDivideU16BranchFree
public static short
public static short
libdivide_u16_do(short numer, LibDivideU16 denom)

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

pack-priv static short
libdivide_u16_do_ref(short numer, LibDivideU16 denom)

public static LibDivideU16
libdivide_u16_gen(short denom, LibDivideU16 __result)

pack-priv static LibDivideU16
libdivide_u16_gen_ref(short denom, LibDivideU16 __result)

public static short
public static int
public static int
libdivide_u32_branchfree_do(int numer, int magic, byte more)

pack-priv static int
public static LibDivideU32BranchFree
pack-priv static LibDivideU32BranchFree
public static int
public static int
libdivide_u32_do(int numer, LibDivideU32 denom)

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

pack-priv static int
public static LibDivideU32
libdivide_u32_gen(int denom, LibDivideU32 __result)

pack-priv static LibDivideU32
libdivide_u32_gen_ref(int denom, LibDivideU32 __result)

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

pack-priv static long
public static LibDivideU64BranchFree
pack-priv static LibDivideU64BranchFree
public static long
public static long
libdivide_u64_do(long numer, LibDivideU64 denom)

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

pack-priv static long
public static LibDivideU64
libdivide_u64_gen(long denom, LibDivideU64 __result)

pack-priv static LibDivideU64
libdivide_u64_gen_ref(long denom, LibDivideU64 __result)

public static long
pack-priv static native short
nlibdivide_s16_branchfree_do_ref(short numer, long denom)

pack-priv static native void
nlibdivide_s16_branchfree_gen_ref(short denom, long __result)

public static native short
pack-priv static native short
nlibdivide_s16_do_ref(short numer, long denom)

pack-priv static native void
nlibdivide_s16_gen_ref(short denom, long __result)

public static native short
pack-priv static native int
nlibdivide_s32_branchfree_do_ref(int numer, long denom)

pack-priv static native void
nlibdivide_s32_branchfree_gen_ref(int denom, long __result)

public static native int
pack-priv static native int
nlibdivide_s32_do_ref(int numer, long denom)

pack-priv static native void
nlibdivide_s32_gen_ref(int denom, long __result)

public static native int
pack-priv static native long
nlibdivide_s64_branchfree_do_ref(long numer, long denom)

pack-priv static native void
nlibdivide_s64_branchfree_gen_ref(long denom, long __result)

public static native long
pack-priv static native long
nlibdivide_s64_do_ref(long numer, long denom)

pack-priv static native void
nlibdivide_s64_gen_ref(long denom, long __result)

public static native long
pack-priv static native short
nlibdivide_u16_branchfree_do_ref(short numer, long denom)

pack-priv static native void
nlibdivide_u16_branchfree_gen_ref(short denom, long __result)

public static native short
pack-priv static native short
nlibdivide_u16_do_ref(short numer, long denom)

pack-priv static native void
nlibdivide_u16_gen_ref(short denom, long __result)

public static native short
pack-priv static native int
nlibdivide_u32_branchfree_do_ref(int numer, long denom)

pack-priv static native void
nlibdivide_u32_branchfree_gen_ref(int denom, long __result)

public static native int
pack-priv static native int
nlibdivide_u32_do_ref(int numer, long denom)

pack-priv static native void
nlibdivide_u32_gen_ref(int denom, long __result)

public static native int
pack-priv static native long
nlibdivide_u64_branchfree_do_ref(long numer, long denom)

pack-priv static native void
nlibdivide_u64_branchfree_gen_ref(long denom, long __result)

public static native long
pack-priv static native long
nlibdivide_u64_do_ref(long numer, long denom)

pack-priv static native void
nlibdivide_u64_gen_ref(long denom, long __result)

public static native long
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait