public static final float sinLUT(float x) { x %= TWOPI; if (x < 0) { x += TWOPI; } if (Settings.SINCOS_LUT_LERP) { x /= Settings.SINCOS_LUT_PRECISION; final int index = (int) x; if (index != 0) { x %= index; } // the next index is 0 if (index == Settings.SINCOS_LUT_LENGTH - 1) { return ((1 - x) * sinLUT[index] + x * sinLUT[0]); } else { return ((1 - x) * sinLUT[index] + x * sinLUT[index + 1]); } } else { return sinLUT[MathUtils.round(x / Settings.SINCOS_LUT_PRECISION) % Settings.SINCOS_LUT_LENGTH]; } }
public static final float sinLUT(float x) { x %= TWOPI; if (x < 0) { x += TWOPI; } if (Settings.SINCOS_LUT_LERP) { x /= Settings.SINCOS_LUT_PRECISION; final int index = (int) x; if (index != 0) { x %= index; } // the next index is 0 if (index == Settings.SINCOS_LUT_LENGTH - 1) { return ((1 - x) * sinLUT[index] + x * sinLUT[0]); } else { return ((1 - x) * sinLUT[index] + x * sinLUT[index + 1]); } } else { return sinLUT[MathUtils.round(x / Settings.SINCOS_LUT_PRECISION) % Settings.SINCOS_LUT_LENGTH]; } }
public final float sin(float x){ x %= TWOPI; if(LERP_LOOKUP){ x /= precision; final int index = (int)x; if(index != 0){ x %= index; } // the next index is 0 if(index == tableLength-1){ return ( (1-x)*sinLUT[index] + x * sinLUT[0]); }else{ return ( (1-x)*sinLUT[index] + x * sinLUT[index + 1]); } }else{ return sinLUT[ MathUtils.round(x / precision) % tableLength]; } } }
public final float sin(float x){ x %= TWOPI; if(LERP_LOOKUP){ x /= precision; final int index = (int)x; if(index != 0){ x %= index; } // the next index is 0 if(index == tableLength-1){ return ( (1-x)*sinLUT[index] + x * sinLUT[0]); }else{ return ( (1-x)*sinLUT[index] + x * sinLUT[index + 1]); } }else{ return sinLUT[ MathUtils.round(x / precision) % tableLength]; } } }
public static final float sinLUT(float x) { x %= TWOPI; if (x < 0) { x += TWOPI; } if (Settings.SINCOS_LUT_LERP) { x /= Settings.SINCOS_LUT_PRECISION; final int index = (int) x; if (index != 0) { x %= index; } // the next index is 0 if (index == Settings.SINCOS_LUT_LENGTH - 1) { return ((1 - x) * sinLUT[index] + x * sinLUT[0]); } else { return ((1 - x) * sinLUT[index] + x * sinLUT[index + 1]); } } else { return sinLUT[MathUtils.round(x / Settings.SINCOS_LUT_PRECISION) % Settings.SINCOS_LUT_LENGTH]; } }
public static final float sinLUT(float x) { x %= TWOPI; if (x < 0) { x += TWOPI; } if (Settings.SINCOS_LUT_LERP) { x /= Settings.SINCOS_LUT_PRECISION; final int index = (int) x; if (index != 0) { x %= index; } // the next index is 0 if (index == Settings.SINCOS_LUT_LENGTH - 1) { return ((1 - x) * sinLUT[index] + x * sinLUT[0]); } else { return ((1 - x) * sinLUT[index] + x * sinLUT[index + 1]); } } else { return sinLUT[MathUtils.round(x / Settings.SINCOS_LUT_PRECISION) % Settings.SINCOS_LUT_LENGTH]; } }