ISSN 0964-5640

FRACTAL REPORT 22





Editorial and Announcements 2

A Brief Condemnation of Time - call for articles 5

Recursive Block Removal Algorithms Timothy Harris 6

Fractint Corner: More Parameters Please Yvan Bozzonetti 8

Colouring Symmetric Attractors Dr Hugh Daglish 12

Physics Software Review Larry Cobb 13

Gumowski and Mira Attractor Dr Ian Entwistle 14

Two Books on Symmetry - A Review John de Rivaz 15

Production of 1/f Music Series G.R. Turner 16



Fractal Report is published by Reeves Telecommunications Laboratories Ltd.,

West Towan House, Porthtowan, Truro, Cornwall TR4 8AX, United Kingdom.

Volume 4 no 22 First published August 1992. ISSN 0964-5640.

Editorial

This time more than the usual number of good articles have had to be held over, but I would still be grateful for some contributions for the next issue, preferably before the end of August.

Once again I would urge all readers to try and persuade friends to take out subscriptions. The price of Fractal Report has remained constant since its start, despite substantial rises in postal rates. It had been hoped that it would have been possible to maintain prices by increasing the circulation thus achieving economies of scale. Regretfully this has not been so. Therefore unless the circulation increases substantially by the autumn, the price for the next volume will have to go up substantially, to take into consideration past post rises, future post rises and future printing cost increases. Our printer has been very understanding with regards to keeping his prices constant, but obviously he has to work at a profit in order to make working worthwhile, and therefore new prices will be negotiated for the next volume.

I had been considering offering a discounted rate for renewals by Banker's Order, but it appears that banks charge 60p each for receiving these, which represents quite a lot of subscribers' funds for any periodical. The obvious advantage of Banker's Orders is that people don't need to do anything to renew. However previous attempts to "chivvy" lapsed subscribers met with such poor response that this indicates that Fractal Report subscribers do know their own minds and will renew if they want to.

However a new price structure could allow for a trade discount, meaning that Fractal Report can appear in specialist retailers.

The present subscribers seem to be more consistent in renewing, in previous years we lost quite a few. I am trying to make the content as varied as possible, and always try to introduce new topics. At last we are getting some material on music, and it is hoped that more will follow. Also a regular column on Fractint should make people who use this program feel that a subscription to Fractal Report is worthwhile. It is hoped that programs for specialist computers will be developed that can read fractint formulae. The originators of such material are invited to send in articles for Fractal Report describing them and arrangements for obtaining copies. We have plenty of readers with Macintoshes, Archimedes, Amigas and Ataris, for example. It would be interesting to see if a Fractint clone would run faster on an Archimedes than it would on a high end PC. (Obviously it doesn't using an emulator, as emulators slow down software substantially. The code would have to be re-written.)

I don't know whether any of our readers has access to a computer controlled milling machine, but if anyone has experimented with fractal sculpture, a short article about it would be of interest and continue in the quest to vary the content.

I have now got a 3�" 740K/1.4M disk drive, so can accept material on this medium in future, provided it is recorded to MSDOS standard. Graphics in some formats such at .TIFF or .GIF are supposed to be machine independent, and tables should come out as text OK.

Quite a lot of the material this time is laser printed here, as the originators have sent it on disk. This leads to a better production of the magazine, and I would urge all authors to use this if at all possible. Most specialist computers now have programs that present text in MSDOS readable format, and now I can read 3�" disks there should be no problem with most machines.



Announcements



Mazes for the Mind:

Computers and the Unexpected.



This is the title of Dr Clifford Pickover's latest book, and if you're quick you can get a copy for only $26.36 as against the regular price of $32.95. Write to St Martin's Press (Attn Susan Conn) 175, Fifth Avenue New York NY10010 USA, and mention Fractal Report. Pre-payment required. Orders received by 1 September qualify for the special price. Publication date is 1 October, though, so you will have a fairish wait.



It appears to be similar to Computers and the Imagination, which I thought was an excellent book. The subjected headings that caught my imagination were Fractals and Feminism, Electronic Ant Farms, Music Beyond Imagination, Computers and Near Death Experiences. There are of course many more topics and different readers will be inspired by different selections.



Arthur C. Clarke wrote: A delightful trip along the fractal frontier between art and mathematics. Once again, it raises the old problem: does mathematics really exist, or do we make it all up? If so, there are some really weird minds out there - and good luck to them.



I would comment that if mathematics exists outside the mind, then all those copyright symbols on fractal images are a load of legalised balderdash - you can't copyright something that exists, only something that you can create.



Several other reviewers said that the book was hard to put down. I remember the feeling with its predecessor! This seems to be another book that everyone with an enquiring mind should have on his bookshelf.



The Origin of PoeM is Now Near London



The UK agents for the Barnsley fractal image compression system, PoeM, have moved nearer to London in order to concentrate their efforts to serve the business community. Origin IT aims to provide a service supporting clients introducing new technology into their businesses. The former premises have been closed down, and the new address is 53, Brighton Road Redhill Surrey RH1 6YL.



They have recently developed a chip that will use fractals to compress video in real time at up to 26 frames/s, and they are looking for co-developers to produce a circuit board for use in video telephones, digital video cassette recorders and camcorders.



Mandelbrot Filaments



Mr John A. Colls, of 177, Thunder Lane Norwich NR7 0JF writes that he would be very happy to correspond on his article in Fractal Report 21. He also notes that I printed the same figure twice - that's what comes of doing things without enough time around me!



If any author wants their address printed, then we are pleased to do so, but I have had letters whereby such people are surprised at the volume of mail this generates. Don't ask us to print your address unless you are prepared to spend considerable time answering letters.



Chaos Theory Provides Cheap and Easy Way

to Get to the Moon



An article in The Planetary Report (The Planetary Society 65, North Catelina Avenue Pasadena California 91106 USA) XII,3 explains how the trip to the moon can be performed with 25% less fuel using chaos theory. The three body problem provides areas of chaos in the gravitational fields of the Earth-Moon-Sun system, and a space vehicle can reach one of those areas with less fuel than it takes to get to the moon. When there, it can, for a minute expenditure of energy get itself into an orbit that circles the moon rather than Earth.



The previous method required carrying fuel to be used slowing the ship down in order to enter lunar orbit, but it is based on the "two body problem", ie the gravitational interaction between the ship and Earth or its moon is considered, but not both at the same time. This makes the maths easier. Remember that computers were few and far between in the 1920s when W. Hohmann first proposed the transfer orbit.



The three body chaos method takes much longer than the conventional route, but it is of value for unmanned craft and for sending material to a lunar colony.



The new method makes it possible for small cheap rockets launched from jet aeroplanes to reach the moon. The journey time is of the order of five months, which is the bad news.



The article concludes by speculating that the study of chaos theory will enable space missions to be flown with increasing efficiency.



Fractal Graphics Program now in 3D



The Fractal Graphics program is now available in 3D. The 3D pack costs $159 and exports true 3D .DXF files to any CAD, rendering or 3D animation software. The package includes all the 2D programs plus additional documentation and many full colour 3D example files.



For further details and costs of other options and trade terms, or MasterCard or Visa orders, please contact Cedar Software RR*I Box 5140 Garfield Road Morrisville VT05661 USA. Telephone 802-888-5275.



REC Calls for Games Software



In its issue 7,3 REC, the mathematical computer recreations newsletter, called for readers who have written games of logic or skill for the PC or Macintosh to submit them for inclusion in a disk compendium. No definite compensation is suggested, but Dr Ecker says he will find some way to remunerate contributors, possibly with software.



A short article Star-Man Graphics vs Bifurcation Diagrams contained a very short listing that might interest Fractal Report readers.



No Fractal Report reader has, at the time I write this, come up with a 8 (or more) letter word that will make another by advancing each letter a specific number of places in the alphabet (with wrap-around). However Dr Ecker mentions my challenge, in an nice little write up on Fractal Report 21, so no doubt his readers are still looking for longer words.



Also covered were prime producing polynomials, product recommendations including a $75 3D graphics program, and more mathemagical black holes. Amongst the reviews, Fractal Graphics received a high recommendation. I hope to publish a review in Fractal Report soon. (Maybe it will even appear in this issue!) Also mentioned was a program Fractal Aggregation Techniques, which used various semi-random methods to produce images.



More Quasthoff Data



Mr Stephen Shaw writes that he has had fun playing with Uwe Quasthoff's program in Fractal Report 21, page 10. He says these data values are interesting:

DATA -4,1.322,-.512,3,2.64

DATA -4,1.322,-.512,9,2.65

DATA 4,0.244,0.599,6,-2.75



Cal 3.1 Quotes Poe



CAL, short for Confusion and Light, (taken from song lyrics by T'Pau A Secret Garden) is a public domain fractal program for the PC. It has now been issued with some of the improvements forecast in Fractal Report 19, page 17. It also features a quote from Edgar Allen Poe's A Dream Within a Dream on the title screen.



A number of new fractals have been added. (Ushiki's Phoenix, Symmetrical Attractors, Hopalong [Martin's Mappings], and diffusion fractal.) Author Timothy Harris says that he has concentrated on "fractals that look best on the screen, rather than a host of mathematically interesting yet not particularly aesthetic formulae". There are now 14 fractal types available on CAL in this version.



The spreadsheet IFS editor has been replaced with a graphic one, and the image saving and handling utilities have been enhanced, together with speed and VGA card handling routines.



Copies are available for a blank disk and SAE, or �2.20 to include disc and postage. Overseas readers are asked to send a blank disk plus IRCs. Mr Timothy Harris 5, Burnham Park Road Peverell Plymouth Devon PL3 5QB.



People with access to JANET can download a recent version from the Lancaster University PDSoft Library. (call UK.AC.LANCS.PDSOFT and follow on-screen instructions).



Enhancements still to come include allowing CAL to operate on a local area network using each machine in a combined effort for faster results.



Many of the formulae used in CAL come from recent issues of Fractal Report, and Mr Harris thanks our authors for "providing an invaluable source of information on fractals and the mathematics involved, in great contrast to many of the either patronisingly simple or incomprehensively difficult books which have recently appeared on the subject."



Art Matrix to Publish HR Posters



Art Matrix, the American fractal product suppliers, have announced a range of high definition fractal posters, to be produced in editions of about 1,000 posters. Minimum orders are 10 posters per retailer. Interested retailers are invited to contact them at PO Box 880, Ithaca, NY 14851-0880. They invite suggestions as to what fractal images to publish in this way.



Letter:



From Mr David Moseley



On the whole I am very satisfied with the way in which Fractal Report is produced. However I have for some time felt that there are a few improvements which could be made to it. One feature I think would be worth introducing is a Letters to the Editor section. There have been several occasions when I would like to comment on a particular article but not to the extent of writing one of my own. For example, a program listing may give an inefficient method of calculating a factor used in the derivation of every pixel on the screen. I am sure the author (and inexperienced programmers) would be pleased to see ways of speeding up the production of particular screen plots.



Then there is the problem of the language in which the program has been written. I use QL SuperBasic and while I can readily convert to this from GW Basic, I have sometimes had problems with other Basic dialects, especially the actual plotting routine, if insufficient information has been given by the author. The problem is even more difficult if the program is given in a language with which I am not familiar. I'm sure that other people must have similar problems, so it might be useful to publish alternative listings. This is sometimes done by the author and also by yourself for programs you seem to have been particularly interested in. I suggest that this could be extended by asking other readers to contribute listings in their own pet languages. (I, for example, could obviously supply QL SuperBasic listings for those programs which interest me.) I have encountered many people interested in the sort of material which is published in Fractal Report but, because they are indifferent programmers, are unlikely to subscribe to it as there are too few programs in it which they would be able to directly enter into their own machines. I think the alternative listings section might make the magazine more appealing to such people.



Since contributions to either of the proposed sections should ideally be short, I would not suggest that such authors receive the usual "payment" of a year's subscription. However that is a matter of editorial discretion.



Comment:



Contibutions to either of these sections would be welcome. I have often paraphrased letters into the Announcements section for brevity.



I would suggest that the best way of implementing his proposals is for people with specialist machines, such as the QL, who also have lots of spare time, to offer converted programs for sale on machine readable media (disks, microdrives, cassettes etc) for their specific machine. Fractal Report will advertise their service free of charge. First come first served for each machine, and that includes the PC and QL - I haven't the time to do this and run Fractal Report!



You could be producing a disk every two months, and could get people to subscribe on an annual basis. Alternatively, you could produce the disks on an annual or six monthly basis or whatever suits you best. But please do not set yourself up with lots of enthusiasm only to find you haven't really got the time to run it. Time is the ultimate evil, not money, so think carefully! Failure through time damage has already hit a number of enterprises offered by Fractal Report readers.















Recursive Block-Removal Algorithms



by Timothy Harris



Although large savings in fractal drawing times can be achieved by reducing the time that it takes to calculate the value for each point (e.g. using integer arithmetic), it is also possible to reduce the total number of points which need to be calculated and then to use intelligent guessing algorithms to fill-in the missing ones. Clearly, if it is possible to halve the number of points which need to be calculated, the time taken to draw the image may also be halved.

For the Mandelbrot set, at least, the most successful algorithm which I have come across is to use a method of recursive block removal. This exploits the fact that if a box can be drawn around an area of the M-set, passing over pixels of only one colour, all of the points within the box will be of that same colour. However, calculating the points all around the perimeter does not usually result in a great saving of speed, so a further enhancement is to calculate only the corner points and hope that if these are the same then every point inside is the same.

This does cause some errors to be made during drawing, particularly where there are areas outside the M-set which protrude into the central section. Since all four corners may return the maximum iteration value, the program will not realise that a `spike' may be protruding into the box. This problem can be avoided either by calculating more points (e.g. the centre of each side as well as the corners), or by only filling the box with one colour when it is below a certain size. This would mean that any mistakes made will only form a small part of the image.

If drawing the M-set using a combination of these algorithms, the first stage is to calculate a matrix of points which spans the complete set. In this case y would be 4 (i.e. -2 to +2). Thus, g is the value of the point (-2,-2), i is (2,-2) etc... Initially, only the four corners and the central point, e, should be calculated. This is because it is likely that if a, e and c are all the same value then b is also this value.

A, e and c should therefore be compared and b calculated only if they are not all the same (if they are the same then b should be made equal to a). This needs to be repeated with a,e,g, g,e,i and c,e,i. By now, all nine values should have been found. If they are all the same then the complete square can be filled in, otherwise the calculating procedure should recursively call itself (first with a,b,d,e as the corners of a new square, then b,c,e,f etc...).

To successfully use this algorithm, the language employed must allow recursion and permit procedures to have local variables because the drawing routine needs to call itself whenever a block cannot be filled. Another important addition that can be made to the algorithm is to simply calculate the value of each pixel in the block if y becomes excessively small. This is because the time spent testing the corners and recursively calling the block- drawing routine becomes so great that it will not produce any time saving.

A Turbo Pascal program, using this algorithm, is shown below. IterationValue returns the colour for the point (RealVal,ImagVal) and may be changed to allow different fractals to be created. EnterGraphicsMode and PutPixel deal with displaying the points and would need to be altered if this program was to be used on a different machine. DrawFractal forms the main drawing algorithm with the parameters being the locations of the sides of the box to be tested, first as the actual values and then as pixel numbers for the screen.



[email protected]

program MandelRec; Names given to corners of blocks:

uses dos; .a .b .c

procedure EnterGraphicsMode; .d .e .f

var

Regs : registers; .g .h .i

begin

Regs.AX:=$13; {These put a PC compatible machine into} <-----y----->

Intr($10,Regs); {a 320x200 256 colour graphics mode}

end;

procedure PutPixel(X,Y : word ; Colour : byte);

begin

Mem[$a000:Y*320+X]:=Colour;

end;

function IterationValue(RealVal,ImagVal : real) : byte;

var

ZReal , ZImag , Temp , RSquared , ISquared : real;

Counter : byte;

begin

ZReal:=0; ZImag:=0; RSquared:=0; ISquared:=0; Counter:=0;

repeat

Inc(Counter);

Temp:=RSquared-ISquared+RealVal;

ZImag:=ZReal*ZImag*2+ImagVal;

ZReal:=Temp;

RSquared:=ZReal*ZReal;

ISquared:=ZImag*ZImag;

until (RSquared+ISquared>4) or (Counter=255);

IterationValue:=Counter;

end;

procedure DrawFractal(Left,Right,Base,Top : real ; Lp,Rp,Bp,Tp : word);

var

XScale , YScale , CentreX , CentreY : real;

CXp, CYp : word;

a,b,c,d,e,f,g,h,i : byte;

AllTheSame , TooSmall : boolean;

begin

CentreX:=(Left+Right)/2; CentreY:=(Top+Base)/2;

CXp:=(Lp+Rp) div 2; CYp:=(Tp+BP) div 2;

a:=IterationValue(Left,Top); {calculate values for a to h}

c:=IterationValue(Right,Top);

e:=IterationValue(CentreX,CentreY);

g:=IterationValue(Left,Base);

i:=IterationValue(Right,Base);

if (a=c) and (a=e) then b:=a else b:=IterationValue(CentreX,Top);

if (a=g) and (g=e) then d:=a else d:=IterationValue(Left,CentreY);

if (c=e) and (e=i) then f:=c else f:=IterationValue(Right,CentreY);

if (g=e) and (e=i) then h:=g else h:=IterationValue(CentreX,Base);

PutPixel(Lp,Tp,a); {draw the corner pixels}

PutPixel(CXp,Tp,b);

PutPixel(Rp,Tp,c);

PutPixel(Lp,CYp,d);

PutPixel(CXp,CYp,e);

PutPixel(Rp,CYp,f);

PutPixel(Lp,Bp,g);

PutPixel(CXp,Bp,h);

PutPixel(Rp,Bp,i);

AllTheSame:=((a=b) and (a=c) and (a=d) and (a=e) and (a=f) and

(a=g) and (a=h) and (a=i));

TooSmall:=(Rp-Lp)<8;

if AllTheSame then

for CXp:=Lp to Rp do

for CYp:=Tp to Bp do

PutPixel(CXp,CYp,a); {fill the block if all the same}

if not AllTheSame then

case TooSmall of

False :

begin {call recursively if different}

DrawFractal(Left,CentreX,CentreY,Top, Lp,CXp,CYp,Tp);

DrawFractal(CentreX,Right,CentreY,Top, CXp,Rp,CYp,Tp);

DrawFractal(Left,CentreX,Base,CentreY, Lp,CXp,Bp,CYp);

DrawFractal(CentreX,Right,Base,CentreY, CXp,Rp,Bp,CYp);

end;

True :

begin {if block too small it is quicker to calculate each point}

XScale:=(Right-Left)/(Rp-Lp);

YScale:=(Top-Base)/(Bp-Tp);

for CXp:=Lp to Rp do

for CYp:=Tp to Bp do

begin

a:=IterationValue(Left+(CXp-Lp)*XScale,Top-(CYP- TP)*YScale);

PutPixel(CXp,CYp,a);

end;

end;

end;

end;

begin

EnterGraphicsMode;

DrawFractal(-2.5,1.5,-1.5,1.5, 0,310,190,0);

end.

Fractint Corner: More Parameters Please.



by Yvan Bozzonetti



The Fractint formula routine allows only two complex parameters, P1 and P2. Even with a single function as cos, that looks very poor if we want to explore every possibility.



Assume we start with a simple variable Z, we can write a function such: F= Z + A, using a single parameter A and a single operation: +. In the fractal form, that turns into: Z = Z + A. In mathematical language we have here an additive group. Z = A * Z seems not very interesting contrarily to Z = Z ^ A.



With two parameters, we can expand our scope at a two group level with two operations, say + and x. A fractal function may be then:

Z = A * Z + B. or : Z = A * ( Z + B )

With + and ^ we can construct both:

Z = Z ^ A + B and : Z = (Z + A) ^ B

or:

Z = A ^ Z + B and : Z = A ^ (Z + B).

With * and ^ we get:

Z = A * Z ^ B ; Z = ( A * Z ) ^ B and Z = A ^ ( Z * B ).

Three parameters allow :

1) Z = A * Z ^ B + C

2) Z = ( A * Z ) ^ B + C

3) Z = ( A + Z ) ^ B + C

4) Z = A * ( Z + B ) ^ C

5) Z = A * B ^ Z + C

6) Z = A ^ ( Z * B ) + C

7) Z = A * B ^ ( Z * C )

8) Z = A ^ ( Z + B ) + C

9) Z = A ^ ( B * Z + C )

With only two allowed parameters, each formula is further broken into 8 fractint possibilities, some of them giving the same result for different mathematical formulae. For example : 1) and 5) with B=pixel are the same (Z is always given the value pixel). You may implement some of these formulas in a *.frm file; 1) simply scaled M system.



The nine two parameter formulas may be turned into three parameters ones if a starting value of Z is specified. We write then: Z=P1, not Z=PIXEL in the head of the formula line. That produces 72 possibilities in the fractint file.



Now, assume we call X any of the 9 three-parameters formulas or the 9 (expanded into three) 2-parameters possibilities. If we introduce a function such COS, then COS ( X ) stands for 18 X 8 = 144 fractint choices. With: SIN, SINH and COSH the greatest sum amounts to 144 X 4 = 576 fractint species. Well, you can get even more of them: If you turn the nine three parameters mathematical lines into four parameters quantities with a Z starting value, each one expands into 23 fractint genders. At the end you have 1116 new roads to explore.



That is only the start of the story: COS (X) may takes simply the place of the original variable Z. One more parameter E produces the formulas: E*COS(X) and (COS(X))^E or D*COS(X) and (COS(X))^D if we put the 2+1 parameters formulas in X.



Here, the choice expands to: 2X4X9X23=1656 (2 cos formulas; 4 functions: cos, cosh, sin, sinh; 9 mathematical possibilities and 23 fractint possibilities for each).



The 5 parameters way give: 2X4X9X47=3384 worlds to explore.



I give the 3, 4 and 5 parameters fractint choices, you need only to insert your formula after Z =. Today, scanners become more and more common. It may be interesting for them to publish all the possibilities described before. I let that to you. If fractint allowed for more parameters, our 5040 formulas would fit well in 144 choices, a somewhat more manageable file.



To use the following formula bodies, add to the name the function used, for example COS1 or COS2. F stands for formula, the letters tell you what parameters of the function can be adjusted. One letter stands for P1, two for P1 and P2. With three letters, things become a lot more cumbersome: the first is the real part of P1, the second its imaginary chunk. 3rd letter stands for P2. In ABC, A and B are real numbers and C is complex. ABC is not equal to ACB or CBA. The last number in the formula name displays the number of parameters.

F3 = { Z=a=b=c=PIXEL : Z = , |Z| <=4}

FA3 = { Z=b=c=PIXEL, a=p1 : Z = , |Z| <=4}

FB3 = { Z=a=c=PIXEL, b=p1 : Z = , |Z| <=4}

FC3 = { Z=a=b=PIXEL, c=p1 : Z = , |Z| <=4}

FAB3 = { Z=c=PIXEL, a=p1, b=p2 : Z = , |Z| <=4}

FAC3 = { Z=b=PIXEL, a=p1, c=p2 : Z = , |Z| <=4}

FBC3 = { Z=a=PIXEL, b=p1, c=p2 : Z = , |Z| <=4}

FABC3= { Z=PIXEL, a=real(p1), b=imag(p1), c=p2:

Z = , |Z| <=4}



FA4 = { Z=b=c=d=PIXEL, a=p1: Z = , |Z| <=4}

FB4 = { Z=a=c=d=PIXEL, b=p1: Z = , |Z| <=4}

FC4 = { Z=b=a=d=PIXEL, c=p1: Z = , |Z| <=4}

FD4 = { Z=b=c=a=PIXEL, d=p1: Z = , |Z| <=4}

FAB4 = { Z=c=d=PIXEL, a=p1, b=p2: Z = , |Z| <=4}

FAC4 = { Z=b=d=PIXEL, a=p1, c=p2: Z = , |Z| <=4}

FAD4 = { Z=b=c=PIXEL, a=p1, d=p2: Z = , |Z| <=4}

FBC4 = { Z=a=d=PIXEL, b=p1, c=p2: Z = , |Z| <=4}

FBD4 = { Z=a=c=PIXEL, b=p1, d=p2: Z = , |Z| <=4}

FCD4 = { Z=b=a=PIXEL, c=p1, d=p2: Z = , |Z| <=4}

FABC4 = { Z=d=PIXEL, a=real(p1), b=imag(p1), c=p2: Z = , |Z| <=4}

FACB4 = { Z=d=PIXEL, a=real(p1), c=imag(p1), b=p2: Z = , |Z| <=4}

FBCA4 = { Z=d=PIXEL, b=real(p1), c=imag(p1), a=p2: Z = , |Z| <=4}

FABD4 = { Z=c=PIXEL, a=real(p1), b=imag(p1), d=p2: Z = , |Z| <=4}

FADB4 = { Z=c=PIXEL, a=real(p1), d=imag(p1), b=p2: Z = , |Z| <=4}

FBDA4 = { Z=c=PIXEL, b=real(p1), d=imag(p1), a=p2: Z = , |Z| <=4}

FACD4 = { Z=b=PIXEL, a=real(p1), c=imag(p1), d=p2: Z = , |Z| <=4}

FADC4 = { Z=b=PIXEL, a=real(p1), d=imag(p1), c=p2: Z = , |Z| <=4}

FCDA4 = { Z=b=PIXEL, c=real(p1), d=imag(p1), a=p2: Z = , |Z| <=4}

FBCD4 = { Z=a=PIXEL, b=real(p1), c=imag(p1), d=p2: Z = , |Z| <=4}

FBDC4= { Z=a=PIXEL, b=real(p1), d=imag(p1), c=p2: Z = , |Z| <=4}

FCDB4 = { Z=a=PIXEL, c=real(p1), d=imag(p1), b=p2: Z = , |Z| <=4}

FABCD4 = { Z=PIXEL, a=real(p1), b=imag(p1), c=real(p2), d=imag(p2): Z = , |Z| <=4}



FA5 = { Z=b=c=d=e=PIXEL, a=p1: Z = , |Z| <=4}

FB5 = { Z=a=c=d=e=PIXEL, b=p1: Z = , |Z| <=4}

FC5 = { Z=a=b=d=e=PIXEL, c=p1: Z = , |Z| <=4}

FD5 = { Z=a=b=c=e=PIXEL, d=p1: Z = , |Z| <=4}

FE5 = { Z=a=b=c=d=PIXEL, e=p1: Z = , |Z| <=4}

FAB5 = { Z=c=d=e=PIXEL, a=p1, b=p2: Z = , |Z| <=4}

FAC5 = { Z=b=d=e=PIXEL, a=p1, c=p2: Z = , |Z| <=4}

FAD5 = { Z=b=c=e=PIXEL, a=p1, d=p2: Z = , |Z| <=4}

FAE5 = { Z=b=c=d=PIXEL, a=p1, e=p2: Z = , |Z| <=4}

FBC5 = { Z=a=d=e=PIXEL, b=p1, c=p2: Z = , |Z| <=4}

FBD5 = { Z=a=c=e=PIXEL, b=p1, d=p2: Z = , |Z| <=4}

FBE5 = { Z=a=c=d=PIXEL, b=p1, e=p2: Z = , |Z| <=4}

FCD5 = { Z=a=b=e=PIXEL, c=p1, d=p2: Z = , |Z| <=4}

FCE5 = { Z=a=b=d=PIXEL, c=p1, e=p2: Z = , |Z| <=4}

FDE5 = { Z=a=b=c=PIXEL, d=p1, e=p2: Z = , |Z| <=4}

FABC5 = { Z=d=e=PIXEL, a=real(p1), b=imag(p1), c=p2: Z = ,|Z| <=4}

FACB5 = { Z=d=e=PIXEL, a=real(p1), c=imag(p1), b=p2: Z = , |Z| <=4}

FBCA5 = { Z=d=e=PIXEL, b=real(p1), c=imag(p1), a=p2: Z = , |Z| <=4}

FABD5 = { Z=c=e=PIXEL, a=real(p1), b=imag(p1), d=p2: Z = , |Z| <=4}

FADB5 = { Z=c=e=PIXEL, a=real(p1), d=imag(p1), b=p2: Z = , |Z| <=4}

FBDA5 = { Z=c=e=PIXEL, b=real(p1), d=imag(p1), a=p2: Z = , |Z| <=4}

FABE5 = { Z=c=d=PIXEL, a=real(p1), b=imag(p1), e=p2: Z = , |Z| <=4}

FAEB5 = { Z=c=d=PIXEL, a=real(p1), e=imag(p1), b=p2: Z = , |Z| <=4}

FBEA5 = { Z=c=d=PIXEL, b=real(p1), e=imag(p1), a=p2: Z = , |Z| <=4}

FACD5 = { Z=b=e=PIXEL, a=real(p1), c=imag(p1), d=p2: Z = , |Z| <=4}

FADC5 = { Z=b=e=PIXEL, a=real(p1), d=imag(p1), c=p2: Z = , |Z| <=4}

FCDA5 = { Z=b=e=PIXEL, c=real(p1), d=imag(p1), a=p2: Z = , |Z| <=4}

FACE5 = { Z=b=d=PIXEL, a=real(p1), c=imag(p1), e=p2: Z = , |Z| <=4}

FAEC5 = { Z=b=d=PIXEL, a=real(p1), e=imag(p1), c=p2: Z = , |Z| <=4}

FCEA5 = { Z=b=d=PIXEL, c=real(p1), e=imag(p1), a=p2: Z = , |Z| <=4}

FADE5 = { Z=b=c=PIXEL, a=real(p1), d=imag(p1), e=p2: Z = , |Z| <=4}

FAED5 = { Z=b=c=PIXEL, a=real(p1), e=imag(p1), d=p2: Z = , |Z| <=4}

FDEA5 = { Z=b=c=PIXEL, d=real(p1), e=imag(p1), a=p2: Z = , |Z| <=4}

FBCD5 = { Z=a=e=PIXEL, b=real(p1), c=imag(p1), d=p2: Z = , |Z| <=4}

FBDC5 = { Z=a=e=PIXEL, b=real(p1), d=imag(p1), c=p2: Z = , |Z| <=4}

FDCB5 = { Z=a=e=PIXEL, d=real(p1), c=imag(p1), b=p2: Z = , |Z| <=4}

FBCE5 = { Z=a=d=PIXEL, b=real(p1), c=imag(p1), e=p2: Z = , |Z| <=4}

FBEC5 = { Z=a=d=PIXEL, b=real(p1), e=imag(p1), c=p2: Z = , |Z| <=4}

FECB5 = { Z=a=d=PIXEL, e=real(p1), c=imag(p1), b=p2: Z = , |Z| <=4}

FCDE5 = { Z=a=b=PIXEL, c=real(p1), d=imag(p1), e=p2: Z = , |Z| <=4}

FCED5 = { Z=a=b=PIXEL, c=real(p1), e=imag(p1), d=p2: Z = , |Z| <=4}

FDEC5 = { Z=a=b=PIXEL, d=real(p1), e=imag(p1), c=p2: Z = , |Z| <=4}

FABCD5 = { Z=e=PIXEL, a=real(p1), b=imag(p1), c=real(p2), d=imag(p2): Z = , |Z| <=4}

FABCE5 = { Z=d=PIXEL, a=real(p1), b=imag(p1), c=real(p2), e=imag(p2): Z = , |Z| <=4}

FABDE5 = { Z=c=PIXEL, a=real(p1), b=imag(p1), d=real(p2), e=imag(p2): Z = , |Z| <=4}

FACDE5 = { Z=b=PIXEL, a=real(p1), c=imag(p1), d=real(p2), e=imag(p2): Z = , |Z| <=4}

FBCDE5 = { Z=a=PIXEL, b=real(p1), c=imag(p1), d=real(p2), e=imag(p2): Z = , |Z| <=4}



I have not experimented with most of the above formulae, indeed Cos and Sin are periodic functions and whatever happen to X, the result looks the same if we allow for a scale factor. On zooming that may be not true. Whatever the issue, it seems better to simplify X and use more parameters "outside" Cos. We can write for example:

1) ( cos ( Z ^ A ) ) ^ B + C

2) ( cos ( Z ^ A ) ) ^ ( B * Z ) + C

3) A * ( cos ( Z ^ B ) ) ^ C + D

4) ( A * cos ( Z ^ B ) ) ^ C + D

5) A * ( B * cos ( Z ^ C ) ) ^ D + E

6) ( A + B * cos ( Z ^ C ) ) ^ D + E

At first glance, 5) contains 3) and 1). This is mathematically true. Unfortunately, with the limited number of parameters we can get in fractint, things are not so simple. Assume we want get 1) from 5) for example, we need to put A=B=1. even with a choice where A and B are real, that burns up the parameter P1. So, we are left with only one complex parameter for the three quantities: C, D, E. That looks bad, so we need to include all the formulas in the list to get some flexibility.



Here, I give all possibilities for the six functions. I let you write similar sets with SIN, COSH, SINH.



C1F3 = { Z=a=b=c=PIXEL : Z = (cos(Z^A))^B + C, |Z| <=4}

C1FA3 = { Z=b=c=PIXEL, a=p1: Z = (cos(Z^A))^B + C, |Z| <=4}

C1FB3 = { Z=a=c=PIXEL, b=p1: Z = (cos(Z^A))^B + C, |Z| <=4}

C1FC3 = { Z=a=b=PIXEL, c=p1: Z = (cos(Z^A))^B + C, |Z| <=4}

C1FAB3 = { Z=c=PIXEL, a=p1, b=p2 : Z = (cos(Z^A))^B + C, |Z| <=4}

C1FAC3 = { Z=b=PIXEL, a=p1, c=p2: Z = (cos(Z^A))^B + C, |Z| <=4}

C1FBC3 = { Z=a=PIXEL, b=p1, c=p2 : Z = (cos(Z^A))^B + C, |Z| <=4}

C1FABC3= { Z=PIXEL, a=real(p1), b=imag(p1), c=p2 : Z = (cos(Z^A))^B + C, |Z| <=4}



C2F3 = { Z=a=b=c=PIXEL : Z = (cos(Z^A))^(B*Z) + C, |Z| <=4}

C2FA3 = { Z=b=c=PIXEL, a=p1: Z = (cos(Z^A))^(B*Z) + C, |Z| <=4}

C2FB3 = { Z=a=c=PIXEL, b=p1: Z = (cos(Z^A))^(B*Z) + C, |Z| <=4}

C2FC3 = { Z=a=b=PIXEL, c=p1: Z = (cos(Z^A))^(B*Z) + C, |Z| <=4}

C2FAB3 = { Z=c=PIXEL, a=p1, b=p2: Z = (cos(Z^A))^(B*Z) + C, |Z| <=4}

C2FAC3 = { Z=b=PIXEL, a=p1, c=p2 : Z = (cos(Z^A))^(B*Z) + C, |Z| <=4}

C2FBC3 = { Z=a=PIXEL, b=p1, c=p2 : Z = (cos(Z^A))^(B*Z) + C, |Z| <=4}

C2FABC3 ={ Z=PIXEL, a=real(p1), b=imag(p1), c=p2 : Z = (cos(Z^A))^(B*Z) + C, |Z| <=4}



C3FA4 = { Z=b=c=d=PIXEL, a=p1: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FB4 = { Z=a=c=d=PIXEL, b=p1: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FC4 = { Z=b=a=d=PIXEL, c=p1: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FD4 = { Z=b=c=a=PIXEL, d=p1: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FAB4 = { Z=c=d=PIXEL, a=p1, b=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FAC4 = { Z=b=d=PIXEL, a=p1, c=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FAD4 = { Z=b=c=PIXEL, a=p1, d=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FBC4 = { Z=a=d=PIXEL, b=p1, c=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FBD4 = { Z=a=c=PIXEL, b=p1, d=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FCD4 = { Z=b=a=PIXEL, c=p1, d=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FABC4= { Z=d=PIXEL, a=real(p1), b=imag(p1), c=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FACB4= { Z=d=PIXEL, a=real(p1), c=imag(p1), b=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FBCA4= { Z=d=PIXEL, b=real(p1), c=imag(p1), a=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FABD4= { Z=c=PIXEL, a=real(p1), b=imag(p1), d=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FADB4= { Z=c=PIXEL, a=real(p1), d=imag(p1), b=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FBDA4= { Z=c=PIXEL, b=real(p1), d=imag(p1), a=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FACD4= { Z=b=PIXEL, a=real(p1), c=imag(p1), d=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FADC4= { Z=b=PIXEL, a=real(p1), d=imag(p1), c=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FCDA4= { Z=b=PIXEL, c=real(p1), d=imag(p1), a=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FBCD4= { Z=a=PIXEL, b=real(p1), c=imag(p1), d=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FBDC4= { Z=a=PIXEL, b=real(p1), d=imag(p1), c=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FCDB4= { Z=a=PIXEL, c=real(p1), d=imag(p1), b=p2: Z = A*(cos(Z^B))^C + D, |Z| <=4}

C3FABCD4= { Z=PIXEL, a=real(p1), b=imag(p1), c=real(p2), d=imag(p2): Z = A*(cos(Z^B))^C + D, |Z| <=4}



C4FA4 = { Z=b=c=d=PIXEL, a=p1: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FB4 = { Z=a=c=d=PIXEL, b=p1: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FC4 = { Z=b=a=d=PIXEL, c=p1: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FD4 = { Z=b=c=a=PIXEL, d=p1: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FAB4 = { Z=c=d=PIXEL, a=p1, b=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FAC4 = { Z=b=d=PIXEL, a=p1, c=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FAD4 = { Z=b=c=PIXEL, a=p1, d=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FBC4 = { Z=a=d=PIXEL, b=p1, c=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FBD4 = { Z=a=c=PIXEL, b=p1, d=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FCD4 = { Z=b=a=PIXEL, c=p1, d=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FABC4= { Z=d=PIXEL, a=real(p1), b=imag(p1), c=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FACB4 = { Z=d=PIXEL, a=real(p1), c=imag(p1), b=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FBCA4 = { Z=d=PIXEL, b=real(p1), c=imag(p1), a=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FABD4 = { Z=c=PIXEL, a=real(p1), b=imag(p1), d=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FADB4 = { Z=c=PIXEL, a=real(p1), d=imag(p1), b=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FBDA4 = { Z=c=PIXEL, b=real(p1), d=imag(p1), a=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FACD4 = { Z=b=PIXEL, a=real(p1), c=imag(p1), d=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FADC4 = { Z=b=PIXEL, a=real(p1), d=imag(p1), c=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FCDA4 = { Z=b=PIXEL, c=real(p1), d=imag(p1), a=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FBCD4 = { Z=a=PIXEL, b=real(p1), c=imag(p1), d=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FBDC4 = { Z=a=PIXEL, b=real(p1), d=imag(p1), c=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FCDB4 = { Z=a=PIXEL, c=real(p1), d=imag(p1), b=p2: Z = (A*cos(Z^B))^C + D, |Z| <=4}

C4FABCD4 = { Z=PIXEL, a=real(p1), b=imag(p1), c=real(p2), d=imag(p2): Z = (A*cos(Z^B))^C + D, |Z| <=4}



C5FA5 = { Z=b=c=d=e=PIXEL, a=p1: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FB5 = { Z=a=c=d=e=PIXEL, b=p1: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FC5 = { Z=a=b=d=e=PIXEL, c=p1: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FD5 = { Z=a=b=c=e=PIXEL, d=p1: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FE5 = { Z=a=b=c=d=PIXEL, e=p1: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FAB5 = { Z=c=d=e=PIXEL, a=p1, b=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FAC5 = { Z=b=d=e=PIXEL, a=p1, c=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FAD5 = { Z=b=c=e=PIXEL, a=p1, d=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FAE5 = { Z=b=c=d=PIXEL, a=p1, e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBC5 = { Z=a=d=e=PIXEL, b=p1, c=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBD5 = { Z=a=c=e=PIXEL, b=p1, d=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBE5 = { Z=a=c=d=PIXEL, b=p1, e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FCD5 = { Z=a=b=e=PIXEL, c=p1, d=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FCE5 = { Z=a=b=d=PIXEL, c=p1, e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FDE5 = { Z=a=b=c=PIXEL, d=p1, e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FABC5 = { Z=d=e=PIXEL, a=real(p1), b=imag(p1), c=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FACB5 = { Z=d=e=PIXEL, a=real(p1), c=imag(p1), b=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBCA5 = { Z=d=e=PIXEL, b=real(p1), c=imag(p1), a=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FABD5 = { Z=c=e=PIXEL, a=real(p1), b=imag(p1), d=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FADB5 = { Z=c=e=PIXEL, a=real(p1), d=imag(p1), b=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBDA5 = { Z=c=e=PIXEL, b=real(p1), d=imag(p1), a=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FABE5 = { Z=c=d=PIXEL, a=real(p1), b=imag(p1), e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FAEB5 = { Z=c=d=PIXEL, a=real(p1), e=imag(p1), b=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBEA5 = { Z=c=d=PIXEL, b=real(p1), e=imag(p1), a=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FACD5 = { Z=b=e=PIXEL, a=real(p1), c=imag(p1), d=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FADC5 = { Z=b=e=PIXEL, a=real(p1), d=imag(p1), c=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FCDA5 = { Z=b=e=PIXEL, c=real(p1), d=imag(p1), a=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FACE5 = { Z=b=d=PIXEL, a=real(p1), c=imag(p1), e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FAEC5 = { Z=b=d=PIXEL, a=real(p1), e=imag(p1), c=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FCEA5 = { Z=b=d=PIXEL, c=real(p1), e=imag(p1), a=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FADE5 = { Z=b=c=PIXEL, a=real(p1), d=imag(p1), e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FAED5 = { Z=b=c=PIXEL, a=real(p1), e=imag(p1), d=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FDEA5 = { Z=b=c=PIXEL, d=real(p1), e=imag(p1), a=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBCD5 = { Z=a=e=PIXEL, b=real(p1), c=imag(p1), d=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBDC5 = { Z=a=e=PIXEL, b=real(p1), d=imag(p1), c=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FDCB5 = { Z=a=e=PIXEL, d=real(p1), c=imag(p1), b=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBCE5 = { Z=a=d=PIXEL, b=real(p1), c=imag(p1), e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBEC5 = { Z=a=d=PIXEL, b=real(p1), e=imag(p1), c=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FECB5 = { Z=a=d=PIXEL, e=real(p1), c=imag(p1), b=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FCDE5 = { Z=a=b=PIXEL, c=real(p1), d=imag(p1), e=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FCED5 = { Z=a=b=PIXEL, c=real(p1), e=imag(p1), d=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FDEC5 = { Z=a=b=PIXEL, d=real(p1), e=imag(p1), c=p2: Z = A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FABCD5= { Z=e=PIXEL, a=real(p1), b=imag(p1), c=real(p2), d=imag(p2):Z= A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FABCE5= { Z=d=PIXEL, a=real(p1), b=imag(p1), c=real(p2), e=imag(p2):Z= A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FABDE5= { Z=c=PIXEL, a=real(p1), b=imag(p1), d=real(p2), e=imag(p2):Z= A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FACDE5= { Z=b=PIXEL, a=real(p1), c=imag(p1), d=real(p2), e=imag(p2):Z= A*(B*cos(Z^C))^D + E, |Z| <=4}

C5FBCDE5= { Z=a=PIXEL, b=real(p1), c=imag(p1), d=real(p2), e=imag(p2):Z= A*(B*cos(Z^C))^D + E, |Z| <=4}



C6FA5 = { Z=b=c=d=e=PIXEL, a=p1: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FB5 = { Z=a=c=d=e=PIXEL, b=p1: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FC5 = { Z=a=b=d=e=PIXEL, c=p1: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FD5 = { Z=a=b=c=e=PIXEL, d=p1: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FE5 = { Z=a=b=c=d=PIXEL, e=p1: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FAB5 = { Z=c=d=e=PIXEL, a=p1, b=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FAC5 = { Z=b=d=e=PIXEL, a=p1, c=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FAD5 = { Z=b=c=e=PIXEL, a=p1, d=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FAE5 = { Z=b=c=d=PIXEL, a=p1, e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBC5 = { Z=a=d=e=PIXEL, b=p1, c=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBD5 = { Z=a=c=e=PIXEL, b=p1, d=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBE5 = { Z=a=c=d=PIXEL, b=p1, e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FCD5 = { Z=a=b=e=PIXEL, c=p1, d=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FCE5 = { Z=a=b=d=PIXEL, c=p1, e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FDE5 = { Z=a=b=c=PIXEL, d=p1, e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FABC5 = { Z=d=e=PIXEL, a=real(p1), b=imag(p1), c=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FACB5 = { Z=d=e=PIXEL, a=real(p1), c=imag(p1), b=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBCA5 = { Z=d=e=PIXEL, b=real(p1), c=imag(p1), a=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FABD5 = { Z=c=e=PIXEL, a=real(p1), b=imag(p1), d=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FADB5 = { Z=c=e=PIXEL, a=real(p1), d=imag(p1), b=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBDA5 = { Z=c=e=PIXEL, b=real(p1), d=imag(p1), a=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FABE5 = { Z=c=d=PIXEL, a=real(p1), b=imag(p1), e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FAEB5 = { Z=c=d=PIXEL, a=real(p1), e=imag(p1), b=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBEA5 = { Z=c=d=PIXEL, b=real(p1), e=imag(p1), a=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FACD5 = { Z=b=e=PIXEL, a=real(p1), c=imag(p1), d=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FADC5 = { Z=b=e=PIXEL, a=real(p1), d=imag(p1), c=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FCDA5 = { Z=b=e=PIXEL, c=real(p1), d=imag(p1), a=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FACE5 = { Z=b=d=PIXEL, a=real(p1), c=imag(p1), e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FAEC5 = { Z=b=d=PIXEL, a=real(p1), e=imag(p1), c=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FCEA5 = { Z=b=d=PIXEL, c=real(p1), e=imag(p1), a=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FADE5 = { Z=b=c=PIXEL, a=real(p1), d=imag(p1), e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FAED5 = { Z=b=c=PIXEL, a=real(p1), e=imag(p1), d=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FDEA5 = { Z=b=c=PIXEL, d=real(p1), e=imag(p1), a=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBCD5 = { Z=a=e=PIXEL, b=real(p1), c=imag(p1), d=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBDC5 = { Z=a=e=PIXEL, b=real(p1), d=imag(p1), c=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FDCB5 = { Z=a=e=PIXEL, d=real(p1), c=imag(p1), b=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBCE5 = { Z=a=d=PIXEL, b=real(p1), c=imag(p1), e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBEC5 = { Z=a=d=PIXEL, b=real(p1), e=imag(p1), c=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FECB5 = { Z=a=d=PIXEL, e=real(p1), c=imag(p1), b=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FCDE5 = { Z=a=b=PIXEL, c=real(p1), d=imag(p1), e=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FCED5 = { Z=a=b=PIXEL, c=real(p1), e=imag(p1), d=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FDEC5 = { Z=a=b=PIXEL, d=real(p1), e=imag(p1), c=p2: Z = (A+B*cos(Z^C))^D + E, |Z| <=4}

C6FABCD5 = { Z=e=PIXEL, a=real(p1), b=imag(p1), c=real(p2), d=imag(p2):Z=(A+B*cos(Z^C))^D + E, |Z| <=4}

C6FABCE5 = { Z=d=PIXEL, a=real(p1), b=imag(p1), c=real(p2), e=imag(p2):Z=(A+B*cos(Z^C))^D + E, |Z| <=4}

C6FABDE5 = { Z=c=PIXEL, a=real(p1), b=imag(p1), d=real(p2), e=imag(p2):Z=(A+B*cos(Z^C))^D + E, |Z| <=4}

C6FACDE5 = { Z=b=PIXEL, a=real(p1), c=imag(p1), d=real(p2), e=imag(p2):Z=(A+B*cos(Z^C))^D + E, |Z| <=4}

C6FBCDE5 = { Z=a=PIXEL, b=real(p1), c=imag(p1), d=real(p2), e=imag(p2):Z=(A+B*cos(Z^C))^D + E, |Z| <=4}



I let you write the C3F4, C4F4, C5F5 and C6F5 formulae with no adjustable parameter. You can try too ABS(Z)= in place of |Z|=.



Want more formulae? well, write: 1/(...) where: (...) stands for the preceding functions:

1A) D/((cos(Z^A))^B+C)

2A) D/((cos(Z^A))^(B*Z)+C)

3A) E/((A*(cos(Z^B))^C+D)

4A) E/((A*cos(Z^B))^C+D)

5A) 1/(A*(B*cos(Z^C))^D+E)

6A) 1/((A+B*cos(Z^C))^D+E)



What if we write Z^D (or E) at the numerator? [Functions 1B-6B] or D (or E) ^ Z ? [functions 1C-6C]. I hope to see them soon in Fractint with all SIN, SINH, COSH possibilities.

Colouring Symmetric Attractors



Dr Hugh N. Daglish



In Issue 21, Dr Uwe Quasthoff asks for ideas on how to produce coloured versions of the functions he has plotted, suggesting that he will need a faster computer with much more memory. There is a much simpler and cheaper method: find a version of Basic which can both write and read the colour parameter for each pixel. I use QuickBasic 4.5, which can do this. The only necessary changes to the Basic code given in Issue 21 are firstly, add the line SCREEN X, at the beginning of the program, where X depends upon the type of colour display being used, and secondly, replace the line containing the DRAW command with the following:



xb=2*xb:yb=2*yb

exicol%=POINT(xb,yb)

if exicol%<colmax% then col%=exicol% + 1

PSET (xb,yb),col%



Colmax% refers to the maximum permitted value for the colour parameter. For my VGA monitor, I used SCREEN 9, at the beginning of the program, and replaced the line containing the DRAW command with the following:



exicol%=POINT(xb,yb)

if exicol%<16 then col%=exicol% + 1

if col%=1 then col%=2

if col%=7 then col%=9

PSET (xb,yb),col%



To use the whole VGA screen, it is, of course, also necessary to change the scale and offset values. The conditional changes in col% aren't essential but will avoid dark blue and grey pixels, which do not show up as well as the brighter colours.



This method works just as well with other fractal programs which write repeatedly to individual pixels, such as the "Martin's Mappings" described in issue 10 of Fractal Report, or the famous "Affine Fern".

SCREEN 9

green:

CLS

RESTORE

LOCATE 1, 1

INPUT "Which data line? ", serl%

CLS

LOCATE 1, 1

PRINT "HND\UWE v 3 Data:"; serl%

IF serl% = 0 THEN GOTO endlabel

FOR nn% = 1 TO 10

READ serial%, a, b, c, m%, l, scalex, scaley, xoff, yoff

IF serl% = serial% THEN GOTO trip

NEXT nn%

trip: RESTORE

x = .1

y = .1

label:

u = x * x + y * y

xx = 1!

yy = 0!

FOR i% = 1 TO m% - 1

xxn = xx * x - yy * y

yy = xx * y + x * yy

xx = xxn

NEXT i%

v = xx * x - yy * y

x = (a * u + b * v + l) * x + c * xx

y = (a * u + b * v + l) * y - c * yy



xb = xoff + scalex * x

yb = yoff + scaley * y



IF xb > 800 OR yb > 800 THEN STOP

colx% = POINT(xb, yb)

IF colx% < 15 THEN col% = colx% + 1

IF col% = 1 THEN col% = 2

IF col% = 7 THEN col% = 9

PSET (xb, yb), col%

LET qs$ = INKEY$

IF qs$ <> "" THEN GOSUB 8000

GOTO label

DATA 1,1,0,.5,3,-1.804,180,140,330,180

DATA 2,2,-.2,1,3,-1.75,277,216,330,180

DATA 3,-1,.1,-.8,3,1.52,167,126,330,180

DATA 4,-2,0,-.5,5,2.6,159,120,330,180

DATA 5,-1,.1,-.8,5,1.30,176,132,330,180

DATA 6,5,2,1,6,-2.70,261,185,330,180

DATA 7,5,2,1,6,-2.585,265,197,330,180

DATA 8,1,0.04,.1,7,-2.065,175,131,330,180

DATA 9,4,2,1,9,-2.60,241,179,330,180

DATA 10,-1,.1,-.8,3,1.69,153,115,330,180





8000 REM Subroutine to stop program safely

8001 QSS% = ASC(qs$)

8006 IF QSS% = 9 THEN GOTO 8002

IF QSS% = 32 THEN RETURN

IF QSS% = 2 OR QSS% = 8 THEN GOTO 8002

IF QSS% = 3 THEN GOTO green

IF qs$ = "Q" OR qs$ = "q" THEN GOTO 8002

IF qs$ <> "" THEN PRINT CHR$(7): RETURN





8002

LOCATE 25, 1

PRINT " Hit ESC to Stop, RETURN to clear screen,SPACE to continue,^C to restart";

8010

DO

QSS$ = INKEY$

LOOP UNTIL QSS$ <> ""

qs% = ASC(QSS$)

IF qs% = 3 THEN GOTO green

IF qs% = 27 OR qs% = 127 THEN GOTO endlabel

IF qs% = 13 THEN CLS : GOTO endlabel

IF qs% = 32 THEN

LOCATE 25, 1

PRINT " ";

END IF

RETURN

PRINT CHR$(7);

GOTO 8010



endlabel:

SCREEN 0

END

Physics Software Review



by Larry Cobb



Chaotic Dynamics Workbench, Roger W Rollins

American Institute of Physics



Price $69-95 (IBM PC version)

from TASL, North Carolina State University, Box 8202

Rayleigh, NC 27695-8202, USA



I imagine that this software is primarily intended to compliment American University physics courses. Since I have no knowledge of these (or the current English courses, for that matter), I have had to judge it on a purely personal level. Would someone with an interest in Chaos Theory find it instructive or fun to use?



The Workbench covers the following nine non-linear systems:



the Duffing two-well oscillator (driven and damped)



the Duffing soft-spring oscillator



the Duffing hard-spring oscillator



the Duffing-Ueda oscillator (quartic potential)



the driven, damped pendulum



the Shaw-Van der Pol oscillator



the periodically forced Brusselator (a chemical system)



the Lorenz system (model convection cell - first strange attractor)



the Henon-Heiles system (a conservative Hamiltonian system)





Its academic background is obvious from the start. Not only does the handbook explain the theoretical background in great depth and repeatedly, so do the introductory screens when the program is run. This is no bad thing the first time the software is used but it does become rather tedious after a while.



By modern standards, the user interface is simple and inflexible. It uses keyboard commands and no on-screen cues are given while the equations are being analysed. You have to remember commands like Alt-F which toggles between "orbit" and "flip" mode, or stop the analysis and look at the help screen. The handbook insists that this command (and some 30 other similar ones) will soon become second nature, but I doubt it. The lack of a flexible menu system adds to the tedium in using the software. The graphics display resolution seems to be limited to EGA, even when used with a VGA.



But there are some good things - not least of which being that this is the only software I know that can give you an introduction to these Chaotic non-linear systems. It also provides plenty of reference material for those who are not afraid of the mathematical content. It does allow you to modify the equation parameters while viewing the results on-screen. Probably readers of Fractal Report will be most familiar with the Lorenz equation and modifying its parameters gives a good insight into why weather forecasters are so often wrong!



Chaotic Dynamics Workbench can be tedious to use but, if you have an interest in non-linear systems and are not frightened by differential equations, it could be what you have been looking for.







Chaos Simulations, Tom Bessoir and Alan Wolf

American Institute of Physics



Price $69-95 (IBM PC version)

from TASL, North Carolina State University, Box 8202

Rayleigh, NC 27695-8202, USA



"Chaos Simulations is a collection of fifteen computer simulations that graphically demonstrate the key features of deterministic chaos" says the preface to the software manual, and I couldn't put it better myself. It follows a logical sequence of complexity from one dimensional Map Iteration, through multiple pendulums to strange (chaotic) attractors.



With a nice balance of theory and graphical illustration, Chaos Simulations shows how seemingly straightforward systems can exhibit chaotic behaviour. Billiard balls in a stadium and a space toy are included to show how deterministic (non-random) simulations can become chaotic. In fact the space toy sounds great fun but I have never seen it for sale in the UK.



Iterating an area of the Henon map is used to introduce the idea of fractal behaviour, but whether the "kneading dough" analogy is useful or not depends on if you can imagine infinite folding of the mixture!



The user interface in this program is still fairly elementary but there is always an on-screen prompt to help find the right key. The software is also able to use VGA resolution, (unlike the above), and these two points together made the program much more pleasant to use.



If you want a thorough and structured introduction to Chaos Theory, this is the program for you.



Gumowski and Mira attractor.

A brief study to stimulate others by Ian Entwistle



The physicists Gumowski and Mira have utilised mappings of the type used to generate strange attractors such as the Lorenz and Henon to study the behaviour of elementary particles. The algebraic model chosen for the iteration was of the type Equation 1.



Equation 1: Xn+1=bYn-F(Xn)

Yn+1= -Xn+F(Xn+1)



Of particular interest was the function in Equation 2. This can be incorporated into a short program such as Listing 1 written in BBC BASIC V at lines 170,180 which generates for certain values of the variables a and b interesting fractals when the output becomes chaotic.



Equation 2 F(X) = aX+(1-a)2X2/1+X2



The initial value of the function is calculated at line 130. Iteration is then carried out by the loop ITER%. By repeating this loop with sequential change of colour and plotting scale at line 200 the fractals can be made to "grow". Variation in the starting values of SCALE% and COL% can be used to give more control over the output. Inputs for the more important variables a and b which give interesting results are given by -1 < a < 1 and b = 1 or close to 1. Some examples to try are listed in the table . Where b=1 the mappings are area conserving and so the final fractal should not overlap the screen edge for high CYCLE% values. In other examples use limits of 30-40 to restrict the overall size of the image. Some important variations can also be introduced by adjusting the values of x and y in line 110. Many experiments are worth trying here until values which result in pleasing patterns are found.



Watching the fractals grow is fascinating and the screens can be saved readily by inserting *SCREENSAVE ( Filename) at line 215. The illustrations were obtained by screen dumping of saved colour files. Clearly the listing can readily be translated for use on other machines. Note that line 140 sets the colour of the pixel and POINT x,y in line 160 plots the point with the start near the centre of the screen controlled by the number of OS units (centre of screen is at 640,512 OS units).

10 REM>FRACTALS GENERATOR BY IAN ENTWISTLE 1991

20 REM BASED ON MAPPINGS OF GUMOWSKI AND MIRA

40 REM{TYPE=SINGLE}

50 INPUT "Variables a,b";a,b

60 INPUT "256 Colour Mode No. 13,15 or 21";MD%

61 INPUT "No. of Colour cycles";CYCLES%

70 MODE MD%

80 CLS:COL%=1 :SCALE%=2

90 FOR TI%=1 TO CYCLES%

100 a=a:b=b:ITER%=1000

110 c=2-2*a :x=4:y=0

130 w=a*x+c*x*x/(1+x*x)

140 GCOL 0,COL%

150 FOR N%=0 TO ITER%

160 POINT x*SCALE% + 500,y*SCALE% + 612

170 z=x:x=b*y+w:u=x*x

180 w=a*x+c*u/(1+u):y=w-z

190 NEXT

200 SCALE%+=1:COL%+=1

210 NEXT

220 END

Two Books on Symmetry - A review

John de Rivaz

(click on the links to read more about the books or to order)

Fivefold Symmetry ed István Hargittai 1992, �39

Spiral Symmetry eds István Hargittai and Clifford A. Pickover 1992, �28

Both published by World Scientific, 73, Lynton Mead Totteridge London N20 8DH

Suite 1B 1060, Main Street River Edge NJ07661 USA

PO Box 128 Farrer Road Singapore 9128

These two books are very similar in appearance and format. A laminated hard bound colour cover binds 561 and 449 pages respectively of high quality glossy paper on which is printed articles by various authors on the subject matter of the title. The articles are well written, and some contain references for further reading, and a few computer algorithms for self-experiment.

Some of the articles appear to be aimed at the mysticism-in-science audience which has become such big business in publishing since A Brief History of Time became one of the best ever sellers of hard bound books. I must say that I find these an interesting read, although possibly not for the same reasons as the general public.

In Spiral Symmetry Arthur L. Loeb and William Varney discuss the Golden Ratio, which is used by artists and architects to produce pleasing shapes. Some geometry is worked though, together with the construction of spirals from the ratio. Jay Kappraff examines The Spiral In Nature, Myth and Mathematics. There are far more words and pictures in these books than equations and the "long words" are easily determined by their context. A.G. Davis-Philip, known to Fractal Report readers for his book Midgets on the Spike is represented by an excellent article with a rather wordy title: The Evolution of a three-armed spiral in the Julia Set, and higher order spirals. This contains many fine pictures and the words are easy to follow and give a clear exposition of matters relating to Julia and Mandelbrot sets. This article will be very useful for fractal explorers using Fractint or one of the commercial programs.

Artists should also read this book. For example, Eleanor Kent describes her work using a photocopier making portraits of her favourite spiral shell with eggs and corals! So this is by no means a stuffy maths book. It is for all those who are fascinated by that universal object, the spiral, and contains many pieces that will enable them to extend their interest through observation and experiment.

Fivefold Symmetry is similar in content, although its central theme is as described by the title. Clifford Pickover's own article includes some of the material presented by Uwe Quastoff in Fractal Report 21, page 10. Dr Pickover's article is entitled Pentagonal Chaos, and also contains more on Julia Sets and Halley Maps. Some algorithms are given. Jay Kappraff has another long piece, this time on the mathematics and mysticism of the Golden Mean, which ventures via the Fibonacci series into music, plant growth and chaos.

This book looks a lot at fivefold symmetry in history and mythology, and I could imagine many people into black magic horror movies dipping into this in book stores and buying it, especially for the Hungarian names in it (=Transylvanian?), thinking that they will learn something of the black arts. Unfortunately the price may put them off. This is pity as there is some good maths and science in here which may teach them that hard science is far more weird and mysterious than any fanciful imaginings of ancient (and modern) religions.

Readers of this review may wonder why I said that I am interested in books linking form and shape with mysticism and ancient things. Well, its not because I believe in ghosts, spirits and ghouls and similar superstitions that's for sure. What interests me is the fact that shapes can so influence people. One shape may be pleasant to look at, whilst another is ugly. Yet from any logical point of view "good looking" and "ugly" are purely subjective judgements. Fractal Report is about making shapes on small computers, and a scientific insight into making shapes that are pleasing to look at is of obvious importance to those interested in this. The Golden Ratio, discovered by the ancient Greeks, produces pleasing shapes. These books examine this beyond the simple rectangle. Many other shapes have inspired mankind into very strange behaviour, hence the cabalistic signs of black magic. They do conjure demons, but the don't arise from beyond the grave. They come from within the minds of the beholders.


This page hosted by Get your own Free Home Page

Hosted by www.Geocities.ws

1