List of usage examples for com.google.common.math LongMath divide
@GwtIncompatible("TODO") @SuppressWarnings("fallthrough") public static long divide(long p, long q, RoundingMode mode)
From source file:com.google.caliper.runner.instrument.NanoTimeGranularityModule.java
@Provides @RunScoped// w w w .jav a2s .c om @NanoTimeGranularity static ShortDuration testNanoTimeGranularity() { long total = 0L; for (int i = 0; i < TRIALS; i++) { long first = System.nanoTime(); long second = System.nanoTime(); long third = System.nanoTime(); long fourth = System.nanoTime(); long fifth = System.nanoTime(); long sixth = System.nanoTime(); long seventh = System.nanoTime(); long eighth = System.nanoTime(); long ninth = System.nanoTime(); total += second - first; total += third - second; total += fourth - third; total += fifth - fourth; total += sixth - fifth; total += seventh - sixth; total += eighth - seventh; total += ninth - eighth; } return ShortDuration.of(LongMath.divide(total, TRIALS * 8, CEILING), NANOSECONDS); }
From source file:c5db.log.LogTestUtil.java
/** * Create and return (end - start) entries, in ascending sequence number order, from start inclusive, * to end exclusive./*from w w w . ja v a2 s . c o m*/ */ public static List<OLogEntry> someConsecutiveEntries(long start, long end) { List<OLogEntry> entries = new ArrayList<>(); for (long i = start; i < end; i++) { entries.add(makeEntry(i, LongMath.divide(i + 1, 2, RoundingMode.CEILING), someData())); } return entries; }
From source file:com.google.jimfs.HeapDisk.java
/** Returns the nearest multiple of {@code blockSize} that is <= {@code size}. */ private static int toBlockCount(long size, int blockSize) { return (int) LongMath.divide(size, blockSize, RoundingMode.FLOOR); }
From source file:org.fabrician.enabler.util.TimeUtil.java
/** * Format duration message in integral units of increasing coarse grains for display purpose * /*from w ww. jav a 2s. com*/ * @param duration * the duration in millisecs * @return a formatted duration string in secs, mins,hrs or weeks */ public static String formatDuration(long duration) { Validate.isTrue(duration >= 0, "Duration is negative", duration); if (duration < SEC_DURATION) { return duration + "ms"; } else if (duration >= SEC_DURATION && duration < MIN_DURATION) { return formatDurationMsg(TimeUnit.MILLISECONDS.toSeconds(duration), "sec"); } else if (duration >= MIN_DURATION && duration < HR_DURATION) { long num_secs = TimeUnit.MILLISECONDS.toSeconds(duration); long num_mins = LongMath.divide(num_secs, 60, RoundingMode.DOWN); long residue_secs = num_secs - (num_mins * 60); return formatDurationMsg(num_mins, "min", residue_secs, "sec"); } else if (duration >= HR_DURATION && duration < DAY_DURATION) { long num_mins = TimeUnit.MILLISECONDS.toMinutes(duration); long num_hrs = LongMath.divide(num_mins, 60, RoundingMode.DOWN); long residue_mins = num_mins - (num_hrs * 60); return formatDurationMsg(num_hrs, "hr", residue_mins, "min"); } else if (duration >= DAY_DURATION && duration < WEEK_DURATION) { long num_hrs = TimeUnit.MILLISECONDS.toHours(duration); long num_days = LongMath.divide(num_hrs, 24, RoundingMode.DOWN); long residue_hrs = num_hrs - (num_days * 24); return formatDurationMsg(num_days, "day", residue_hrs, "hr"); } else { long num_days = TimeUnit.MILLISECONDS.toDays(duration); long num_weeks = LongMath.divide(num_days, 7, RoundingMode.DOWN); long residue_days = num_days - (num_weeks * 7); return formatDurationMsg(num_weeks, "week", residue_days, "day"); } }
From source file:com.duprasville.guava.probably.CuckooTable.java
public static int calculateDataLength(long numBuckets, int numEntriesPerBucket, int numBitsPerEntry) { checkArgument(numBuckets > 0, "numBuckets (%s) must be > 0", numBuckets); checkArgument(numEntriesPerBucket > 0, "numEntriesPerBucket (%s) must be > 0", numEntriesPerBucket); checkArgument(numBitsPerEntry > 0, "numBitsPerEntry (%s) must be > 0", numBitsPerEntry); return Ints.checkedCast(LongMath.divide( LongMath.checkedMultiply(numBuckets, LongMath.checkedMultiply(numEntriesPerBucket, numBitsPerEntry)), Long.SIZE, RoundingMode.CEILING)); }
From source file:io.crate.operation.scalar.timestamp.CurrentTimestampFunction.java
private static long applyPrecision(long millis, int precision) { int factor;/*from w ww . java 2s .co m*/ switch (precision) { case 0: factor = 1000; break; case 1: factor = 100; break; case 2: factor = 10; break; case 3: return millis; default: throw new IllegalArgumentException("Precision must be between 0 and 3"); } return LongMath.divide(millis, factor, RoundingMode.DOWN) * factor; }
From source file:gobblin.source.extractor.extract.LongWatermark.java
@Override public short calculatePercentCompletion(Watermark lowWatermark, Watermark highWatermark) { Preconditions.checkArgument(lowWatermark instanceof LongWatermark); Preconditions.checkArgument(highWatermark instanceof LongWatermark); long total = ((LongWatermark) highWatermark).value - ((LongWatermark) lowWatermark).value; long pulled = this.value - ((LongWatermark) lowWatermark).value; Preconditions.checkState(total >= 0); Preconditions.checkState(pulled >= 0); if (total == 0) { return 0; }/*from w w w .java 2s . c om*/ long percent = Math.min(100, LongMath.divide(pulled * 100, total, RoundingMode.HALF_UP)); return (short) percent; }
From source file:org.terasology.world.sun.DefaultCelestialSystem.java
/** * Updates the game perception of the time of day via launching a new OnMiddayEvent(), * OnDuskEvent(), OnMidnightEvent(), or OnDawnEvent() based on the time of day when * this method is called upon./*from ww w . j a v a2s.c o m*/ */ protected void fireEvents() { long startTime = worldTime.getMilliseconds(); long delta = startTime - lastUpdate; if (delta > 0) { long timeInDay = LongMath.mod(startTime, DAY_LENGTH); long day = LongMath.divide(startTime, DAY_LENGTH, RoundingMode.FLOOR); long dawn = model.getDawn(day); long midday = model.getMidday(day); long dusk = model.getDusk(day); long midnight = model.getMidnight(day); if (timeInDay - delta < midday && timeInDay >= midday) { long tick = day * DAY_LENGTH + midday; getWorldEntity().send(new OnMiddayEvent(tick)); } if (timeInDay - delta < dusk && timeInDay >= dusk) { long tick = day * DAY_LENGTH + dusk; getWorldEntity().send(new OnDuskEvent(tick)); } if (timeInDay - delta < midnight && timeInDay >= midnight) { long tick = day * DAY_LENGTH + midnight; getWorldEntity().send(new OnMidnightEvent(tick)); } if (timeInDay - delta < dawn && timeInDay >= dawn) { long tick = day * DAY_LENGTH + dawn; getWorldEntity().send(new OnDawnEvent(tick)); } } lastUpdate = startTime; }
From source file:org.terasology.world.time.WorldTimeImpl.java
@Override public void update(float delta) { long deltaMs = time.getDeltaInMs(); if (deltaMs > 0) { deltaMs = (long) (deltaMs * WORLD_TIME_MULTIPLIER); long startTime = worldTime.getAndAdd(deltaMs); long endTime = startTime + deltaMs; long timeInDay = LongMath.mod(startTime, DAY_LENGTH); long day = LongMath.divide(startTime, DAY_LENGTH, RoundingMode.FLOOR); long startTick = startTime / TICK_EVENT_RATE; long endTick = (endTime) / TICK_EVENT_RATE; if (startTick != endTick) { long tick = endTime - endTime % TICK_EVENT_RATE; getWorldEntity().send(new WorldTimeEvent(tick)); }/*from w w w.j a va 2s.com*/ if (timeInDay < MIDDAY_TIME && timeInDay + deltaMs >= MIDDAY_TIME) { long tick = day * DAY_LENGTH + MIDDAY_TIME; getWorldEntity().send(new OnMiddayEvent(tick)); } if (timeInDay < DUSK_TIME && timeInDay + deltaMs >= DUSK_TIME) { long tick = day * DAY_LENGTH + DUSK_TIME; getWorldEntity().send(new OnDuskEvent(tick)); } if (timeInDay < MIDNIGHT_TIME && timeInDay + deltaMs >= MIDNIGHT_TIME) { long tick = day * DAY_LENGTH + MIDNIGHT_TIME; getWorldEntity().send(new OnMidnightEvent(tick)); } if (timeInDay < DAWN_TIME && timeInDay + deltaMs >= DAWN_TIME) { long tick = day * DAY_LENGTH + DAWN_TIME; getWorldEntity().send(new OnDawnEvent(tick)); } } }
From source file:gobblin.source.extractor.extract.kafka.MultiLongWatermark.java
/** * Given a low watermark (starting point) and a high watermark (target), returns the percentage * of events pulled.//from w ww.j a va2 s. com * * @return a percentage value between 0 and 100. */ @Override public short calculatePercentCompletion(Watermark lowWatermark, Watermark highWatermark) { Preconditions.checkArgument( lowWatermark instanceof MultiLongWatermark && highWatermark instanceof MultiLongWatermark, String.format("Arguments of %s.%s must be of type %s", MultiLongWatermark.class.getSimpleName(), Thread.currentThread().getStackTrace()[1].getMethodName(), MultiLongWatermark.class.getSimpleName())); long pulled = ((MultiLongWatermark) lowWatermark).getGap(this); long all = ((MultiLongWatermark) lowWatermark).getGap((MultiLongWatermark) highWatermark); Preconditions.checkState(all > 0); long percent = Math.min(100, LongMath.divide(pulled * 100, all, RoundingMode.HALF_UP)); return (short) percent; }