O Delphi torna você um programador melhor? O código Object Pascal é mais legível?
Há um algoritmo com uma constante misteriosa que ganhou fama no código Quake III Arena C de John Carmack por estimar rapidamente a raiz quadrada inversa de um número de ponto flutuante de 32 bits.
Table of Contents
Compreender o Código
É baseado no método de Newton para estimar raízes. Além disso, ele converte o número de ponto flutuante em um inteiro, usa deslocamento de bits e começa com uma aproximação de √2 ^ 127. A linha comentada permite uma iteração adicional para melhorar a estimativa, que não foi utilizada no Quate III Arena. Você pode ler mais sobre isso na Wikipedia ou assistir a alguns vídeos do YouTube sobre o assunto [incluindo um mergulho muito profundo ]. Aqui está um bom vídeo de alto nível :
A Delphi pode torná-lo melhor?
O usuário do Facebook Toon Krijthe mostrou como o código seria muito mais claro e simples se fosse implementado em Object Pascal / Delphi.
Ele faz uso da palavra-chave absoluta para mapear o número de ponto flutuante para o inteiro, o que evita todos os “hackers de nível de bit de ponto flutuante maligno”. Isso é algo que adoro no Delphi e no Object Pascal: ele dá acesso a ponteiros, memória bruta etc., mas não o força a usá-lo quando não quiser / precisar. O código mais curto nem sempre é mais fácil de entender, basta dar uma olhada em qualquer expressão regular, mas isso é uma melhoria porque remove muitos códigos estranhos. Muito mais legível.
O Object Pascal é tão legível que torna os programadores melhores, pois torna seu código mais legível e sustentável. Não me entenda mal, você pode escrever spaghetti em qualquer linguagem / sintaxe de programação, mas começar com uma legível ajuda. É por isso que existem tantos programas Delphi “Legados”: Eles são bem-sucedidos e podem ser mantidos. Código que não funciona ou não pode ser mantido é descartado ou reescrito.
Precisa de mais matemática de alto desempenho?
Se você está procurando rotinas matemáticas mais rápidas para Delphi, verifique a Biblioteca de High-Performance FastMath do Embarcadero MVP Erik van Bilsen, famoso por Grijjy.
FastMath – Biblioteca Fast Math para Delphi
FastMath é uma biblioteca matemática Delphi otimizada para desempenho rápido (às vezes ao custo de não realizar a verificação de erros ou perder um pouco de precisão).
Isso torna o FastMath ideal para aplicativos de alto desempenho com uso intensivo de matemática, como aplicativos de multimídia e jogos. Para um desempenho ainda melhor, a biblioteca oferece uma variedade de funções “aproximadas” (todas começam com um Fast
prefixo). Isso pode ser muito rápido, mas você perderá alguma precisão (às vezes surpreendentemente pequena). Para jogos e animação, essa perda de precisão é geralmente perfeitamente aceitável e compensada pelo aumento na velocidade. Não os use para cálculos científicos …