Short: Recursive FFT_All_Math.py. Author: wisecracker.bazza@gmail.com (Barry Walker) Uploader: Barry Walker Type: dev/src Version: 1.00.00 Architecture: generic; m68k-amigaos Distribution: AMINET, Public Domain, CC0 licence. ============================================================================ Architectures: Classic AMIGAs, FS-UAE, OSX 10.15.7, Linux Mint 21.3. -------------------------------------------------------------------- MINIMUM Requirements Are:- -------------------------- 1) Amiga environment:- Stock AMIGA A1200(HD). (Extra memory is always useful, but not needed; it will run much faster however with more FastRAM and expansion cards). FS-UAE on OSX 10.15.7, Linux Mint 20.3, and Mint 21.3. Standard AMIGA OS_3.0.x install or better. Python Version 1.4.0 for a STOCK A1200(HD), the "python_020_ieee" one. 2) Apple OSX 10.15.7 and higher using default Python 2.7.x, 3.5.2. 3.8.x, 3.9.x, 3.10.1, 3.12.2, and 3.13.0... 3) Linux Mint 20.3, and 21.3, Python 2.7.x, 3.8.x, 3.9.x, and 3.10.x... (Not tested on Windows, WinUAE, or CygWin but they should work.) ---------------------------------------------------------------------------- History:- --------- 17-10-2024. ----------- Version 1.00.00: Probably the only upload of this code recipe. ---------------------------------------------------------------------------- About:- ------- FFT - Fast Fourier Transform, (NOT Finite Fourier Transform.) This DEMO code is an exercise in futility to create a recursive Fast Fourier Transform using ONLY the builtin 'math' module, that will run on ANY Python Version from 1.4.0 for a STOCK AMIGA A1200(HD) to 3.13.0 on OSX 10.15.7, as of 17-10-2024, WITHOUT ANY MODIFICATION AT ALL. I always try to include the classic AMIGA A1200(HD) in my code recipes, this is no exception. !!!Remember!!! The AMIGA does NOT have the luxuries of numpy, or scipy, so a RADIX 2, recursive version is about the simplist to accomplish. It is difficult to take in all of the differences between all of these versions and get a working model, but here it is. A few examples: There are NO list comprehensions before version 2.0.x. ( My universal cmath module FFT for Version 2.0.1 uses list comprehensions: http://aminet.net/package/dev/src/FFT_AMIGA.py ) The print statement changed to a function in version 3.0.x. There is no STEP facility using lists until AFAIK around version 2.2.x. These are but a few that one has to think about, but the challenge is what I like most of all. Once downloaded just extract the Python script from the drawer and run the code snippet as you would normally with ANY Python Version. ---------------------------------------------------------------------------- IMPOTANT! --------- There is a limit to the number of RADIX 2 elements, 16 in the DEMO, one can use with a stock AMIGA A1200(HD), probably 1024, but highly expanded versions of AMIGAs can take many, many more elements, to at least 65536. ---------------------------------------------------------------------------- Other AMIGA requirements depending on what you decide to use:- -------------------------------------------------------------- Python Version 1.4.0 minimum, the default:- http://aminet.net/package/dev/lang/Python_14 Other Python versions for various AMIGAs:- ------------------------------------------ Classic expanded and lots of RAM, OS3.0x to OS3.1x: http://aminet.net/package/dev/lang/Python152 http://aminet.net/package/dev/lang/Python16 http://aminet.net/package/dev/lang/Python20 AROS: http://aminet.net/package/dev/lang/pyaros-0.1r3-i386 http://aminet.net/package/dev/lang/python-2.5.2.ppc-aros MorphOS: http://aminet.net/package/dev/lang/Python_2 NOTE, unusable:- ---------------- http://aminet.net/package/dev/gg/python2.4-m68k-amigaos <- No math library. http://aminet.net/package/dev/lang/SlimPython <- Literally stripped down. UNTESTED, not downloaded so untried:- ------------------------------------- http://aminet.net/package/dev/misc/AmigaMicropython ---------------------------------------------------------------------------- General:- --------- Enjoy... Bazza... ---------------------------------------------------------------------------- This archive is issued under the Creative Commons, CC0 Licence. That is:- Public Domain. You may do with it as you please. ---------------------------------------------------------------------------- IMPORTANT:- ----------- The Legal Stuff:- ----------------- This archive is CC0 licenced. The author[s] are not responsible for any damage to, or loss of, or failure of equipment or data caused in any way by the use of this code. There is NO warranty with the use of this software release and YOU USE IT AT YOUR OWN RISK. ---------------------------------------------------------------------------- Testing Evaluation:- -------------------- FS-UAE and Classic AMIGA test conditions were/are running standard OS 3.0.x and using standard ~topaz 8~ fonts throughout. The minimum hardware requirements ARE needed however. I have no idea what strange configuration setups will create so refer to the ~The Legal Stuff~ above. ---------------------------------------------------------------------------- Barry Walker, G0LCU. ---------------------------------------------------------------------------- A very useful HardWare related site, (C) Anthony Hoffman, for modifications, schematics, repairs and the like is:- http://amiga.serveftp.net/ ============================================================================