Example usage for com.google.common.math LongMath mod

List of usage examples for com.google.common.math LongMath mod

Introduction

In this page you can find the example usage for com.google.common.math LongMath mod.

Prototype

@GwtIncompatible("TODO")
public static long mod(long x, long m) 

Source Link

Document

Returns x mod m , a non-negative value less than m .

Usage

From source file:com.github.dokandev.dokanjava.util.FileTime.java

public static ZonedDateTime toDate(long fileTime) {
    long secondsSince1601 = Math.floorDiv(fileTime, (10 * 1000 * 1000));
    long secondsSince1970 = secondsSince1601 - EPOCH_DIFF;
    int nanoSecondsOffset = LongMath.mod(fileTime, (10 * 1000 * 1000)) * 100;
    return ZonedDateTime.ofInstant(Instant.ofEpochSecond(secondsSince1970, nanoSecondsOffset), ZoneOffset.UTC);
}

From source file:org.terasology.world.time.TimeEventBase.java

public TimeEventBase(long worldTimeMS) {
    this.worldTimeMS = worldTimeMS;
    this.timeInDay = LongMath.mod(worldTimeMS, WorldTime.DAY_LENGTH);
}

From source file:com.cloudera.oryx.als.computation.ComputationDataUtils.java

public static LongObjectMap<float[]> loadPartialY(int partition, int numPartitions, String prefix,
        Configuration conf) throws IOException {
    LongObjectMap<float[]> result = new LongObjectMap<float[]>();
    AvroFileSource<MatrixRow> records = new AvroFileSource<MatrixRow>(Namespaces.toPath(prefix),
            (AvroType<MatrixRow>) ALSTypes.DENSE_ROW_MATRIX);
    for (MatrixRow record : records.read(conf)) {
        long id = record.getRowId();
        if (LongMath.mod(id, numPartitions) == partition) {
            result.put(id, record.getValues());
        }//from w ww .j a  v  a  2 s. co m
    }
    return result;
}

From source file:com.cloudera.gertrude.space.LayerImpl.java

private int computeBucket(String identifier, int numBuckets) {
    long hc = hash.newHasher().putInt(info.getLayerId()).putString(identifier).hash().asLong();
    return LongMath.mod(hc, numBuckets);
}

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.  ja  v  a  2s.co 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));
        }//www . j  a  v a  2  s .  c o  m

        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:org.terasology.musicdirector.TimedTriggerSystem.java

public boolean isTriggered(TimedMusicTriggerComponent trigger) {

    long time = worldTime.getMilliseconds();
    long timeInDay = LongMath.mod(time, WorldTime.DAY_LENGTH);

    long startInMs = DoubleMath.roundToLong(trigger.dailyStart * WorldTime.DAY_LENGTH, RoundingMode.HALF_UP);
    long endInMs = DoubleMath.roundToLong(trigger.dailyEnd * WorldTime.DAY_LENGTH, RoundingMode.HALF_UP);

    if (startInMs < endInMs) {
        // -----[xxxxxxxxxx]------
        return timeInDay >= startInMs && timeInDay <= endInMs;
    } else {/*w  w w .  ja va2 s . co m*/
        // xxxxx]----------[xxxxxx
        return timeInDay >= startInMs || timeInDay <= endInMs;
    }
}