00001 #ifndef __COMMUN_HPP__
00002 #define __COMMUN_HPP__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <complex>
00027
00028 #ifdef _CALLBACK_QT
00029
00030 extern void retourPourcentage(int);
00031 #endif
00032
00040 namespace Fractale
00041 {
00042
00043
00052 struct Random
00053 {
00054 unsigned long long u,v,w;
00059 Random(unsigned long long j = 0)
00060 : v(4101842887655102017LL),
00061 w(1)
00062 {
00063 u = j ^ v; generateUInt64();
00064 v = u; generateUInt64();
00065 w = v; generateUInt64();
00066 }
00071 unsigned long long generateUInt64()
00072 {
00073 u = u * 2862933555777941757LL + 7046029254386353087LL;
00074 v ^= v >> 17; v ^= v << 31; v ^= v >> 8;
00075 w = 4294957665U*(w & 0xffffffff) + (w >> 32);
00076 unsigned long long x = u ^ (u << 21); x ^= x >> 35; x ^= x << 4;
00077 return (x + v) ^ w;
00078 }
00079
00084 double generateDouble()
00085 {
00086 return 5.42101086242752217E-20 * generateUInt64();
00087 }
00092 unsigned int generateUInt32()
00093 {
00094 return (unsigned int)generateUInt64();
00095 }
00096 };
00097
00098
00102 struct Zone
00103 {
00104 double x;
00105 double y;
00106 double h;
00107 double l;
00108 unsigned int imgH;
00109 unsigned int imgL;
00115 Zone(double x = 0.,double y =0.,double h = 0., double l = 0.,unsigned int imgH = 0,unsigned int imgL = 0)
00116 :x(x),y(y),h(h),l(l),imgH(imgH),imgL(imgL)
00117 {
00118 }
00123 Zone(const Zone &z)
00124 :x(z.x), y(z.y), h(z.h), l(z.l), imgH(z.imgH), imgL(z.imgL)
00125 {}
00126 };
00127
00133 typedef std::complex<double> point;
00134
00135 }
00136
00137 #endif