aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scalam/package.scala
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2012-10-28 11:10:39 +0100
committerJakob Odersky <jodersky@gmail.com>2012-10-28 11:10:39 +0100
commit9892e907e8db3204a890fc530ddc9e34cdaf096b (patch)
tree64e6c6d93357eef75f04466a103617fd49f53908 /src/main/scala/scalam/package.scala
parenta9c3a3b9e00b28380254ff9f274cb05754604464 (diff)
downloadscalam-9892e907e8db3204a890fc530ddc9e34cdaf096b.tar.gz
scalam-9892e907e8db3204a890fc530ddc9e34cdaf096b.tar.bz2
scalam-9892e907e8db3204a890fc530ddc9e34cdaf096b.zip
improve integration of DenseVector into collection framework:
* factor out similarities between *Wrapped and *Ops to *Like * remove custom builder (use array buffer instead sonce DenseVectors are backed by arrays) * refactor CanBuildFroms * make LowPriority implicits to a trait
Diffstat (limited to 'src/main/scala/scalam/package.scala')
-rw-r--r--src/main/scala/scalam/package.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/scala/scalam/package.scala b/src/main/scala/scalam/package.scala
index 76957fe..da0888c 100644
--- a/src/main/scala/scalam/package.scala
+++ b/src/main/scala/scalam/package.scala
@@ -1,8 +1,16 @@
import breeze.linalg.DenseVector
import scalam.collection._
+import scala.collection.generic.CanBuildFrom
+import scala.collection.mutable.Builder
-package object scalam extends LowPriorityImplicits{
+package object scalam extends LowPriorityImplicits {
implicit def denseVector2Ops[A: ClassManifest](v: DenseVector[A]) = new DenseVectorOps(v)
+ implicit def denseVectorBuildFrom[A: ClassManifest]: CanBuildFrom[DenseVector[_], A, DenseVector[A]] =
+ new CanBuildFrom[DenseVector[_], A, DenseVector[A]] {
+ def apply(from: DenseVector[_]): Builder[A, DenseVector[A]] = apply()
+ def apply(): Builder[A, DenseVector[A]] = collection.DenseVectorOps.newBuilder[A]
+ }
+
} \ No newline at end of file