Skip to content

A math library for graphics programming supporting generic math.

License

Notifications You must be signed in to change notification settings

GasInfinity/Rena.Mathematics

Repository files navigation

Rena.Mathematics

Dynamic XML Badge CodeFactor Nuget GitHub

Warning! This library is in development and currently does not adhere to SemVer until we hit v2.0, so, expect breaking changes!

Features

Why use this library instead of System.Numerics?

  • This library uses generic math so you're not limited to only System.Single
  • Tries be as optimized as possible with SIMD instructions thanks to System.Runtime.Intrinsics and the new Unsafe.BitCast of .NET 8 🚀
    • In this moment Vec3 does not have SIMD support implemented
    • This library can't do magic, the JIT its what does all the work for us. The generated assembly of the JIT is partially optimal for Vec4{T} in win-x64 and win-x86, other types or RID's may not be as optimal as they should be ✏️

When to stick with System.Numerics

  • When you only need Vectors with System.Single. Those vectors are handled specially by the runtime so you won't have any problem with them, so, unless we have something specific you need, you don't need Rena.Mathematics
  • When you can't update to .NET 8 (This limitiation is a temporal measure)

TODO's

  • Support .NET 7 without SIMD? (We don't have Unsafe.BitCast there, so, conditional compilation...)
  • Finish Quat{T} implementation
  • Add all the remaining MatMxN types
  • Vec3{T} SIMD
  • v2.0

About

A math library for graphics programming supporting generic math.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages