aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scalam/collection/WrappedDenseVector.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/scalam/collection/WrappedDenseVector.scala')
-rw-r--r--src/main/scala/scalam/collection/WrappedDenseVector.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/scala/scalam/collection/WrappedDenseVector.scala b/src/main/scala/scalam/collection/WrappedDenseVector.scala
new file mode 100644
index 0000000..43638c6
--- /dev/null
+++ b/src/main/scala/scalam/collection/WrappedDenseVector.scala
@@ -0,0 +1,25 @@
+package scalam.collection
+
+import scala.collection.mutable.IndexedSeqOptimized
+import breeze.linalg.DenseVector
+import scala.collection.mutable.Builder
+import scala.collection.generic.CanBuildFrom
+import scala.collection.generic.SeqFactory
+import scala.collection.generic.GenericCompanion
+import scala.collection.mutable.IndexedSeqLike
+
+class WrappedDenseVector[Elem: ClassManifest](val self: DenseVector[Elem]) extends IndexedSeq[Elem] with IndexedSeqLike[Elem, WrappedDenseVector[Elem]] {
+ override def update(index: Int, value: Elem) = self.update(index, value)
+ override def apply(index: Int) = self.apply(index)
+ override def length = self.length
+ override protected[this] def newBuilder: Builder[Elem, WrappedDenseVector[Elem]] = (new DenseVectorBuilder[Elem]) mapResult (new WrappedDenseVector(_))
+}
+
+object WrappedDenseVector {
+ def newBuilder[Elem: ClassManifest] = (new DenseVectorBuilder[Elem]) mapResult (new WrappedDenseVector(_))
+
+ implicit def canBuildFrom[T: ClassManifest] = new CanBuildFrom[WrappedDenseVector[_], T, WrappedDenseVector[T]] {
+ def apply(from: WrappedDenseVector[_]): Builder[T, WrappedDenseVector[T]] = newBuilder
+ def apply: Builder[T, WrappedDenseVector[T]] = newBuilder
+ }
+} \ No newline at end of file