Marc Lupien; [71550,640] Documentation on FRAMSE.ARC (DL16 in amigaforum) and FRAMSS.ARC (DL3 in forth forum) FRAMSE.ARC contains: (dl16 in AMIGAFORUM) 1- a copy of this file (mset.doc) 2- the executable program (mset) 3- the source program main (mset.f) 4- source part 2 utilities (myconsole.f) 5- source part 3 "" (break.f) 6- source part 4 "" (mset.script) FRAMSS.ARC contains: (dl3 in FORTH forum) 1- a copy of this file (mset.doc) 2- the source program main (mset.f) 3- source part 2 utilities (myconsole.f) 4- source part 3 "" (break.f) 5- source part 4 "" (mset.script) NOTE that there is in DL6 in AMIGAFORUM two picture generated with this program. both in 320x400 IFF Deluxe-Paint format. E.G. file dl6 FRAMS1.ARC and FRAMS2.ARC Go take a look at them... The puspose of this program is to compute and display what is called the Mandelbrot set. In short the purpose is to produce GREAT PICTURES of FRACTALS. The program was written in Multi-Forth for the Amiga v1.21. From BYTE magazine, december 1986 by Peter B. Schroeder : <<... The Mandelbrot set is one of the intriguing mathematical structures you can explore with the Amiga. In 'The Fractal Geometry of Nature', Benoit Mandelbrot defines a fractal as "a set for which the Hausdroff Besicovitch dimension [fractional dimension] strictly exceeds it's topological dimension." ... WHAT IS THE MANDELBROT SET ? ... The Mandelbrot set is a set of numbers z = c^2 + c where c is a complex number of the form a + bi and z iteratively squared never produces a square root of a^2 + b^2 larger than 2. Note that since i^2 equals -1, (a + bi)^2 equals a^2 + 2abi - b^2, and that the iterative squarring of these numbers produces a jagged, non differentiable result. If the sum of the squares does grow beyond 4 within a large number of iterations, it will eventually approach infinity and, by definition, not be part of the Mandelbrot set. IF you take a matrix, a by b, and iteratively square every element in it until either the sum of their squares exceed 4 or you reach 1000 iterations, you can determine a count of the number of iterations that each element in the array requires. Those elements with counts of 1000 are part of the Mandelbrot set; those with counts that are very large but still less than 1000 are near the Mandelbrot set; and those with low counts are far from it....>> ABOUT THE PROGRAM : You can execute this programs FROM CLI ONLY. You have the choice of launching the programs using RUN or not. The porgram requires Amiga system software version 1.2. Description of the questions you need to answer: 1- The Y axis resolution ? You have two choices of resolutions : 320x200 pixels (if you type 'L' for low) or 320x400 pixels (if you type 'H' for high). 2- The X start coordinate ? It is a floating point value corresponding to the X coordinate of the lower left pixel of the picture to compute. The whole Mandelbrot set, on X axis, range from -2.0 up to approx 1.0. You can try any number, you have approx a 7 digits precision. 3- The Y start coordinate ? It is a floating point value corresponding to the Y coordinate of the lower left pixel of the picture to compute. The whole Mandelbrot set, on Y axis, range from -1.25 up to approx 1.25. You can try any number, you have approx a 7 digits precision. 4- The Range ? It's the 'length' over which we compute the set on both the X and Y axis. E.G. Start Y and Y of -2.0 and -1.25 respectively and a range of 2.5 means that we compute the set with values from -2.0 to +0.5 on the X axis and from -1.25 to +1.25 on the Y. Try these values : Start X Start Y Range -2.0 -1.25 2.5 -.25 .88 .25 By using different values (especially using a smaller range value) You can ZOOM-IN into any part of the set; discovering fascinating pictures. Note that most of the time; the more interresting the picture; the longer it takes to compute. After you answered to all the questions there is a 5 seconds delay before the processing begins. After that a new screen will open in front of the workbench screen showing you the picture as it is generated. The drag bar and the depth gadgets can be used even though they are not visible. Once the picture is completed, the program waits for you to hit Escape on the picture screen before closing it. If the escape doesn't seems to work with the graphic screen upfront, try clicking the left mouse button in the middle of it before hitting escape therefore making sure that this window is active. On the original console window, the program will display the time it was when it started the picture; the row number it is now computing and an estimated time left to compute the picture from the time it took to compute the last row. If you want to stop the processing before the whole picture is generated you first have to get the workbench screen upfront, then activate the console window of the program and hit CTRL-C thus signaling a BREAK to the program. The program will stop once the current row is processed. Note that the program does not stop right away, it does so only when the current row is over. Second the program is waiting for you to hit escape key on the graphic screen. Once the whole picture is generated (it can take hours) I suggest you use a program like GRABBiT to save in a file the picture on that screen since I did not implemented an IFF file save of the picture in the program.