コード例 #1
0
ファイル: XMath.java プロジェクト: tomka/fiji
 public static long binomial(LongPair pair) {
   Object find = pascal.get(pair);
   if (find == null) {
     long l = binomial(pair.x() - 1, pair.y() - 1);
     long r = binomial(pair.x() - 1, pair.y());
     pascal.put(pair, new Long(l + r));
     return l + r;
   }
   return ((Long) find).longValue();
 }
コード例 #2
0
  private void internalReset(String term) throws IOException {
    if (indexFile != null) {
      if (index == null) {
        index =
            new ImmutableBTreeIndex.Reader<String, LongPair>(
                indexFile, new StringSerializer(), new LongPairSerializer(), false);
      }
      Generation.Entry<String, LongPair> e = index.floor(term);
      if (e == null) {
        e = index.first();
      }
      lastTermBytes = e.getKey().getBytes(Charsets.UTF_8);
      lastTermByteBuffer = ByteBuffer.wrap(lastTermBytes);
      lastTermLength = lastTermBytes.length;
      lastString = null;
      final LongPair p = e.getValue();
      refillBuffer(p.getFirst());
      lastTermOffset = p.getSecond();
      lastTermDocFreq = (int) readVLong();
      done = false;

      while (decoder
                  .decode((ByteBuffer) lastTermByteBuffer.position(0).limit(lastTermLength))
                  .toString()
                  .compareTo(term)
              < 0
          && next()) {}
      bufferNext = true;
    } else {
      lastTermLength = 0;
      lastTermOffset = 0L;
      lastTermDocFreq = 0;
      lastString = null;

      bufferLen = 0;
      bufferOffset = 0L;
      bufferPtr = 0;

      done = false;

      while (next()
          && new String(lastTermBytes, 0, lastTermLength, Charsets.UTF_8).compareTo(term) < 0) {}
      bufferNext = true;
    }
  }
コード例 #3
0
  /* (non-Javadoc)
   * @see eu.stratosphere.pact.runtime.plugable.TypeAccessorsV2#putNormalizedKey(java.lang.Object, byte[], int, int)
   */
  @Override
  public void putNormalizedKey(LongPair record, byte[] target, int offset, int len) {
    final long value = record.getKey();

    if (len == 8) {
      // default case, full normalized key
      long highByte = ((value >>> 56) & 0xff);
      highByte -= Byte.MIN_VALUE;
      target[offset] = (byte) highByte;
      target[offset + 1] = (byte) (value >>> 48);
      target[offset + 2] = (byte) (value >>> 40);
      target[offset + 3] = (byte) (value >>> 32);
      target[offset + 4] = (byte) (value >>> 24);
      target[offset + 5] = (byte) (value >>> 16);
      target[offset + 6] = (byte) (value >>> 8);
      target[offset + 7] = (byte) (value);
    } else if (len <= 0) {
    } else if (len < 8) {
      long highByte = ((value >>> 56) & 0xff);
      highByte -= Byte.MIN_VALUE;
      target[offset] = (byte) highByte;
      len--;
      for (int i = 1; len > 0; len--, i++) {
        target[offset + i] = (byte) (value >>> ((7 - i) << 3));
      }
    } else {
      long highByte = ((value >>> 56) & 0xff);
      highByte -= Byte.MIN_VALUE;
      target[offset] = (byte) highByte;
      target[offset + 1] = (byte) (value >>> 48);
      target[offset + 2] = (byte) (value >>> 40);
      target[offset + 3] = (byte) (value >>> 32);
      target[offset + 4] = (byte) (value >>> 24);
      target[offset + 5] = (byte) (value >>> 16);
      target[offset + 6] = (byte) (value >>> 8);
      target[offset + 7] = (byte) (value);
      for (int i = 8; i < len; i++) {
        target[offset + i] = 0;
      }
    }
  }
コード例 #4
0
 public boolean equalToReference(LongPair candidate) {
   return candidate.getKey() == this.reference;
 }
コード例 #5
0
 public void setReferenceForEquality(LongPair reference) {
   this.reference = reference.getKey();
 }
コード例 #6
0
 /* (non-Javadoc)
  * @see eu.stratosphere.pact.runtime.plugable.TypeAccessorsV2#hash(java.lang.Object)
  */
 @Override
 public int hash(LongPair object) {
   final long key = object.getKey();
   return ((int) (key >>> 32)) ^ ((int) key);
 }
コード例 #7
0
 /* (non-Javadoc)
  * @see eu.stratosphere.pact.runtime.plugable.TypeAccessorsV2#deserialize(java.lang.Object, eu.stratosphere.nephele.services.memorymanager.DataInputView)
  */
 @Override
 public void deserialize(LongPair target, DataInputViewV2 source) throws IOException {
   target.setKey(source.readLong());
   target.setValue(source.readLong());
 }
コード例 #8
0
 /* (non-Javadoc)
  * @see eu.stratosphere.pact.runtime.plugable.TypeAccessorsV2#serialize(java.lang.Object, eu.stratosphere.nephele.services.memorymanager.DataOutputView)
  */
 @Override
 public long serialize(LongPair record, DataOutputViewV2 target) throws IOException {
   target.writeLong(record.getKey());
   target.writeLong(record.getValue());
   return 16;
 }
コード例 #9
0
 /* (non-Javadoc)
  * @see eu.stratosphere.pact.runtime.plugable.TypeAccessorsV2#copyTo(java.lang.Object, java.lang.Object)
  */
 @Override
 public void copyTo(LongPair from, LongPair to) {
   to.setKey(from.getKey());
   to.setValue(from.getValue());
 }
コード例 #10
0
 /* (non-Javadoc)
  * @see eu.stratosphere.pact.runtime.plugable.TypeAccessorsV2#createCopy(java.lang.Object)
  */
 @Override
 public LongPair createCopy(LongPair from) {
   return new LongPair(from.getKey(), from.getValue());
 }