2021-06-26 – O começo do meu programa de exploração de fractais, e os limites de precisão de vírgula flutuante, em C/C++…
O começo das viagens ao infinitamente pequeno (clicar na imagem acima para visualizar a animação).
Mas vão reparar que a dada altura, fica tudo pixelizado, e porquê?
Porque à medida que me aproximo do infinitamente pequeno, é necessária uma cada vez maior precisão de vírgula flutuante, cada vez mais casas decimais e números cada vez mais pequenos.
Há contudo um limite ao número de casas decimais, e também tamanho de números inteiros, que podemos usar em cada processador.
Chegando a esse limite, continuando a fazer zoom, mas o nível de detalhe não aumentando por falta de precisão extra, começam a ser aumentados os píxeis, até por fim ficar o ecrã dentro de um gigante píxel.
Este foi o primeiro passo, depois tenho de criar uma forma de calcular números infinitamente pequenos, sem este limite.
Atenção que neste caso usei precisão double, e se usasse long double aumentaria o limite, mas quis usar só double.
Da mesma maneira que fazemos contas de dividir, dígito a dígito, até ao infinito, só tenho de fazer com que o computador tenha um número definido numa string de caracteres, que pode ir até ao infinito, e calcular um dígito de cada vez, e ir aumentando assim a cadeia de caracteres, até ao limite da memória.
Assim, terei o fractal calculado até ao infinito, ou melhor, até ao fim da memória, porque há-de chegar a uma altura em que não há mais memória.
Isto faz parte de um dos meus muitos hobbies, que é criar um gerador de fractais excelente para as minhas descobertas de padrões escondidos nos números, só que neste caso uso algo muito conhecido e sem nada para descobrir, o set Mandelbrot, as descobertas que faço é com fórmulas próprias e não esta.
Depois partilho mais sobre isto, é só o começo, claro está. 🙂
2021-06-26.