Sem pesquisar no Google, vc saberia dizer o que esse...

Para "abobrinhas" use o " Boteco"

Moderadores: andre_luis, 51, guest2003, Renie

Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor KrafT » 02 Abr 2016 23:03

... código faz?

Código: Selecionar todos
float AlgumaCoisa( float number )
{
   long i;
   float x2, y;
   const float threehalfs = 1.5F;

   x2 = number * 0.5F;
   y  = number;
   i  = * ( long * ) &y;                       // evil floating point bit level hacking
   i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
   y  = * ( float * ) &i;
   y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
//   y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

   return y;
}


Bom, não precisa dizer o que faz, o Google já me disse, mas me senti frustrado ao tentar entender isso por minha própria conta... :cry:
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor andre_luis » 03 Abr 2016 07:46

Nem consigo dar um palpite, mas pelo seu ar de "elementar", Apesar de escrito em "C", tem toda a pinta de ter sido extraído em emngenharia reversa de um Assembly. Se fosse um serumando normal escrevendo isso, teria escrito a fórmula numa única linha.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor Red Neck Guy » 03 Abr 2016 10:15

Como poucos tem conhecimento aprofundado de matemática, o cara olha os operações e não sabe o que está fazendo numericamente.
Uma operação assim: (unsigned short int)(byte_var<<8 | byte_var) já é uma coisa que poucos sabem como é realmente.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor xultz » 03 Abr 2016 13:34

Olha, sem olhar no google eu cheguei à brilhante conclusão que a função faz uma porrada de contas com um número mágico e retorna um número. É, eu sei que sou genial, mas não consigo ser humilde.
Depois de ver na wikipedia o que a função faz, eu voltei a trabalhar na minha horta e fui dar milho prás galinhas...
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor Red Neck Guy » 03 Abr 2016 15:15

Hoje se vê muito por aí pessoal que diz dominar Java,PHP e coisas do tipo. Porém, não hora de utilizar as coisas, caso necessite fazer algo que não seja criar uma Janela, salvar um arquivo ou tarefas comuns de sistemas de negócios, eles se perdem.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor pbernardi » 04 Abr 2016 13:02

Kct, que bruxaria F***! :shock:

Chuck norris chorou tentando entender esse código. Com a explicação, rolou quase uma lágrima.
But to us there is but one God, plus or minus one - Corinthians 8:6±2. (xkcd.com)
pbernardi
Word
 
Mensagens: 707
Registrado em: 12 Out 2006 19:01
Localização: Curitiba-PR

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor KrafT » 04 Abr 2016 13:14

Eu não entendi essa parte:
Código: Selecionar todos
  * ( long * ) 

Deve ser um emoticon... :roll:

Falando sério, a história é legal:

https://blog.dave.io/2011/10/0x5f3759df ... ic-number/

https://www.beyond3d.com/content/articles/8/
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor B-EAGLE » 04 Abr 2016 15:21

o bizarro disso aí é essa constante ae:

0x5f3759df

alguém viu de onde tiraram isso??
B-EAGLE
Word
 
Mensagens: 847
Registrado em: 19 Out 2006 14:12
Localização: Campo Grande - MS

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor pbernardi » 04 Abr 2016 18:34

Po Kraft, vc poderia deixar o nome da função, com comentários explicando cada linha e o pessoal não ia adivinhar o que essa função faz ainda... rs
But to us there is but one God, plus or minus one - Corinthians 8:6±2. (xkcd.com)
pbernardi
Word
 
Mensagens: 707
Registrado em: 12 Out 2006 19:01
Localização: Curitiba-PR

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor andre_luis » 04 Abr 2016 19:37

Eu morro de rir quando encontro comentários desse tipo nos códigos:

i = 0x5f3759df - (i >> 1); // what the fuck?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor KrafT » 04 Abr 2016 22:36

andre_teprom escreveu:Eu morro de rir quando encontro comentários desse tipo nos códigos:

i = 0x5f3759df - (i >> 1); // what the fuck?


Foi justamente esse comentário que me levou ao código: Tava vendo os comentários mais divertidos encontrados em códigos, e esbarrei nesse.

A id Software sempre foi referência em engines de jogos, tanto é que fizeram o Wolfenstein e o Doom rodar nos míseros PCs, numa época que qualquer aplicação 3D exigia um monstrengo da Silicon Graphics. Isso era perceptível quando se comprava Quake2 com Unreal e Quake3 com Unreal Tournament, por exemplo. Os caras davam uma surra nos lindos games da Epic, em termos de precisão matemática.

Mas enfim, coisas bem feitas e otimizadas não garantem o pão do dia a dia e a softhouse foi "fagocitada" pela Bethesda. Vamos ver o que o novo DOOM a ser lançado na semana que vem, dessa vez sem nenhum membro original da id, é capaz.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor B-EAGLE » 04 Abr 2016 23:32

KrafT escreveu:
Foi justamente esse comentário que me levou ao código: Tava vendo os comentários mais divertidos encontrados em códigos, e esbarrei nesse.

A id Software sempre foi referência em engines de jogos, tanto é que fizeram o Wolfenstein e o Doom rodar nos míseros PCs, numa época que qualquer aplicação 3D exigia um monstrengo da Silicon Graphics. Isso era perceptível quando se comprava Quake2 com Unreal e Quake3 com Unreal Tournament, por exemplo. Os caras davam uma surra nos lindos games da Epic, em termos de precisão matemática.

Mas enfim, coisas bem feitas e otimizadas não garantem o pão do dia a dia e a softhouse foi "fagocitada" pela Bethesda. Vamos ver o que o novo DOOM a ser lançado na semana que vem, dessa vez sem nenhum membro original da id, é capaz.



tá de sacanagem! é semana que vem mesmo?!?!?! putz, vou ter que atualizar meu pczinho!

mas isso é verdade, eu sempre achei os jogos da ID monstros em termos de qualidade em tudo... o último que joguei da Bethesda foi o Rage se não me engano, e eu achei bonzinho até.... mas comilão de recursos :(
B-EAGLE
Word
 
Mensagens: 847
Registrado em: 19 Out 2006 14:12
Localização: Campo Grande - MS

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor Ezequiel » 05 Abr 2016 08:12

Eu acho que é o algoritmo de tirar raiz quadrada. Ele é rápido, mas não é tão preciso.
Avatar do usuário
Ezequiel
 
Mensagens: 3
Registrado em: 21 Jan 2016 12:23
Localização: Belo Horizonte - MG

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor xultz » 05 Abr 2016 10:37

Tem uma página na Wikipedia que explica de onde saiu o número mágico, é bem interessante a explicação.

Aquele * (long *) serve pro compilador pegar o valor em float e tratar como se fosse long, praquela subtração fazer sentido.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Re: Sem pesquisar no Google, vc saberia dizer o que esse...

Mensagempor andre_luis » 05 Abr 2016 12:41

xultz escreveu:Aquele * (long *) serve pro compilador pegar o valor em float e tratar como se fosse long, praquela subtração fazer sentido.


Uau....agora tudo faz sentido.

:D
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Próximo

Voltar para Assuntos Gerais

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x