Example usage for org.apache.mahout.common RandomUtils nextTwinPrime

List of usage examples for org.apache.mahout.common RandomUtils nextTwinPrime

Introduction

In this page you can find the example usage for org.apache.mahout.common RandomUtils nextTwinPrime.

Prototype

public static int nextTwinPrime(int n) 

Source Link

Document

Finds next-largest "twin primes": numbers p and p+2 such that both are prime.

Usage

From source file:im.xuwang.extmahout.cf.taste.impl.common.FastIDSet.java

License:Apache License

public FastIDSet(int size, float loadFactor) {
    Preconditions.checkArgument(size >= 0, "size must be at least 0");
    Preconditions.checkArgument(loadFactor >= 1.0f, "loadFactor must be at least 1.0");
    this.loadFactor = loadFactor;
    int max = (int) (RandomUtils.MAX_INT_SMALLER_TWIN_PRIME / loadFactor);
    Preconditions.checkArgument(size < max, "size must be less than %d", max);
    int hashSize = RandomUtils.nextTwinPrime((int) (loadFactor * size));
    keys = new long[hashSize]; // TODO: delete this line
    keysPositive = new long[hashSize];
    keysNegative = new long[hashSize];
    Arrays.fill(keys, NULL);//from  w ww  .j a  va 2 s .c o  m
}

From source file:im.xuwang.extmahout.cf.taste.impl.common.FastIDSet.java

License:Apache License

private void growAndRehash() {
    if (keys.length * loadFactor >= RandomUtils.MAX_INT_SMALLER_TWIN_PRIME) {
        throw new IllegalStateException("Can't grow any more");
    }/*w w w .ja va 2s . co m*/
    rehash(RandomUtils.nextTwinPrime((int) (loadFactor * keys.length)));
}

From source file:im.xuwang.extmahout.cf.taste.impl.common.FastIDSet.java

License:Apache License

public void rehash() {
    rehash(RandomUtils.nextTwinPrime((int) (loadFactor * numEntries)));
}

From source file:org.codelibs.elasticsearch.taste.common.FastByIDMap.java

License:Apache License

/**
 * Creates a new {@link FastByIDMap} whose capacity can accommodate the given number of entries without rehash.
 *
 * @param size desired capacity//from www. j  a va 2 s .co  m
 * @param maxSize max capacity
 * @param loadFactor ratio of internal hash table size to current size
 * @throws IllegalArgumentException if size is less than 0, maxSize is less than 1
 *  or at least half of {@link RandomUtils#MAX_INT_SMALLER_TWIN_PRIME}, or
 *  loadFactor is less than 1
 */
public FastByIDMap(final int size, final int maxSize, final float loadFactor) {
    Preconditions.checkArgument(size >= 0, "size must be at least 0");
    Preconditions.checkArgument(loadFactor >= 1.0f, "loadFactor must be at least 1.0");
    this.loadFactor = loadFactor;
    final int max = (int) (RandomUtils.MAX_INT_SMALLER_TWIN_PRIME / loadFactor);
    Preconditions.checkArgument(size < max, "size must be less than " + max);
    Preconditions.checkArgument(maxSize >= 1, "maxSize must be at least 1");
    final int hashSize = RandomUtils.nextTwinPrime((int) (loadFactor * size));
    keys = new long[hashSize];
    Arrays.fill(keys, NULL);
    values = (V[]) new Object[hashSize];
    this.maxSize = maxSize;
    this.countingAccesses = maxSize != Integer.MAX_VALUE;
    this.recentlyAccessed = countingAccesses ? new BitSet(hashSize) : null;
}

From source file:org.codelibs.elasticsearch.taste.common.FastIDSet.java

License:Apache License

public FastIDSet(final int size, final float loadFactor) {
    Preconditions.checkArgument(size >= 0, "size must be at least 0");
    Preconditions.checkArgument(loadFactor >= 1.0f, "loadFactor must be at least 1.0");
    this.loadFactor = loadFactor;
    final int max = (int) (RandomUtils.MAX_INT_SMALLER_TWIN_PRIME / loadFactor);
    Preconditions.checkArgument(size < max, "size must be less than %d", max);
    final int hashSize = RandomUtils.nextTwinPrime((int) (loadFactor * size));
    keys = new long[hashSize];
    Arrays.fill(keys, NULL);/*from  w ww .ja  v a 2 s  . com*/
}

From source file:org.codelibs.elasticsearch.taste.common.FastMap.java

License:Apache License

/**
 * Creates a new  whose capacity can accommodate the given number of entries without rehash.
 *
 * @param size desired capacity//from  ww w  .  j a va  2s . co m
 * @param maxSize max capacity
 * @throws IllegalArgumentException if size is less than 0, maxSize is less than 1
 *  or at least half of {@link RandomUtils#MAX_INT_SMALLER_TWIN_PRIME}, or
 *  loadFactor is less than 1
 */
public FastMap(final int size, final int maxSize, final float loadFactor) {
    Preconditions.checkArgument(size >= 0, "size must be at least 0");
    Preconditions.checkArgument(loadFactor >= 1.0f, "loadFactor must be at least 1.0");
    this.loadFactor = loadFactor;
    final int max = (int) (RandomUtils.MAX_INT_SMALLER_TWIN_PRIME / loadFactor);
    Preconditions.checkArgument(size < max, "size must be less than " + max);
    Preconditions.checkArgument(maxSize >= 1, "maxSize must be at least 1");
    final int hashSize = RandomUtils.nextTwinPrime((int) (loadFactor * size));
    keys = (K[]) new Object[hashSize];
    values = (V[]) new Object[hashSize];
    this.maxSize = maxSize;
    this.countingAccesses = maxSize != Integer.MAX_VALUE;
    this.recentlyAccessed = countingAccesses ? new BitSet(hashSize) : null;
}

From source file:org.gpfvic.mahout.cf.taste.impl.common.FastByIDMap.java

License:Apache License

/**
 * Creates a new {@link FastByIDMap} whose capacity can accommodate the given number of entries without rehash.
 * /*  ww  w  .  j a  va 2 s. c o m*/
 * @param size desired capacity
 * @param maxSize max capacity
 * @param loadFactor ratio of internal hash table size to current size
 * @throws IllegalArgumentException if size is less than 0, maxSize is less than 1
 *  or at least half of {@link RandomUtils#MAX_INT_SMALLER_TWIN_PRIME}, or
 *  loadFactor is less than 1
 */
public FastByIDMap(int size, int maxSize, float loadFactor) {
    Preconditions.checkArgument(size >= 0, "size must be at least 0");
    Preconditions.checkArgument(loadFactor >= 1.0f, "loadFactor must be at least 1.0");
    this.loadFactor = loadFactor;
    int max = (int) (RandomUtils.MAX_INT_SMALLER_TWIN_PRIME / loadFactor);
    Preconditions.checkArgument(size < max, "size must be less than " + max);
    Preconditions.checkArgument(maxSize >= 1, "maxSize must be at least 1");
    int hashSize = RandomUtils.nextTwinPrime((int) (loadFactor * size));
    keys = new long[hashSize];
    Arrays.fill(keys, NULL);
    values = (V[]) new Object[hashSize];
    this.maxSize = maxSize;
    this.countingAccesses = maxSize != Integer.MAX_VALUE;
    this.recentlyAccessed = countingAccesses ? new BitSet(hashSize) : null;
}

From source file:org.gpfvic.mahout.cf.taste.impl.common.FastIDSet.java

License:Apache License

public FastIDSet(int size, float loadFactor) {
    Preconditions.checkArgument(size >= 0, "size must be at least 0");
    Preconditions.checkArgument(loadFactor >= 1.0f, "loadFactor must be at least 1.0");
    this.loadFactor = loadFactor;
    int max = (int) (RandomUtils.MAX_INT_SMALLER_TWIN_PRIME / loadFactor);
    Preconditions.checkArgument(size < max, "size must be less than %d", max);
    int hashSize = RandomUtils.nextTwinPrime((int) (loadFactor * size));
    keys = new long[hashSize];
    Arrays.fill(keys, NULL);//from  w  w w. j a v a 2 s.c  om
}

From source file:org.gpfvic.mahout.cf.taste.impl.common.FastMap.java

License:Apache License

/**
 * Creates a new  whose capacity can accommodate the given number of entries without rehash.
 * // w w w.j  av  a  2 s .  c  o m
 * @param size desired capacity
 * @param maxSize max capacity
 * @throws IllegalArgumentException if size is less than 0, maxSize is less than 1
 *  or at least half of {@link RandomUtils#MAX_INT_SMALLER_TWIN_PRIME}, or
 *  loadFactor is less than 1
 */
public FastMap(int size, int maxSize, float loadFactor) {
    Preconditions.checkArgument(size >= 0, "size must be at least 0");
    Preconditions.checkArgument(loadFactor >= 1.0f, "loadFactor must be at least 1.0");
    this.loadFactor = loadFactor;
    int max = (int) (RandomUtils.MAX_INT_SMALLER_TWIN_PRIME / loadFactor);
    Preconditions.checkArgument(size < max, "size must be less than " + max);
    Preconditions.checkArgument(maxSize >= 1, "maxSize must be at least 1");
    int hashSize = RandomUtils.nextTwinPrime((int) (loadFactor * size));
    keys = (K[]) new Object[hashSize];
    values = (V[]) new Object[hashSize];
    this.maxSize = maxSize;
    this.countingAccesses = maxSize != Integer.MAX_VALUE;
    this.recentlyAccessed = countingAccesses ? new BitSet(hashSize) : null;
}