HeadlinesBriefing HeadlinesBriefing.com

Turnos vencem radianos na eficiência de código

Hacker News •
×

O debate tau versus pi dominou discussões sobre constantes matemáticas em programação, mas uma oportunidade mais significativa foi ignorada: eliminar os radianos.

A maioria do código usa pi ou tau para converter valores para radianos para funções trigonométricas. Por exemplo, no código fonte do Godot Engine, os desenvolvedores multiplicam um valor periódico h por tau antes de chamar sin, mesmo que h já esteja na faixa [0, 1]. Esta conversão é desnecessária porque as bibliotecas matemáticas multiplicam internamente a entrada por 4/pi imediatamente, anulando efetivamente a conversão.

Usar turnos em vez de radianos simplifica o código e melhora a precisão. Um parâmetro de volta parametriza um círculo de 0 a 1, onde 0.25 representa exatamente 90 graus, ao contrário dos radianos que não podem representar ângulos comuns com precisão. Esta abordagem elimina multiplicações e divisões redundantes.

Para aqueles que usam bibliotecas existentes, os meias-voltas oferecem uma alternativa prática. A intrínseca sincospi da CUDA calcula seno e cosseno de entradas multiplicadas por pi, efetivamente usando meias-voltas. Ao chamar sincospi com meias-voltas em vez de sin e cos com radianos, os desenvolvedores podem imediatamente parar de usar constantes pi e tau.

O artigo argumenta que mudar para turnos ou meias-voltas em toda uma base de código geralmente envolve mudanças mínimas, muitas vezes apenas excluindo código de conversão desnecessário. As bibliotecas normalmente convertem os radianos internamente de qualquer forma, tornando esta transição direta e benéfica.

Entidades-chave: Empresas: Godot Engine

Fonte: Hacker News · Resumido por HeadlinesBriefing