Skip to content

Commit

Permalink
Stage the version 4.1.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Dawson authored and ajdawson committed Aug 22, 2016
1 parent 49ee814 commit feaeca9
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 16 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4.1.dev0
4.1.0
64 changes: 49 additions & 15 deletions doc/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,35 @@
Changelog
=========


v4.1.x
------

:Release: v4.1.0
:Date: 22 August 2016

Adds an IEEE 754 compliant rounding scheme and new functionality for explicit
handling of literal floating-point values.

* Features

* A new (currently opt-in) IEEE 754 compliant rounding mode, activated by
setting the module variable ``RPE_IEEE_ROUNDING = .true.``. This option is
provided to help manage a transition to IEEE 754 compliant rounding in a
future release. Eventually this option will be removed and IEEE 754
compliant rounding will become the default and only rounding mode.

* A new helper function ``rpe_literal`` is provided to help write correct
reduced-precision code that contains numeric literals.

* Deprecations

* The current rounding mode (round to nearest) is deprecated. Future releases
will use the IEEE 754 compliant rounding mode. Users should set
``RPE_IEEE_ROUNDING = .true.`` to get the new rounding behaviour. We
recommend the IEEE 754 rounding mode to ensure best results.


v4.0.x
------

Expand All @@ -17,10 +46,11 @@ portable and reliable.

* Incompatibilities: This release is not compatible with version 3 or below.

* Removed the `rpe_shadow` derived type.
* Removed abstract base class `rpe_type`, the only user type is now `rpe_var`.
* Removed getter and setter methods, the value of an `rpe_var` instance is now
accessed directly using the `%val` attribute.
* Removed the ``rpe_shadow`` derived type.
* Removed abstract base class ``rpe_type``, the only user type is now
``rpe_var``.
* Removed getter and setter methods, the value of an ``rpe_var`` instance is
now accessed directly using the ``%val`` attribute.


v3.1.x
Expand All @@ -34,7 +64,8 @@ v3.1.x
:Release: v3.1.0
:Date: 16 October 2015

* Support for IEEE half-precision emulation via the `RPE_IEEE_HALF` module variable.
* Support for IEEE half-precision emulation via the ``RPE_IEEE_HALF`` module
variable.


v3.0.x
Expand All @@ -52,22 +83,25 @@ v3.0.x

* Support for different precision levels in different variables:

* You can set the `%sbits` attribute of any `rpe_type` instance to define
the number of significand bits used by that variable.
* You can set the ``%sbits`` attribute of any ``rpe_type`` instance to
define the number of significand bits used by that variable.

* A set of unit tests is included to help us ensure the emulator core is robust.
* A set of unit tests is included to help us ensure the emulator core is
robust.

* HTML documentation is included with the source (requires Sphinx to build).

* Incompatibilities

* This version is incompatible with the v2.0.x series.

* The public API is now smaller, including only the required parts of the library.
* The public API is now smaller, including only the required parts of the
library.

* Module variables renamed: `RPE_BITS` -> `RPE_DEFAULT_SBITS`
* Module variables renamed: ``RPE_BITS`` -> ``RPE_DEFAULT_SBITS``

* Reduction of precision subroutine renamed: `reduce_precision` -> `apply_truncation`
* Reduction of precision subroutine renamed:
``reduce_precision`` -> ``apply_truncation``

* Internal differences to support mixed precision may cause different
results to previous versions.
Expand All @@ -88,14 +122,14 @@ v2.0.x

* Reduce precision on assignment:

* The precision of the value held within an `rpe_type` instance is reduced
whenever a value is assigned, meaning an `rpe_var` instance cannot ever
store a full precision value, and an `rpe_shadow` type will always store
* The precision of the value held within an ``rpe_type`` instance is reduced
whenever a value is assigned, meaning an ``rpe_var`` instance cannot ever
store a full precision value, and an ``rpe_shadow`` type will always store
a reduced precision value when it has been assigned to directly (but one
can of course assign a full precision value to the variable it is
shadowing and have that value retained).

* Explicit calls to `reduce_precision` are no longer required in any
* Explicit calls to ``reduce_precision`` are no longer required in any
overloaded operators or intrinsic routines, as the reduction of precision
will be performed implicitly on assignment of the result.

Expand Down
Binary file added doc/distribution/rpe-4.1.0.tar.gz
Binary file not shown.
1 change: 1 addition & 0 deletions doc/downloads.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Source code downloads for released versions, see the :doc:`changelog` for detail
============================================================= ==================== ================
Filename Summary Released
============================================================= ==================== ================
:download:`rpe-4.1.0.tar.gz </distribution/rpe-4.1.0.tar.gz>` version 4.1.0 source 22 Aug 2016
:download:`rpe-4.0.0.tar.gz </distribution/rpe-4.0.0.tar.gz>` version 4.0.0 source 05 Jan 2016
:download:`rpe-3.1.1.tar.gz </distribution/rpe-3.1.1.tar.gz>` version 3.1.1 source 04 Nov 2015
:download:`rpe-3.0.1.tar.gz </distribution/rpe-3.0.1.tar.gz>` version 3.0.1 source 04 Nov 2015
Expand Down

0 comments on commit feaeca9

Please sign in to comment.