this is why my generic math vectors only implement certain operations for floating point types, such
this is why my generic math vectors only implement certain operations for floating point types, such as distance, and even length
Vector2<T> where T : IFloatingPoint<T>Point2<T> where T : INumber<T>Point2<int> -> Vector2<float> for examplevector is that it has a lengthlength, you don't have a vectorPoint/CoordinateVector<T> and so must support any Vector<T>, which means it might be lossless.AsVector3() (or some qualified name that disambiguates here)
Vector2<T> where T : IFloatingPointIeee754<T>Point2<T> where T : INumber<T> is appropriate won't be as easyISimdVector<TSelf, T> is the thing I really want to finish next (might be internal only until language features come along)Vector2<T> in DecemberVector3/4<T>, Quaternion<T>, Plane<T>, Matrix4x4<T>Complex<T>TensorPrimitives workTensorPrimitivesTensorPrimitives are all nice too, since its going to be the full set of math functionsSpan<T> rather than fixed size vectors
Span<T>In mathematics, a tensor is an algebraic object that describes a multilinear relationship between sets of algebraic objects related to a vector space.
why is mathfsin and friends) has been effectively deprecated for 20 yearsaddss rather than addps)Log we have the fast path which is the normal scalar algorithmVector2<T> where T : IFloatingPoint<T>Point2<T> where T : INumber<T>Point2<T> where T : INumber<T>Point2<int> -> Vector2<float>vectorlengthlengthPointCoordinateVector<T>Vector<T>.AsVector3()Vector2<T> where T : IFloatingPointIeee754<T>ISimdVector<TSelf, T>Vector2<T>Vector3/4<T>Quaternion<T>Plane<T>Matrix4x4<T>Complex<T>TensorPrimitivesTensorPrimitivesTensorPrimitivesSpan<T>Span<T>fsinaddssaddpsLog