added mixed SVector/scalar arithmetic operations

This commit is contained in:
2019-01-07 23:27:56 +00:00
parent 6aee03eac6
commit d4f64d25a0

View File

@@ -12,6 +12,38 @@ proc buildSVector*[SIZE, T](elems : varargs[T]) : SVector[SIZE, T] =
for i in 0..<elems.len:
result[i] = elems[i]
proc `+`*[SIZE, T](v1 : SVector[SIZE, T], scalar: T) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = v1[i] + scalar
proc `+`*[SIZE, T](scalar: T, v1 : SVector[SIZE, T]) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = scalar + v1[i]
proc `-`*[SIZE, T](v1 : SVector[SIZE, T], scalar: T) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = v1[i] - scalar
proc `-`*[SIZE, T](scalar: T, v1 : SVector[SIZE, T]) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = scalar - v1[i]
proc `*`*[SIZE, T](v1 : SVector[SIZE, T], scalar: T) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = v1[i] * scalar
proc `*`*[SIZE, T](scalar: T, v1 : SVector[SIZE, T]) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = scalar * v1[i]
proc `/`*[SIZE, T](v1 : SVector[SIZE, T], scalar: T) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = v1[i] / scalar
proc `/`*[SIZE, T](scalar: T, v1 : SVector[SIZE, T]) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = scalar / v1[i]
proc `+`*[SIZE, T](v1 : SVector[SIZE, T], v2: SVector[SIZE, T]) : SVector[SIZE, T] =
for i in 0...len(v1):
result[i] = v1[i] + v2[i]