# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [3.9.1] - 2024-09-26

- !112: Add `Contents.m` file
- !110: Fix typos and in `cell2str` and `struct2str`
- !109: Make `objcmp` compatible with OCTAVE
- !107: Allow `objcmp` to treat empty objects
- !108: `cell2str` fix and write help header in `writecell/writestruct_to_mfile`
- !106: bugfixes to vveig.m to avoid returning complex values

## [3.9.0] - 2024-05-08

- !104: Add new MEX-function alternative to `bsp2deval` for regular 2D cubic splines
- !103: Further minor improvements fo `iround.c`
- !102: Comment change to `iround.c`

## [3.8.1] - 2024-02-28

- !101: bugfixes to `src/iround.c` to avoid out-of-bound problems

## [3.8.0] - 2024-02-09

- !99: vveig - add option to normalize eigenmodes such that Mee is the identity matrix

## [3.7.0] - 2024-02-01

- !97: mexargs - update submodule
- !96: Rename `writestruct` function to `writestruct_to_mfile`
- !95: Move writegif to mexc/ folder
- !94: Rename bspsummex to bspsum, remove link

## [3.6.3] - 2023-11-01

- !91: Handle different number of dimensions in objcmp

## [3.6.2] - 2023-09-21

- !89: Performance fix for bspsum in releases R2020a and newer

## [3.6.1] - 2023-06-29

- !87: Update `mexargs` submodule and reference

## [3.6.0] - 2023-06-19

- !85: Introduce `genlib_bool` type for C source files
- !83: bsp2deval - Add support for third order derivative evaluation
- !84: Allow ignoring specific files when checking file headers
- !82: GitLab CI config - remove deprecated `CI_BUILD_*` variables

## [3.5.0] - 2023-04-21

- !80: Optimize algorithms for iround/ifloor/iceil
- !79: Add iceil to iround/ifloor family and add tests

## [3.4.0] - 2023-04-17

- !77: Measure bspsum/greenem parallelization efficiency
- !76: Unify all malloc/calloc/mxMalloc/mxCalloc calls syntax
- !75: Remove use of bool type instead of mxLogical in MEX-files
- !74: Enforce warning-free compilation of MEX-files
- !73: Add build and simple test job for Octave
- !72: In MEX-files initialize pout values with NULL

## [3.3.0] - 2023-02-28

- !70: mexargs - update submodule
- !69: greenem - enable openMP parallelization in greenemmex
- !68: greenemmex - discard extra modes when not enough output arguments are requested
- !67: check_headers - exclude backup folder for deployed toolboxes
- !66: mexargs - bugfix update 
- !65: Add experimental Octave support
- !64: bspsum - Better handling of NPAR argument
- !63: Makefile - use sub-Makefile from mexargs project for MATLAB related variable definitions
- !62: mexargs - check that scalar arguments are also numeric
- !61: Makefile - Hotfix of CLEAN_ONLY logic
- !60: Makefile - Improve handling of openMP options
- !59: objcmp - Treat NaN values as equal in numeric fields, allow ignoring some fields

## [3.2.0] - 2022-11-01

- !57: Add a class to check headers automatically, and add headers.
       Also modify makefile for OSX which no longer needs -isysroot
- !56: bsp2deval - New routine evaluating 2D splines and their derivatives
       pp2bsp - New routine converting functions in pp-form to bsp-format
       bspsum - Move MATLAB code to MEX-file
       Keep only MEX-wrappers in mexc folder
       Add CHANGELOG.md file
- !55: Add new BC mode to `csdec` and add some tests
- !54: Update genlib tests and README.md. Use only class-based tests
- !53: Move MEX checks to new separate project called "mexargs"
- !51: Add classes for test of MEX-file check
- !52: .gitlab-ci.yml - switch to rules from only/except
- !50: .gitlab-ci.yml - use new version of SPC template
- !49: Create and use macros for MEX-file input argument type checking
- !48: objcmp - Add handling of strings

## [3.1.1] - 2022-07-01

- !47: greenemmex - throw error if inputs are not of class double
- !46: introduce objcmp to compare MATLAB objects
- !45: Makefile - Fix order of linking options for OpenMP
- !44: Makefile - Remove need to deinge MATPATH with clean target
- !43: Minor syntax improvements
- !42: Move CI build to new spc-ci machine

## [3.1.0] - 2021-10-14

- !41: Avoid gaps in MATLAB versions for deployments
- !40: Add test results and code coverage reports
- !38: see !35
- !37: see !35
- !36: see !35
- !35: Trying to debug CI config
- !34: Disable automatic parallel pool creation for green3d tests
- !31: Add comparison tests between greenem and ellipke
- !33: Cleanup CI config
- !32: Cleanup SCD-specific section of Makefile

## [3.0.5] - 2021-04-13

- !30: greenem - improve accuracy for close pair of loops
- !29: Speedup green2d5 and add tests for green3d
- !28: iflooriroundmex - throw error if table is empty
- !27: Makefile - fix previous MR
- !26: Makefile - allow clean target without defining MATPATH

## [3.0.4] - 2020-10-06

- !25: structcmp - Better handle fields with integer-class values
- !24: structcmp - Update treatment of function handles
- !22: structcmp - Allow comparison of logical values
- !23: Remove old VMS-related file
- !20: structcmp - updates including multi-dimensional arrays
- !18: structcmp - Use string conversion to compare function handles
- !17: CI config hotfix

## [3.0.3] - 2020-04-28

## [3.0.2] - 2020-04-28

## [3.0.1] - 2020-04-28

## [3.0.0] - 2020-04-28

First release since move to Gitlab.

- !16: Update of CI config for first deployment
- !15: Update writestruct for structure array
- !14: Adapt Makefile for SCD machine
- !12: Add vveig routine for vessel description
- !11: Do not convert integer arrays in struct2single
- !10: Add precision argument in writestruct
- !9: Add MATLAB syntax tests
- !8: Add struct2single
- !7: Update Makefile for MacOS
- !6: Ignore NFS files
- !4: Add tests for versions compiled with different compilers
- !5: Use same Makefile on all machines
- !3: Add switches for compiler and MATLAB version selection
- !1: Initial git setup
- !2: Tests for bspxxx functions
