summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2008-01-30 10:52:10 +0000
committermichelou <michelou@epfl.ch>2008-01-30 10:52:10 +0000
commit345d649bb252f9835a23776db036188bf875283a (patch)
treec5c2cf78c1bb1060195383b899bc5ed9bb2318dc /test/files
parentca644940538c86aca051d38a18a630028a76c4fc (diff)
downloadscala-345d649bb252f9835a23776db036188bf875283a.tar.gz
scala-345d649bb252f9835a23776db036188bf875283a.tar.bz2
scala-345d649bb252f9835a23776db036188bf875283a.zip
fixed #421
Diffstat (limited to 'test/files')
-rw-r--r--test/files/run/t0421.check3
-rw-r--r--test/files/run/t0421.scala28
2 files changed, 31 insertions, 0 deletions
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("[", ",", "]"))
+}