From 345d649bb252f9835a23776db036188bf875283a Mon Sep 17 00:00:00 2001 From: michelou Date: Wed, 30 Jan 2008 10:52:10 +0000 Subject: fixed #421 --- test/files/run/t0421.check | 3 +++ test/files/run/t0421.scala | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 test/files/run/t0421.check create mode 100644 test/files/run/t0421.scala (limited to 'test/files') diff --git a/test/files/run/t0421.check b/test/files/run/t0421.check new file mode 100644 index 0000000000..eac788606b --- /dev/null +++ b/test/files/run/t0421.check @@ -0,0 +1,3 @@ +[[0,1],[2,3],[4,5]] +[[31.0]] +[[24.0,32.0]] diff --git a/test/files/run/t0421.scala b/test/files/run/t0421.scala new file mode 100644 index 0000000000..91a2b0cb4a --- /dev/null +++ b/test/files/run/t0421.scala @@ -0,0 +1,28 @@ +// ticket #421 +object Test extends Application { + + def transpose[A](xss: Array[Array[A]]) = { + for (i <- Array.range(0, xss(0).length)) yield + for (xs <- xss) yield xs(i) + } + + def scalprod(xs: Array[Double], ys: Array[Double]) = { + var acc = 0.0 + for ((x, y) <- xs zip ys) acc = acc + x * y + acc + } + + def matmul(xss: Array[Array[Double]], yss: Array[Array[Double]]) = { + val ysst = transpose(yss) + for (xs <- xss) yield + for (yst <- ysst) yield + scalprod(xs, yst) + } + + val a1 = Array(Array(0, 2, 4), Array(1, 3, 5)) + println(transpose(a1).deepMkString("[", ",", "]")) + + println(matmul(Array(Array(2, 3)), Array(Array(5), Array(7))).deepMkString("[", ",", "]")) + + println(matmul(Array(Array(4)), Array(Array(6, 8))).deepMkString("[", ",", "]")) +} -- cgit v1.2.3