You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@giraph.apache.org by ma...@apache.org on 2016/05/19 15:38:30 UTC

[4/4] git commit: updated refs/heads/trunk to 4321e44

GIRAPH-1063: Make primitive type generated fixed capacity min heaps

Summary: It's often needed to get top k (key, value) pairs, but existing implementations deal with objects making them inefficient. Make one with primitive types. Most of the added code is generated.

Test Plan: Added tests, mvn verify passed

Differential Revision: https://reviews.facebook.net/D58299


Project: http://git-wip-us.apache.org/repos/asf/giraph/repo
Commit: http://git-wip-us.apache.org/repos/asf/giraph/commit/4321e448
Tree: http://git-wip-us.apache.org/repos/asf/giraph/tree/4321e448
Diff: http://git-wip-us.apache.org/repos/asf/giraph/diff/4321e448

Branch: refs/heads/trunk
Commit: 4321e4483867cfc55f7fafe0a291b71a6da66824
Parents: 9b6d6f9
Author: Maja Kabiljo <ma...@fb.com>
Authored: Tue May 17 06:55:58 2016 -0700
Committer: Maja Kabiljo <ma...@fb.com>
Committed: Thu May 19 08:38:02 2016 -0700

----------------------------------------------------------------------
 .../primitive/pairs/BooleanBooleanConsumer.java |  37 ++
 .../pairs/BooleanBooleanPredicate.java          |  38 ++
 .../primitive/pairs/BooleanByteConsumer.java    |  37 ++
 .../primitive/pairs/BooleanBytePredicate.java   |  38 ++
 .../primitive/pairs/BooleanDoubleConsumer.java  |  37 ++
 .../primitive/pairs/BooleanDoublePredicate.java |  38 ++
 .../primitive/pairs/BooleanFloatConsumer.java   |  37 ++
 .../primitive/pairs/BooleanFloatPredicate.java  |  38 ++
 .../primitive/pairs/BooleanIntConsumer.java     |  37 ++
 .../primitive/pairs/BooleanIntPredicate.java    |  38 ++
 .../primitive/pairs/BooleanLongConsumer.java    |  37 ++
 .../primitive/pairs/BooleanLongPredicate.java   |  38 ++
 .../primitive/pairs/ByteBooleanConsumer.java    |  37 ++
 .../primitive/pairs/ByteBooleanPredicate.java   |  38 ++
 .../primitive/pairs/ByteByteConsumer.java       |  37 ++
 .../primitive/pairs/ByteBytePredicate.java      |  38 ++
 .../primitive/pairs/ByteDoubleConsumer.java     |  37 ++
 .../primitive/pairs/ByteDoublePredicate.java    |  38 ++
 .../primitive/pairs/ByteFloatConsumer.java      |  37 ++
 .../primitive/pairs/ByteFloatPredicate.java     |  38 ++
 .../primitive/pairs/ByteIntConsumer.java        |  37 ++
 .../primitive/pairs/ByteIntPredicate.java       |  38 ++
 .../primitive/pairs/ByteLongConsumer.java       |  37 ++
 .../primitive/pairs/ByteLongPredicate.java      |  38 ++
 .../primitive/pairs/DoubleBooleanConsumer.java  |  37 ++
 .../primitive/pairs/DoubleBooleanPredicate.java |  38 ++
 .../primitive/pairs/DoubleByteConsumer.java     |  37 ++
 .../primitive/pairs/DoubleBytePredicate.java    |  38 ++
 .../primitive/pairs/DoubleDoubleConsumer.java   |  37 ++
 .../primitive/pairs/DoubleDoublePredicate.java  |  38 ++
 .../primitive/pairs/DoubleFloatConsumer.java    |  37 ++
 .../primitive/pairs/DoubleFloatPredicate.java   |  38 ++
 .../primitive/pairs/DoubleIntConsumer.java      |  37 ++
 .../primitive/pairs/DoubleIntPredicate.java     |  38 ++
 .../primitive/pairs/DoubleLongConsumer.java     |  37 ++
 .../primitive/pairs/DoubleLongPredicate.java    |  38 ++
 .../primitive/pairs/FloatBooleanConsumer.java   |  37 ++
 .../primitive/pairs/FloatBooleanPredicate.java  |  38 ++
 .../primitive/pairs/FloatByteConsumer.java      |  37 ++
 .../primitive/pairs/FloatBytePredicate.java     |  38 ++
 .../primitive/pairs/FloatDoubleConsumer.java    |  37 ++
 .../primitive/pairs/FloatDoublePredicate.java   |  38 ++
 .../primitive/pairs/FloatFloatConsumer.java     |  37 ++
 .../primitive/pairs/FloatFloatPredicate.java    |  38 ++
 .../primitive/pairs/FloatIntConsumer.java       |  37 ++
 .../primitive/pairs/FloatIntPredicate.java      |  38 ++
 .../primitive/pairs/FloatLongConsumer.java      |  37 ++
 .../primitive/pairs/FloatLongPredicate.java     |  38 ++
 .../primitive/pairs/IntBooleanConsumer.java     |  37 ++
 .../primitive/pairs/IntBooleanPredicate.java    |  38 ++
 .../primitive/pairs/IntByteConsumer.java        |  37 ++
 .../primitive/pairs/IntBytePredicate.java       |  38 ++
 .../primitive/pairs/IntDoubleConsumer.java      |  37 ++
 .../primitive/pairs/IntDoublePredicate.java     |  38 ++
 .../primitive/pairs/IntFloatConsumer.java       |  37 ++
 .../primitive/pairs/IntFloatPredicate.java      |  38 ++
 .../primitive/pairs/IntIntConsumer.java         |  37 ++
 .../primitive/pairs/IntIntPredicate.java        |  38 ++
 .../primitive/pairs/IntLongConsumer.java        |  37 ++
 .../primitive/pairs/IntLongPredicate.java       |  38 ++
 .../primitive/pairs/LongBooleanConsumer.java    |  37 ++
 .../primitive/pairs/LongBooleanPredicate.java   |  38 ++
 .../primitive/pairs/LongByteConsumer.java       |  37 ++
 .../primitive/pairs/LongBytePredicate.java      |  38 ++
 .../primitive/pairs/LongDoubleConsumer.java     |  37 ++
 .../primitive/pairs/LongDoublePredicate.java    |  38 ++
 .../primitive/pairs/LongFloatConsumer.java      |  37 ++
 .../primitive/pairs/LongFloatPredicate.java     |  38 ++
 .../primitive/pairs/LongIntConsumer.java        |  37 ++
 .../primitive/pairs/LongIntPredicate.java       |  38 ++
 .../primitive/pairs/LongLongConsumer.java       |  37 ++
 .../primitive/pairs/LongLongPredicate.java      |  38 ++
 .../function/primitive/pairs/package-info.java  |  22 ++
 .../heaps/FixedCapacityIntByteMinHeap.java      | 361 +++++++++++++++++++
 .../heaps/FixedCapacityIntDoubleMinHeap.java    | 361 +++++++++++++++++++
 .../heaps/FixedCapacityIntFloatMinHeap.java     | 361 +++++++++++++++++++
 .../types/heaps/FixedCapacityIntIntMinHeap.java | 361 +++++++++++++++++++
 .../heaps/FixedCapacityIntLongMinHeap.java      | 361 +++++++++++++++++++
 .../heaps/FixedCapacityLongByteMinHeap.java     | 361 +++++++++++++++++++
 .../heaps/FixedCapacityLongDoubleMinHeap.java   | 361 +++++++++++++++++++
 .../heaps/FixedCapacityLongFloatMinHeap.java    | 361 +++++++++++++++++++
 .../heaps/FixedCapacityLongIntMinHeap.java      | 361 +++++++++++++++++++
 .../heaps/FixedCapacityLongLongMinHeap.java     | 361 +++++++++++++++++++
 .../types/heaps/Int2ByteMapEntryIterable.java   |  44 +++
 .../types/heaps/Int2DoubleMapEntryIterable.java |  44 +++
 .../types/heaps/Int2FloatMapEntryIterable.java  |  44 +++
 .../types/heaps/Int2IntMapEntryIterable.java    |  44 +++
 .../types/heaps/Int2LongMapEntryIterable.java   |  44 +++
 .../types/heaps/Long2ByteMapEntryIterable.java  |  44 +++
 .../heaps/Long2DoubleMapEntryIterable.java      |  44 +++
 .../types/heaps/Long2FloatMapEntryIterable.java |  44 +++
 .../types/heaps/Long2IntMapEntryIterable.java   |  44 +++
 .../types/heaps/Long2LongMapEntryIterable.java  |  44 +++
 .../apache/giraph/types/heaps/package-info.java |  21 ++
 .../generate/GeneratePrimitiveClasses.java      |  61 ++++
 .../heaps/TestFixedCapacityIntByteMinHeap.java  |  60 +++
 .../TestFixedCapacityIntDoubleMinHeap.java      |  60 +++
 .../heaps/TestFixedCapacityIntFloatMinHeap.java |  60 +++
 .../heaps/TestFixedCapacityIntIntMinHeap.java   |  60 +++
 .../heaps/TestFixedCapacityIntLongMinHeap.java  |  60 +++
 .../heaps/TestFixedCapacityLongByteMinHeap.java |  60 +++
 .../TestFixedCapacityLongDoubleMinHeap.java     |  60 +++
 .../TestFixedCapacityLongFloatMinHeap.java      |  60 +++
 .../heaps/TestFixedCapacityLongIntMinHeap.java  |  60 +++
 .../heaps/TestFixedCapacityLongLongMinHeap.java |  60 +++
 .../FixedCapacityType2TypeMinHeap.java          | 361 +++++++++++++++++++
 .../TestFixedCapacityType2TypeMinHeap.java      |  61 ++++
 .../templates/Type2TypeMapEntryIterable.java    |  44 +++
 giraph-core/templates/TypeTypeConsumer.java     |  36 ++
 giraph-core/templates/TypeTypePredicate.java    |  37 ++
 110 files changed, 7993 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBooleanConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBooleanConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBooleanConsumer.java
new file mode 100644
index 0000000..374dff2
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBooleanConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, boolean) -> void
+ */
+public interface BooleanBooleanConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(boolean input1, boolean input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBooleanPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBooleanPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBooleanPredicate.java
new file mode 100644
index 0000000..854f601
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBooleanPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, boolean) -> boolean
+ */
+public interface BooleanBooleanPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(boolean input1, boolean input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanByteConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanByteConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanByteConsumer.java
new file mode 100644
index 0000000..6897bff
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanByteConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, byte) -> void
+ */
+public interface BooleanByteConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(boolean input1, byte input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBytePredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBytePredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBytePredicate.java
new file mode 100644
index 0000000..fd2d2b2
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanBytePredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, byte) -> boolean
+ */
+public interface BooleanBytePredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(boolean input1, byte input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanDoubleConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanDoubleConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanDoubleConsumer.java
new file mode 100644
index 0000000..c7d030e
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanDoubleConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, double) -> void
+ */
+public interface BooleanDoubleConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(boolean input1, double input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanDoublePredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanDoublePredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanDoublePredicate.java
new file mode 100644
index 0000000..72c23d7
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanDoublePredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, double) -> boolean
+ */
+public interface BooleanDoublePredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(boolean input1, double input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanFloatConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanFloatConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanFloatConsumer.java
new file mode 100644
index 0000000..dd52ac8
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanFloatConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, float) -> void
+ */
+public interface BooleanFloatConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(boolean input1, float input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanFloatPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanFloatPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanFloatPredicate.java
new file mode 100644
index 0000000..f9a768a
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanFloatPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, float) -> boolean
+ */
+public interface BooleanFloatPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(boolean input1, float input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanIntConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanIntConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanIntConsumer.java
new file mode 100644
index 0000000..b8d45a9
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanIntConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, int) -> void
+ */
+public interface BooleanIntConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(boolean input1, int input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanIntPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanIntPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanIntPredicate.java
new file mode 100644
index 0000000..ec8bbc0
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanIntPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, int) -> boolean
+ */
+public interface BooleanIntPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(boolean input1, int input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanLongConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanLongConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanLongConsumer.java
new file mode 100644
index 0000000..f814955
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanLongConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, long) -> void
+ */
+public interface BooleanLongConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(boolean input1, long input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanLongPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanLongPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanLongPredicate.java
new file mode 100644
index 0000000..80701b7
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/BooleanLongPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (boolean, long) -> boolean
+ */
+public interface BooleanLongPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(boolean input1, long input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBooleanConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBooleanConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBooleanConsumer.java
new file mode 100644
index 0000000..047d4b7
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBooleanConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, boolean) -> void
+ */
+public interface ByteBooleanConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(byte input1, boolean input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBooleanPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBooleanPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBooleanPredicate.java
new file mode 100644
index 0000000..be9a605
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBooleanPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, boolean) -> boolean
+ */
+public interface ByteBooleanPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(byte input1, boolean input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteByteConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteByteConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteByteConsumer.java
new file mode 100644
index 0000000..529e728
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteByteConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, byte) -> void
+ */
+public interface ByteByteConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(byte input1, byte input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBytePredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBytePredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBytePredicate.java
new file mode 100644
index 0000000..3c55276
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteBytePredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, byte) -> boolean
+ */
+public interface ByteBytePredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(byte input1, byte input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteDoubleConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteDoubleConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteDoubleConsumer.java
new file mode 100644
index 0000000..d956883
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteDoubleConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, double) -> void
+ */
+public interface ByteDoubleConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(byte input1, double input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteDoublePredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteDoublePredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteDoublePredicate.java
new file mode 100644
index 0000000..35d3ea9
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteDoublePredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, double) -> boolean
+ */
+public interface ByteDoublePredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(byte input1, double input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteFloatConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteFloatConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteFloatConsumer.java
new file mode 100644
index 0000000..2336ff6
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteFloatConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, float) -> void
+ */
+public interface ByteFloatConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(byte input1, float input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteFloatPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteFloatPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteFloatPredicate.java
new file mode 100644
index 0000000..ddb2ff7
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteFloatPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, float) -> boolean
+ */
+public interface ByteFloatPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(byte input1, float input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteIntConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteIntConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteIntConsumer.java
new file mode 100644
index 0000000..cddda29
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteIntConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, int) -> void
+ */
+public interface ByteIntConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(byte input1, int input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteIntPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteIntPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteIntPredicate.java
new file mode 100644
index 0000000..94434f8
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteIntPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, int) -> boolean
+ */
+public interface ByteIntPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(byte input1, int input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteLongConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteLongConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteLongConsumer.java
new file mode 100644
index 0000000..25ecf95
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteLongConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, long) -> void
+ */
+public interface ByteLongConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(byte input1, long input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteLongPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteLongPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteLongPredicate.java
new file mode 100644
index 0000000..18ab03e
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/ByteLongPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (byte, long) -> boolean
+ */
+public interface ByteLongPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(byte input1, long input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBooleanConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBooleanConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBooleanConsumer.java
new file mode 100644
index 0000000..983f4fc
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBooleanConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, boolean) -> void
+ */
+public interface DoubleBooleanConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(double input1, boolean input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBooleanPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBooleanPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBooleanPredicate.java
new file mode 100644
index 0000000..660e98b
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBooleanPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, boolean) -> boolean
+ */
+public interface DoubleBooleanPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(double input1, boolean input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleByteConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleByteConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleByteConsumer.java
new file mode 100644
index 0000000..9b20464
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleByteConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, byte) -> void
+ */
+public interface DoubleByteConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(double input1, byte input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBytePredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBytePredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBytePredicate.java
new file mode 100644
index 0000000..07012b0
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleBytePredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, byte) -> boolean
+ */
+public interface DoubleBytePredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(double input1, byte input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleDoubleConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleDoubleConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleDoubleConsumer.java
new file mode 100644
index 0000000..3f974bc
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleDoubleConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, double) -> void
+ */
+public interface DoubleDoubleConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(double input1, double input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleDoublePredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleDoublePredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleDoublePredicate.java
new file mode 100644
index 0000000..90733d8
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleDoublePredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, double) -> boolean
+ */
+public interface DoubleDoublePredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(double input1, double input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleFloatConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleFloatConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleFloatConsumer.java
new file mode 100644
index 0000000..878e2fa
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleFloatConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, float) -> void
+ */
+public interface DoubleFloatConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(double input1, float input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleFloatPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleFloatPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleFloatPredicate.java
new file mode 100644
index 0000000..d86dd13
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleFloatPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, float) -> boolean
+ */
+public interface DoubleFloatPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(double input1, float input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleIntConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleIntConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleIntConsumer.java
new file mode 100644
index 0000000..e63afa2
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleIntConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, int) -> void
+ */
+public interface DoubleIntConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(double input1, int input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleIntPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleIntPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleIntPredicate.java
new file mode 100644
index 0000000..7c48085
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleIntPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, int) -> boolean
+ */
+public interface DoubleIntPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(double input1, int input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleLongConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleLongConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleLongConsumer.java
new file mode 100644
index 0000000..3d2c1c2
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleLongConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, long) -> void
+ */
+public interface DoubleLongConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(double input1, long input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleLongPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleLongPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleLongPredicate.java
new file mode 100644
index 0000000..45f4337
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/DoubleLongPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (double, long) -> boolean
+ */
+public interface DoubleLongPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(double input1, long input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBooleanConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBooleanConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBooleanConsumer.java
new file mode 100644
index 0000000..cc9b989
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBooleanConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (float, boolean) -> void
+ */
+public interface FloatBooleanConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(float input1, boolean input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBooleanPredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBooleanPredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBooleanPredicate.java
new file mode 100644
index 0000000..5947094
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBooleanPredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (float, boolean) -> boolean
+ */
+public interface FloatBooleanPredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(float input1, boolean input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatByteConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatByteConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatByteConsumer.java
new file mode 100644
index 0000000..cf0f05f
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatByteConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (float, byte) -> void
+ */
+public interface FloatByteConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(float input1, byte input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBytePredicate.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBytePredicate.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBytePredicate.java
new file mode 100644
index 0000000..6d19b56
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatBytePredicate.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (float, byte) -> boolean
+ */
+public interface FloatBytePredicate extends Serializable {
+  /**
+   * Returns the result of applying this predicate to {@code input}.
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   * @return result
+   */
+  boolean apply(float input1, byte input2);
+}

http://git-wip-us.apache.org/repos/asf/giraph/blob/4321e448/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatDoubleConsumer.java
----------------------------------------------------------------------
diff --git a/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatDoubleConsumer.java b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatDoubleConsumer.java
new file mode 100644
index 0000000..ca98ff0
--- /dev/null
+++ b/giraph-core/src/main/java/org/apache/giraph/function/primitive/pairs/FloatDoubleConsumer.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.giraph.function.primitive.pairs;
+
+import java.io.Serializable;
+
+// AUTO-GENERATED class via class:
+// org.apache.giraph.generate.GeneratePrimitiveClasses
+
+/**
+ * Primitive specialization of Function:
+ * (float, double) -> void
+ */
+public interface FloatDoubleConsumer extends Serializable {
+  /**
+   * Applies this function to {@code input1} and {@code input2}
+   *
+   * @param input1 First input
+   * @param input2 Second input
+   */
+  void apply(float input1, double input2);
+}