view etc/NEWS.10.md @ 33199:297fd823a953

nextpow2.m: Overhaul function for improved accuracy and Matlab compatibility (bug #65441) * nextpow2.m: Clarify documentation. Document return value of special input 0. Add input validation to exclude complex inputs. New algorithm for computing nextpow2 based on 2-output form of log2(). Use cast() to have output class match input class for Matlab compatibility. Add BIST tests. * NEWS.10.md: Announce changes to nextpow2 function.
author Rik <rik@octave.org>
date Tue, 12 Mar 2024 14:27:13 -0700
parents 82ae00b40c2c
children 9f97974976cd
line wrap: on
line source

Summary of important user-visible changes for version 10 (yyyy-mm-dd):
---------------------------------------------------------------------

### General improvements

- Three short form aliases have been added for long form options when starting
`octave`.
  * `-e CODE` for `--eval CODE`
  * `-g` for `--gui`
  * `-G` for `--no-gui`

- Three long form options have been introduced for clarity.
  * `--no-init-user` : Don't read user configuration files ~/.octaverc or
    .octaverc files at startup.
  * `--no-init-site` : Don't read site-wide configuration files at startup.
  * `--no-init-all` : Don't read any configuration files at startup.

- `nchoosek` algorithm is now ~2x faster and provides greater precision.

- `nextpow2` algorithm is now more accurate for inputs very close to a power
of 2.  The output class now matches the input class for Matlab compatibility.
The function no longer accepts complex inputs and will emit an error for these
inputs.

### Graphical User Interface

### Graphics backend

- `polar` plots now include the center tick mark value, typically 0, in
the 'rtick' parameter when the plot is created.  Subsequent modifications
to 'rtick' by the function `rticks` will only include the center tick mark
value if it is specified.

### Matlab compatibility

- `height` and `width` are now aliases for the `rows` and `columns` functions.

- All colormaps now default to a size of 256 colors. (The previous default
size was 64.

- `griddata` output size more consistently matches the input interpolation
points when they are input as vectors.  When they are same-orientation vectors,
the outputs will be the same size as those vectors.  When either is a row
vector and the other is a column vector, the interpolating points are processed
through meshgrid and the output is a matrix the same size as the meshgrid.

- Enable the third output for `unique` with the `stable` sort option.

### Alphabetical list of new functions added in Octave 10

* `clim`
* `rticklabels`
* `tticklabels`

### Deprecated functions, properties, and operators

The following functions and properties have been deprecated in Octave 10
and will be removed from Octave 12 (or whatever version is the second
major release after 10):

- Functions

        Function               | Replacement
        -----------------------|------------------

- Core

        Function                              | Replacement
        --------------------------------------|------------------
        symbol_record_rep::mark_as_variable   | symbol_record_rep::mark_variable
        symbol_record_rep::unmark_as_variable | symbol_record_rep::unmark_variable
        symbol_record::mark_as_variable       | symbol_record::mark_variable
        symbol_record::unmark_as_variable     | symbol_record::unmark_variable
        interpreter::verbose                  | interpreter::init_trace
        cmdline_options::verbose              | cmdline_options::init_trace

  - A new method `rwdata ()` provides direct read/write access (a pointer) to the
data in a liboctave `Array` object (or its derived classes such as `Matrix`).
Historically, the method `fortran_vec ()` provided this access, but the name
is unclear, and it is recommended to use `rwdata ()` in any new code.  There
are no plans to deprecate `fortran_vec`.

  - The `--verbose`,`-V` command-line option has been deprecated.  Use
`--init-trace` to print the configuration files executed during initialization.

The following features were deprecated in Octave 8 and have been removed
from Octave 10.

- Functions

        Function               | Replacement
        -----------------------|------------------
        shift                  | circshift
        sparse_auto_mutate     | none (see below)

### Build system

- Octave now requires a C++ compiler that is compliant with C++17 (preferably
with GNU extensions).


Summary of bugs fixed for version 10.1.0 (yyyy-mm-dd):
----------------------------------------------------

### Old release news

- [Octave 9.x](etc/NEWS.9.md)
- [Octave 8.x](etc/NEWS.8.md)
- [Octave 7.x](etc/NEWS.7.md)
- [Octave 6.x](etc/NEWS.6.md)
- [Octave 5.x](etc/NEWS.5.md)
- [Octave 4.x](etc/NEWS.4)
- [Octave 3.x](etc/NEWS.3)
- [Octave 2.x](etc/NEWS.2)
- [Octave 1.x](etc/NEWS.1)