00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.util;
00023
00028 public class MathUtils {
00029
00033 private MathUtils() {
00034 }
00035
00042 public static int div(final int numerator, final int denominator) {
00043 if (numerator >= 0) {
00044 return numerator/denominator;
00045 } else {
00046 return -((denominator-1-numerator)/denominator);
00047 }
00048 }
00049
00056 public static int mod(final int numerator, final int denominator) {
00057 final int result = numerator%denominator;
00058 return result < 0 ? result+denominator : result;
00059 }
00060
00067 public static int divRoundUp(final int numerator, final int denominator) {
00068 if (numerator >= 0) {
00069 return (numerator+denominator-1)/denominator;
00070 } else {
00071 return -(-numerator/denominator);
00072 }
00073 }
00074
00081 public static int divRound(final int numerator, final int denominator) {
00082 if (numerator >= 0) {
00083 return (numerator+denominator/2)/denominator;
00084 } else {
00085 return -((-numerator-denominator/2+1)/denominator);
00086 }
00087 }
00088
00089 }