Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Vector(d: Iterable[Double]) {
- def vector = d
- private def op(that: Vector, op: (Double, Double) => Double) =
- new Vector((vector, that.vector).zipped map op)
- private def un(op: Double => Double) = new Vector(vector map op)
- def this(ds: Double*) = this(ds toList)
- def +(that: Vector) = op(that, _ + _)
- def -(that: Vector) = op(that, _ - _)
- def +(trans: Double) = un(_ + trans)
- def -(trans: Double) = un(_ - trans)
- def *(x: Double) = un(_ * x)
- def /(x: Double) = un(_ / x)
- def unary_- = un(- _)
- def norm = sqrt(vector map (x => x*x) sum)
- def length = vector size
- override def toString = vector mkString("\n")
- }
Add Comment
Please, Sign In to add comment