--- src/engine/formulas.c.old 2008-03-05 12:02:09.000000000 +0100 +++ src/engine/formulas.c 2008-07-15 14:38:46.000000000 +0200 @@ -1053,6 +1053,64 @@ #define RPIP #include "docalc.c" +#define BERYL_PARAM 0.5 +#define BERYL_VARIABLES register number_t yre, yim, re1tmp, re2tmp, im1tmp, modz=4; +#define BERYL_TEST (modz<=(1+2*BERYL_PARAM)*(1+2*BERYL_PARAM)||(yre*yre+yim*yim)<(1/BERYL_PARAM + 1)*(1/BERYL_PARAM + 1)*(modz)) +#define BERYL_FORMULA \ + re1tmp=zre; \ + re2tmp=yre; \ + im1tmp=zim; \ + zre=BERYL_PARAM*(re1tmp+re2tmp); \ + zim=BERYL_PARAM*(im1tmp+yim); \ + yre=(re1tmp*re2tmp-im1tmp*yim ); \ + yim=(re1tmp*yim +re2tmp*im1tmp); \ + modz=zre*zre+zim*zim; + +#define VARIABLES BERYL_VARIABLES; +#define BTEST BERYL_TEST +/* Im(U0) and Im(V0) constant */ +#define INIT yim=pim, yre=zim, zim=pre; +#define FORMULA BERYL_FORMULA +#define CALC beryl_calc +#define PERI beryl_peri +#define RANGE 2 +#include "docalc.c" + +#define VARIABLES BERYL_VARIABLES; +#define BTEST BERYL_TEST +/* U0 constant */ +#define INIT yre=pre; yim=pim; +#define FORMULA BERYL_FORMULA +#define CALC emerald_calc +#define PERI emerald_peri +#include "docalc.c" + +#define VARIABLES BERYL_VARIABLES; +#define BTEST BERYL_TEST +/* Re(U0) and Re(V0) constant */ +#define INIT yim=zre, yre=pim, zre=pre; +#define FORMULA BERYL_FORMULA +#define CALC heliodor_calc +#define PERI heliodor_peri +#define RANGE 2 +#include "docalc.c" + +#define VARIABLES BERYL_VARIABLES; +#define BTEST BERYL_TEST +/* Re(u0) and Im(v0) constant */ +#define INIT yre=zre, zre=pre, yim=pim; +#define FORMULA BERYL_FORMULA +#define CALC aquamarine_calc +#define PERI aquamarine_peri +#define RANGE 2 +#include "docalc.c" + +#undef BERYL_VARIABLES +#undef BERYL_TEST +#undef BERYL_FORMULA +#undef BERYL_PARAM + + /* plan9 compiler has problem with rest of formulas files. Hope that will be fixed later */ #define VARIABLES @@ -1823,7 +1881,51 @@ }, STARTZERO, }, - { /* formula added by Arpad Fekete *//* 14 */ +#ifdef SFFE_USING + { /* formula added by M. Malczak - SFFE *//* 14 */ + FORMULAMAGIC, +#ifndef SLOWFUNCPTR + sffe_calc, + NULL, + NULL, + NULL, +#endif + sffe_julia, + {"User defined", "User defined"}, + "user", + /*{0.5, -2.0, 1.25, -1.25}, */ + {-0.75, 0.0, 1, 1}, + 0, 1, 0.0, 0.0, + { + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + }, + { + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + }, + MANDEL_BTRACE|SFFE_FRACTAL, + }, +#endif + { /* formula added by Arpad Fekete *//* 15 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR trice_calc, @@ -1864,7 +1966,7 @@ }, MANDEL_BTRACE, }, - { /* formula added by Arpad Fekete *//* 15 */ + { /* formula added by Arpad Fekete *//* 16 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR catseye_calc, @@ -1905,7 +2007,7 @@ }, MANDEL_BTRACE, }, - { /*formula added by Arpad Fekete*//* 16 */ + { /*formula added by Arpad Fekete*//* 17 */ /*in Gnofract4d from mathworld.wolfram.com*/ FORMULAMAGIC, #ifndef SLOWFUNCPTR @@ -1947,7 +2049,7 @@ }, MANDEL_BTRACE, }, - { /* formula added by Arpad Fekete (from fractint)*//* 17 */ + { /* formula added by Arpad Fekete (from fractint)*//* 18 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR mlambda_calc, @@ -1988,7 +2090,7 @@ }, MANDEL_BTRACE, }, - { /* formula added by Arpad Fekete (from fractint)*//* 18 */ + { /* formula added by Arpad Fekete (from fractint)*//* 19 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR manowar_calc, @@ -2029,7 +2131,7 @@ }, MANDEL_BTRACE, }, - { /* formula added by Arpad Fekete (from fractint)*//* 19 */ + { /* formula added by Arpad Fekete (from fractint)*//* 20 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR spider_calc, @@ -2070,7 +2172,7 @@ }, MANDEL_BTRACE, }, - { /* formula added by Arpad Fekete, method from fractint *//* 20 */ + { /* formula added by Arpad Fekete, method from fractint *//* 21 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR sier_calc, @@ -2111,7 +2213,7 @@ }, MANDEL_BTRACE, }, - { /* formula added by Arpad Fekete, method from fractint *//* 21 */ + { /* formula added by Arpad Fekete, method from fractint *//* 22 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR carpet_calc, @@ -2152,7 +2254,7 @@ }, MANDEL_BTRACE, }, - { /* formula added by Arpad Fekete, method from fractint *//* 22 */ + { /* formula added by Arpad Fekete, method from fractint *//* 23 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR koch_calc, @@ -2193,7 +2295,7 @@ }, MANDEL_BTRACE, } , - { /* formula added by Z. Kovacs *//* 23 */ + { /* formula added by Z. Kovacs *//* 24 */ FORMULAMAGIC, #ifndef SLOWFUNCPTR hornflake_calc, @@ -2233,22 +2335,61 @@ {INT_MAX, INT_MAX, 0, NULL}, }, MANDEL_BTRACE, - } -#ifdef SFFE_USING -, { /* formula added by M. Malczak - SFFE *//* 24 */ - FORMULAMAGIC, + } , + { /* formula added by S. Bizien *//* 25 */ + FORMULAMAGIC, #ifndef SLOWFUNCPTR - sffe_calc, + beryl_calc, + beryl_peri, NULL, NULL, +#endif + NULL, + {"Beryl", "Beryl"}, + "beryl", + {0, 0, 2, 2}, + 0, 0, 0.0, 0.0, + { + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + }, + { + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + }, + MANDEL_BTRACE, + } , + { /* formula added by S. Bizien *//* 26 */ + FORMULAMAGIC, +#ifndef SLOWFUNCPTR + emerald_calc, + emerald_peri, + NULL, NULL, #endif - sffe_julia, - {"User defined", "User defined"}, - "user", - /*{0.5, -2.0, 1.25, -1.25}, */ - {-0.75, 0.0, 1, 1}, - 0, 1, 0.0, 0.0, + NULL, + {"Emerald", "Emerald"}, + "emerald", + {-0.6, 0, 2, 2}, + 0, 0, 1.0, 0.0, { {INT_MAX, INT_MAX, 0, NULL}, {INT_MAX, INT_MAX, 0, NULL}, @@ -2275,10 +2416,90 @@ {INT_MAX, INT_MAX, 0, NULL}, {INT_MAX, INT_MAX, 0, NULL}, }, - MANDEL_BTRACE|SFFE_FRACTAL, - } + MANDEL_BTRACE, + } , + { /* formula added by S. Bizien *//* 27 */ + FORMULAMAGIC, +#ifndef SLOWFUNCPTR + heliodor_calc, + heliodor_peri, + NULL, + NULL, #endif - + NULL, + {"Heliodor", "Heliodor"}, + "heliodor", + {0, 0, 4, 4}, + 0, 0, 0.0, 0.0, + { + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + }, + { + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + }, + MANDEL_BTRACE, + } , + { /* formula added by S. Bizien *//* 28 */ + FORMULAMAGIC, +#ifndef SLOWFUNCPTR + aquamarine_calc, + aquamarine_peri, + NULL, + NULL, +#endif + NULL, + {"Aquamarine", "Aquamarine"}, + "aquamarine", + {0, 0, 2, 2}, + 0, 0, 1.0, 0.0, + { + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + }, + { + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + {INT_MAX, INT_MAX, 0, NULL}, + }, + MANDEL_BTRACE, + } }; #ifdef SLOWFUNCPTR @@ -2331,42 +2552,51 @@ break; case 13: return (smagnet2_peri (x1, y1, x2, y2)); - break; + break; +#ifdef SFFE_USING case 14: + return (sffe_calc (x1, y1, x2, y2)); + break; +#endif + case 15: return (strice_peri (x1, y1, x2, y2)); break; - case 15: + case 16: return (scatseye_peri (x1, y1, x2, y2)); break; - case 16: + case 17: return (smbar_peri (x1, y1, x2, y2)); break; - case 17: + case 18: return (smlambda_peri (x1, y1, x2, y2)); break; - case 18: + case 19: return (smanowar_calc (x1, y1, x2, y2)); break; - case 19: + case 20: return (sspider_calc (x1, y1, x2, y2)); break; - case 20: + case 21: return (sier_calc (x1, y1, x2, y2)); break; - case 21: + case 22: return (carpet_calc (x1, y1, x2, y2)); break; - case 22: - return (koch_calc (x1, y1, x2, y2)); - break; case 23: - return (hornflake_calc (x1, y1, x2, y2)); - break; -#ifdef SFFE_USING - case 24: - return (sffe_calc (x1, y1, x2, y2)); + return (koch_calc (x1, y1, x2, y2)); break; -#endif + case 25: + return (beryl_calc (x1, y1, x2, y2)); + break; + case 26: + return (emerald_calc (x1, y1, x2, y2)); + break; + case 27: + return (heliodor_calc (x1, y1, x2, y2)); + break; + case 28: + return (aquamarine_calc (x1, y1, x2, y2)); + break; } else switch (cfractalc.currentformula - formulas) @@ -2412,42 +2642,54 @@ break; case 13: return (magnet2_peri (x1, y1, x2, y2)); - break; + break; +#ifdef SFFE_USING case 14: + return (sffe_calc (x1, y1, x2, y2)); + break; +#endif + case 15: return (trice_peri (x1, y1, x2, y2)); break; - case 15: + case 16: return (catseye_peri (x1, y1, x2, y2)); break; - case 16: + case 17: return (mbar_peri (x1, y1, x2, y2)); break; - case 17: + case 18: return (mlambda_peri (x1, y1, x2, y2)); break; - case 18: + case 19: return (manowar_calc (x1, y1, x2, y2)); break; - case 19: + case 20: return (spider_calc (x1, y1, x2, y2)); break; - case 20: + case 21: return (sier_calc (x1, y1, x2, y2)); break; - case 21: + case 22: return (carpet_calc (x1, y1, x2, y2)); break; - case 22: + case 23: return (koch_calc (x1, y1, x2, y2)); break; - case 23: + case 24: return (hornflake_calc (x1, y1, x2, y2)); break; -#ifdef SFFE_USING - case 24: - return (sffe_calc (x1, y1, x2, y2)); - break; -#endif + case 25: + return (berly_peri (x1, y1, x2, y2)); + break; + case 26: + return (emerald_peri (x1, y1, x2, y2)); + break; + case 27: + return (heliodor_peri (x1, y1, x2, y2)); + break; + case 28: + return (aquamarine_peri (x1, y1, x2, y2)); + break; } else if (cfractalc.coloringmode == 9) switch (cfractalc.currentformula - formulas) @@ -2494,41 +2736,53 @@ case 13: return (smagnet2_calc (x1, y1, x2, y2)); break; +#ifdef SFFE_USING case 14: + return (sffe_calc (x1, y1, x2, y2)); + break; +#endif + case 15: return (strice_calc (x1, y1, x2, y2)); break; - case 15: + case 16: return (scatseye_calc (x1, y1, x2, y2)); break; - case 16: + case 17: return (smbar_calc (x1, y1, x2, y2)); break; - case 17: + case 18: return (smlambda_calc (x1, y1, x2, y2)); break; - case 18: + case 19: return (smanowar_calc (x1, y1, x2, y2)); break; - case 19: + case 20: return (sspider_calc (x1, y1, x2, y2)); break; - case 20: + case 21: return (sier_calc (x1, y1, x2, y2)); break; - case 21: + case 22: return (carpet_calc (x1, y1, x2, y2)); break; - case 22: + case 23: return (koch_calc (x1, y1, x2, y2)); break; - case 23: + case 24: return (hornflake_calc (x1, y1, x2, y2)); - break; -#ifdef SFFE_USING - case 24: - return (sffe_calc (x1, y1, x2, y2)); - break; -#endif + break; + case 25: + return (beryl_calc (x1, y1, x2, y2)); + break; + case 26: + return (emerald_calc (x1, y1, x2, y2)); + break; + case 27: + return (heliodor_calc (x1, y1, x2, y2)); + break; + case 28: + return (aquamarine_calc (x1, y1, x2, y2)); + break; } else switch (cfractalc.currentformula - formulas) @@ -2575,41 +2829,53 @@ case 13: return (magnet2_calc (x1, y1, x2, y2)); break; - case 14: +#ifdef SFFE_USING + case 14: + return (sffe_calc (x1, y1, x2, y2)); + break; +#endif + case 15: return (trice_calc (x1, y1, x2, y2)); break; - case 15: + case 16: return (catseye_calc (x1, y1, x2, y2)); break; - case 16: + case 17: return (mbar_calc (x1, y1, x2, y2)); break; - case 17: + case 18: return (mlambda_calc (x1, y1, x2, y2)); break; - case 18: + case 19: return (manowar_calc (x1, y1, x2, y2)); break; - case 19: + case 20: return (spider_calc (x1, y1, x2, y2)); break; - case 20: + case 21: return (sier_calc (x1, y1, x2, y2)); break; - case 21: + case 22: return (carpet_calc (x1, y1, x2, y2)); break; - case 22: + case 23: return (koch_calc (x1, y1, x2, y2)); break; - case 22: + case 24: return (hornflake_calc (x1, y1, x2, y2)); - break; -#ifdef SFFE_USING - case 23: - return (sffe_calc (x1, y1, x2, y2)); - break; -#endif + break; + case 25: + return (beryl_calc (x1, y1, x2, y2)); + break; + case 26: + return (emerald_calc (x1, y1, x2, y2)); + break; + case 27: + return (heliodor_calc (x1, y1, x2, y2)); + break; + case 28: + return (aquamarine_calc (x1, y1, x2, y2)); + break; } return 0; }