Unity-Technologies / Unity-Technologies/Unity.Mathematics

Remove `IsNaN` checks from `min()` and `max()`

Aperta
#243 0 commenti 6 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C#
Stelle
1.4k
Fork
159
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

  • horrendous code gen

  • hides NaNs which would otherwise be easily caught while debugging

  • propagates throughout the entire Unity.Mathematics.math library

  • ... while breaking the rule of NaN propagation

  • checking for NaN does neither comply to IEEE754, nor any native SIMD instruction sets, nor any C/C++ library - not even UnityEngine.Mathf

  • if we want to copy HLSL 1:1, at least flush denormals to zero and make it even more expensive ;)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia individuando le implementazioni di min() e max() e i relativi controlli IsNaN nella libreria Unity.Mathematics.math. Rimuovi i controlli in modo che la propagazione di NaN segua le aspettative di IEEE754 e SIMD nativo indicate nell'issue, quindi verifica il comportamento matematico interessato e il codice generato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp, unity
Ambito
performance
Tipo di issue
Refactoring
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.