Received: from lists.xmission.com (lists.xmission.com [198.60.22.7]) by mail-atm.san.rr.com (8.8.7/8.8.8) with SMTP id CAA27371; Sat, 10 Jan 1998 02:28:41 -0800 (PST) Received: from domo by lists.xmission.com with local (Exim 1.73 #4) id 0xqy4o-0006of-00; Sat, 10 Jan 1998 03:23:38 -0700 Date: Sat, 10 Jan 1998 05:26:13 -0500 (EST) Message-Id: <199801101026.FAA05793@freenet2.carleton.ca.carleton.ca> From: ao950@freenet.carleton.ca (Paul Derbyshire) To: fractint@lists.xmission.com Subject: (fractint) Generalized Mandel/Julia types Sender: owner-fractint@lists.xmission.com Precedence: bulk Reply-To: fractint@lists.xmission.com Content-Type: text X-UIDL: 2939742984cc8ae9d44c8e904afe7052 A generalized Mandelbrot/Julia formula type should work as follows: The formula specifies an iteration equation, together with initial conditions, while also specifying *critical points* and attractors: initial: iteration variable z; parameter c; iterate: sqr(z)+c; critical: 0; attractor: infinity; This should be interpreted at runtime as follows: Make an M-set by setting z to 0 ("critical" and c to pixel, or a Julia setting c to a user parameter and z to pixel; let the user perturb the M-set by choosing a value that will be added to z. Iterate z^2+c; for the M-set use periodicity checking and a user-chooseable bailout since infinity is an attractor. The attractor list should allow the keyword "infinity", any number, or any expression in the parameter(s). The critical list should allow any number, expression in the parameters, or the keyword "guess". Guess means that critical points will be sought by a modified Newton's method dynamically at run-time, for the calculus-impaired to write these formulas. The run-time method is as follows: Pick 100 random z clustered around 0, with fewer out to larger radii. For each, iterate: z->z-f(z)*epsilon/(f(z+epsilon)-f(z)) Note that this is just Newton's method replacing the f'(z) with the approximation (f(z+epsilon)-f(z))/epsilon. Epsilon should be small, e.g. 1e-13. f(z) means to iterate the formula using a random choice of parameters. This is repeated with a different random choice and critical points that 'wandered' are weeded out. (Those are beyond my ability to program a computer to find :-) so they'd have to absolutely be included in the critical: list manually!) At run time, the user can choose Julia or Mandel. For Julia they can choose the parameter values and run. For Mandel, they can choose any of the critical points, choose a perturbation to add to z_0, and run. Mandel types periodicity check. Julia types iterate all the (known) critical points and say 100 random z to find all distinct attractors, and build an attractor list, then the basins can be varicolored, or solid colored by user choice. For all, the basins can be further split by phase (one, some, or all), and decomp should work around the attractor point detected. Old formulas supported but fancy colorings depend on using IF and ENDIF and outside=real and other clunky 19.6 style stuff :-), and then using a single colormap with the single basin the engine believes exists. -- .*. Friendship, companionship, love, and having fun are the reasons for -() < life. All else; sex, money, fame, etc.; are just to get/express these. `*' Send any and all mail with attachments to the hotmail address please. Paul Derbyshire ao950@freenet.carleton.ca pgd73@hotmail.com - ------------------------------------------------------------ Thanks for using Fractint, The Fractals and Fractint Discussion List Post Message: fractint@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractint"