~ubuntu-branches/ubuntu/trusty/xfractint/trusty

« back to all changes in this revision

Viewing changes to fractint.frm

  • Committer: Bazaar Package Importer
  • Author(s): Riku Voipio
  • Date: 2010-11-24 21:24:54 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20101124212454-a2vxdh9pk5p5lhlm
Tags: 20.4.10-1
* New upstream version
* enable autobuilding, Closes: #410674, #587959
* update watch file. Closes: #449889
* remove bashism from rules, Closes: #581474

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
comment {
2
 
 This iteration of FRACTINT.FRM was first released with Fractint 19.0
3
 
 
4
 
 The formulas at the beginning of this file are from Mark Peterson, who
5
 
 built this fractal interpreter feature.  The rest are grouped by contributor.
6
 
 Formulas by unidentified authors are grouped at the end.
7
 
 
8
 
 If you would like to contribute formulas for future versions of this file,
9
 
 please contact one of the authors listed in FRACTINT.DOC.
10
 
 All contributions are assumed to belong to the public domain.
11
 
 
12
 
 There are several hard-coded restrictions in the formula interpreter:
13
 
 
14
 
 1) The fractal name through the open curly bracket must be on a single line.
15
 
 2) There is a hard-coded limit of 2000 formulas per formula file, only
16
 
    because of restrictions in the prompting routines.
17
 
 3) Formulas can contain at most 2000 operations (references to variables and
18
 
    arithmetic); this is bigger than it sounds.
19
 
 4) Comment blocks can be set up using dummy formulas with no formula name
20
 
    or with the special name "comment".
21
 
 
22
 
 Note that the builtin "cos" function had a bug which was corrected in
23
 
 version 16.  To recreate an image from a formula which used cos before
24
 
 v16, change "cos" in the formula to "cosxx" which is a new function
25
 
 provided for backward compatibility with that bug.
26
 
 }
27
 
 
28
 
{--- MARK PETERSON -------------------------------------------------------}
29
 
 
30
 
Mandelbrot(XAXIS) {; Mark Peterson
31
 
  ; Classical fractal showing LastSqr speedup
32
 
  z = Pixel, z = Sqr(z):  ; Start with z**2 to initialize LastSqr
33
 
   z = z + Pixel
34
 
   z = Sqr(z)
35
 
    LastSqr <= 4          ; Use LastSqr instead of recalculating
36
 
  }
37
 
 
38
 
Dragon (ORIGIN) {; Mark Peterson
39
 
  z = Pixel:
40
 
   z = sqr(z) + (-0.74543, 0.2)
41
 
    |z| <= 4
42
 
  }
43
 
 
44
 
Daisy (ORIGIN) {; Mark Peterson
45
 
  z = pixel:
46
 
   z = z*z + (0.11031, -0.67037)
47
 
    |z| <= 4
48
 
  }
49
 
 
50
 
InvMandel (XAXIS) {; Mark Peterson
51
 
  c = z = 1 / pixel:
52
 
   z = sqr(z) + c
53
 
    |z| <= 4
54
 
  }
55
 
 
56
 
DeltaLog(XAXIS) {; Mark Peterson
57
 
  z = pixel, c = log(pixel):
58
 
   z = sqr(z) + c
59
 
    |z| <= 4
60
 
  }
61
 
 
62
 
Newton4(XYAXIS) {; Mark Peterson
63
 
  ; Note that floating-point is required to make this compute accurately
64
 
  z = pixel, Root = 1:
65
 
   z3 = z*z*z
66
 
   z4 = z3 * z
67
 
   z = (3 * z4 + Root) / (4 * z3)
68
 
    .004 <= |z4 - Root|
69
 
  }
70
 
 
71
 
{--- DON ARCHER ----------------------------------------------------------}
72
 
 
73
 
DAFRM01 {;  Don Archer, 1993
74
 
  z = pixel :
75
 
   z = z ^ (z - 1) * (fn1(z) + pixel)
76
 
    |z| <= 4
77
 
  }
78
 
 
79
 
DAFRM07 {
80
 
  z = pixel, c = p1 :
81
 
   z = z ^ (z - 1) * fn1(z) + pixel
82
 
    |z| <= 4
83
 
  }
84
 
 
85
 
DAFRM09 {
86
 
  z = pixel, c = z + z^ (z - 1):
87
 
   tmp = fn1(z)
88
 
   real(tmp) = real(tmp) * real(c) - imag(tmp) * imag(c)
89
 
   imag(tmp) = real(tmp) * imag(c) - imag(tmp) * real(c)
90
 
   z = tmp + pixel + 12
91
 
    |z| <= 4
92
 
  }
93
 
 
94
 
dafrm21 {
95
 
  z = pixel:
96
 
   x = real(z), y = imag(z)
97
 
   x1 = -fn1((x*x*x + y*y*y - 1) - 6*x)*x/(2*x*x*x + y*y*y - 1)
98
 
   y1 = -fn2((x*x*x + y*y*y - 1) + 6*x)*y/(2*x*x*x + y*y*y - 1)
99
 
   x2 = x1*x1*x1 - y1*y1*y1 + p1 + 5
100
 
   y2 = 4*x*y - 18
101
 
   z = x2 + flip(y2)
102
 
    |z| <= 100
103
 
  }
104
 
 
105
 
3daMand01 {; Mandelbrot/Zexpe via Lee Skinner
106
 
  ; based on 4dFRACT.FRM by Gordon Lamb (CIS: 100272,3541)
107
 
  z=real(pixel)+flip(imag(pixel)*p1)
108
 
  c=p2+p1*real(pixel)+flip(imag(pixel)):
109
 
   z=z^2.71828182845905 + c
110
 
    |z|<=100
111
 
  }
112
 
 
113
 
3daMand02 {; Mandelbrot/Xexpe/Feigenbaum's alpha constant=exponent
114
 
  ; based on 4dFRACT.FRM by Gordon Lamb (CIS: 100272,3541)
115
 
  z=real(pixel)+flip(imag(pixel)*p1)
116
 
  c=p2+p1*real(pixel)+flip(imag(pixel)):
117
 
   z=z^2.502907875095 + c
118
 
    |z|<=100
119
 
  }
120
 
 
121
 
{--- RON BARNETT ---------------------------------------------------------}
122
 
 
123
 
Julike { ; Ron Barnett, 1993
124
 
  ; a Julia function based upon the Ikenaga function
125
 
  z = Pixel:
126
 
   z = z*z*z + (P1-1)*z - P1
127
 
    |z| <= 4
128
 
  }
129
 
 
130
 
Mask { ; Ron Barnett, 1993
131
 
  ; try fn1 = log, fn2 = sinh, fn3 = cosh
132
 
  ;P1 = (0,1), P2 = (0,1)
133
 
  ;Use floating point
134
 
  z = fn1(pixel):
135
 
   z = P1*fn2(z)^2 + P2*fn3(z)^2 + pixel
136
 
    |z| <= 4
137
 
  }
138
 
 
139
 
JMask {  ; Ron Barnett, 1993
140
 
  z = fn1(pixel):
141
 
   z = P1*fn2(z)^2 + P2
142
 
    |z| <= 4
143
 
  }
144
 
 
145
 
PseudoZeePi {; Ron Barnett, 1993
146
 
  z = pixel:
147
 
   x = 1-z^p1;
148
 
   z = z*((1-x)/(1+x))^(1/p1) + p2
149
 
    |z| <= 4
150
 
  }
151
 
 
152
 
ZeePi {  ; Ron Barnett, 1993
153
 
  ; This Julia function is based upon Ramanujan's iterative
154
 
  ; function for calculating pi
155
 
  z = pixel:
156
 
   x = (1-z^p1)^(1/p1)
157
 
   z = z*(1-x)/(1+x) + p2
158
 
    |z| <= 4
159
 
  }
160
 
 
161
 
IkeNewtMand {; Ron Barnett, 1993
162
 
  z = c = pixel:
163
 
   zf = z*z*z + (c-1)*z - c
164
 
   zd = 3*z*z + c-1
165
 
   z = z - p1*zf/zd
166
 
    0.001 <= |zf|
167
 
  }
168
 
 
169
 
Frame-RbtM(XAXIS) {; Ron Barnett, 1993
170
 
  ; from Mazes for the Mind by Pickover
171
 
  z = c = pixel:
172
 
   z = z*z*z/5 + z*z + c
173
 
    |z| <= 100
174
 
  }
175
 
 
176
 
FrRbtGenM {; Ron Barnett, 1993
177
 
  z = pixel:
178
 
   z = p1*z*z*z + z*z + pixel
179
 
    |z| <= 100
180
 
  }
181
 
 
182
 
FlipLambdaJ { ; Ron Barnett, 1993
183
 
  z = pixel:
184
 
   z = p1*z*(1-flip(z)*flip(z))
185
 
    |z| <= 100
186
 
  }
187
 
 
188
 
REBRefInd2 {  ; Ron Barnett, 1993
189
 
  ; Use floating point
190
 
  z = pixel:
191
 
   z = (z*z-1)/(z*z+2)*fn1(z)*fn2(z) + p1
192
 
    |z| <= 100
193
 
  }
194
 
 
195
 
GopalsamyFn {
196
 
  z = pixel:
197
 
   x = real(z), y = imag(z)
198
 
   x1 = fn1(x)*fn2(y)
199
 
   y1 = fn3(x)*fn4(y)
200
 
   x2 = -2*x1*y1 + p1
201
 
   y = y1*y1 - x1*x1
202
 
   z = x2 + flip(y)
203
 
    |z| <= 100
204
 
  }
205
 
 
206
 
REB004A {; Ron Barnett, 1993
207
 
  z = pixel:
208
 
   z =p1*fn1(z) + p1*p1*fn2(p2*z) + pixel
209
 
    |z| <= 100
210
 
  }
211
 
 
212
 
REB004K {; Ron Barnett, 1993
213
 
  ; floating point required
214
 
  z = pixel:
215
 
   x = flip(pixel + fn1(3/z - z/4))
216
 
   z = x*z + p1
217
 
    |z| <= 100
218
 
  }
219
 
 
220
 
REB004L {; Ron Barnett, 1993
221
 
  ; floating point required
222
 
  z = pixel:
223
 
   x = flip(pixel + fn1(p1/z - z/(p2+1)))
224
 
   z = x*z + pixel
225
 
    |z| <= 100
226
 
  }
227
 
 
228
 
REB004M {; Ron Barnett, 1993
229
 
  ; floating point required
230
 
  z = pixel:
231
 
   x = real(z), y = imag(z)
232
 
   const = x*x + y*y
233
 
   x1 = -fn1(const - 12*x)*x/(4*const)
234
 
   y1 = -fn2(const + 12*x)*y/(4*const)
235
 
   x2 = x1*x1 - y1*y1 + p1
236
 
   y2 = 2*x*y
237
 
   z = x2 + flip(y2)
238
 
    |z| <= 100
239
 
  }
240
 
 
241
 
REB005A {; Ron Barnett, 1993
242
 
  ; floating point required
243
 
  z = pixel:
244
 
   x = real(z), y = imag(z)
245
 
   const = x*x + y*y
246
 
   x1 = -fn1(const - 12*x)*x/(4*const)
247
 
   y1 = -fn2(const + 12*y)*y/(4*const)
248
 
   x2 = x1*x1 - y1*y1 + p1
249
 
   y2 = 2*x1*y1
250
 
   z = x2 + flip(y2)
251
 
    |z| <= 100
252
 
  }
253
 
 
254
 
REB005E {; Ron Barnett, 1993
255
 
  ; floating point required
256
 
  z = pixel:
257
 
   x = real(z), y = imag(z)
258
 
   const = x*x + y*y
259
 
   x1 = -fn1((const - x)*x/const)
260
 
   y1 = -fn2((const + y)*y/const)
261
 
   x2 = x1*x1 - y1*y1 + p1
262
 
   y2 = 2*x1*y1
263
 
   z = x2 + flip(y2)
264
 
    |z| <= 100
265
 
  }
266
 
 
267
 
REB005F {; Ron Barnett, 1993
268
 
  ; floating point required
269
 
  z = pixel:
270
 
   x = real(z), y = imag(z)
271
 
   const = x*x + y*y
272
 
   x1 = -fn1((const - 12*x)*x/(4*const))
273
 
   y1 = -fn2((const + 12*y)*y/(4*const))
274
 
   x2 = x1*x1 - y1*y1 + p1
275
 
   y2 = 2*x1*y1
276
 
   z = x2 + flip(y2)
277
 
    |z| <= 100
278
 
  }
279
 
 
280
 
REB005G {; Ron Barnett, 1993
281
 
  ; floating point required
282
 
  z = pixel:
283
 
   x = real(z), y = imag(z)
284
 
   const = x*x + y*y
285
 
   x1 = -fn1(const + p1*x)*y/const
286
 
   y1 = -fn2(const + y)*x/const
287
 
   x2 = x1*x1 - y1*y1 + p2
288
 
   y2 = 2*x1*y1
289
 
   z = x2 + flip(y2)
290
 
    |z| <= 100
291
 
  }
292
 
 
293
 
{--- BRADLEY BEACHAM -----------------------------------------------------}
294
 
 
295
 
OK-01 { ;TRY P1 REAL = 10000, FN1 = SQR
296
 
  z = 0, c = pixel:
297
 
   z = (c^z) + c
298
 
   z = fn1(z)
299
 
    |z| <= (5 + p1)
300
 
  }
301
 
 
302
 
OK-04 { ;TRY FN2 = SQR, DIFFERENT FUNCTIONS FOR FN1
303
 
  z = 0, c = fn1(pixel):
304
 
   z = fn2(z) + c
305
 
    |z| <= (5 + p1)
306
 
  }
307
 
 
308
 
OK-08 {
309
 
  z = pixel, c = fn1(pixel):
310
 
   z = z^z / fn2(z)
311
 
   z = c / z
312
 
    |z| <= (5 + p1)
313
 
  }
314
 
 
315
 
OK-21 {
316
 
  z = pixel, c = fn1(pixel):
317
 
   z = fn2(z) + c
318
 
    fn3(z) <= p1
319
 
  }
320
 
 
321
 
OK-22 {
322
 
  z = v = pixel:
323
 
   v = fn1(v) * fn2(z)
324
 
   z = fn1(z) / fn2(v)
325
 
    |z| <= (5 + p1)
326
 
  }
327
 
 
328
 
OK-36 { ; DISSECTED MANDELBROT
329
 
  ; TO GENERATE "STANDARD" MANDELBROT, SET P1 = 0,0 & ALL FN = IDENT
330
 
  z = pixel, cx = fn1(real(z)), cy = fn2(imag(z)), k = 2 + p1:
331
 
   zx = real(z), zy = imag(z)
332
 
   x = fn3(zx*zx - zy*zy) + cx
333
 
   y = fn4(k * zx * zy) + cy
334
 
   z = x + flip(y)
335
 
    |z| <  (10 + p2)
336
 
  }
337
 
 
338
 
OK-38 { ; DISSECTED CUBIC MANDELBROT
339
 
  ; TO GENERATE "STANDARD" CUBIC MANDELBROT, SET P1 = 0,0 & ALL FN = IDENT
340
 
  z = pixel,  cx = fn1(real(pixel)), cy = fn2(imag(pixel)), k = 3 + p1:
341
 
   zx = real(z), zy = imag(z)
342
 
   x = fn3(zx*zx*zx - k*zx*zy*zy) + cx
343
 
   y = fn4(k*zx*zx*zy - zy*zy*zy) + cy
344
 
   z =  x + flip(y)
345
 
    |z| <  (4 + p2)
346
 
  }
347
 
 
348
 
OK-42 { ; MUTATION OF FN + FN
349
 
  z = pixel, p1x = real(p1)+1, p1y = imag(p1)+1
350
 
  p2x = real(p2)+1, p2y = imag(p2)+1:
351
 
   zx = real(z), zy = imag(z)
352
 
   x = fn1(zx*p1x - zy*p1y) + fn2(zx*p2x - zy*p2y)
353
 
   y = fn3(zx*p1y + zy*p1x) + fn4(zx*p2y + zy*p2x)
354
 
   z = x + flip(y)
355
 
    |z| <= 20
356
 
  }
357
 
 
358
 
OK-43 { ; DISSECTED SPIDER
359
 
  ; TO GENERATE "STANDARD" SPIDER, SET P1 = 0,0 & ALL FN = IDENT
360
 
  z = c = pixel, k = 2 + p1:
361
 
   zx = real(z), zy = imag(z)
362
 
   cx = real(c), cy = imag(c)
363
 
   x = fn1(zx*zx - zy*zy) + cx
364
 
   y = fn2(k*zx*zy) + cy
365
 
   z = x + flip(y)
366
 
   c = fn3((cx + flip(cy))/k) + z
367
 
    |z| <  (10 + p2)
368
 
  }
369
 
 
370
 
{--- PIETER BRANDERHORST -------------------------------------------------}
371
 
 
372
 
comment {
373
 
  The following resulted from a FRACTINT bug. Version 13 incorrectly
374
 
  calculated Spider (see above). We fixed the bug, and reverse-engineered
375
 
  what it was doing to Spider - so here is the old "spider"
376
 
  }
377
 
 
378
 
Wineglass(XAXIS) {; Pieter Branderhorst
379
 
  c = z = pixel:
380
 
   z = z * z + c
381
 
   c = (1+flip(imag(c))) * real(c) / 2 + z
382
 
    |z| <= 4
383
 
  }
384
 
 
385
 
{--- JM COLLARD-RICHARD --------------------------------------------------}
386
 
 
387
 
comment {
388
 
  These are the original "Richard" types sent by Jm Collard-Richard. Their
389
 
  generalizations are tacked on to the end of the "Jm" list below, but
390
 
  we felt we should keep these around for historical reasons.
391
 
  }
392
 
 
393
 
Richard1 (XYAXIS) {; Jm Collard-Richard
394
 
  z = pixel:
395
 
   sq=z*z, z=(sq*sin(sq)+sq)+pixel
396
 
    |z|<=50
397
 
  }
398
 
 
399
 
Richard2 (XYAXIS) {; Jm Collard-Richard
400
 
  z = pixel:
401
 
   z=1/(sin(z*z+pixel*pixel))
402
 
    |z|<=50
403
 
  }
404
 
 
405
 
Richard3 (XAXIS) {; Jm Collard-Richard
406
 
  z = pixel:
407
 
   sh=sinh(z), z=(1/(sh*sh))+pixel
408
 
    |z|<=50
409
 
  }
410
 
 
411
 
Richard4 (XAXIS) {; Jm Collard-Richard
412
 
  z = pixel:
413
 
   z2=z*z, z=(1/(z2*cos(z2)+z2))+pixel
414
 
    |z|<=50
415
 
  }
416
 
 
417
 
Richard5 (XAXIS) {; Jm Collard-Richard
418
 
  z = pixel:
419
 
   z=sin(z*sinh(z))+pixel
420
 
    |z|<=50
421
 
  }
422
 
 
423
 
Richard6 (XYAXIS) {; Jm Collard-Richard
424
 
  z = pixel:
425
 
   z=sin(sinh(z))+pixel
426
 
    |z|<=50
427
 
  }
428
 
 
429
 
Richard7 (XAXIS) {; Jm Collard-Richard
430
 
  z=pixel:
431
 
   z=log(z)*pixel
432
 
    |z|<=50
433
 
  }
434
 
 
435
 
Richard8 (XYAXIS) {; Jm Collard-Richard
436
 
  ; This was used for the "Fractal Creations" cover
437
 
  z=pixel,sinp = sin(pixel):
438
 
   z=sin(z)+sinp
439
 
    |z|<=50
440
 
  }
441
 
 
442
 
Richard9 (XAXIS) {; Jm Collard-Richard
443
 
  z=pixel:
444
 
   sqrz=z*z, z=sqrz + 1/sqrz + pixel
445
 
    |z|<=4
446
 
  }
447
 
 
448
 
Richard10(XYAXIS) {; Jm Collard-Richard
449
 
  z=pixel:
450
 
   z=1/sin(1/(z*z))
451
 
    |z|<=50
452
 
  }
453
 
 
454
 
Richard11(XYAXIS) {; Jm Collard-Richard
455
 
  z=pixel:
456
 
   z=1/sinh(1/(z*z))
457
 
    |z|<=50
458
 
  }
459
 
 
460
 
comment {
461
 
  These types are generalizations of types sent to us by the French
462
 
  mathematician Jm Collard-Richard. If we hadn't generalized them
463
 
  there would be --ahhh-- quite a few. With 26 possible values for
464
 
  each fn variable, Jm_03, for example, has 456,976 variations!
465
 
  }
466
 
 
467
 
Jm_01 {; generalized Jm Collard-Richard type
468
 
  z=pixel,t=p1+4:
469
 
   z=(fn1(fn2(z^pixel)))*pixel
470
 
    |z|<=t
471
 
  }
472
 
 
473
 
Jm_02 {; generalized Jm Collard-Richard type
474
 
  z=pixel,t=p1+4:
475
 
   z=(z^pixel)*fn1(z^pixel)
476
 
    |z|<=t
477
 
  }
478
 
 
479
 
Jm_03 {; generalized Jm Collard-Richard type
480
 
  z=pixel,t=p1+4:
481
 
   z=fn1((fn2(z)*pixel)*fn3(fn4(z)*pixel))*pixel
482
 
    |z|<=t
483
 
  }
484
 
 
485
 
Jm_03a {; generalized Jm Collard-Richard type
486
 
  z=pixel,t=p1+4:
487
 
   z=fn1((fn2(z)*pixel)*fn3(fn4(z)*pixel))+pixel
488
 
    |z|<=t
489
 
  }
490
 
 
491
 
Jm_04 {; generalized Jm Collard-Richard type
492
 
  z=pixel,t=p1+4:
493
 
   z=fn1((fn2(z)*pixel)*fn3(fn4(z)*pixel))
494
 
    |z|<=t
495
 
  }
496
 
 
497
 
Jm_05 {; generalized Jm Collard-Richard type
498
 
  z=pixel,t=p1+4:
499
 
   z=fn1(fn2((z^pixel)))
500
 
    |z|<=t
501
 
  }
502
 
 
503
 
Jm_06 {; generalized Jm Collard-Richard type
504
 
  z=pixel,t=p1+4:
505
 
   z=fn1(fn2(fn3((z^z)*pixel)))
506
 
    |z|<=t
507
 
  }
508
 
 
509
 
Jm_07 {; generalized Jm Collard-Richard type
510
 
  z=pixel,t=p1+4:
511
 
   z=fn1(fn2(fn3((z^z)*pixel)))*pixel
512
 
    |z|<=t
513
 
  }
514
 
 
515
 
Jm_08 {; generalized Jm Collard-Richard type
516
 
  z=pixel,t=p1+4:
517
 
   z=fn1(fn2(fn3((z^z)*pixel)))+pixel
518
 
    |z|<=t
519
 
  }
520
 
 
521
 
Jm_09 {; generalized Jm Collard-Richard type
522
 
  z=pixel,t=p1+4:
523
 
   z=fn1(fn2(fn3(fn4(z))))+pixel
524
 
    |z|<=t
525
 
  }
526
 
 
527
 
Jm_10 {; generalized Jm Collard-Richard type
528
 
  z=pixel,t=p1+4:
529
 
   z=fn1(fn2(fn3(fn4(z)*pixel)))
530
 
    |z|<=t
531
 
  }
532
 
 
533
 
Jm_11 {; generalized Jm Collard-Richard type
534
 
  z=pixel,t=p1+4:
535
 
   z=fn1(fn2(fn3(fn4(z)*pixel)))*pixel
536
 
    |z|<=t
537
 
  }
538
 
 
539
 
Jm_11a {; generalized Jm Collard-Richard type
540
 
  z=pixel,t=p1+4:
541
 
   z=fn1(fn2(fn3(fn4(z)*pixel)))+pixel
542
 
    |z|<=t
543
 
  }
544
 
 
545
 
Jm_12 {; generalized Jm Collard-Richard type
546
 
  z=pixel,t=p1+4:
547
 
   z=fn1(fn2(fn3(z)*pixel))
548
 
    |z|<=t
549
 
  }
550
 
 
551
 
Jm_13 {; generalized Jm Collard-Richard type
552
 
  z=pixel,t=p1+4:
553
 
   z=fn1(fn2(fn3(z)*pixel))*pixel
554
 
    |z|<=t
555
 
  }
556
 
 
557
 
Jm_14 {; generalized Jm Collard-Richard type
558
 
  z=pixel,t=p1+4:
559
 
   z=fn1(fn2(fn3(z)*pixel))+pixel
560
 
    |z|<=t
561
 
  }
562
 
 
563
 
Jm_15 {; generalized Jm Collard-Richard type
564
 
  z=pixel,t=p1+4:
565
 
   f2=fn2(z),z=fn1(f2)*fn3(fn4(f2))*pixel
566
 
    |z|<=t
567
 
  }
568
 
 
569
 
Jm_16 {; generalized Jm Collard-Richard type
570
 
  z=pixel,t=p1+4:
571
 
   f2=fn2(z),z=fn1(f2)*fn3(fn4(f2))+pixel
572
 
    |z|<=t
573
 
  }
574
 
 
575
 
Jm_17 {; generalized Jm Collard-Richard type
576
 
  z=pixel,t=p1+4:
577
 
   z=fn1(z)*pixel*fn2(fn3(z))
578
 
    |z|<=t
579
 
  }
580
 
 
581
 
Jm_18 {; generalized Jm Collard-Richard type
582
 
  z=pixel,t=p1+4:
583
 
   z=fn1(z)*pixel*fn2(fn3(z)*pixel)
584
 
    |z|<=t
585
 
  }
586
 
 
587
 
Jm_19 {; generalized Jm Collard-Richard type
588
 
  z=pixel,t=p1+4:
589
 
   z=fn1(z)*pixel*fn2(fn3(z)+pixel)
590
 
    |z|<=t
591
 
  }
592
 
 
593
 
Jm_20 {; generalized Jm Collard-Richard type
594
 
  z=pixel,t=p1+4:
595
 
   z=fn1(z^pixel)
596
 
    |z|<=t
597
 
  }
598
 
 
599
 
Jm_21 {; generalized Jm Collard-Richard type
600
 
  z=pixel,t=p1+4:
601
 
   z=fn1(z^pixel)*pixel
602
 
    |z|<=t
603
 
  }
604
 
 
605
 
Jm_22 {; generalized Jm Collard-Richard type
606
 
  z=pixel,t=p1+4:
607
 
   sq=fn1(z), z=(sq*fn2(sq)+sq)+pixel
608
 
    |z|<=t
609
 
  }
610
 
 
611
 
Jm_23 {; generalized Jm Collard-Richard type
612
 
  z=pixel,t=p1+4:
613
 
   z=fn1(fn2(fn3(z)+pixel*pixel))
614
 
    |z|<=t
615
 
  }
616
 
 
617
 
Jm_24 {; generalized Jm Collard-Richard type
618
 
  z=pixel,t=p1+4:
619
 
   z2=fn1(z), z=(fn2(z2*fn3(z2)+z2))+pixel
620
 
    |z|<=t
621
 
  }
622
 
 
623
 
Jm_25 {; generalized Jm Collard-Richard type
624
 
  z=pixel,t=p1+4:
625
 
   z=fn1(z*fn2(z)) + pixel
626
 
    |z|<=t
627
 
  }
628
 
 
629
 
Jm_26 {; generalized Jm Collard-Richard type
630
 
  z=pixel,t=p1+4:
631
 
   z=fn1(fn2(z)) + pixel
632
 
    |z|<=t
633
 
  }
634
 
 
635
 
Jm_27 {; generalized Jm Collard-Richard type
636
 
  z=pixel,t=p1+4:
637
 
   sqrz=fn1(z), z=sqrz + 1/sqrz + pixel
638
 
    |z|<=t
639
 
  }
640
 
 
641
 
Jm_ducks(XAXIS) {; Jm Collard-Richard
642
 
  ; Not so ugly at first glance and lot of corners to zoom in.
643
 
  ; try this: corners=-1.178372/-0.978384/-0.751678/-0.601683
644
 
  z=pixel,tst=p1+4,t=1+pixel:
645
 
   z=sqr(z)+t
646
 
    |z|<=tst
647
 
  }
648
 
 
649
 
Gamma(XAXIS) { ; first order gamma function from Prof. Jm
650
 
  ; "It's pretty long to generate even on a 486-33 comp but there's a lot
651
 
  ; of corners to zoom in and zoom and zoom...beautiful pictures :)"
652
 
  z=pixel,twopi=6.283185307179586,r=10:
653
 
   z=(twopi*z)^(0.5)*(z^z)*exp(-z)+pixel
654
 
    |z|<=r
655
 
  }
656
 
 
657
 
ZZ(XAXIS) { ; Prof Jm using Newton-Raphson method
658
 
  ; use floating point with this one
659
 
  z=pixel,solution=1:
660
 
   z1=z^z
661
 
   z2=(log(z)+1)*z1
662
 
   z=z-(z1-1)/z2
663
 
    0.001 <= |solution-z1|
664
 
  }
665
 
 
666
 
ZZa(XAXIS) { ; Prof Jm using Newton-Raphson method
667
 
  ; use floating point with this one
668
 
  z=pixel,solution=1:
669
 
   z1=z^(z-1)
670
 
   z2=(((z-1)/z)+log(z))*z1
671
 
   z=z-((z1-1)/z2)
672
 
    .001 <= |solution-z1|
673
 
  }
674
 
 
675
 
GenInvMand1_N { ; Jm Collard-Richard
676
 
  c=z=1/pixel:
677
 
   z=fn1(z)*fn2(z)+fn3(fn4(c))
678
 
    |z|<=4
679
 
  }
680
 
 
681
 
{--- W. LEROY DAVIS ------------------------------------------------------}
682
 
 
683
 
comment {
684
 
  These are from: "AKA MrWizard W. LeRoy Davis;SM-ALC/HRUC"
685
 
      davisl@sm-logdis1-aflc.af.mil
686
 
  The first 3 are variations of:
687
 
         z
688
 
     gamma(z) = (z/e) * sqrt(2*pi*z) * R
689
 
  }
690
 
 
691
 
Sterling(XAXIS) {; davisl
692
 
  z = Pixel:
693
 
   z = ((z/2.7182818)^z)/sqr(6.2831853*z)
694
 
    |z| <= 4
695
 
  }
696
 
 
697
 
Sterling2(XAXIS) {; davisl
698
 
  z = Pixel:
699
 
   z = ((z/2.7182818)^z)/sqr(6.2831853*z) + pixel
700
 
    |z| <= 4
701
 
  }
702
 
 
703
 
Sterling3(XAXIS) {; davisl
704
 
  z = Pixel:
705
 
   z = ((z/2.7182818)^z)/sqr(6.2831853*z) - pixel
706
 
    |z| <= 4
707
 
  }
708
 
 
709
 
PsudoMandel(XAXIS) {; davisl - try center=0,0/magnification=28
710
 
  z = Pixel:
711
 
   z = ((z/2.7182818)^z)*sqr(6.2831853*z) + pixel
712
 
    |z| <= 4
713
 
  }
714
 
 
715
 
{--- ROB DEN BRAASEM -----------------------------------------------------}
716
 
 
717
 
J_TchebychevC3 {
718
 
  c = pixel, z = P1:
719
 
   z = c*z*(z*z-3)
720
 
    |z|<100
721
 
  }
722
 
 
723
 
J_TchebychevC7 {
724
 
  c = pixel, z = P1:
725
 
   z = c*z*(z*z*(z*z*(z*z-7)+14)-7)
726
 
    |z|<100
727
 
  }
728
 
 
729
 
J_TchebychevS4 {
730
 
  c = pixel, z = P1:
731
 
   z = c*(z*z*(z*z-3)+1)
732
 
    |z|<100
733
 
  }
734
 
 
735
 
J_TchebychevS6 {
736
 
  c = pixel, z = P1:
737
 
   z = c*(z*z*(z*z*(z*z-5)+6)-1)
738
 
    |z|<100
739
 
  }
740
 
 
741
 
J_TchebychevS7 {
742
 
  c = pixel, z = P1:
743
 
   z = c*z*(z*z*(z*z*(z*z-6)+10)-4)
744
 
    |z|<100
745
 
  }
746
 
 
747
 
J_Laguerre2 {
748
 
  c = pixel, z = P1:
749
 
   z = (z*(z - 4) +2 ) / 2 + c
750
 
    |z| < 100
751
 
  }
752
 
 
753
 
J_Laguerre3 {
754
 
  c = pixel, z = P1:
755
 
   z = (z*(z*(-z + 9) -18) + 6 ) / 6 + c
756
 
    |z| < 100
757
 
  }
758
 
 
759
 
J_Lagandre4 {
760
 
  c = pixel, z = P1:
761
 
   z = (z*z*(35 * z*z - 30) + 3) / 8 + c
762
 
    |z| < 100
763
 
  }
764
 
 
765
 
M_TchebychevT5 {
766
 
  c = P1, z = Pixel:
767
 
   z = c*(z*(z*z*(16*z*z-20)+5))
768
 
    |z|<100
769
 
  }
770
 
 
771
 
M_TchebychevC5 {
772
 
  c = P1, z = Pixel:
773
 
   z = c*z*(z*z*(z*z-5)+5)
774
 
    |z|<100
775
 
  }
776
 
 
777
 
M_TchebychevU3 {
778
 
  c = P1, z = Pixel:
779
 
   z = c*z*(8*z*z-4)
780
 
    |z|<100
781
 
  }
782
 
 
783
 
M_TchebychevS3 {
784
 
  c = P1, z = Pixel:
785
 
   z = c*z*(z*z-2)
786
 
    |z|<100
787
 
  }
788
 
 
789
 
M_Lagandre2 {
790
 
  c = P1, z = Pixel:
791
 
   z = (3 * z*z - 1) / 2 + c
792
 
    |z| < 100
793
 
  }
794
 
 
795
 
M_Lagandre6 {
796
 
  c = P1, z = Pixel:
797
 
   z = (z*z*(z*z*(231 * z*z - 315)  + 105 ) - 5) / 16 + c
798
 
    |z| < 100
799
 
  }
800
 
 
801
 
{--- CHUCK EBBERT & JON HORNER -------------------------------------------}
802
 
 
803
 
comment {
804
 
  Chaotic Liar formulas for FRACTINT. These formulas reproduce some of the
805
 
  pictures in the paper 'Pattern and Chaos: New Images in the Semantics of
806
 
  Paradox' by Gary Mar and Patrick Grim of the Department of Philosophy,
807
 
  SUNY at Stony Brook. "...what is being graphed within the unit square is
808
 
  simply information regarding the semantic behavior for different inputs
809
 
  of a pair of English sentences:"
810
 
  }
811
 
 
812
 
Liar1 { ; by Chuck Ebbert.
813
 
  ; X: X is as true as Y
814
 
  ; Y: Y is as true as X is false
815
 
  ; Calculate new x and y values simultaneously.
816
 
  ; y(n+1)=abs((1-x(n) )-y(n) ), x(n+1)=1-abs(y(n)-x(n) )
817
 
  z = pixel:
818
 
   z = 1 - abs(imag(z)-real(z) ) + flip(1 - abs(1-real(z)-imag(z) ) )
819
 
    |z| <= 1
820
 
  }
821
 
 
822
 
Liar3 { ; by Chuck Ebbert.
823
 
  ; X: X is true to P1 times the extent that Y is true
824
 
  ; Y: Y is true to the extent that X is false.
825
 
  ; Sequential reasoning.  P1 usually 0 to 1.  P1=1 is Liar2 formula.
826
 
  ; x(n+1) = 1 - abs(p1*y(n)-x(n) );
827
 
  ; y(n+1) = 1 - abs((1-x(n+1) )-y(n) );
828
 
  z = pixel:
829
 
   x = 1 - abs(imag(z)*real(p1)-real(z) )
830
 
   z = flip(1 - abs(1-real(x)-imag(z) ) ) + real(x)
831
 
    |z| <= 1
832
 
  }
833
 
 
834
 
Liar4 { ; by Chuck Ebbert.
835
 
  ; X: X is as true as (p1+1) times Y
836
 
  ; Y: Y is as true as X is false
837
 
  ; Calculate new x and y values simultaneously.
838
 
  ; Real part of p1 changes probability.  Use floating point.
839
 
  ; y(n+1)=abs((1-x(n) )-y(n) ), x(n+1)=1-abs(y(n)-x(n) )
840
 
  z = pixel, p = p1 + 1:
841
 
   z = 1-abs(imag(z)*p-real(z))+flip(1-abs(1-real(z)-imag(z)))
842
 
    |z| <= 1
843
 
  }
844
 
 
845
 
F'Liar1 { ; Generalization by Jon Horner of Chuck Ebbert formula.
846
 
  ; X: X is as true as Y
847
 
  ; Y: Y is as true as X is false
848
 
  ; Calculate new x and y values simultaneously.
849
 
  ; y(n+1)=abs((1-x(n) )-y(n) ), x(n+1)=1-abs(y(n)-x(n) )
850
 
  z = pixel:
851
 
   z = 1 - abs(imag(z)-real(z) ) + flip(1 - abs(1-real(z)-imag(z) ) )
852
 
    fn1(abs(z))<p1
853
 
  }
854
 
 
855
 
M-SetInNewton(XAXIS) {; use float=yes
856
 
  ; jon horner 100112,1700, 12 feb 93
857
 
  z = 0,  c = pixel,  cminusone = c-1:
858
 
   oldz = z, nm = 3*c-2*z*cminusone, dn = 3*(3*z*z+cminusone)
859
 
   z = nm/dn+2*z/3
860
 
    |(z-oldz)|>=|0.01|
861
 
  }
862
 
 
863
 
F'M-SetInNewtonA(XAXIS) {; use float=yes
864
 
  ; jon horner 100112,1700, 12 feb 93
865
 
  z = 0,  c = fn1(pixel),  cminusone = c-1:
866
 
   oldz = z, nm = p1*c-2*z*cminusone, dn = p1*(3*z*z+cminusone)
867
 
   z = nm/dn+2*z/p1
868
 
    |(z-oldz)|>=|0.01|
869
 
  }
870
 
 
871
 
F'M-SetInNewtonC(XAXIS) { ; same as F'M-SetInNewtonB except for bailout
872
 
  ; use float=yes, periodicity=no
873
 
  ; (3 <= p1 <= ?) and (1e-30 < p2 < .01)
874
 
  z=0, c=fn1(pixel), cm1=c-1, cm1x2=cm1*2, twoop1=2/p1, p1xc=c*real(p1):
875
 
   z = (p1xc - z*cm1x2 )/( (sqr(z)*3 + cm1 ) * real(p1) ) + z*real(twoop1)
876
 
    abs(|z| - real(lastsqr) ) >= p2
877
 
  }
878
 
 
879
 
{--- SYLVIE GALLET -------------------------------------------------------}
880
 
 
881
 
comment {
882
 
  This formula uses Newton's formula applied to the real equation :
883
 
     F(x,y) = 0 where F(x,y) = (x^3 + y^2 - 1 , y^3 - x^2 + 1)
884
 
     starting with (x_0,y_0) = z0 = pixel
885
 
  It calculates:
886
 
     (x_(n+1),y_(n+1)) = (x_n,y_n) - (F'(x_n,y_n))^-1 * F(x_n,y_n)
887
 
     where (F'(x_n,y_n))^-1 is the inverse of the Jacobian matrix of F.
888
 
  }
889
 
 
890
 
Newton_real { ; Sylvie Gallet [101324,3444], 1996
891
 
  ; Newton's method applied to   x^3 + y^2 - 1 = 0
892
 
  ;                              y^3 - x^2 + 1 = 0
893
 
  ;                              solution (0,-1)
894
 
  ; One parameter : real(p1) = bailout value
895
 
  z = pixel , x = real(z) , y = imag(z) :
896
 
   xy = x*y
897
 
   d = 9*xy+4 , x2 = x*x , y2 = y*y
898
 
   c = 6*xy+2
899
 
   x1 = x*c - (y*y2 - 3*y - 2)/x
900
 
   y1 = y*c + (x*x2 + 2 - 3*x)/y
901
 
   z = (x1+flip(y1))/d , x = real(z) , y = imag(z)
902
 
    (|x| >= p1) || (|y+1| >= p1)
903
 
  }
904
 
 
905
 
G-3-03-M  { ; Sylvie Gallet [101324,3444], 1996
906
 
            ; Modified Gallet-3-03 formula
907
 
  z = pixel :
908
 
   x = real(z) , y = imag(z)
909
 
   x1 = x - p1 * fn1(y*y + round(p2*fn2(y)))
910
 
   y1 = y - p1 * fn1(x*x + round(p2*fn2(x)))
911
 
   z = x1 + flip(y1)
912
 
    |z| <= 4
913
 
  }
914
 
 
915
 
{--- CHRIS GREEN ---------------------------------------------------------}
916
 
 
917
 
comment {
918
 
  These fractals all use Newton's or Halley's formula for approximation of
919
 
  a function.  In all of these fractals, p1 real is the "relaxation
920
 
  coefficient". A value of 1 gives the conventional newton or halley
921
 
  iteration. Values <1 will generally produce less chaos than values >1.
922
 
  1-1.5 is probably a good range to try.  P1 imag is the imaginary
923
 
  component of the relaxation coefficient, and should be zero but maybe a
924
 
  small non-zero value will produce something interesting.  Who knows?
925
 
  For more information on Halley maps, see "Computers, Pattern, Chaos, and
926
 
  Beauty" by Pickover.
927
 
  }
928
 
 
929
 
Halley (XYAXIS) {; Chris Green. Halley's formula applied to x^7-x=0.
930
 
  ; P1 real usually 1 to 1.5, P1 imag usually zero. Use floating point.
931
 
  ; Setting P1 to 1 creates the picture on page 277 of Pickover's book
932
 
  z=pixel:
933
 
   z5=z*z*z*z*z
934
 
   z6=z*z5
935
 
   z7=z*z6
936
 
   z=z-p1*((z7-z)/ ((7.0*z6-1)-(42.0*z5)*(z7-z)/(14.0*z6-2)))
937
 
    0.0001 <= |z7-z|
938
 
  }
939
 
 
940
 
CGhalley (XYAXIS) {; Chris Green -- Halley's formula
941
 
  ; P1 real usually 1 to 1.5, P1 imag usually zero. Use floating point.
942
 
  z=(1,1):
943
 
   z5=z*z*z*z*z
944
 
   z6=z*z5
945
 
   z7=z*z6
946
 
   z=z-p1*((z7-z-pixel)/ ((7.0*z6-1)-(42.0*z5)*(z7-z-pixel)/(14.0*z6-2)))
947
 
    0.0001 <= |z7-z-pixel|
948
 
  }
949
 
 
950
 
halleySin (XYAXIS) {; Chris Green. Halley's formula applied to sin(x)=0.
951
 
  ; Use floating point.
952
 
  ; P1 real = 0.1 will create the picture from page 281 of Pickover's book.
953
 
  z=pixel:
954
 
   s=sin(z), c=cos(z)
955
 
   z=z-p1*(s/(c-(s*s)/(c+c)))
956
 
    0.0001 <= |s|
957
 
  }
958
 
 
959
 
NewtonSinExp (XAXIS) {; Chris Green
960
 
  ; Newton's formula applied to sin(x)+exp(x)-1=0.
961
 
  ; Use floating point.
962
 
  z=pixel:
963
 
   z1=exp(z)
964
 
   z2=sin(z)+z1-1
965
 
   z=z-p1*z2/(cos(z)+z1)
966
 
    .0001 < |z2|
967
 
  }
968
 
 
969
 
CGNewtonSinExp (XAXIS) {
970
 
  z=pixel:
971
 
   z1=exp(z)
972
 
   z2=sin(z)+z1-z
973
 
   z=z-p1*z2/(cos(z)+z1)
974
 
    .0001 < |z2|
975
 
  }
976
 
 
977
 
CGNewton3 {; Chris Green -- A variation on newton iteration.
978
 
  ; The initial guess is fixed at (1,1), but the equation solved
979
 
  ; is different at each pixel ( x^3-pixel=0 is solved).
980
 
  ; Use floating point.
981
 
  ; Try P1=1.8.
982
 
  z=(1,1):
983
 
   z2=z*z
984
 
   z3=z*z2
985
 
   z=z-p1*(z3-pixel)/(3.0*z2)
986
 
    0.0001 < |z3-pixel|
987
 
  }
988
 
 
989
 
HyperMandel {; Chris Green.
990
 
  ; A four dimensional version of the mandelbrot set.
991
 
  ; Use P1 to select which two-dimensional plane of the
992
 
  ; four dimensional set you wish to examine.
993
 
  ; Use floating point.
994
 
  a=(0,0),b=(0,0):
995
 
   z=z+1
996
 
   anew=sqr(a)-sqr(b)+pixel
997
 
   b=2.0*a*b+p1
998
 
   a=anew
999
 
    |a|+|b| <= 4
1000
 
  }
1001
 
 
1002
 
OldHalleySin (XYAXIS) {
1003
 
  z=pixel:
1004
 
   s=sin(z)
1005
 
   c=cosxx(z)
1006
 
   z=z-p1*(s/(c-(s*s)/(c+c)))
1007
 
    0.0001 <= |s|
1008
 
  }
1009
 
 
1010
 
{--- RICHARD HUGHES ------------------------------------------------------}
1011
 
 
1012
 
phoenix_m { ; Mandelbrot style map of the Phoenix curves
1013
 
  z=x=y=nx=ny=x1=y1=x2=y2=0:
1014
 
   x2 = sqr(x), y2 = sqr(y)
1015
 
   x1 = x2 - y2 + real(pixel) + imag(pixel) * nx
1016
 
   y1 = 2 * x * y + imag(pixel) * ny
1017
 
   nx=x, ny=y, x=x1, y=y1, z=x + flip(y)
1018
 
    |z| <= 4
1019
 
  }
1020
 
 
1021
 
{--- GORDON LAMB ---------------------------------------------------------}
1022
 
 
1023
 
SJMAND01 {;Mandelbrot
1024
 
  z=real(pixel)+flip(imag(pixel)*p1)
1025
 
  c=p2+p1*real(pixel)+flip(imag(pixel)):
1026
 
   z=z*z+c
1027
 
    |z|<=64
1028
 
  }
1029
 
 
1030
 
3RDIM01 {;Mandelbrot
1031
 
  z=p1*real(pixel)+flip(imag(pixel))
1032
 
  c=p2+real(pixel)+flip(imag(pixel)*p1):
1033
 
   z=z*z+c
1034
 
    |z|<=64
1035
 
  }
1036
 
 
1037
 
SJMAND03 {;Mandelbrot function
1038
 
  z=real(pixel)+p1*(flip(imag(pixel)))
1039
 
  c=p2+p1*real(pixel)+flip(imag(pixel)):
1040
 
   z=fn1(z)+c
1041
 
    |z|<=64
1042
 
  }
1043
 
 
1044
 
SJMAND05 {;Mandelbrot lambda function
1045
 
  z=real(pixel)+flip(imag(pixel)*p1)
1046
 
  c=p2+p1*real(pixel)+flip(imag(pixel)):
1047
 
   z=fn1(z)*c
1048
 
    |z|<=64
1049
 
  }
1050
 
 
1051
 
3RDIM05 {;Mandelbrot lambda function
1052
 
  z=p1*real(pixel)+flip(imag(pixel))
1053
 
  c=p2+real(pixel)+flip(imag(pixel)*p1):
1054
 
   z=fn1(z)*c
1055
 
    |z|<=64
1056
 
  }
1057
 
 
1058
 
SJMAND10 {;Mandelbrot power function
1059
 
  z=real(pixel),c=p2+flip(imag(pixel)):
1060
 
   z=(fn1(z)+c)^p1
1061
 
    |z|<=4
1062
 
  }
1063
 
 
1064
 
SJMAND11 {;Mandelbrot lambda function - lower bailout
1065
 
  z=real(pixel)+flip(imag(pixel)*p1)
1066
 
  c=p2+p1*real(pixel)+flip(imag(pixel)):
1067
 
   z=fn1(z)*c
1068
 
    |z|<=4
1069
 
  }
1070
 
 
1071
 
{--- KEVIN LEE -----------------------------------------------------------}
1072
 
 
1073
 
LeeMandel1(XYAXIS) {; Kevin Lee
1074
 
  z=Pixel:
1075
 
;; c=sqr(pixel)/z, c=z+c, z=sqr(z),  this line was an error in v16
1076
 
   c=sqr(pixel)/z, c=z+c, z=sqr(c)
1077
 
    |z|<4
1078
 
  }
1079
 
 
1080
 
LeeMandel2(XYAXIS) {; Kevin Lee
1081
 
  z=Pixel:
1082
 
   c=sqr(pixel)/z, c=z+c, z=sqr(c*pixel)
1083
 
    |z|<4
1084
 
   }
1085
 
 
1086
 
LeeMandel3(XAXIS) {; Kevin Lee
1087
 
  z=Pixel, c=Pixel-sqr(z):
1088
 
   c=Pixel+c/z, z=c-z*pixel
1089
 
    |z|<4
1090
 
  }
1091
 
 
1092
 
{--- RON LEWEN -----------------------------------------------------------}
1093
 
 
1094
 
RCL_Cross1 { ; Ron Lewen
1095
 
  ; Try p1=(0,1), fn1=sin and fn2=sqr.  Set corners at
1096
 
  ; -10/10/-7.5/7.5 to see a cross shape.  The larger
1097
 
  ; lakes at the center of the cross have good detail
1098
 
  ; to zoom in on.
1099
 
  ; Use floating point.
1100
 
  z=pixel:
1101
 
   z=p1*fn1(fn2(z+p1))
1102
 
    |z| <= 4
1103
 
  }
1104
 
 
1105
 
RCL_Pick13 { ; Ron Lewen
1106
 
  ;  Formula from Frontpiece for Appendix C
1107
 
  ;  and Credits in Pickover's book.
1108
 
  ;  Set p1=(3,0) to generate the Frontpiece
1109
 
  ;  for Appendix C and to (2,0) for Credits
1110
 
  ;  Use Floating Point
1111
 
  z=.001:
1112
 
   z=z^p1+(1/pixel)^p1
1113
 
    |z| <= 100
1114
 
  }
1115
 
 
1116
 
RCL_1 (XAXIS) { ; Ron Lewen
1117
 
  ;  An interesting Biomorph inspired by Pickover's
1118
 
  ;  Computers, Pattern, Choas and Beauty.
1119
 
  ;  Use Floating Point
1120
 
  z=pixel:
1121
 
   z=pixel/z-z^2
1122
 
    |real(z)| <= 100 || |imag(z)| <= 100
1123
 
  }
1124
 
 
1125
 
RCL_Cosh (XAXIS) { ; Ron Lewen, 76376,2567
1126
 
  ; Try corners=2.008874/-3.811126/-3.980167/3.779833/
1127
 
  ; -3.811126/3.779833 to see Figure 9.7 (P. 123) in
1128
 
  ; Pickover's Computers, Pattern, Chaos and Beauty.
1129
 
  ; Figures 9.9 - 9.13 can be found by zooming.
1130
 
  ; Use floating point
1131
 
  z=0:
1132
 
   z=cosh(z) + pixel
1133
 
    abs(z) < 40
1134
 
  }
1135
 
 
1136
 
Mothra (XAXIS) { ; Ron Lewen, 76376,2567
1137
 
  ; Remember Mothra, the giant Japanese-eating moth?
1138
 
  ; Well... here he (she?) is as a fractal!
1139
 
  z=pixel:
1140
 
   a=z^5 + z^3 + z + pixel
1141
 
   b=z^4 + z^2 + pixel
1142
 
   z=b^2/a,
1143
 
    |real(z)| <= 100 || |imag(z)| <= 100
1144
 
  }
1145
 
 
1146
 
RCL_10 { ; Ron Lewen, 76376,2567
1147
 
  z=pixel:
1148
 
   z=flip((z^2+pixel)/(pixel^2+z))
1149
 
    |z| <= 4
1150
 
  }
1151
 
 
1152
 
{--- LEE SKINNER ---------------------------------------------------------}
1153
 
 
1154
 
MTet (XAXIS) {; Mandelbrot form 1 of the Tetration formula --Lee Skinner
1155
 
  z = pixel:
1156
 
   z = (pixel ^ z) + pixel
1157
 
    |z| <= (P1 + 3)
1158
 
  }
1159
 
 
1160
 
AltMTet(XAXIS) {; Mandelbrot form 2 of the Tetration formula --Lee Skinner
1161
 
  z = 0:
1162
 
   z = (pixel ^ z) + pixel
1163
 
    |z| <= (P1 + 3)
1164
 
  }
1165
 
 
1166
 
JTet (XAXIS) {; Julia form 1 of the Tetration formula --Lee Skinner
1167
 
  z = pixel:
1168
 
   z = (pixel ^ z) + P1
1169
 
    |z| <= (P2 + 3)
1170
 
  }
1171
 
 
1172
 
AltJTet (XAXIS) {; Julia form 2 of the Tetration formula --Lee Skinner
1173
 
  z = P1:
1174
 
   z = (pixel ^ z) + P1
1175
 
    |z| <= (P2 + 3)
1176
 
  }
1177
 
 
1178
 
Cubic (XYAXIS) {; Lee Skinner
1179
 
  p = pixel, test = p1 + 3
1180
 
  t3 = 3*p, t2 = p*p
1181
 
  a = (t2 + 1)/t3, b = 2*a*a*a + (t2 - 2)/t3
1182
 
  aa3 = a*a*3, z = 0 - a :
1183
 
   z = z*z*z - aa3*z + b
1184
 
    |z| < test
1185
 
 }
1186
 
 
1187
 
Fzppfnre {; Lee Skinner
1188
 
  z = pixel, f = 1./(pixel):
1189
 
   z = fn1(z) + f
1190
 
    |z| <= 50
1191
 
  }
1192
 
 
1193
 
Fzppfnpo {; Lee Skinner
1194
 
  z = pixel, f = (pixel)^(pixel):
1195
 
   z = fn1(z) + f
1196
 
    |z| <= 50
1197
 
  }
1198
 
 
1199
 
Fzppfnsr {; Lee Skinner
1200
 
  z = pixel, f = (pixel)^.5:
1201
 
   z = fn1(z) + f
1202
 
    |z| <= 50
1203
 
  }
1204
 
 
1205
 
Fzppfnta {; Lee Skinner
1206
 
  z = pixel, f = tan(pixel):
1207
 
   z = fn1(z) + f
1208
 
    |z|<= 50
1209
 
  }
1210
 
 
1211
 
Fzppfnct {; Lee Skinner
1212
 
  z = pixel, f = cos(pixel)/sin(pixel):
1213
 
   z = fn1(z) + f
1214
 
    |z|<= 50
1215
 
  }
1216
 
 
1217
 
Fzppfnse {; Lee Skinner
1218
 
  z = pixel, f = 1./sin(pixel):
1219
 
   z = fn1(z) + f
1220
 
    |z| <= 50
1221
 
  }
1222
 
 
1223
 
Fzppfncs {; Lee Skinner
1224
 
  z = pixel, f = 1./cos(pixel):
1225
 
   z = fn1(z) + f
1226
 
    |z| <= 50
1227
 
  }
1228
 
 
1229
 
Fzppfnth {; Lee Skinner
1230
 
  z = pixel, f = tanh(pixel):
1231
 
   z = fn1(z)+f
1232
 
    |z|<= 50
1233
 
  }
1234
 
 
1235
 
Fzppfnht {; Lee Skinner
1236
 
  z = pixel, f = cosh(pixel)/sinh(pixel):
1237
 
   z = fn1(z)+f
1238
 
    |z|<= 50
1239
 
  }
1240
 
 
1241
 
Fzpfnseh {; Lee Skinner
1242
 
  z = pixel, f = 1./sinh(pixel):
1243
 
   z = fn1(z) + f
1244
 
    |z| <= 50
1245
 
  }
1246
 
 
1247
 
Fzpfncoh {; Lee Skinner
1248
 
  z = pixel, f = 1./cosh(pixel):
1249
 
   z = fn1(z) + f
1250
 
    |z| <= 50
1251
 
  }
1252
 
 
1253
 
Zexpe (XAXIS) {
1254
 
  s = exp(1.,0.), z = Pixel:
1255
 
   z = z ^ s + pixel
1256
 
    |z| <= 100
1257
 
  }
1258
 
 
1259
 
comment {
1260
 
  s = log(-1.,0.) / (0.,1.)   is   (3.14159265358979, 0.0)
1261
 
  }
1262
 
 
1263
 
Exipi (XAXIS) {
1264
 
  s = log(-1.,0.) / (0.,1.), z = Pixel:
1265
 
   z = z ^ s + pixel
1266
 
    |z| <= 100
1267
 
  }
1268
 
 
1269
 
Fzppchco {
1270
 
  z = pixel, f = cosxx (pixel):
1271
 
   z = cosh (z) + f
1272
 
    |z| <= 50
1273
 
  }
1274
 
 
1275
 
Fzppcosq {
1276
 
  z = pixel, f = sqr (pixel):
1277
 
   z = cosxx (z)  + f
1278
 
    |z| <= 50
1279
 
  }
1280
 
 
1281
 
Fzppcosr {
1282
 
  z = pixel, f = (pixel) ^ 0.5:
1283
 
   z = cosxx (z)  + f
1284
 
    |z| <= 50
1285
 
  }
1286
 
 
1287
 
Leeze (XAXIS) {
1288
 
  s = exp(1.,0.), z = Pixel, f = Pixel ^ s:
1289
 
   z = cosxx (z) + f
1290
 
    |z| <= 50
1291
 
  }
1292
 
 
1293
 
OldManowar (XAXIS) {
1294
 
  z0 = 0
1295
 
  z1 = 0
1296
 
  test = p1 + 3
1297
 
  c = pixel :
1298
 
   z = z1*z1 + z0 + c
1299
 
   z0 = z1
1300
 
   z1 = z
1301
 
    |z| < test
1302
 
  }
1303
 
 
1304
 
ScSkLMS(XAXIS) {
1305
 
  z = pixel, TEST = (p1+3):
1306
 
   z = log(z) - sin(z)
1307
 
    |z|<TEST
1308
 
  }
1309
 
 
1310
 
ScSkZCZZ(XYAXIS) {
1311
 
  z = pixel, TEST = (p1+3):
1312
 
   z = (z*cosxx(z)) - z
1313
 
    |z|<TEST
1314
 
  }
1315
 
 
1316
 
TSinh (XAXIS) {; Tetrated Hyperbolic Sine - Improper Bailout
1317
 
  z = c = sinh(pixel):
1318
 
   z = c ^ z
1319
 
    z <= (p1 + 3)
1320
 
  }
1321
 
 
1322
 
{--- SCOTT TAYLOR --------------------------------------------------------}
1323
 
 
1324
 
comment {
1325
 
  The following is from Scott Taylor.
1326
 
  Scott says they're "Dog" because the first one he looked at reminded him
1327
 
  of a hot dog. This was originally several fractals, we have generalized it.
1328
 
  }
1329
 
 
1330
 
FnDog(XYAXIS) {; Scott Taylor
1331
 
  z = Pixel, b = p1+2:
1332
 
   z = fn1( z ) * pixel
1333
 
    |z| <= b
1334
 
  }
1335
 
 
1336
 
Ent {; Scott Taylor
1337
 
  ; Try params=.5/.75 and the first function as exp.
1338
 
  ; Zoom in on the swirls around the middle.  There's a
1339
 
  ; symmetrical area surrounded by an asymmetric area.
1340
 
  z = Pixel, y = fn1(z), base = log(p1):
1341
 
   z = y * log(z)/base
1342
 
    |z| <= 4
1343
 
  }
1344
 
 
1345
 
Ent2 {; Scott Taylor
1346
 
  ; try params=2/1, functions=cos/cosh, potential=255/355
1347
 
  z = Pixel, y = fn1(z), base = log(p1):
1348
 
   z = fn2( y * log(z) / base )
1349
 
    |z| <= 4
1350
 
  }
1351
 
 
1352
 
{--- MICHAEL THEROUX & RON BARNETT ---------------------------------------}
1353
 
 
1354
 
test3 {; Michael Theroux [71673,2767]
1355
 
  ;fix and generalization by Ron Barnett [70153,1233]
1356
 
  ;=phi
1357
 
  ;try p1 = 2.236067977 for the golden mean
1358
 
  z = ((p1 + 1)/2)/pixel:
1359
 
   z =  z*z + pixel*((p1 + 1)/2)/((p1 - 1)/2)
1360
 
    |z| <= 4
1361
 
  }
1362
 
 
1363
 
{--- TIMOTHY WEGNER ------------------------------------------------------}
1364
 
 
1365
 
Newton_poly2 { ; Tim Wegner - use float=yes
1366
 
  ; fractal generated by Newton formula z^3 + (c-1)z - c
1367
 
  ; p1 is c in above formula
1368
 
  z = pixel, z2 = z*z, z3 = z*z2:
1369
 
   z = (2*z3 + p1) / (3*z2 + (p1 - 1))
1370
 
   z2 = z*z
1371
 
   z3 = z*z2
1372
 
   .004 <= |z3 + (p1-1)*z - p1|
1373
 
  }
1374
 
 
1375
 
Newt_ellipt_oops { ; Tim Wegner - use float=yes and periodicity=0
1376
 
  ; fractal generated by Newton formula  (z^3 + c*z^2 +1)^.5
1377
 
  ; try p1 = 1 and p2 = .1
1378
 
  ; if p2 is small (say .001), converges very slowly so need large maxit
1379
 
  ; another "tim's error" - mistook sqr for sqrt (see next)
1380
 
  z = pixel, z2 = z*z, z3 = z*z2:
1381
 
   num = (z3 + p1*z2 + 1)^.5      ; f(z)
1382
 
   denom = (1.5*z2 + p1*z)/num    ; f'(z)
1383
 
   z = z - (num/denom)            ; z - f(z)/f'(z)
1384
 
   z2 = z*z
1385
 
   z3 = z*z2
1386
 
    p2 <= |z3 + p1*z2 + 1|  ; no need for sqrt because sqrt(z)==0 iff z==0
1387
 
  }
1388
 
 
1389
 
Newton_elliptic { ; Tim Wegner - use float=yes and periodicity=0
1390
 
  ; fractal generated by Newton formula f(z) = (z^3 + c*z^2 +1)^2
1391
 
  ; try p1 = 1 and p2 = .0001
1392
 
  z = pixel, z2 = z*z, z3 = z*z2:
1393
 
   z = z - (z3 + p1*z2 + 1)/(6*z2 + 4*p1*z)      ; z - f(z)/f'(z)
1394
 
   z2 = z*z
1395
 
   z3 = z*z2
1396
 
    p2 <= |z3 + p1*z2 + 1|  ; no need for sqr because sqr(z)==0 iff z==0
1397
 
  }
1398
 
 
1399
 
{--- TIM WEGNER & MARK PETERSON ------------------------------------------}
1400
 
 
1401
 
comment {
1402
 
  These are a few of the examples from the book, Fractal Creations, by Tim
1403
 
  Wegner and Mark Peterson.
1404
 
  }
1405
 
 
1406
 
MyFractal {; Fractal Creations example
1407
 
  c = z = 1/pixel:
1408
 
   z = sqr(z) + c
1409
 
    |z| <= 4
1410
 
  }
1411
 
 
1412
 
MandelTangent {; Fractal Creations example (revised for v.16)
1413
 
  z = pixel:
1414
 
   z = pixel * tan(z)
1415
 
    |real(z)| < 32
1416
 
  }
1417
 
 
1418
 
Mandel3 {; Fractal Creations example
1419
 
  z = pixel, c = sin(z):
1420
 
   z = (z*z) + c
1421
 
   z = z * 1/c
1422
 
    |z| <= 4
1423
 
  }
1424
 
 
1425
 
{--- AUTHORS UNKNOWN -----------------------------------------------------}
1426
 
 
1427
 
moc {
1428
 
  z=0, c=pixel:
1429
 
   z=sqr(z)+c
1430
 
   c=c+p1/c
1431
 
    |z| <= 4
1432
 
  }
1433
 
 
1434
 
Bali {;The difference of two squares
1435
 
  z=x=1/pixel, c= fn1 (z):
1436
 
   z = (x+c) * (x-c)
1437
 
   x=fn2(z)
1438
 
    |z| <=3
1439
 
  }
1440
 
 
1441
 
Fatso {;
1442
 
  z=x=1/pixel, c= fn1 (z):
1443
 
   z = (x^3)-(c^3)
1444
 
   x=fn2(z)
1445
 
    |z| <=3
1446
 
  }
1447
 
 
1448
 
Bjax {;
1449
 
  z=c=2/pixel:
1450
 
   z =(1/((z^(real(p1)))*(c^(real(p2))))*c) + c
1451
 
  }
1452
 
 
1453
 
ULI_4 {
1454
 
  z = Pixel:
1455
 
   z = fn1(1/(z+p1))*fn2(z+p1)
1456
 
    |z| <= p2
1457
 
  }
1458
 
 
1459
 
ULI_5 {
1460
 
  z = Pixel, c = fn1(pixel):
1461
 
   z = fn2(1/(z+c))*fn3(z+c)
1462
 
    |z| <= p1
1463
 
  }
1464
 
 
1465
 
ULI_6 {
1466
 
  z = Pixel:
1467
 
   z = fn1(p1+z)*fn2(p2-z)
1468
 
    |z| <= p2+16
1469
 
  }