public static void Length(ref Vector2Wide v, out Vector <float> length) { length = Vector.SquareRoot(v.X * v.X + v.Y * v.Y); }
public static void Scale(ref Vector2Wide vector, ref Vector <float> scalar, out Vector2Wide result) { result.X = vector.X * scalar; result.Y = vector.Y * scalar; }
public static void Negate(ref Vector2Wide v, out Vector2Wide result) { result.X = -v.X; result.Y = -v.Y; }
public static void Subtract(ref Vector2Wide a, ref Vector2Wide b, out Vector2Wide result) { result.X = a.X - b.X; result.Y = a.Y - b.Y; }
public static void Dot(ref Vector2Wide a, ref Vector2Wide b, out Vector <float> result) { result = a.X * b.X + a.Y * b.Y; }
public static void TransformBySymmetricWithoutOverlap(ref Vector2Wide v, ref Triangular2x2Wide m, out Vector2Wide result) { result.X = v.X * m.M11 + v.Y * m.M21; result.Y = v.X * m.M21 + v.Y * m.M22; }
public static void Add(ref Vector2Wide a, ref Vector2Wide b, out Vector2Wide result) { result.X = a.X + b.X; result.Y = a.Y + b.Y; }
public static void TransformByTransposeWithoutOverlap(ref Vector3Wide v, ref Matrix2x3Wide m, out Vector2Wide result) { result.X = v.X * m.X.X + v.Y * m.X.Y + v.Z * m.X.Z; result.Y = v.X * m.Y.X + v.Y * m.Y.Y + v.Z * m.Y.Z; }
public static void Transform(ref Vector2Wide v, ref Matrix2x3Wide m, out Vector3Wide result) { result.X = v.X * m.X.X + v.Y * m.Y.X; result.Y = v.X * m.X.Y + v.Y * m.Y.Y; result.Z = v.X * m.X.Z + v.Y * m.Y.Z; }
public static void Subtract(ref Matrix2x2Wide a, ref Matrix2x2Wide b, out Matrix2x2Wide result) { Vector2Wide.Subtract(ref a.X, ref b.X, out result.X); Vector2Wide.Subtract(ref a.Y, ref b.Y, out result.Y); }
public static void Transform(ref Vector2Wide v, ref Matrix2x2Wide m, out Vector2Wide result) { TransformWithoutOverlap(ref v, ref m, out var temp); result = temp; }
public static void TransformWithoutOverlap(ref Vector2Wide v, ref Matrix2x2Wide m, out Vector2Wide result) { result.X = v.X * m.X.X + v.Y * m.Y.X; result.Y = v.X * m.X.Y + v.Y * m.Y.Y; }