## Version 6.0 (2023-09-24)
---------------------------

New core features:
- license change: licensing has changed from previously AGPLv3+ to the
  BSD-2-Clause license
- new additional copyright holder: Jens Saak has been added to the list of
  copyright holders
- new system classes: sparse first-order continuous- and discrete-time
  systems, sparse second-order continuous-time systems
- new model reduction methods:
  - Krylov subspace methods are available for all system classes
  - BRBT, BST, BT, HNA, HINFBT, LQGBT and PRBT are available for sparse
    continuous-time systems
  - Two-step model reduction methods are implemented for sparse system
    classes to use classical dense routines on sparse systems
- new dependency: for any sparse model reduction with MORLAB, M-M.E.S.S.
  version 3.0 is needed
- new top level routines: top level routines automatically determine the
  system structure and use the appropriately tailored subroutine for
  the reduction, the user only needs to determine if the model is discrete
  or continuous and which model reduction method should be used
- new data types: systems can be given as MATLAB's `sparss` and `mechss`
  objects
- Unstructured and structured MOR: model reduction for second-order systems
  now produces first-order reduced-order models by default; the parameter
  opts.OutputModel can be used to generate structure-preserving models
- new optional parameters `StoreGramians` and `StoreBases` allow to save
  intermediate quanteties  such as low-rank Gramian factors basis matrices
  and can be given back to the model reduction functions to quickly redo
  computations

Inferface changes:
- naming scheme of functions has been changed: functions that are tailored
  towards sparse or dense systems now denote that in their name, e.g.,
  `ml_ct_dss_bt` is now `ml_ct_d_dss_bt`
- all continuous-time model reduction methods have now an interface for
  second-order systems
- renaming of projection bases matrices from `T` to `V`
- option structs for dual matrix equation solvers have been renamed by
  removing the `dl` in the name standing for dual
- opts.ImproperTrunc does not allow for vectorization anymore
- warning identifiers has been changed:
  - `MORLAB:eqn_solver` is now `MORLAB:noConvergence`
  - `MORLAB:subroutine` is now `MORLAB:noConvergence`

Minor changes:
- in all documentation `INPUT` and `OUTPUT` to denote input and output
  argument sections have been renamed to `INPUTS` and `OUTPUTS`
- the function addpath has been upgraded for faster toolbox installation
- sign function Riccati solvers are now the default in higher level matrix
  equation routines
- the computation of modified frequency-limited Gramians has been corrected
- a bug in `ml_dt_d_ss_partstab` leading to wrong unstable dimensions has
  been fixed
- performance of sign function Lyapunov solvers has been improved by
  removing unneccessary inverses of mass matrices
- an indexing error in vp balancing for second-order systems has been
  corrected
- several documentation strings have been fixed
- `ml_verson` function has been added to give the current MORLAB version
  and publication date
- `ml_citation` function to generate the bibliography text when citing
  MORLAB directly in MATLAB/Octave

Removed functions:
- ml_dss_bfsr
- ml_dss_format_output
- ml_dss_lti2struct
- ml_dss_sr
- ml_soss_bfsr
- ml_soss_format_output
- ml_soss_lti2struct
- ml_soss_sr
- ml_ss_bfsr
- ml_ss_format_output
- ml_ss_lti2struct
- ml_ss_sr

Removed demos:
- morlab_demo_mor_continuous_descriptor
- morlab_demo_mor_continuous_second_order
- morlab_demo_mor_continuous_standard
- morlab_demo_mor_discrete_descriptor
- morlab_demo_mor_discrete_standard
