\input texinfo
@setfilename NEWS
@settitle NEWS file
@documentencoding UTF-8

@c This is part of the GNU Octave Interval Package.
@c Copyright 2015-2016 Oliver Heimlich.
@c See the file COPYING for copying conditions.

@macro release{version, date}
@heading Version \version\ \date\
@end macro

@center GNU Octave Interval Package
@center Summary of important user-visible changes

@release{1.4.1, 2016-02-13}
@itemize
@item
    Fixed a compile error for 32-bit systems during package installation (bug #47100)
@end itemize

@release{1.4.0, 2016-02-09}
@itemize
@item mpower: Improved accuracy and speed.  The interval matrix square can now be computed without dependency errors and with tightest accuracy.
@item factorial: New interval arithmetic operation
@item expm, norm: New interval matrix operations
@item The functions recip and sqr have been deprecated and will be removed in a future release.  Please use @code{1 ./ @var{x}} and @code{@var{x} .^ 2} instead.
@end itemize

@noindent Bugfixes
@itemize
@item bitunpack, interval_bitpack: The order of inf/sup/dec parts has been fixed.  The function documentation describes how the functions behave on little-endian and big-endian systems.
@end itemize

@release{1.3.0, 2015-12-22}
@itemize
@item postpad, prepad, subsasgn: Implicit new elements during subscript assignment and padding have been initialized with empty intervals before this release.  This behavior has changed.  Now, the implicit new element are initialized with zero to make a correct interval extension of the corresponding built-in function.
@item fsolve: New function to solve (systems of) equations and compute the inverse of a set under a function
@item ctc_intersect, ctc_union: Utility functions for contractors and the fsolve function
@item det, prod, recip: New interval arithmetic functions
@item diag: New utility function to create diagonal matrices or extract vectors from diagonals of matrices
@item decorationpart: Choose between different return types with a second parameter
@item For several functions it is now possible to broadcast row vectors against column vectors or vectors against matrices.
@item The user manual has been restructured for better accessibility by new users.  A bunch of usage examples demonstrates the package's capabilities.
@end itemize

@noindent Bugfixes
@itemize
@item sum, sumabs, sumsq: Fixed result for matrices of size zero
@item powrev1, powrev2: Fixed indexing for vectors
@end itemize

@release{1.2.0, 2015-10-01}
@itemize
@item
    The output format for intervals has been changed.  The number of decimal places now respects what has been set by the user with the @command{format short} or @command{format long} command, and is much shorter by default.  Also it is possible to use @command{format hex}.  The old format can be accessed with the @command{intervaltotext} function.
@item
    fminsearch: New optimizer function for finding the minimum value of a function over interval constraints using the Skelboe-Moore algorithm
@item
    fzero: Changed function parameters to support optimset options
@item
    power: Improved speed of the general interval power function and monomials with the notation x .^ n
@item
    plot, plot3: Added support for colormaps
@end itemize

@noindent Bugfixes
@itemize
@item mldivide: Fixed algorithm to handle more matrices without error
@item bisect: Fixed an error during bisection of singleton intervals (thanks to Helmut for finding this during OctConf 2015)
@end itemize


@release{1.1.0, 2015-08-03}
@itemize
@item
    meshgrid, mince: New utility functions to help plotting of interval functions
@item
    linspace: New interval arithmetic function
@item
    intersect, max, min, union: Allow evaluation as aggregate functions within an interval matrix along a common dimension
@item
    Improvements to the documentation
    @itemize
    @item
        Added cross-references between package documentation and function reference
    @item
        Extended information about interval arithmetic in general
    @item
        Extended information about implemented IEEE Std 1788-2015 functions and fixed references to the standard document
    @item
        Added information about plotting intervals
    @item
        Simplified package description
    @item
        Graphics with higher resolutions, demo of interval sombrero function plot on first page, and minor style fixes
    @end itemize
@end itemize

@noindent Bugfixes
@itemize
@item plot3: Fixed plotting of interval edges when plotting several intervals at once using matrices
@end itemize

@release{1.0.0, 2015-06-13}
@itemize
@item
    IEEE Std 1788-2015, IEEE standard for interval arithmetic, was approved on June 11.  To mark the occasion, the major version number has been raised.
@item
    All interval constructors have been extended to create interval matrices from a single string.  Commas or spaces may be used as a column separator (consecutive separators are trimmed).  Semicolon and new line characters can be used as a row separator.
@item
    hdist, idist, sdist, smig: New interval numeric functions
@item
    User manual: Relicensed under GPL, added examples from the former Octave SIMP package, and various minor improvements.
@end itemize

@noindent Bugfixes
@itemize
@item mtimes: Fixed matrix-vector multiplication of decorated intervals
@item Fixed a linking error in mkoctfile that could prevent package installation (bug #45280)
@end itemize

@release{0.2.1, 2015-05-30}
@itemize
@item
    plot, plot3: New interval plotting functions.    
    Pay attention to the included examples, which can be executed with @code{demo @@infsup/plot} and @code{demo @@infsup/plot3} respectively.
@item
    polyval: New interval arithmetic algorithm
@item
    bisect: New set operation for bisecting algorithms
@item
    sinrev, cosrev, tanrev, atan2rev1, atan2rev2: Now allow non-scalar arguments
@item
    Simplified licensing: Relicensed parts of the software that were not under GPL
@item
    Updated information for citation of the package
@end itemize

@noindent Bugfixes
@itemize
@item Fixed generation of the manual in PDF format
@item subsasgn: Fixed cases where decoration could be lost (bug #42735)
@end itemize

@release{0.2.0, 2015-05-03}
@itemize
@item
    User manual included in the package, see doc/manual.texinfo
@item
    New utility functions: cat, postpad, prepad, reshape, resize
@item
    and, or: Removed deprecated functions
@item
    Improved display output for cell arrays and new function: disp
@item
    Minor performance improvements (all decorated interval functions, horzcat, vertcat)
@end itemize

@noindent Bugfixes
@itemize
@item issquare, isrow, iscolumn: Fixed compatibility issues with GNU Octave 4.0
@item cbrt: Allow negative values as parameter
@item cot: Fixed accuracy for x = 0
@item cos, csc, sec, sin: Fixed correctness in certain cases
@item Prevent multibyte characters in Microsoft Windows console
@end itemize

@release{0.1.5, 2015-04-06}
@itemize
@item
    Implicit decoration of bare intervals triggers a warning now and can be allowed or forbidden by the user.  Implicit decoration of bare interval literals is not affected.
@item
    newdec: New operation for explicit promotion of bare intervals into decorated intervals (without warning).
@item
    Decorated interval literals with illegal decoration are no longer allowed and produce NaIs.
@item
    hull: In contrast to the union function, the interval constructor is no longer considered a set operation and can create intervals with a non-trivial decoration.
@item
    setdiff, setxor: New set operations
@item
    intersect, union: Renamed set operations; the old function names (and, or) are hereby deprecated and are going to be removed in the next release.
@item
    intervaltotext, intervaltoexact: Decimal fractions no longer omit zero before the point, and unnecessary trailing decimal places can be omitted more consistently and in more cases than before (also affects console
    output).  Improved accuracy and performance with support for interval matrices.
@end itemize

@noindent Bugfixes
@itemize
@item
    mtimes, mldivide: Support for broadcasting of scalar parameters
@item
    nextout: Support for decorated intervals
@item
    An error in GNU Octave core, which could lead to lost or wrong interval decorations, no longer affects decorated intervals (bug #42735)
@item
    Some errors in the function documentation have been fixed (thanks to doctest-for-matlab and Colin's texinfo compatibility patches)
@item
    Fixed interval field access on Windows
@end itemize

@release{0.1.4, 2015-03-15}
@itemize
@item
    New interval constructors: hull, midrad
@item
    New interval arithmetic functions: cbrt, cot, coth, csc, csch, dilog, ei,
    erf, erfc, gamma, gammaln, psi, rsqrt, sec, sech
@item
    mtimes: Support for fast, less accurate evaluation using BLAS routines
@item
    mldivide, mrdivide, inv: Improved performance by using faster mtimes
@item
    infsup, infsupdec: Enabled broadcasting of scalar boundaries
@item
    rad: May compute mid and rad simultaneously
@item
    subsref: Access to interval properties using field syntax: x.inf and x.sup
@end itemize

@release{0.1.3, 2015-02-24}
@itemize
@item
    Fixed a compile error that could possibly occur during package installation
@end itemize

@release{0.1.2, 2015-02-22}
@itemize
@item
    New interval arithmetic functions: nthroot, hypot, log1p, expm1
@item
    lu: New operation for LU(P) decomposition of interval matrices
@item
    nai: New decorated interval constant
@item
    mldivide, mrdivide, inv: Greatly improved accuracy and performance of the linear solver
@item
    Improved accuracy of vector sums, dot products, pownrev, and powrev2
@item
    powrev1, powrev2, pownrev, mulrev: Now allow non-scalar arguments
@item
    overlap: Renamed one overlapping state from equal to equals
@item
    mulrevtopair: No longer available, use mulrev with two output parameters for two-output division
@item
    setdec: No longer available, use infsupdec instead
@item
    Small performance improvements
@end itemize

@noindent Bugfixes
@itemize
@item
    Compatibility with GNU Octave 4.0 (bug #43925)
@item
    Build problems during package installation with environment variables
@item
    iscommoninterval: The decorated variant must return true for common intervals without com decoration
@item
    eq: The decorated variant must not consider the decoration value
@item
    Several decorated functions: When evaluated on a subset of the function's domain, the result's decoration must be dac if the function's restriction to that subset is continuous
@item
    Decorated boolean functions: Must return false when evaluated on NaI input
@item
    Interval constructors: A PossibleUndefined warning must be issued if an interval is created from two very close decimal numbers (which can not be separated in the floating-point context) where the lower boundary is greater than the upper boundary when compared with infinite precision
@item
    Interval constructors: NaNs must produce empty intervals
@item
    Decorated interval constructor: Illegal decorations for empty intervals must be adjusted to trv, and illegal decoration com for unbounded intervals must be adjusted to dac.
@item
    cancelminus/cancelplus: The functions returned wrong results if the interval widths could not be compared in double-precision
@item
    cos: Accuracy for x = [0] improved
@item
    pow, powrev1, powrev2: The function must be defined for x = 0 and y > 0
@item
    All reverse operations: Must return a trivial decoration information at best (the only exception is mulrev)
@end itemize

@release{0.1.1, 2015-02-01}
@itemize
@item
    Increased speed of computation for large matrices
@item
    Improved performance for fma and dot
@item
    mpfr_vector_dot_d: Changed syntax for faster computation on intervals
@item
    Decorated versions of mtimes, mldivide, mpower, inv and reduction operations sum, dot, subabs, subsquare
@item
    Renamed function sumsquare to sumsq in accordance with GNU Octave function names
@item
    New function: fzero for finding all roots of an interval arithmetic function
@end itemize

@noindent Bugfixes
@itemize
@item
    nextout: Function returned wrong results
@item
    exacttointerval: Now produces bare intervals instead of decorated intervals in conformance with IEEE P1788
@item
    atanh: Function returned wrong results for ±1
@item
    dot: Function returned wrong results for some inputs
@item
    fma: Function returned wrong results for some inputs
@item
    infsup: Function returned wrong interval boundaries for decimal numbers, function failed on mixed numerical and string boundaries in single cell array parameter
@item
    mulrevtopair: Fixed order of operands in conformance with IEEE P1788 and wrong results when evaluated on intervals that contain zero
@end itemize

@release{0.1.0, 2015-01-21}
@itemize
@item
    Initial release version, which already contains all required operations of the preliminary standard document IEEE P1788.
@end itemize

@bye
