Short:        1D, 2D, Cosine Transforms and Inverse.
Author:       wisecracker.bazza@gmail.com (Barry_Walker, G0LCU)
Uploader:     wisecracker bazza gmail com (Lincs Amiga Group, LAG)
Type:         dev/src
Version:      0.10.10
Architecture: m68k-amigaos; generic
Distribution: Aminet

=============================================================================

Architectures: Classic AMIGA A1200(HD), FS-UAE on OSX 10.15.x and Mint 22.3.
----------------------------------------------------------------------------

  MINIMUM Requirements Are:-
  --------------------------

  Amiga environment:-
  -------------------
    Classic STOCK AMIGA A1200(HD), default OS3.0x install.
    FS-UAE on Intel APPLE OSX 10.15.x and GNU/Linux Mint Cinnamon 22.3.
    Standard default AMIGA OS_3.0.x install, or better still a highly
    expanded AMIGA with extra RAM will speed things up considerably.
    Python Version 1.4.0 on Classic AMIGA A1200(HD) OS3.0x:-

               https://aminet.net/package/dev/lang/Python_14

    This version that requires no extra hardware at all:-
                           'python_020_ieee'

    Python Version 1.5.2 to 2.0.1 on '030+ highly expanded AMIGAs OS3.0x.
    AmigaMicropython340 on Classic AMIGA A1200(HD) OS3.0x.

            https://aminet.net/package/dev/misc/AmigaMicropython

    Also as a matter of interest these Python scripts also work inside the
    excellent ADE, the *NIX emulation, but the STOCK AMIGA A1200(HD) needs
    at least an extra 4MB of FastRAM to do so:-

                   https://aminet.net/package/dev/gcc/ADE

-----------------------------------------------------------------------------

  Other environments:-
  --------------------
    Any Python version from 2.x.x to 3.15.0b3 on Intel APPLE OSX 10.15.7.
    Any Python Version from 1.3.0 to 3.12.x on GNU/LINUX MINT CINNAMON 22.3.

    It has NOT been tested on WinUAE emulation of the above, Windows, and
    WSL[-2], with a Python Version installed.
    It has NOT been tested on any 'M' series APPLE gear either.

    It would be nice to know if they do work, along with a snapshot of the
    FCT_LEE.py version running, along with the Python Version running it and
    sent to my email addy above...

    TIA...

=============================================================================

  History:-
  ---------

  09-08-2026.
  -----------
  Version 0.10.10. This is probably going to be the final upload.
                   Added a 1D DCT-II to 2D Cosine Transform, no Inverse.
                   Also more images to show that it works. Again technically
                   JPEG compatible using "scipy's" "norm='ortho'" method.
                   ----------------------------------------------------------
                   Also a _Gemini_AI_ created, highly modified for backwards
                   compatibility, FCT_LEE_1D_2D Cosine Transform that 
                   _Gemini_ says CANNOT be done over the huge Python Versions
                   spread, see the pictures, and read the code for more 
                   information! Well, this is the result; and the fact that
                   humans are not only able to Literally think, AI thinking,
                   BUT, Laterally and Orthogonally also! One up for humans!
                   (Red rag to a bull to me! <wink>)
                   ----------------------------------------------------------
                   Added a 'C_Bonus' drawer inside the 'DCT_IDCT_Scripts'
                   drawer with a minimal DCT-II.c C source and other bits.

                   I am thinking of Wavelet Transforms next, although there
                   is a minimal basic Haar Wavelet Transform of mine here:-

                   https://aminet.net/package/dev/src/DFT_IDFT_DWT_FFT

  25-07-2026.
  -----------
  Version 0.10.00. Added a 2 Dimension Cosine Transform and its Inverse.
                   Also images to show they work. They are technically JPEG
                   compatible using "scipy's" "norm='ortho'" method.
                   This is VERY naive and has 4 nested 'for' loops in the
                   Transform and 4 nested 'for' loops in its Inverse, so
                   don't expect lightning speed...
                   (Total 526 DLs on 09-08-2026, UK BST.)

  10-07-2026.
  -----------
  Version 0.01.00. This version now includes, Byeong Gi Lee's, RADIX-2, Fast
                   Cosine Transform. Again, naive, unnormalised, and
                   conforming to scipy's default of, 'type=2'; "norm=None",
                   or, "norm='backward'".
                   (Added Intel APPLE pics of Python Version 3.15.0b3
                   running these first two uploads.)
                   (Total 346 DLs on 25-07-2026, UK BST.)

  25-06-2026.
  -----------
  Version 0.00.10. Taster upload to see if people are interested.
                   The archive is (C)2026, Barry Walker, and issued as PD,
                   Creative Commons CC0 licence.
                   (132 DLs on 10-07-2026, UK BST.)

=============================================================================

  General:-
  ---------

(Apologies for any typos, etc...)

The Discrete Cosine Transform is probably one of the most important
algorithms developed in modern history.
See the 'The_Cosine_Transform.txt' for more information.

As is normal for me nowadays I post code recipes that work on ancient
versions of current languages that the AMIGA has in the AMINET archive.
In this case Python 1.4.0 for an absolutely STOCK AMIGA A1200(HD).
These recipes are designed to work on _ALL_ platforms and Python Versions
from at least, (1.3.0)-1.4.0 to 3.13.x without ANY modification at all.
Now tested on Intel, APPLE OSX 10.15.7, Python Version 3.15.0b3, as of
25-07-2026, see photos.

-----------------------------------------------------------------------------
 
In ALL of the images you will notice that the floating point
resolution/precision has increased from very early to later and current
versions of Python.

-----------------------------------------------------------------------------

  !!! REMEMBER !!!
  ----------------

The Classic AMIGA does not have the luxuries of the current, (as of the
above date), Python Version 3.15.0b3 and its massive (C)2026_Pytho[-]System,
so these recipes might help towards using what we have and inspiring others
to add to them. They can be anything, not just mathematics.
(Also 'numpy' arrays are not like Python 'list' type arrays, so be aware!)
The difficulty is learning and memorising _ALL_ of the differences between
Python Versions, 1.3.0 to 3.15.0b3; there are a great many, believe me!

(Creating workarounds has become second nature to me nowadays.)

This also applies to other languages in the AMINET ecosystem.

And finally, it's better to have something for a retro-computer that does
NOT have that facility, TO have it, than TO NOT have it at all, no matter
how fast the code may or may not be in use!

=============================================================================

                                IMPORTANT:-
                                -----------

    The Legal Stuff:-
    -----------------

    The authors 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:-
    --------------------

    Classic STOCK AMIGA A1200(HD). 
    FS-UAE emulation of Classic AMIGA test conditions were/are running
    standard OS 3.0.x and using standard ~topaz 8~ fonts throughout.

    I have no idea what strange configuration setups will create so refer
    to the ~The Legal Stuff~ above.

    The whole archive was centred around the AMIGA!
    APPLE OSX 10.15.x and MY Linux flavour were included to make the code as
    universal as possible without any modification at all.

=============================================================================

    Barry Walker, G0LCU.
    wisecracker.bazza@gmail.com

-----------------------------------------------------------------------------

    A place to visit, literally and URL wise:-
                    https://lincsamiga.org.uk/wordpress/

-----------------------------------------------------------------------------

    A very useful HardWare related site, (C) Anthony Hoffman, for
    modifications, schematics, repairs and the like is:-

                          http://amiga.serveftp.net/

=============================================================================

