added mixed SVector/scalar arithmetic operations
This commit is contained in:
@@ -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]
|
||||
|
Reference in New Issue
Block a user