MathMap 1.0
===========

MathMap is a GIMP plug-in and a standalone command-line tool which
allows distortion of images and animations specified by mathematical
formulae.  For each pixel in the generated image, an expression is
evaluated which should return a pixel value.  The expression can
either refer to a pixel in the source image or can generate pixels
completely independent of the source.  MathMap allows the generation
of still images and of animations.

The MathMap homepage can be found at

    http://www.complang.tuwien.ac.at/schani/mathmap/

It features a user's manual as well as screenshots and examples.

Changes since 0.14:

  * Bug fixes.

Changes since 0.13:

  * Compiles and runs with both GIMP 1.2 and GIMP 2.0.
  * Comes with a Language Tutorial!
  * Lots of new and improved examples.
  * Features a new compiler, which doesn't yet generate better code
    than the old one, but offers a much better platform for future
    improvements.
  * MathMap now automatically uses the compiler and if that doesn't
    work, falls back to the interpreter without user intervention.
  * All functions now use radians instead of degrees (which is The
    Right Thing).
  * Compiles on MacOS X (tested with GIMP 1.2 on Fink).
  * Bug fixes.

Changes since 0.12:

  * The command-line version can now read and write animations in the
    MJPEG Quicktime format.
  * A french translation (thanks to Laurent Despeyroux).
  * Bug fixes.

Changes since 0.11:

  * Requires at least GIMP 1.1.26.
  * MathMap now has a GIMP-independant command line version.
  * Much improved complex arithmetic (thanks to Hans Lundmark).
  * New/improved functions: scale, toRGBA, toHSVA, gamma, sinh, cosh,
    tanh, asinh, acosh, atanh, arg, conj, exp (most of them
    contributed by Hans Lundmark).
  * Some bug fixes.

Changed since 0.10:

  * Requires at least GIMP 1.1.
  * More than one input image can be specified!!!
  * MathMap now registers all examples in the PDB.
  * Several new/improved examples.
  * New/improved functions: lerp, clamp, noise.
  * Some internal changes.
  * Fixes some bugs.

Changes since 0.9:

  * Expressions can now contain values which the user can specify
    through the GUI (numbers, colors, booleans, curves). This is
    a mega-feature!
  * Pixels outside the image can now also be reflected back into
    the image (thanks to Eric Kidd <eric.kidd@pobox.com>).
  * More matrix/vector algebra (including gaussian elimination).
  * The positive Y-axis direction is now upwards which is clearly
    The Right Thing.
  * Some minor C code generator changes which should not affect the
    user but easy writing of built-ins.
  * New/improved functions: print.
  * Some bug fixes.

Changes since 0.8:

  * Lots of bug fixes.
  * Simplified build procedure.
  * The parser is now a little more forgiving.
  * Generalized tuple subscription.
  * Tuple subscripts can now be assigned to (making morph obsolete).
  * New/improved functions: det, crossp, atan, sum.

Changes since 0.7:

  * Now runs under both GIMP 1.0 and GIMP 1.1.
  * Features a transparent MathMap->C compiler under GIMP 1.1 boosting
    performance by a factor 2 to 8.
  * Simple vector and matrix algebra.
  * Pixels outside the image can now be either wrapped or given any
    color (including transparency).

Changes since 0.6

  * Implemented the tagged tuples type system. This is major feature! 
  * Implemented better error handling by borrowing a piece of code
    from the current development tree of chpp.

Changes since 0.5

  * Alpha channel now shows up in the preview (thanks to Andy Thomas). 
  * Added the exponentation operator (^). 

Changes since 0.4

  * Completely redesigned the dialog. 
  * Added a curve widget which allows the user to intuitively specify
    a function which can be accessed from the expression (curve). 
  * Added the function gradient which accesses the user-defined
    gradient.
  * Made it possible to change the parameter t when not animating. 
  * Implemented a fast-preview option. 
  * Put the examples into a file which is displayed in a tree widget. 
  * Expressions are now edited in a text widget, which allows for
    multi-line expressions.
  * Moved the plug-in to Filters/Generic, so as to conform to the new
    menu hierarchy.

Changes since 0.3

  * Added syntactic sugar for some functions (especially logical
    operators).
  * Added a pow function. 
  * Support for alpha layer. 
  * Support for grayscale images. 
  * Animation capability. 

Changes since 0.2

  * if is now a language-level construct. 
  * I have introduced while and do-while loops. 

Changes since 0.1

  * Fixed the bug that caused it to crash after the first preview.
  * Added a few more functions: red, green, blue and rgbColor. 
  * Added the assignment (=) and the sequence operator (;). 

----
Mark Probst
schani@complang.tuwien.ac.at
