where we have a loosely constrained type with few members and a bunch of extensions as we have been
where we have a loosely constrained type with few members and a bunch of extensions as we have been considering the whole time
Vector2/3/4<T> from integer typesHalf a lot. If you choose the type you likely know of the trade offs and putting further barriers in place just to confirm you actually know what you're doing is unecessary. Similar for VectorN<byte> etc.Box2D vs RectangleVector3<T> including integers to avoid extra overloads in bindings?extending the BCL maths to vectors here(this is happening in .NET 9, it's already been partially started in an OOB in 8)
TensorPrimitives, which is math APIs over ROSpan<T> (so TensorPrimitives.Log(ROSpan<float> x, Span<float> destination))where T : IFloatingPointIeee754<T>Vector128.Log(Vector128<float> x) and friends (+ double overloads)floating-point typesyeah that's sort of what I ment
Cos(int) doesn't make sense Log2(int) (and already have these for scalars, of course)Vector2/3/4<T>HalfBox2DRectangleVector3<T>TensorPrimitivesROSpan<T>TensorPrimitives.Log(ROSpan<float> x, Span<float> destination)where T : IFloatingPointIeee754<T>Vector128.Log(Vector128<float> x)Cos(int)Log2(int)