changeset 14082:97f41a44dd80 stable

update NEWS file
author John W. Eaton <jwe@octave.org>
date Wed, 21 Dec 2011 10:24:11 -0500
parents b69762f7a343
children 8717cc808b20
files NEWS
diffstat 1 files changed, 114 insertions(+), 74 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS
+++ b/NEWS
@@ -3,27 +3,47 @@
 
  ** The PCRE library is now required to build Octave.
 
- ** The following binary elementwise operators and functions now perform
-    Numpy-like broadcasting (a.k.a. binary singleton expansion):
+ ** Many of Octave's binary operators (.*, .^, +, -, ...) now perform
+    automatic broadcasting for array operations that allows you to use
+    operator notation instead of calling bsxfun or expanding arrays (and
+    unnecessarily wasting memory) with repmat or similar idioms.  For
+    example, to scale the columns of a matrix by the elements of a row
+    vector, you may now write
 
-    plus      ldivide   rem    eq    gt     xor
-    minus     power     mod    ne    ge
-    times     max       atan2  lt    and
-    rdivide   min       hypot  le    or
+      rv .* M
+
+    In this expression, the number of elements of rv must match the
+    number of columns of M.  The following operators are affected:
 
-    +         .*        &
-    -         ./        |
-    .+        .\
-    .-        .^
+      plus      +  .+
+      minus     -  .-
+      times     .*
+      rdivide   ./
+      ldivide   .\
+      power     .^  .**
+      lt        <
+      le        <=
+      eq        ==
+      gt        >
+      ge        >=
+      ne        !=  ~=
+      and       &
+      or        |
+      atan2
+      hypot
+      max
+      min
+      mod
+      rem
+      xor
 
-    +=        .*=       &=
-    -=        ./=       |=
-    .+=       .\=
-    .-=       .^=
+    additionally, since the A op= B assginment operators are equivalent
+    to A = A op B, the following operators are also affected:
 
-    This makes the bsxfun function mostly redundant except for
-    user-defined functions.  A new section in the manual has been written
-    to explain and clarify this change.
+      +=  -=  .+=  .-=  .*=  ./=  .\=  .^=  .**=  &=  |=
+
+    See the new "Broadcasting Operations" chapter in the manual for more
+    details.
 
  ** Octave now features a profiler, thanks to the work of Daniel Kraft
     under the Google Summer of Code mentorship program.  The manual has
@@ -52,84 +72,104 @@
 
     They now support nearly all Matlab functionality including:
 
-    * ML-compatible whitespace and delimiter defaults
+      * Matlab-compatible whitespace and delimiter defaults
+
+      * Matlab-compatible options: 'whitespace', treatasempty', format
+        string repeat count, user-specified comment style, uneven-length
+        output arrays, %n and %u conversion specifiers (provisionally)
 
-    * ML-compatible options: 'whitespace', treatasempty',
-    format string repeat count, user-specified comment style, uneven-length
-    output arrays, %n and %u conversion specifiers (provisionally)
+ ** All .m string functions have been modified for better performance or
+    greater Matlab compatibility.  Performance gains of 15X-30X have
+    been demonstrated. Operations on cell array of strings no longer pay
+    quite as high a penalty as those on 2-D character arrays.
 
- ** All .m string functions have been modified for better performance or greater
-    Matlab compatibility.  Performance gains of 15X-30X have been demonstrated.
-    Operations on cell array of strings no longer pay quite as high a penalty
-    as those on 2-D character arrays.
+      deblank:  Now requires character or cellstr input.
+
+      strtrim:  Now requires character or cellstr input.
+                No longer trims nulls ("\0") from string for Matlab
+                compatibility.
 
-    deblank:  Now requires character or cellstr input.
-    strtrim:  Now requires character or cellstr input.
-              No longer trims nulls ("\0") from string for ML compatibility.
-    strmatch: Follows documentation precisely and ignores trailing spaces
-              in pattern and in string.  Note that Matlab documents this 
-              behavior but the implementation does *not* always follow it.
-    substr:   Now possible to specify a negative LEN option which extracts
-              to within LEN of the end of the string.
-    strtok:   Now accepts cellstr input.
-    base2dec, bin2dec, hex2dec: Now accept cellstr inputs.
-    dec2base, dec2bin, dec2hex: Now accept cellstr inputs.
-    index, rindex: Now accept 2-D character array input.
-    strsplit: Now accepts 2-D character array input.
+      strmatch: Follows documentation precisely and ignores trailing spaces
+                in pattern and in string.  Note that this is documented
+                Matlab behavior but the implementation apparently does
+                not always follow it.
+
+      substr:   Now possible to specify a negative LEN option which
+                extracts to within LEN of the end of the string.
+
+      strtok:   Now accepts cellstr input.
+
+      base2dec, bin2dec, hex2dec:
+                Now accept cellstr inputs.
+
+      dec2base, dec2bin, dec2hex:
+                Now accept cellstr inputs.
+
+      index, rindex:
+                Now accept 2-D character array input.
+
+      strsplit: Now accepts 2-D character array input.
 
  ** Geometry functions derived from Qhull (convhull, delaunay, voronoi)
-    have been revamped.  The options passed to the underlying qhull command
-    have been changed for better results or for Matlab compatibility.
+    have been revamped.  The options passed to the underlying qhull
+    command have been changed for better results or for Matlab
+    compatibility.
+
+      convhull: Default options are "Qt" for 2D, 3D, 4D inputs
+                Default options are "Qt Qx" for 5D and higher
+
+      delaunay: Default options are "Qt Qbb Qc Qz" for 2D and 3D inputs
+                Default options are "Qt Qbb Qc Qx" for 4D and higher
 
-    convhull : Default options are "Qt" for 2D, 3D, 4D inputs
-               Default options are "Qt Qx" for 5D and higher
-    delaunay : Default options are "Qt Qbb Qc Qz" for 2D and 3D inputs
-               Default options are "Qt Qbb Qc Qx" for 4D and higher
-    voronoi  : No default arguments
+      voronoi:  No default arguments
+
+ ** Date/Time functions updated.  Millisecond support with FFF format
+    string now supported.
 
- ** Date/Time functions updated.
-    Millisecond support with FFF format string now supported.
+    datestr: Numerical formats 21, 22, 29 changed to match Matlab.
+             Now accepts cellstr inputs.
 
-    datestr : Numerical formats 21, 22, 29 changed to match Matlab.
-              Now accepts cellstr inputs.
+ ** The following warning IDs have been removed:
 
- ** Octave warning IDs updated
-    "associativity-change": removed
-    "complex-cmp-ops"     : removed
-    "empty-list-elements" : removed
-    "fortran-indexing"    : removed
-    "precedence-change"   : removed
-    "string-concat"       : renamed to "mixed-string-concat"
+      Octave:associativity-change
+      Octave:complex-cmp-ops
+      Octave:empty-list-elements
+      Octave:fortran-indexing
+      Octave:precedence-change
+      
+ ** The warning ID Octave:string-concat has been renamed to
+    Octave:mixed-string-concat.
 
- ** Matlab-compatible preference functions added:
+ ** Octave now includes the following Matlab-compatible preference
+    functions:
 
-    addpref  getpref  ispref  rmpref  setpref
+      addpref  getpref  ispref  rmpref  setpref
 
- ** Matlab-compatible handle graphics functions added:
+ ** The following Matlab-compatible handle graphics functions have been
+    added:
 
-    guidata         uipanel        uitoolbar
-    guihandles      uipushtool     uiwait
-    uicontextmenu   uiresume       waitfor
-    uicontrol       uitoggletool
+      guidata         uipanel        uitoolbar
+      guihandles      uipushtool     uiwait
+      uicontextmenu   uiresume       waitfor
+      uicontrol       uitoggletool
 
     The uiXXX functions above are experimental.
 
-    Except for uiwait and uiresume, the uiXXX functions are not supported on
-    the FLTK backend.
+    Except for uiwait and uiresume, the uiXXX functions are not
+    supported with the the FLTK+OpenGL graphics toolkit.
 
-    The gnuplot backend does not support any of the uiXXX functions nor
-    the waitfor function.
+    The gnuplot graphics toolkit does not support any of the uiXXX
+    functions nor the waitfor function.
 
- ** New keyword parfor
-
-    parfor (parallel for loop) is now recognized as a valid keyword.
-    Implementation, however, is still mapped to an ordinary for loop.
+ ** New keyword parfor (parallel for loop) is now recognized as a valid
+    keyword.  Implementation, however, is still mapped to an ordinary
+    for loop.
 
  ** Other new functions added in 3.6.0:
 
-    is_dq_string    nthargout    usejava     
-    is_sq_string    python       waitbar
-    narginchk       recycle      zscore            
+      is_dq_string    nthargout    usejava     
+      is_sq_string    python       waitbar
+      narginchk       recycle      zscore            
     
  ** Deprecated functions.