Share

FFFF - Fast Floating Fractal Fun

Code

Programming Languages: Assembly, C++

License: GNU General Public License (GPL)

Repositories

browse code, statistics, last commit on 2002-04-10 cvs -d:pserver:anonymous@ffff.cvs.sourceforge.net:/cvsroot/ffff login

cvs -z3 -d:pserver:anonymous@ffff.cvs.sourceforge.net:/cvsroot/ffff co -P modulename

Show:

What's happening?

  • Comment: Linux: segmentation fault

    The fix is simple. Find the line that says bool ssehw = false; and change it to int ssehw = 0; and similarly the lines bool sse2hw = false; bool b3DNow = false; need to use "int" instead. The reason is that GCC implements C++'s "bool" type as a 1-byte type, not a 4-byte type; thus the assembly line "movl $1, %0" writes four bytes into a 1-byte stack location, trashing the saved value...

    2008-11-23 02:42:36 UTC by nobody

  • Comment: portability problems, etc. (patch included)

    Another patch (perhaps even the same one) is from FreeBSD at - this seems to make it work on Linux too.

    2008-11-08 10:11:13 UTC by nobody

  • Comment: portability problems, etc. (patch included)

    BTW, this doesn't apply cleanly with patch(1) unless you dos2unix the patch and the source directory first. patch and diff never did like DOS line endings, and seem to fail even when everything has DOS line endings.

    2008-09-15 21:04:10 UTC by pcordes

  • portability problems, etc. (patch included)

    I made FFFF more portable by changing what macros it tests. I also fixed the Makefile (and code) so it works. (make -f Makefile.linux doesn't work on my x86 Debian unstable system, or on my AMD64 Ubuntu system. It needs to use -msse2, or the assembler won't assemble sse(2) instructions) Anyway, I'll attach a patch that makes it work on x86 GNU/Linux, AMD64 GNU/Linux, and x86 Solaris...

    2007-03-20 05:44:11 UTC by pcordes

  • Comment: Linux: segmentation fault

    Hello, i've found that some modified cpu register are not marked as 'clobbered' in checkSSE() and checkSSE2() before : /* clobbered */ "%eax", "%edx" after : /* clobbered */ "%eax", "%edx", "%ebx", "%ecx" with these two modified lines, ffff start ok.

    2007-01-28 17:54:40 UTC by eagle666

  • Linux: segmentation fault

    When I try to start ffff it crashes with a segmentation fault: ------------------------------------------------- > ./ffff FFFF v3.2.3 (C)1994-2006 Daniele Paccaloni (daniele.paccaloni@dylogic.com) Initalizing... Number of CPUs: 2 SMP support available, creating 1 slave threads. SSE instructions supported. Switching to SSE quadpoints computation. SSE2 instructions supported...

    2006-09-11 21:00:53 UTC by mhilpert

  • Soon Gerard's 30% speed optim on SSE code for new CPUs

    Gerard did optimize the SSE calculation routine using AMD's Pipeline analyzer. The speed improvements make FFFF ~30% faster on P4 and newer Athlons. My tests on a P4@2.4GHz results in 375 MegaIters/sec (about 6.5 clock cycles per iteration). On my P3, the speed improvement is ~5%.

    2002-10-07 20:35:38 UTC by pacca

  • New v3.1.1 - FIXED benchmarking and minor issues

    Sorry for the stupid bug, i am developing on an Athlon, but there are no excuses :) Please download this fixed version which includes also other minor fixes.

    2002-10-05 12:08:11 UTC by pacca

  • 3.1.1 soon available, with fix for benchmark on Intel CPUs

    The benchmark does crash trying to execute 3DNow! code on Intel CPUs. Will be fixed asap.

    2002-10-05 10:04:55 UTC by pacca

  • Realtime Orbit plot in v3.1.0

    Version 3.1.0 supports realtime orbit draw. Just move the mouse on the image while pressing the "O" key (the O letter, not the zero !). I forgot to mention it in the doc.. sorry :)

    2002-10-02 22:42:29 UTC by pacca

Our Numbers