Last active
December 16, 2015 16:49
-
-
Save bluenote10/5465957 to your computer and use it in GitHub Desktop.
Scala: cross (cartesian) product with multiple sources and heterogeneous types. More information: http://stackoverflow.com/q/16219545/1804173
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
trait CrossProduct[A,B,C] { | |
def cross( as: Traversable[A], bs: Traversable[B] ): Traversable[C] | |
} | |
trait LowPriorityCrossProductImplicits { | |
private type TV[X] = Traversable[X] | |
implicit def crosser2[A,B] = new CrossProduct[A,B,(A,B)] { | |
def cross( as: TV[A], bs: TV[B] ): TV[(A,B)] = for { a <- as; b <- bs } yield (a, b) | |
} | |
} | |
object CrossProduct extends LowPriorityCrossProductImplicits { | |
private type TV[X] = Traversable[X] | |
implicit class Crossable[A](xs: Traversable[A]) { | |
def cross[B,C](ys: Traversable[B])(implicit crosser: CrossProduct[A,B,C]): Traversable[C] = crosser.cross( xs, ys ) | |
} | |
implicit def crosser3_1[A,B,C] = new CrossProduct[A,(B,C),(A,B,C)] { | |
def cross( l: TV[A], r: TV[(B,C)] ): TV[(A,B,C)] = for { a <- l; (b,c) <- r } yield (a,b,c) | |
} | |
implicit def crosser3_2[A,B,C] = new CrossProduct[(A,B),C,(A,B,C)] { | |
def cross( l: TV[(A,B)], r: TV[C] ): TV[(A,B,C)] = for { (a,b) <- l; c <- r } yield (a,b,c) | |
} | |
implicit def crosser4_1[A,B,C,D] = new CrossProduct[A,(B,C,D),(A,B,C,D)] { | |
def cross( l: TV[A], r: TV[(B,C,D)] ): TV[(A,B,C,D)] = for { a <- l; (b,c,d) <- r } yield (a,b,c,d) | |
} | |
implicit def crosser4_2[A,B,C,D] = new CrossProduct[(A,B),(C,D),(A,B,C,D)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D)] ): TV[(A,B,C,D)] = for { (a,b) <- l; (c,d) <- r } yield (a,b,c,d) | |
} | |
implicit def crosser4_3[A,B,C,D] = new CrossProduct[(A,B,C),D,(A,B,C,D)] { | |
def cross( l: TV[(A,B,C)], r: TV[D] ): TV[(A,B,C,D)] = for { (a,b,c) <- l; d <- r } yield (a,b,c,d) | |
} | |
implicit def crosser5_1[A,B,C,D,E] = new CrossProduct[A,(B,C,D,E),(A,B,C,D,E)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E)] ): TV[(A,B,C,D,E)] = for { a <- l; (b,c,d,e) <- r } yield (a,b,c,d,e) | |
} | |
implicit def crosser5_2[A,B,C,D,E] = new CrossProduct[(A,B),(C,D,E),(A,B,C,D,E)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E)] ): TV[(A,B,C,D,E)] = for { (a,b) <- l; (c,d,e) <- r } yield (a,b,c,d,e) | |
} | |
implicit def crosser5_3[A,B,C,D,E] = new CrossProduct[(A,B,C),(D,E),(A,B,C,D,E)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E)] ): TV[(A,B,C,D,E)] = for { (a,b,c) <- l; (d,e) <- r } yield (a,b,c,d,e) | |
} | |
implicit def crosser5_4[A,B,C,D,E] = new CrossProduct[(A,B,C,D),E,(A,B,C,D,E)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[E] ): TV[(A,B,C,D,E)] = for { (a,b,c,d) <- l; e <- r } yield (a,b,c,d,e) | |
} | |
implicit def crosser6_1[A,B,C,D,E,F] = new CrossProduct[A,(B,C,D,E,F),(A,B,C,D,E,F)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F)] ): TV[(A,B,C,D,E,F)] = for { a <- l; (b,c,d,e,f) <- r } yield (a,b,c,d,e,f) | |
} | |
implicit def crosser6_2[A,B,C,D,E,F] = new CrossProduct[(A,B),(C,D,E,F),(A,B,C,D,E,F)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F)] ): TV[(A,B,C,D,E,F)] = for { (a,b) <- l; (c,d,e,f) <- r } yield (a,b,c,d,e,f) | |
} | |
implicit def crosser6_3[A,B,C,D,E,F] = new CrossProduct[(A,B,C),(D,E,F),(A,B,C,D,E,F)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F)] ): TV[(A,B,C,D,E,F)] = for { (a,b,c) <- l; (d,e,f) <- r } yield (a,b,c,d,e,f) | |
} | |
implicit def crosser6_4[A,B,C,D,E,F] = new CrossProduct[(A,B,C,D),(E,F),(A,B,C,D,E,F)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F)] ): TV[(A,B,C,D,E,F)] = for { (a,b,c,d) <- l; (e,f) <- r } yield (a,b,c,d,e,f) | |
} | |
implicit def crosser6_5[A,B,C,D,E,F] = new CrossProduct[(A,B,C,D,E),F,(A,B,C,D,E,F)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[F] ): TV[(A,B,C,D,E,F)] = for { (a,b,c,d,e) <- l; f <- r } yield (a,b,c,d,e,f) | |
} | |
implicit def crosser7_1[A,B,C,D,E,F,G] = new CrossProduct[A,(B,C,D,E,F,G),(A,B,C,D,E,F,G)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G)] ): TV[(A,B,C,D,E,F,G)] = for { a <- l; (b,c,d,e,f,g) <- r } yield (a,b,c,d,e,f,g) | |
} | |
implicit def crosser7_2[A,B,C,D,E,F,G] = new CrossProduct[(A,B),(C,D,E,F,G),(A,B,C,D,E,F,G)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G)] ): TV[(A,B,C,D,E,F,G)] = for { (a,b) <- l; (c,d,e,f,g) <- r } yield (a,b,c,d,e,f,g) | |
} | |
implicit def crosser7_3[A,B,C,D,E,F,G] = new CrossProduct[(A,B,C),(D,E,F,G),(A,B,C,D,E,F,G)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G)] ): TV[(A,B,C,D,E,F,G)] = for { (a,b,c) <- l; (d,e,f,g) <- r } yield (a,b,c,d,e,f,g) | |
} | |
implicit def crosser7_4[A,B,C,D,E,F,G] = new CrossProduct[(A,B,C,D),(E,F,G),(A,B,C,D,E,F,G)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G)] ): TV[(A,B,C,D,E,F,G)] = for { (a,b,c,d) <- l; (e,f,g) <- r } yield (a,b,c,d,e,f,g) | |
} | |
implicit def crosser7_5[A,B,C,D,E,F,G] = new CrossProduct[(A,B,C,D,E),(F,G),(A,B,C,D,E,F,G)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G)] ): TV[(A,B,C,D,E,F,G)] = for { (a,b,c,d,e) <- l; (f,g) <- r } yield (a,b,c,d,e,f,g) | |
} | |
implicit def crosser7_6[A,B,C,D,E,F,G] = new CrossProduct[(A,B,C,D,E,F),G,(A,B,C,D,E,F,G)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[G] ): TV[(A,B,C,D,E,F,G)] = for { (a,b,c,d,e,f) <- l; g <- r } yield (a,b,c,d,e,f,g) | |
} | |
implicit def crosser8_1[A,B,C,D,E,F,G,H] = new CrossProduct[A,(B,C,D,E,F,G,H),(A,B,C,D,E,F,G,H)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H)] ): TV[(A,B,C,D,E,F,G,H)] = for { a <- l; (b,c,d,e,f,g,h) <- r } yield (a,b,c,d,e,f,g,h) | |
} | |
implicit def crosser8_2[A,B,C,D,E,F,G,H] = new CrossProduct[(A,B),(C,D,E,F,G,H),(A,B,C,D,E,F,G,H)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H)] ): TV[(A,B,C,D,E,F,G,H)] = for { (a,b) <- l; (c,d,e,f,g,h) <- r } yield (a,b,c,d,e,f,g,h) | |
} | |
implicit def crosser8_3[A,B,C,D,E,F,G,H] = new CrossProduct[(A,B,C),(D,E,F,G,H),(A,B,C,D,E,F,G,H)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H)] ): TV[(A,B,C,D,E,F,G,H)] = for { (a,b,c) <- l; (d,e,f,g,h) <- r } yield (a,b,c,d,e,f,g,h) | |
} | |
implicit def crosser8_4[A,B,C,D,E,F,G,H] = new CrossProduct[(A,B,C,D),(E,F,G,H),(A,B,C,D,E,F,G,H)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H)] ): TV[(A,B,C,D,E,F,G,H)] = for { (a,b,c,d) <- l; (e,f,g,h) <- r } yield (a,b,c,d,e,f,g,h) | |
} | |
implicit def crosser8_5[A,B,C,D,E,F,G,H] = new CrossProduct[(A,B,C,D,E),(F,G,H),(A,B,C,D,E,F,G,H)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H)] ): TV[(A,B,C,D,E,F,G,H)] = for { (a,b,c,d,e) <- l; (f,g,h) <- r } yield (a,b,c,d,e,f,g,h) | |
} | |
implicit def crosser8_6[A,B,C,D,E,F,G,H] = new CrossProduct[(A,B,C,D,E,F),(G,H),(A,B,C,D,E,F,G,H)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H)] ): TV[(A,B,C,D,E,F,G,H)] = for { (a,b,c,d,e,f) <- l; (g,h) <- r } yield (a,b,c,d,e,f,g,h) | |
} | |
implicit def crosser8_7[A,B,C,D,E,F,G,H] = new CrossProduct[(A,B,C,D,E,F,G),H,(A,B,C,D,E,F,G,H)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[H] ): TV[(A,B,C,D,E,F,G,H)] = for { (a,b,c,d,e,f,g) <- l; h <- r } yield (a,b,c,d,e,f,g,h) | |
} | |
implicit def crosser9_1[A,B,C,D,E,F,G,H,I] = new CrossProduct[A,(B,C,D,E,F,G,H,I),(A,B,C,D,E,F,G,H,I)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I)] ): TV[(A,B,C,D,E,F,G,H,I)] = for { a <- l; (b,c,d,e,f,g,h,i) <- r } yield (a,b,c,d,e,f,g,h,i) | |
} | |
implicit def crosser9_2[A,B,C,D,E,F,G,H,I] = new CrossProduct[(A,B),(C,D,E,F,G,H,I),(A,B,C,D,E,F,G,H,I)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I)] ): TV[(A,B,C,D,E,F,G,H,I)] = for { (a,b) <- l; (c,d,e,f,g,h,i) <- r } yield (a,b,c,d,e,f,g,h,i) | |
} | |
implicit def crosser9_3[A,B,C,D,E,F,G,H,I] = new CrossProduct[(A,B,C),(D,E,F,G,H,I),(A,B,C,D,E,F,G,H,I)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I)] ): TV[(A,B,C,D,E,F,G,H,I)] = for { (a,b,c) <- l; (d,e,f,g,h,i) <- r } yield (a,b,c,d,e,f,g,h,i) | |
} | |
implicit def crosser9_4[A,B,C,D,E,F,G,H,I] = new CrossProduct[(A,B,C,D),(E,F,G,H,I),(A,B,C,D,E,F,G,H,I)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I)] ): TV[(A,B,C,D,E,F,G,H,I)] = for { (a,b,c,d) <- l; (e,f,g,h,i) <- r } yield (a,b,c,d,e,f,g,h,i) | |
} | |
implicit def crosser9_5[A,B,C,D,E,F,G,H,I] = new CrossProduct[(A,B,C,D,E),(F,G,H,I),(A,B,C,D,E,F,G,H,I)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I)] ): TV[(A,B,C,D,E,F,G,H,I)] = for { (a,b,c,d,e) <- l; (f,g,h,i) <- r } yield (a,b,c,d,e,f,g,h,i) | |
} | |
implicit def crosser9_6[A,B,C,D,E,F,G,H,I] = new CrossProduct[(A,B,C,D,E,F),(G,H,I),(A,B,C,D,E,F,G,H,I)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I)] ): TV[(A,B,C,D,E,F,G,H,I)] = for { (a,b,c,d,e,f) <- l; (g,h,i) <- r } yield (a,b,c,d,e,f,g,h,i) | |
} | |
implicit def crosser9_7[A,B,C,D,E,F,G,H,I] = new CrossProduct[(A,B,C,D,E,F,G),(H,I),(A,B,C,D,E,F,G,H,I)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I)] ): TV[(A,B,C,D,E,F,G,H,I)] = for { (a,b,c,d,e,f,g) <- l; (h,i) <- r } yield (a,b,c,d,e,f,g,h,i) | |
} | |
implicit def crosser9_8[A,B,C,D,E,F,G,H,I] = new CrossProduct[(A,B,C,D,E,F,G,H),I,(A,B,C,D,E,F,G,H,I)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[I] ): TV[(A,B,C,D,E,F,G,H,I)] = for { (a,b,c,d,e,f,g,h) <- l; i <- r } yield (a,b,c,d,e,f,g,h,i) | |
} | |
implicit def crosser10_1[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J),(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J)] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { a <- l; (b,c,d,e,f,g,h,i,j) <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser10_2[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J),(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J)] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j) <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser10_3[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J),(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J)] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j) <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser10_4[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J),(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J)] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j) <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser10_5[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J),(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J)] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j) <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser10_6[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J),(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J)] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j) <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser10_7[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J),(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J)] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j) <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser10_8[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J),(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J)] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j) <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser10_9[A,B,C,D,E,F,G,H,I,J] = new CrossProduct[(A,B,C,D,E,F,G,H,I),J,(A,B,C,D,E,F,G,H,I,J)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[J] ): TV[(A,B,C,D,E,F,G,H,I,J)] = for { (a,b,c,d,e,f,g,h,i) <- l; j <- r } yield (a,b,c,d,e,f,g,h,i,j) | |
} | |
implicit def crosser11_1[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { a <- l; (b,c,d,e,f,g,h,i,j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_2[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_3[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_4[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_5[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_6[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_7[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_8[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_9[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B,C,D,E,F,G,H,I),(J,K),(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[(J,K)] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b,c,d,e,f,g,h,i) <- l; (j,k) <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser11_10[A,B,C,D,E,F,G,H,I,J,K] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J),K,(A,B,C,D,E,F,G,H,I,J,K)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J)], r: TV[K] ): TV[(A,B,C,D,E,F,G,H,I,J,K)] = for { (a,b,c,d,e,f,g,h,i,j) <- l; k <- r } yield (a,b,c,d,e,f,g,h,i,j,k) | |
} | |
implicit def crosser12_1[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { a <- l; (b,c,d,e,f,g,h,i,j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_2[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_3[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_4[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_5[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_6[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_7[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_8[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_9[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C,D,E,F,G,H,I),(J,K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[(J,K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c,d,e,f,g,h,i) <- l; (j,k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_10[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J),(K,L),(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J)], r: TV[(K,L)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c,d,e,f,g,h,i,j) <- l; (k,l) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser12_11[A,B,C,D,E,F,G,H,I,J,K,L] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K),L,(A,B,C,D,E,F,G,H,I,J,K,L)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K)], r: TV[L] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L)] = for { (a,b,c,d,e,f,g,h,i,j,k) <- l; l <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l) | |
} | |
implicit def crosser13_1[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { a <- l; (b,c,d,e,f,g,h,i,j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_2[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_3[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_4[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_5[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_6[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_7[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_8[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_9[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D,E,F,G,H,I),(J,K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[(J,K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d,e,f,g,h,i) <- l; (j,k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_10[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J),(K,L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J)], r: TV[(K,L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d,e,f,g,h,i,j) <- l; (k,l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_11[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K),(L,M),(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K)], r: TV[(L,M)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d,e,f,g,h,i,j,k) <- l; (l,m) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser13_12[A,B,C,D,E,F,G,H,I,J,K,L,M] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L),M,(A,B,C,D,E,F,G,H,I,J,K,L,M)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L)], r: TV[M] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)] = for { (a,b,c,d,e,f,g,h,i,j,k,l) <- l; m <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m) | |
} | |
implicit def crosser14_1[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { a <- l; (b,c,d,e,f,g,h,i,j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_2[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_3[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_4[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_5[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_6[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_7[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_8[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_9[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E,F,G,H,I),(J,K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[(J,K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e,f,g,h,i) <- l; (j,k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_10[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J),(K,L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J)], r: TV[(K,L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e,f,g,h,i,j) <- l; (k,l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_11[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K),(L,M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K)], r: TV[(L,M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e,f,g,h,i,j,k) <- l; (l,m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_12[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L),(M,N),(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L)], r: TV[(M,N)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e,f,g,h,i,j,k,l) <- l; (m,n) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser14_13[A,B,C,D,E,F,G,H,I,J,K,L,M,N] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M),N,(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)], r: TV[N] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m) <- l; n <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n) | |
} | |
implicit def crosser15_1[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { a <- l; (b,c,d,e,f,g,h,i,j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_2[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_3[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_4[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_5[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_6[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_7[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_8[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_9[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F,G,H,I),(J,K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[(J,K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f,g,h,i) <- l; (j,k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_10[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J),(K,L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J)], r: TV[(K,L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f,g,h,i,j) <- l; (k,l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_11[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K),(L,M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K)], r: TV[(L,M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f,g,h,i,j,k) <- l; (l,m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_12[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L),(M,N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L)], r: TV[(M,N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f,g,h,i,j,k,l) <- l; (m,n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_13[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M),(N,O),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)], r: TV[(N,O)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m) <- l; (n,o) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser15_14[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N),O,(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)], r: TV[O] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n) <- l; o <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) | |
} | |
implicit def crosser16_1[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { a <- l; (b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_2[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_3[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_4[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_5[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_6[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_7[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_8[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_9[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G,H,I),(J,K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[(J,K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g,h,i) <- l; (j,k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_10[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J),(K,L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J)], r: TV[(K,L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g,h,i,j) <- l; (k,l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_11[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K),(L,M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K)], r: TV[(L,M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g,h,i,j,k) <- l; (l,m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_12[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L),(M,N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L)], r: TV[(M,N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g,h,i,j,k,l) <- l; (m,n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_13[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M),(N,O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)], r: TV[(N,O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m) <- l; (n,o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_14[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N),(O,P),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)], r: TV[(O,P)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n) <- l; (o,p) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser16_15[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O),P,(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)], r: TV[P] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) <- l; p <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) | |
} | |
implicit def crosser17_1[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { a <- l; (b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_2[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_3[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_4[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_5[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_6[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_7[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_8[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_9[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H,I),(J,K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[(J,K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h,i) <- l; (j,k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_10[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J),(K,L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J)], r: TV[(K,L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h,i,j) <- l; (k,l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_11[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K),(L,M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K)], r: TV[(L,M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h,i,j,k) <- l; (l,m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_12[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L),(M,N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L)], r: TV[(M,N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h,i,j,k,l) <- l; (m,n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_13[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M),(N,O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)], r: TV[(N,O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m) <- l; (n,o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_14[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N),(O,P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)], r: TV[(O,P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n) <- l; (o,p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_15[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O),(P,Q),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)], r: TV[(P,Q)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) <- l; (p,q) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser17_16[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P),Q,(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)], r: TV[Q] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) <- l; q <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) | |
} | |
implicit def crosser18_1[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[A,(B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[A], r: TV[(B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { a <- l; (b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_2[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B),(C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B)], r: TV[(C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b) <- l; (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_3[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C),(D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C)], r: TV[(D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c) <- l; (d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_4[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D),(E,F,G,H,I,J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D)], r: TV[(E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d) <- l; (e,f,g,h,i,j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_5[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E),(F,G,H,I,J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E)], r: TV[(F,G,H,I,J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e) <- l; (f,g,h,i,j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_6[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F),(G,H,I,J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F)], r: TV[(G,H,I,J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f) <- l; (g,h,i,j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_7[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G),(H,I,J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G)], r: TV[(H,I,J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g) <- l; (h,i,j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_8[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H),(I,J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H)], r: TV[(I,J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h) <- l; (i,j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_9[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I),(J,K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I)], r: TV[(J,K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i) <- l; (j,k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_10[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J),(K,L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J)], r: TV[(K,L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i,j) <- l; (k,l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_11[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K),(L,M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K)], r: TV[(L,M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i,j,k) <- l; (l,m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_12[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L),(M,N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L)], r: TV[(M,N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i,j,k,l) <- l; (m,n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_13[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M),(N,O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M)], r: TV[(N,O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m) <- l; (n,o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_14[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N),(O,P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N)], r: TV[(O,P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n) <- l; (o,p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_15[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O),(P,Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)], r: TV[(P,Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) <- l; (p,q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_16[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P),(Q,R),(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)], r: TV[(Q,R)] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) <- l; (q,r) <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
implicit def crosser18_17[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R] = new CrossProduct[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q),R,(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] { | |
def cross( l: TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)], r: TV[R] ): TV[(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)] = for { (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) <- l; r <- r } yield (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment