aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scalam/collection/DenseVectorLike.scala
blob: a2c354521ab0381074ee633d3cd5690f3b866ecf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package scalam.collection

import scala.collection.mutable.IndexedSeqLike
import breeze.linalg.DenseVector

/** A common supertrait of `DenseVectorOps` and `WrappedDenseVector` that factors out most
* operations on dense vectors and wrapped dense vectors.
*
* @tparam Elem type of the elements contained in the dense vector like object.
* @tparam Repr the type of the actual collection containing the elements.
*
* @define Coll `DenseVectorLike`
*/
trait DenseVectorLike[Elem, Repr] extends IndexedSeqLike[Elem, Repr]{
  
  /** Underlying dense vector. */
  def self: DenseVector[Elem]
  
  override def apply(index: Int): Elem = self.apply(index)
  override def update(index: Int, value: Elem): Unit = self.update(index, value)
  override def length: Int = self.length
}