MathMap 1.2.3
=============

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 in 1.2.3:

  * GtkSourceView for filter editing, with syntax highlighting.
  * Int and float user values now also have spin buttons.
  * Resizable preview.
  * Improved examples.

Changes in 1.2.2:

  * Input images can now have arbitrary dimensions.
  * New "for" loop construct.
  * Basic support (multiplication and magnitude) for three types of
    hypercomplex numbers.
  * Defaults for boolean user values.
  * Parallelization via multithreading.
  * New optimizations in the compiler.
  * New and improved examples.
  * Bugfixes.

Changes in 1.2.1:

  * New "beta" function.
  * New examples.
  * Bugfixes.

Changes in 1.2.0:

  * Updated documentation.
  * Bugfixes.

Changes in 1.1.3:

  * "unit" scaling for filters and images.
  * Edge behaviour for x and y uncoupled.
  * "Reflect" edge behaviour.
  * Tuple length limit removed.
  * New and improved examples.
  * Bugfixes and cosmetics.

Changes in 1.1.2:

  * The command-line tool is optional to remove dependencies on image
    IO libraries.
  * Bison and Flex are not required for compiling the distribution.
  * Should work with GIMP 2.3 as well (untested).
  * A working interpreter.
  * Elliptic Jacobi functions for real and complex arguments.
  * New "ceil" function.
  * New and improved examples.
  * Several bugfixes.

Changes in 1.1.1:

  * A new syntax for declaring filters and user values.
  * Default values for integer and float user values.
  * Functions for elliptic integrals and elliptic Jacobi functions.
  * Better error reporting from the compiler.
  * The interpreter is broken (will be fixed soon).
  * Expressions can be saved from within MathMap.
  * The preview is bigger.
  * Works only with GIMP 2.2.
  * Unified binary for plug-in and command-line tool.

Changes in 1.1.0:

  * Compiler does several optimizations.
  * MathMap can now generate sequence plug-ins for Blender.

Changes in 0.14:

  * 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 in 0.13:

  * 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 in 0.12:

  * 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 in 0.11:

  * 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 in 0.10:

  * 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 in 0.9:

  * 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 in 0.8:

  * 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 in 0.7:

  * 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 in 0.6:

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

Changes in 0.5:

  * 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 in 0.4:

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

Changes in 0.3:

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

Changes in 0.2:

  * 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
