Я бы хотел, чтобы он имел характеристики производительности и включал большинство методов Array [Double], но имел дополнительные методы расширения, такие как dotProduct (), +, - и т. Д. Я могу написать дополнительные методы расширения, но мне нужна помощь на реализацию существующих черт и мер, необходимых для получения Array, как производительность.
class Vec(private val content:Array[Double]) extends WrappedArray[Double] {
/* Trait implementation methods - incomplete */
def array = content
def apply(i:Int) = content(i)
def length = content.length
def update(i:Int, v:Double) = content.update(i, v)
def elemTag = ???
/* Example extension methods */
def plus(that:Vec) = Vec(this.indices.map{ i => this(i) + that(i)})
def elementProduct(that:Vec) = Vec(this.indices.map{ i => this(i) * that(i)})
def sum = content.sum
def dotProduct(that:Vec) = elementProduct(that).sum
}
object Vec {
def apply(seq:IndexedSeq[Double]) = new Vec(seq.toArray)
}