my only concern is that it would complicate developing libraries that depend on silk
my only concern is that it would complicate developing libraries that depend on silk
Silk.NET, and the source generator contains the same mod pipeline as in SilkTouchXthing = Vector2.Abs(thing) is much cleaner than thing = Vector2<T>.Abs(thing). in most cases extension methods just work also, but you do raise a good point that sometimes you will have to repeat the generic but i'm okay with this.#if NET8_0 this is assumed if we're targeting 3.0. 3.0 will target the latest even-numbered SDK at time of release.Sqrt instead of SquareRoot. generally prefer the names that we've used in Silk.NET.Maths because we've already bikeshedded these.Because the type of T has to be narrowed to IFloatingPointIeee754<T>, we can't actually implement the interface on Vector3<T>. I don't think Silk.NET.Maths ever did support Vector-as-Scalar as we had once thought of doing (i.e. allowing Scalar.Add<Vector3<float>>(l, r)) so we can live with this. it's cursed anyway.Ideally, this should be vectorized. In practice, that's a lot of work. no more work than we were prepared to do for 2.0Extension 3: INumber<Vector3<T>> Implementation yeah I guess?Extension 4: Directional static properties if we're doing something like this it should be an extension method that allows the specification of the coordinate system, not a simple property.Extension 5: Convenience methods yep fineExtension 6: IUtf8SpanFormattable (.NET 8) if someone's willing to do it then yeahImplicit cast to Vector2<T>, drop the Z component should be explicitdocumentation/proposals and make a more formal proposal like the WIP one in #1727, making rationale and alternatives (and the discussion points thereof) clear; if you want this in 3.0Silk.NETthing = Vector2.Abs(thing)thing = Vector2<T>.Abs(thing)#if NET8_0SqrtSquareRootSilk.NET.MathsBecause the type of T has to be narrowed to IFloatingPointIeee754<T>, we can't actually implement the interface on Vector3<T>.Scalar.Add<Vector3<float>>(l, r)Ideally, this should be vectorized. In practice, that's a lot of work.Extension 3: INumber<Vector3<T>> ImplementationExtension 4: Directional static propertiesExtension 5: Convenience methodsExtension 6: IUtf8SpanFormattable (.NET 8)Implicit cast to Vector2<T>, drop the Z componentdocumentation/proposals