From: owner-fractdev-digest@lists.xmission.com (fractdev-digest) To: fractdev-digest@lists.xmission.com Subject: fractdev-digest V1 #3 Reply-To: fractdev-digest Sender: owner-fractdev-digest@lists.xmission.com Errors-To: owner-fractdev-digest@lists.xmission.com Precedence: bulk fractdev-digest Thursday, January 29 1998 Volume 01 : Number 003 ---------------------------------------------------------------------- Date: Tue, 13 Jan 1998 10:28:56 -0700 From: Rich Thomson Subject: Re: (fractdev) Re: (fractint) Simplgif update Previously, Tim wrote: > This will be obsolete soon because we are removing the 2048 pixel > limit from the developer's version. But right now consensus is we > should release version 19.6 with the better lzw encoder as 19.6a or > 19.7. The 2048 limit removal will have to wait longer. But Tim, there will always be _some_ limit, if only just imposed by the size of an unsigned int. So what is the size of the new limit? 32 bit unsigned int? In article <199801130239.UAA11169@virtual5.c-com.net> , "Tim Wegner" writes: > Your basic point is well taken (though I don't think in separate > files has anything to do with it.) If one were willing to > simultaneously decompress all the images, no intermediate file would > be needed at all. Even if the requirement is to totally decompress > one image at a time, if the subimages are read left-to-right, the > file only needs to be as high as the subimages. That's a whole lot > less than a file for the whole image. Let me see if I understand exactly how the MIGs are structured. There is a global "MIG header". What's in this header? (I looked in the xfractint sources, but couldn't find any source for simplgif.) Then each subimage has a header that indicates its (x,y) position in the larger image? You could scan through once to build up a list of all the images and their locations and then process everything in scanline order and you wouldn't need the intermediate file at all. Things would go much faster. There are more uses for the NxM tiling than just getting around fractint's 2048 limit, ya know. I use it to naturally generate regular grids in the image plane. However, that does seem to be the whole point behind simplgif; for fractint, its whole purpose in life is to stitch together images. - -- ``Between stimulus and response is the will to choose.'' -- Steven Covey =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 3D Paint: The Power to Create in 3D; Rich Thomson email me for more info rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 14 Jan 1998 16:53:17 -0600 From: "Tim Wegner" Subject: Re: (fractdev) Re: (fractint) Simplgif update Rich queried: > But Tim, there will always be _some_ limit, if only just imposed by > the size of an unsigned int. So what is the size of the new limit? > 32 bit unsigned int? At the moment there are a lot of variables that are signed ints, which on a PC are 16 bits, so effectively the limit is 2^15 pixels. However, we can systematically convert variables to unsigned and increase the limit to 2^16 pixels. The only way with the present architecture to achieve these high resolutions (on the PC anyway) is via disk video, which is another x*y flat file. So there's a disk size limit. Obviously Xfractint (or any 32 bit flat memory port) will be able to overcome these limits with a bit of work. Tim - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 14 Jan 1998 15:57:43 -0700 From: Rich Thomson Subject: Re: (fractdev) Re: (fractint) Simplgif update In article <199801142246.QAA10926@virtual3.c-com.net> , "Tim Wegner" writes: > At the moment there are a lot of variables that are signed ints, > which on a PC are 16 bits, so effectively the limit is 2^15 pixels. Actually, 2^16 - 1 for signed ints, right? So the limit is something like 32K. Better than 2K, but still overflowed when rendering huge versions for anti-aliasing down to 1200dpi laser output. - -- ``Between stimulus and response is the will to choose.'' -- Steven Covey =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 3D Paint: The Power to Create in 3D; Rich Thomson email me for more info rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 14 Jan 1998 17:23:58 -0600 From: "Tim Wegner" Subject: Re: (fractdev) Re: (fractint) Simplgif update Rich pointed out: > Actually, 2^16 - 1 for signed ints, right? Of course This is actually easy to test with the devlopers version, since it is possible to create diskvideo modes with resolutions like 32k x 20 or some such. Of course 32k x 32k isn't practical. Tim - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 14 Jan 1998 17:34:07 -0600 From: "Damien M. Jones" Subject: Re: (fractdev) Re: (fractint) Simplgif update - > Actually, 2^16 - 1 for signed ints, right? - - Of course Pardon me for nitpicking, but isn't 32,767 actualy 2^15-1, not 16? - Of course 32k x 32k isn't practical. Give Jon Noring a chance... I'm sure he'll find 32Kx32K useful for something. :) Damien M. Jones \\ dmj@fractalus.com \\ http://www.icd.com/tsd/ (temporary sanity designs) \\ http://www.fractalus.com/ (fractals are my hobby) - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 14 Jan 1998 18:22:00 -0600 From: "Tim Wegner" Subject: Re: (fractdev) Re: (fractint) Simplgif update Damien asked: > Pardon me for nitpicking, but isn't 32,767 actualy 2^15-1, not 16? Sorry, when I get home from a hard day at NASA my brain is entirely disengaged. :-) Once again yes, with signed integers we are talking 2^15 - 1 or 32767. However, we can extend this to 2^16-1, and when we go to PNG, we'll also change the way fractal parameters are stored, and will make image dimensions essentially unlimited. PNG images support image dimensions stored in signed 32 bit images I believe. Tim - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Thu, 22 Jan 1998 17:48:48 -0700 From: Rich Thomson Subject: (fractdev) formula fractals under xfractint Why are these so dang slow? It takes aeons for my 250 Mhz R4000 SGI to compute a single image. - -- ``Between stimulus and response is the will to choose.'' -- Steven Covey =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 3D Paint: The Power to Create in 3D; Rich Thomson email me for more info rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Fri, 23 Jan 1998 11:26:36 -0600 From: "Damien M. Jones" Subject: Re: (fractdev) formula fractals under xfractint Rich, - Why are these so dang slow? It takes aeons for my 250 Mhz R4000 SGI - to compute a single image. Probably because the formula parser is written to run entirely in C, rather than optimized assembly. Which is too bad, because I think the formula parser is the most important part of FractInt. :) Damien M. Jones \\ dmj@fractalus.com \\ http://www.icd.com/tsd/ (temporary sanity designs) \\ http://www.fractalus.com/ (fractals are my hobby) - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Fri, 23 Jan 1998 16:49:26 -0700 From: Rich Thomson Subject: Re: (fractdev) formula fractals under xfractint In article <3.0.3.32.19980123112636.006a5100@megspo.megsinet.net> , "Damien M. Jones" writes: > Probably because the formula parser is written to run entirely in C, rather > than optimized assembly. Which is too bad, because I think the formula > parser is the most important part of FractInt. :) It seems worse than that though. I think there are extra levels of function calls that aren't needed.... but yes, it sure would be handy to have the formula compiled to R3000 assembly. Given that the MIPS architecture is very regular, it might not even be too hard to optimize for that. - -- ``Between stimulus and response is the will to choose.'' -- Steven Covey =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 3D Paint: The Power to Create in 3D; Rich Thomson email me for more info rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Fri, 23 Jan 1998 20:01:45 -0600 From: "Tim Wegner" Subject: Re: (fractdev) formula fractals under xfractint Rich said: > It seems worse than that though. I think there are extra levels of > function calls that aren't needed.... but yes, it sure would be handy > to have the formula compiled to R3000 assembly. Given that the MIPS > architecture is very regular, it might not even be too hard to > optimize for that. Damien is basically right. Chuck Ebbert wrote the fast parser, which is an incredible piece of work. It is fast both because of parser language optimizations as well as assembler optimizations keeping variables in registers as much as possible. The logical stack of the parser is implemented directly using the stack registers of the coprocessor! So it's fast because the software design is directly implemented in the hardware. Unfortunately the presence of the fast parser has diverted the team from optimizing the C. Many of the parser language optimizations in the fast parser could be implemented in C as well. And certainly the function call overhead could be improved. If anyone wants to work on this, they should coordinate with George Martin. Does the R3000 have an FPU stack analagous to the x87? Tim - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Mon, 26 Jan 1998 09:30:41 -0700 From: Rich Thomson Subject: Re: (fractdev) formula fractals under xfractint In article <199801240305.VAA19491@virtual4.c-com.net> , "Tim Wegner" writes: > Unfortunately the presence of the fast parser has diverted the team > from optimizing the C. Many of the parser language optimizations in > the fast parser could be implemented in C as well. And certainly the > function call overhead could be improved. If anyone wants to work on > this, they should coordinate with George Martin. Which brings up another thought.... is anyone keeping an up-to-date "issues" or "TODO" documents for xfractint/fractint? I think we are getting lots of good suggestions from the wish list and other areas but they need to be kept organized into the source so that when people download the source and are feeling energetic, they are already presented with a list of things they could do to help.... bugs should also be tracked and documented this way. > Does the R3000 have an FPU stack analagous to the x87? The MIPS architecture is regular and orthogonal being the first popularized RISC architecture. FPU instructions operate on registers, and any register could be used as a pointer to the top of a stack in memory. It is more similar to the 68K architecture in that regard. - -- ``Between stimulus and response is the will to choose.'' -- Steven Covey =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 3D Paint: The Power to Create in 3D; Rich Thomson email me for more info rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Mon, 26 Jan 1998 09:30:41 -0700 From: Rich Thomson Subject: Re: (fractdev) formula fractals under xfractint In article <199801240305.VAA19491@virtual4.c-com.net> , "Tim Wegner" writes: > Unfortunately the presence of the fast parser has diverted the team > from optimizing the C. Many of the parser language optimizations in > the fast parser could be implemented in C as well. And certainly the > function call overhead could be improved. If anyone wants to work on > this, they should coordinate with George Martin. Which brings up another thought.... is anyone keeping an up-to-date "issues" or "TODO" documents for xfractint/fractint? I think we are getting lots of good suggestions from the wish list and other areas but they need to be kept organized into the source so that when people download the source and are feeling energetic, they are already presented with a list of things they could do to help.... bugs should also be tracked and documented this way. > Does the R3000 have an FPU stack analagous to the x87? The MIPS architecture is regular and orthogonal being the first popularized RISC architecture. FPU instructions operate on registers, and any register could be used as a pointer to the top of a stack in memory. It is more similar to the 68K architecture in that regard. - -- ``Between stimulus and response is the will to choose.'' -- Steven Covey =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 3D Paint: The Power to Create in 3D; Rich Thomson email me for more info rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Tue, 27 Jan 1998 00:38:44 -0600 From: "Tim Wegner" Subject: Re: (fractdev) formula fractals under xfractint Rich said, > Which brings up another thought.... is anyone keeping an up-to-date > "issues" or "TODO" documents for xfractint/fractint? If someone wants to do this, they are welcome. I patched in your SGI fixes, and had no problems compiling under DOS. I'll incorporate your suggestions in the next patch. I'll also test them under Linux. I need to set up a system for distributing the diffs to folks here. Tim - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Tue, 27 Jan 1998 09:53:47 -0700 From: Rich Thomson Subject: Re: (fractdev) formula fractals under xfractint In article <199801270638.AAA27487@virtual5.c-com.net> , "Tim Wegner" writes: > > Which brings up another thought.... is anyone keeping an up-to-date > > "issues" or "TODO" documents for xfractint/fractint? > > If someone wants to do this, they are welcome. OK, I volunteer. Let me draft up something and mail it to this list and then we can add whatever I've missed or forgotten. - -- Rich Thomson rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 17:14:46 -0600 From: "Tim Wegner" Subject: (fractdev) fractint list postings I wonder if a few of you could post some on topic (non-test) messages to the fractint list so we can see if it is working. I don't know if the lack of activity is because folks *think* the list is down or if there's a problem. Thanks. Tim - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 15:41:36 -0800 From: "Jay Hill" Subject: (fractdev) Is this still a great list or what... Hi Fractintiers, In case you have not been following the Fractal of the Night, I have posted all of them here http://home.san.rr.com/jayrhill/FotN/FotNindx.html including the par files. Last we heard, Dr J (the mad scientist of fractal space) went to the FractoBowl. He has not been heard from since. Some think he over consumed some beverages perhaps. Among the nonsense, there are hopefully some helpful hints for your Fractint formula programming from one who is learning with the rest of this list. Jay - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 15:49:19 -0800 From: "Jay Hill" Subject: Re: (fractdev) fractint list postings Hi guys, Can the formula parser be extended to include these functions IsOdd(x) - returns 1 if x is odd integer, else 0 Remainder(x,y) - returns remainded of x/y (or what ever the usual C conventions is) Thanks, Jay PS If there is a work around or a function that does this, fine. Let me know. - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 17:08:32 -0700 From: Rich Thomson Subject: Re: (fractdev) fractint list postings In article <8825659A.0082A0BD.00@NOTESGW.NOSC.MIL> , "Jay Hill" writes: > Can the formula parser be extended to include these functions > > IsOdd(x) - returns 1 if x is odd integer, else 0 ; true if x/2 has any fractional part if (trunc(x/2) != x/2) ... endif > Remainder(x,y) - returns remainded of x/y (or what ever the usual C > conventions is) In C, this would be the % operator for integers, or fmod(x,y) for floating point. What is the "remainder" of a complex divison though? Anyway, you can do this until you get a builtin: remainder = y*(x/y - trunc(x/y)) - -- Rich Thomson rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 18:19:24 -0600 From: "Tim Wegner" Subject: Re: (fractdev) fractint list postings Jay asked: > Can the formula parser be extended to include these functions > > IsOdd(x) - returns 1 if x is odd integer, else 0 > > Remainder(x,y) - returns remainded of x/y (or what ever the usual C > conventions is) Sure will do. If someone sees we can easily do these already, let me know. Tim - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 16:26:52 -0800 From: "Jay Hill" Subject: Re: (fractdev) fractint list postings Jay wrote > IsOdd(x) - returns 1 if x is odd integer, else 0 > > Remainder(x,y) - returns remainder of x/y (or what ever the usual C > conventions is) Rich suggested trunc() I knew that ... :^) Thanks Rich, that should do the job. Tim, the only question is would my functions be faster for working with our color counters, iter, and so on. Will later versions give us access to iter so we don't have to count our own? Jay - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 17:42:26 -0700 From: Rich Thomson Subject: Re: (fractdev) fractint list postings In article <199801290016.SAA21331@virtual3.c-com.net> , "Tim Wegner" writes: > > IsOdd(x) - returns 1 if x is odd integer, else 0 > > > > Remainder(x,y) - returns remainded of x/y (or what ever the usual C > > conventions is) > > Sure will do. If someone sees we can easily do these already, let me > know. If you decide to implement these as builtins, consider just implementing the equivalent of fmod(). IsOdd is really just a special case of remainder: IsOdd(x) == Remainder(x, 2). But rather than calling the function "remainder", I'd suggest following C syntax and using % as a modulus operator: IsOdd(x) := x % 2 Remainder(x, y) := x % y; - -- Rich Thomson rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 18:38:10 -0800 From: "Jim sellers" Subject: (fractdev) Virus I just received this message and know nothing about it but it camed from a friend and thought I should pass it on Jim Sellers > > > Subject: > > > Date: Fri, 23 Jan 1998 10:52:17 -0500 (EST) > > > Message-ID: > > > > > > VIRUS WARNING > > > If you receive an email titled "JOIN THE CREW," DO NOT open it. It will erase everything on your hard drive. Forward this letter out to as many people as you can. This is a new, very malicious virus and not many people know about it. This informatio n was announced Wednesday morning from IBM; please share it with everyone that might access the internet. Once again, pass this along to EVERYONE in your address book so that this may be stopped. Also, do not open or even look at any mail that says "RETURNED OR UNABLE TO DELIVER." This virus will attach itself to your computer components and render them useless. Immediately delete any mail items that say this. AOL has said that this is a very dangerous virus and that there is NO remedy for it at this time. Please practice cautionary measures and forward this to all users. > > > > > > Gloria Litteral > > > Administrative Assistant to the Dean > > > Dean of Students' Office > > > The College of Wooster > > > Galpin Hall > > > Wooster, Ohio 4469l > > > Telephone: 330-263-20ll > > > FAX: 330-263-2594 > > > e-mail: GLitteral@acs.Wooster.edu > > > > > > --------- End forwarded message ---------- > > Received this from a friend, and have no reason to doubt it. I've > > already had a couple of messages that were returned that should have > > gone through. > > > > Pat Cline - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 19:16:45 -0600 From: "Damien M. Jones" Subject: Re: (fractdev) fractint list postings Tim, Further suggestions for parser keywords: trisq - "tri" square, like whitesq but returns 0-2 for PTC fractals quadsq - "quad" square, returns 0-3 for PTC fractals iter - access to the iteration count Damien M. Jones \\ dmj@fractalus.com \\ http://www.icd.com/tsd/ (temporary sanity designs) \\ http://www.fractalus.com/ (fractals are my hobby) - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Wed, 28 Jan 1998 21:55:40 -0600 From: "Tim Wegner" Subject: Re: (fractdev) fractint list postings > > IsOdd(x) - returns 1 if x is odd integer, else 0 > > ; true if x/2 has any fractional part > if (trunc(x/2) != x/2) > ... > endif IsOdd() might still be worthwhile to implement for clarity and efficiency. But of course the argument is a complex number. At some time we might try to create some integer data types. > > > Remainder(x,y) - returns remainder of x/y (or what ever the usual C > > conventions is) > > In C, this would be the % operator for integers, or fmod(x,y) for > floating point. What is the "remainder" of a complex divison > though? Anyway, you can do this until you get a builtin: > > remainder = y*(x/y - trunc(x/y)) Once again, we're processing just the real part., right? This one would be much more efficient is built it. Jay, how about making a case for this with a sample formula. Hello artists, do you want these, especially since Rich has shown how to build them from existing functions? The floor is open for other function proposals. Tim - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Thu, 29 Jan 1998 08:53:06 -0500 From: George Martin <76440.1143@compuserve.com> Subject: Re: (fractdev) fractint list postings Tim, >Remainder(x, y) A thought - if we're going to do something like this, let's keep intact the formula parser convention of functions taking only one argument. The remainder "function" should therefore be implemented as an operator. George - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Thu, 29 Jan 1998 10:09:05 -0700 From: Rich Thomson Subject: Re: (fractdev) Virus This is a variation on the well known "Good Times" hoax. The virus is the warning itself, you just propagated the virus by "warning" us. See under "virus hoaxes" In the future, before you pass on a virus "warning" from someone else, check a site like that one (sarc is Symantec AntiVirus Research Center, run by Symantec, which makes Norton Anti-Virus). The virus companies are aware of all the hoaxes long before most people have heard of them. Whenever passing on a "security alert", it is crucial that you check the truthfulness of the report. Many times more harm than good is done by passing false reports and causing people to worry about and spend time investigating non-existent problems. - -- Rich Thomson rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Thu, 29 Jan 1998 10:35:42 -0700 From: Rich Thomson Subject: Re: (fractdev) fractint list postings In article <3.0.3.32.19980128191645.006ba4b0@megspo.megsinet.net> , "Damien M. Jones" writes: > Further suggestions for parser keywords: > > trisq - "tri" square, like whitesq but returns 0-2 for PTC fractals > quadsq - "quad" square, returns 0-3 for PTC fractals > iter - access to the iteration count Access to iter is a really good idea. For compatability with old formulas that used the variable called "iter" for their own iteration count, you could detect this by examining the initialization section of a formula -- if it contains a variable called "iter", then all references to "iter" in the formula refer to this variable; it hides the iter value maintained by fractint. For trisq and quadsq, I'd prefer to see fractint's formula syntax extended to include the keywords "int", "real", and "complex". The keyword precedes an expression or variable and casts the expression or variable to that type. Example: foo { int i = 0, ; i is an integer variable z = 0, ; default is still complex complex w = 0, ; but we can also state it explicitly real mag = 0, ; mag is a real variable trisq = scrnpix % 3 ; trisq's real/imag parts are 0-3 quadsq = scrnpix % 4; ; quadsq's real/imag parts are 0-4 : z = sqr(z) + pixel ; complex math i = i+1 ; integer math mag = |z| ; real math (return magnitude of z) mag > 4.0 } Since integer variables are often being incremented or decremented, it probably makes sense to either introduce the C syntax of ++/-- postfix operators (and possibly prefix versions as well), or you could go the pascalish route of providing inc/dec functions. For trisq and quadsq, I cheated a little in using a non-existing modulus operator. However, it does convey the intent. In strict 19.6 fractint, we'd have to write: trisq = 3*(real(scrnpix)/3 - trunc(real(scrnpix)/3)) + flip(3*(imag(scrnpix)/3 - trunc(imag(scrnpix)/3))) Which isn't very efficient at all. If we had a % operator that took a complex c and an integer d as "c % d" and computed: c % d = (real(c) % d, imag(c) % d) then we could easily compute trisq and quadsq like this: trisq = scrnpix % 3; quadsq = scrnpix % 4; as above. This would also be efficient, since the parser knows that scrnpix is really two integers disguised as a complex. However, if you want a complex modulus operator, you want "complex % complex" to be defined differently than what I've shown when the second argument is an integer. These are issues to add to the TODO list for the formula parser. - -- Rich Thomson rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Thu, 29 Jan 1998 13:43:59 -0500 From: George Martin <76440.1143@compuserve.com> Subject: Re: (fractdev) fractint list postings Rich, >quadsq - "quad" square, returns 0-3 for PTC fractals whitesq is (row + col) % 2 trisq can be (row + col) % 3 but the pattern for the 4 layer PTCs is 0 1 2 3 0 1 . . 2 3 0 1 2 3 . . 0 1 2 3 0 1 . . 2 3 0 1 2 3 . . . . . . . . . . which will require a little different approach. Implementing "trisq" and "quadsq" as predefined variables will be easy enough, and I'll go ahead and do it unless someone wants to discuss it more. The only downside I see is a slight increase in the drawing time of images with formulas that don't use these variables. I'll also look at accessing the internal iteration count through a variable. My own preference would be to call the variable something other than "iter", since that is so commonly used in current formulas (although the solution you suggested will work). Since we have "maxiter" already, maybe something like "iternow", "icount" or "thisiter" (I like the way the last one sounds, but not the way it looks in print). Anyone else with thoughts on this? George Martin - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Thu, 29 Jan 1998 11:55:37 -0700 From: Rich Thomson Subject: Re: (fractdev) fractint list postings In article <199801291347_MC2-311D-B715@compuserve.com> , George Martin <76440.1143@compuserve.com> writes: > >quadsq - "quad" square, returns 0-3 for PTC fractals > > whitesq is (row + col) % 2 > trisq can be (row + col) % 3 > > but the pattern for the 4 layer PTCs is > > 0 1 2 3 0 1 . . > 2 3 0 1 2 3 . . > 0 1 2 3 0 1 . . > 2 3 0 1 2 3 . . > . . . . . . . . This whitesq thing has always struck me as "fractint trying to be all things to all people". Why not just render the two/four/N fractals you want to combine in such a checkerboard fashion and have an image manipulation program combine them? Then combining two fractals as a PTC is a simple combination of the component fractals, instead of writing all these whitesq formulas (with bugs and edits and debugging of the formula) just to fake fractint into doing some remedial image processing? But, since we already have whitesq, regarding your comment about the value of whitesq/trisq/etc. being computed even if not used -- my question is why doesn't the optimizer detect unused variables and not bother computing them? > I'll also look at accessing the internal iteration count through a > variable. My own preference would be to call the variable something other > than "iter", since that is so commonly used in current formulas (although > the solution you suggested will work). Since we have "maxiter" already, > maybe something like "iternow", "icount" or "thisiter" (I like the way the > last one sounds, but not the way it looks in print). Anyone else with > thoughts on this? Of the ones you listed, I like "thisiter" best, although naturally I prefer my own solution as it is compatable with old formulas, and has the intuitive name. - -- Rich Thomson rthomson@ptc.com - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ Date: Thu, 29 Jan 1998 11:59:26 -0700 From: Rich Thomson Subject: (fractdev) TODO list, as promised - ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <13043.886100338.1@woody> Here is my initial attempt at a TODO list to be incorporated into the fractint source distribution so as to track existing ideas and serve as a springboard for directing new eager developers into a direction we've already discussed as the kind of things that "make sense" in fractint. (For instance, we've talked about fractal music and sound options on fractint and fractal-art and generally concluded that this kind of thing is a little far afield for fractint; not to mean that if someone added such a thing it would be rejected, but just that it doesn't seem to fit naturally within fractint's framework.) Please reply to me directly -- and not to the list -- if you have something to add to the TODO list, so that I can keep things straight. - -- Rich Thomson rthomson@ptc.com - ------- =_aaaaaaaaaa0 Content-Type: text/plain; name="todo.txt"; charset="us-ascii" Content-ID: <13043.886100338.2@woody> This file contains a list of things that are on the "To Do" list of the fractint development team, practiced in the true Stone Soup tradition. Any item on this list is up for grabs and you are encouraged to use this as a starting point for your fractint contributions! This document is arranged by the functional area within fractint. The functional areas are listed in alphabetical order with each idea that's been suggested for improving the various sections. 3D Support - ---------- - - Provide a way to plug-in a 3D driver by name; platform support determines what drivers are available. Fractint "native" 3D support available on all platforms. - - Add arcball for iteractive manipulation of 3D viewing parameters (interactively manipulate viewed object by its bounding box) Arbitrary Precision - ------------------- - - Extend arbitrary precision arithmetic to other fractal types, most notably formula types - - Allow arbitrary precision values to be entered into text field boxes and PAR files Deep Color Support - ------------------ - - 24-bit color modes - - 32-bit color modes (RGB plus alpha) - - PNG 24/32-bit output/input - - Coloring pixels by formulas - - Texture mapping Formula Parser - -------------- - - Add type information for expressions and variables - - Add remainder (modulus) operator/function - - Make C versions of corresponding assembly functions more efficient (reduce function call overhead, apply optimizations) - - Provide a way to perform user-defined computations once per-image - - Provide a way to define and call named user functions like regular functions Fractal Types - ------------- - - Add 2D cellular automata - - Add continuously valued automata, a la CAPOW - - Various 3D fractal types that could be added Fractal Types: Cellular - ------------- - - Extend 1D cellular automata types beyond existing totalistic automata Help Files - ---------- - - Add formula tutorial - - Add formula coloring methods tutorial - - Add color editor tutorial - - Add support to the help compiler for generating postscript / PDF / HTML output. - - Add support for inlined images in help browser (initially present only in PS/PDF/HTML versions) Image Computation - ----------------- - - Provide anti-aliasing support directly (requires deep color) - - Synchronous Orbits Iteration Image I/O - --------- - - Provide PNG support for both 8-bit and deeper video modes; handle gamma correction properly on output - - Platform Support - ---------------- - - Create "fractint GUI API" that abstracts out fractint's ideas of dialogs, text boxes, number boxes, keyboard navigation of dialogs, etc., so that ports to other windowing systems are more readily accomplished from the same body of source code a la xfractint/fractint as opposed to the completely native port of winfract (which lags); this will abstract out the interface from the computation engine, which enhances portablity (something fractint sorely lacks) to other platforms and also makes it easy to reuse fractint's compute engine. - - Support for generalizing the assembly code to other architectures such as 68k, MIPS, etc. - - Support "video modes" by name/number/capability rather than by function key assignment. Since video modes vary by platform, and even on the same platform they can vary from user to user, a way of specifying the video mode in terms of its capability is needed. Something like video=x-res/y-res/depth, i.e. video=640/480/8. In a windowed environment, the video "mode" is used to guide window size, palette emulation, etc. Platform Support: DOS - --------------------- - - Eliminate overlays / move to 32-bit flat address space DOS protected mode app (gives up 286 support) - - Option for displaying dialogs and text screens in graphics video mode with image save/restore; eliminates switching back and forth from text mode to graphics mode, saving wear and tear on monitors - - port code to DOS version of "fractint GUI API" - - Improve performance of native DOS 3D driver - - Compute an image larger than the screen resolution and allow panning through the larger image by the screen. Platform Support: unix/X - ------------------------ - - Visual selection assumed root is 8-bit psuedocolor; improve to select appropriate visual for requested video mode (could be 24-bit with deep color support) - - Eliminate use of curses and xterm in favor of native X-based text windows - - Use Xt for interface components of "fractint GUI API" - - 3D drivers: OpenGL, PEX, native X Platform Support: Mac/Amiga/BeOS/NeXT/other - ------------------------------------------- - - Someone needs to do the port! :) Zoom Box - -------- - - Use XaoS like techniques to speedup the zoom box and/or initialize the screen from the zoomed section. - ------- =_aaaaaaaaaa0-- - - - ------------------------------------------------------------ Thanks for using Fractdev, The Fractint Developer's Discussion List Post Message: fractdev@xmission.com Get Commands: majordomo@xmission.com "help" Administrator: twegner@phoenix.net Unsubscribe: majordomo@xmission.com "unsubscribe fractdev" ------------------------------ End of fractdev-digest V1 #3 ****************************