From f764f1b8080986663f12a052822e10df2cf1adcd Mon Sep 17 00:00:00 2001 From: zorba128 Date: Fri, 31 Aug 2018 09:25:27 +0200 Subject: [PATCH] Converters between org.nd4j.linalg.primitives.Pair/Triple and scala Tuple2/Tuple3. Names to be decided - as proposed, or maybe toScala or toTuple --- nd4s/src/main/scala/org/nd4s/Implicits.scala | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/nd4s/src/main/scala/org/nd4s/Implicits.scala b/nd4s/src/main/scala/org/nd4s/Implicits.scala index a9b7ea32b3f6..9e7bf6ffe63c 100644 --- a/nd4s/src/main/scala/org/nd4s/Implicits.scala +++ b/nd4s/src/main/scala/org/nd4s/Implicits.scala @@ -192,6 +192,23 @@ object Implicits { implicit def Number2ComplexNumberBuilder(underlying: Number): ComplexNumberBuilder[java.lang.Number] = new ComplexNumberBuilder[java.lang.Number](underlying) lazy val i = new ImaginaryNumber[Integer](1) + + + implicit class Pair2Tuple[T, U](a: org.nd4j.linalg.primitives.Pair[T, U]) { + def asScala: (T, U) = (a.getFirst, a.getSecond) + } + + implicit class Triple2Tuple[T, U, V](a: org.nd4j.linalg.primitives.Triple[T, U, V]) { + def asScala: (T, U, V) = (a.getFirst, a.getSecond, a.getThird) + } + + implicit class Tuple2Pair[T, U](a: (T, U)) { + def toPair: org.nd4j.linalg.primitives.Pair[T, U] = new org.nd4j.linalg.primitives.Pair(a._1, a._2) + } + + implicit class Tuple2Triple[T, U, V](a: (T, U, V)) { + def toTriple: org.nd4j.linalg.primitives.Triple[T, U, V] = new org.nd4j.linalg.primitives.Triple(a._1, a._2, a._3) + } } private[nd4s] class ComplexNumberBuilder[T <: Number](val value: T) extends AnyVal {