[Haskell-cafe] ANN: AERN-Real-Double-2011.1

Michal Konečný mikkonecny at googlemail.com
Fri May 13 17:55:45 CEST 2011

Dear all,

I am pleased to announce the first release of 
(a large part of) a newly designed AERN.
AERN (approximating exact real numbers) is a set of 
Haskell libraries providing arbitrary precision interval arithmetic, 
polynomial arithmetic and distributed lazy exact real computation.

Anyone is welcome to join in the development 
of AERN via http://code.google.com/p/aern/ .

This release contains the following features:

* Type classes for rounded arithmetic and rounded interval arithmetic 
  with explicit control of rounding direction 
  and the possibility to increase the rounding precision 
  arbitrarily for types that support it.
  For example, type classes for types with rounded addition,
  multiplication, exponentiation etc.

* Over 150 QuickCheck properties for these type classes, 
  such as associativity of multiplication modulo rounding.

* Interval arithmetic using Double endpoints, rounded 
  outwards or inwards.  Outwards rounding allows to safely 
  approximate exact real arithmetic while a combination 
  of both outwards and inwards rounding allows one 
  to safely approximate exact interval arithmetic. 
  Inverted intervals with Kaucher arithmetic are also supported.
* For most of the type classes there are also in-place
  versions that act in the ST monad on mutable variables
  containing numbers or intervals.  This facilitates
  some explicit memory allocation optimisation, especially
  for data on the C heap.

The best starting point for experimenting with these
features are the demo programs included in the bundle
and the documentation for the AERN-Real-Double


(The HackageDB page does not have Haddock documentation
because AERN fails to build with ghc 7.0.* due to a compiler bug.)

The following features are planned for future releases:

* Interval arithmetic with MPFR arbitrary precision endpoints.

* Polynomial interval arithmetic with an optimised C core

* Distributed exact real and geometric computation with lazy
  query-driven communication.

For those familiar with the old AERN design, the main changes
in the new design are: 

* use of many smaller type classes instead of few large ones

* use of associated types instead of multi-parameter type classes

* a much more systematic approach to representing the numerical
  order on real numbers and the information refinement 
  (ie the inverse set inclusion) order on intervals

* ability to specify different effort indicator types for each
  type of operation and each numerical type instead of Int.
  (For example, Double has () as its effort indicator for almost 
   all operations while MPFR will have Precision 
   as the effort indicator type.)

* a more systematic approach to specifying QuickCheck properties
  and applying them to form test suites

* a unified implementation of interval elementary operations (only sqrt and exp
  at the moment) that is efficient when applied to Double intervals 
  as well as polynomial intervals

* new support for in-place rounded numerical operations

The current development team will be grateful for any feedback and suggestions.

Best regards,
|o| Michal Konecny <mikkonecny at gmail.com>
|o|    http://www-users.aston.ac.uk/~konecnym/
|o|    office: (+42) (0)121 204 3462 
|o| PGP key http://www-users.aston.ac.uk/~konecnym/ki.aston
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110513/c4b15f7e/attachment.pgp>

More information about the Haskell-Cafe mailing list