o--------------------o
| SELDONDATA HISTORY |
o--------------------o

# Version 1.8 (2022-09-22)
-------------

- Added new methods to write output data in the NetCDF format.


Version 1.7.2 (2019-08-02)
-------------

** Improvements:
- Functions are corrected for compatibility to C++11 (Alban Farchi)


Version 1.7.1 (2018-04-10)
-------------

** Improvements:
- Fixed a bug: InitData is temporally unused because of a conflict with Resize
  function.
- Improved 'Data' initialization from pointers.
- Added to 'Data' NaN initialization of data for debugging.

Version 1.7 (2016-08-22)
-------------

** TODO


Version 1.6.5 (2015-04-20)
-------------

** Improvements:

- Better split header files and source files, and added "SeldonDataHeader.hxx".
- Added 'Data::GetArray()'.
- The macros 'TRY' and 'END' are not redefined anymore if they already exist.
- Improved SWIG wrapper compilation.


Version 1.6.4 (2010-04-27)
-------------


Version 1.6.3 (2009-11-09)
-------------

** Improvements:

- Added methods to the class 'FormatNetCDF':
   + 'FormatNetCDF::ReadDimension' which returns the length of a given
     dimension.
   + 'FormatNetCDF::ReadAttribute' which reads an attribute of a NetCDF file.

** Bug fix:

- The copy constructor of 'Data' could not operate on a 'Data' instance with
  uninitialized grids.


Version 1.6.2 (2008-11-13)
-------------

** Bug fix:

- 'RegularGrid::Value' used the index along dimension 7 instead of the index
  along dimension 5.


Version 1.6.1 (2008-05-08)
-------------

** Bug fix:

- There were memory leaks in 'FormatGrib::Read'.


Version 1.6 (2007-10-09)
-----------

** Improvements:

- Changed the library used to decode GRIB files. Switched to WGRIB to improve
  portability.
- Added a function to interpolate the value of a Data at a given point.
- Added methods 'Data::Sum(Ts& sum)', 'Data::Mean(Ts& mean)',
  'Data::Variance(Ts& var)' and 'Data::StandardDeviation(Ts& std)'.

** Bug fixes:

- 'FormatBinary::ReadSteps' may silently fail while reading a very large file.


Version 1.5.1 (2007-04-24)
-----------

** Improvements:

- Improved error messages when the end of a binary file is reached: the name
  of the file is now given.
- Added methods 'FormatBinary::Read(ExtStream&, ...)'.


Version 1.5 (2006-09-29)
-----------

** Improvements:

- Improved management of 'Data'.
   + Added 'Data::operator()()' which does the same as 'Data::GetArray()'.
   + Added 'Data::ReferenceCopy' and changed 'Data::Copy' so that it performs a
     full copy (duplication) instead of a reference copy.
- 'RegularGrid::operator=' and 'GeneralGrid::operator=' now resize the target
  grid.
- Changing grid main variable is now disabled unless
  'SELDONDATA_ALLOW_VARIABLE_CHANGE' is set.

** Bug fixes:

- In 'Data::Copy', grids of current Data instance were deleted, even if they
  were shared with other Data instances.
- Fixed a bug in the detection of the end of a file.
- Fixed a bug in 'Bias_interpolation'.

** Other changes:

- Modified the code so that it should be compliant with g++ 3.4 requirements.


Version 1.4 (2004-10-02)
-----------

** Improvements:

- Added:
   + Data::Data(T*, const TinyVector<int, N>&, preexistingMemoryPolicy)
   + Data::Data(TinyVector)
   + Data::Resize(TinyVector)
   + Data::ResizeGrid(int, int, ...)
   + Data::SwitchDimensions(TinyVector<int, N> NewDim, Grid<TG>&, ...)
   + Data::Fill()
   + Data::ThresholdMin
   + Data::ThresholdMax
   + Data::Apply(Data& D, F& function)
   + Data::PrintInfo
   + Data::InfoString
- 'Data::Threshold' now takes two arguments (the minimum and the maximum).
- Added a const access operator to 'Data'.
- Added 'FormatFormattedText'.
- Added:
   + FormatBinary::Append
   + FormatBinary::ReadSteps
   + FormatBinary::ReadRecord
   + FormatGrib::Read(string FileName, int variable, Array<TA, N>& A)
- 'FormatGrib' is not template anymore.
- Strongly improved 'FormatGrib' efficiency for large Grib files.
- Added within SeldonData the C code to read Grib files.
- 'END' also catches C++ exceptions, strings and it returns 1.
- All debug flags now start with 'SELDONDATA_DEBUG_'.
- Added debug level flags 'SELDONDATA_DEBUG_LEVEL_x' where x ranges
  from 0 to 4.
- Added:
   + RegularGrid::Apply(F& function)
   + RegularGrid::Apply(RegularGrid<T0>&, F& function)
   + GeneralGrid::Apply(F& function)
   + GeneralGrid::Apply(GeneralGrid<T0, n>&, F& function)
- Added:
   + LinearInterpolationOneGeneralGetCoeffs
   + LinearInterpolationOneGeneralCompute

** Bug fixes:

- In 'FormatBinary', the size of the binary file could be badly checked.
- Memory leak was found in FormatBinary, FormatText and FormatNetCDF.
- Fixed harmless bugs in interpolation functions, FormatText::Read and
  FormatText::Write that led to access to uninitialized values.

** Other changes:

- SeldonData now includes the C++ library Talos.


Version 1.3 (2004-02-26)
-----------

** Improvements:

- Added methods:
   + Data::Data(int, ...)
   + Data::Resize(int, ...)
   + Data::ResizeGrid()
   + Data::Apply(T (function)(const T&))
   + Data::RelativeRMS_interpolation()
   + Data::RelativeRMS()
- Added functions:
   + LinearInterpolationUniformToGeneral
   + LinearInterpolationRegularToGeneral
   + LinearInterpolationDimension

** Bug fixes:


Version 1.2 (2003-10-02)
-----------

** Improvements:

- Added methods:
   + Data::ReverseData(int)
   + Data::Add()
   + Data::Mlt()
   + to_num(string)
   + to_num(string, T&)
- Added 'FormatGrib' to read Grib files.
- Added 'FormatNetCDF' to read variables in netCDF files.
- Renamed 'LinearInterpolation' into 'LinearInterpolationRegular'.

** Bug fixes:

- For grids, 'operator=' didn't return '*this'.
- 'FormatBinary::Write([...], ofstream& FileStream)' was previously defined as 'FormatBinary::Write([...], ofstream FileStream)' and therefore did not compile.
- 'LinearInterpolationOneGeneral' computations may not be correct if the input-data grid (of the specified dimension) was not regular.

** Other changes:

- Removed function 'LinearInterpolationGeneral'.


Version 1.1 (2003-05-11)
-----------

** Improvements:

- Added methods:
   + Data::Resize(...)
   + Data::operator() (Array<int, 1>&)
   + Array<int, 1> Data::GetMaxIndex()
   + Array<int, 1> Data::GetMinIndex()
   + Array<int, 1> Data::GetMaxAbsIndex()
   + Data::GetSignedMaxAbs()
- 'Function_Base' returned-type is now a template parameter.

** Bug fixes:

- Default and copy constructors of 'Data'.
- 'Data::~Data'.
- 'ChangeCoordsInPlace'.


Version 1.0 (2003-03-12)
-----------

** Improvements:

- Added several methods to 'Data': 'Sum', 'Mean', 'Variance', 'StandardDeviation', 'Norm1', 'Norm2' and 'Norm'.
- Added method 'Data::Fill'.
- Added several methods to 'Data': 'Correlation', 'Bias', 'RMS', 'NGE' and 'ErrorLessThan'.
- Added default and copy constructors for 'Data'.
- Improved class 'FormatChimere::Read'.
- Added several methods to 'Data': 'GetMax', 'GetMin', 'GetMaxAbs', and 'const T* GetData() const'.
- Added function 'LinearInterpolationOneGeneral'.
- Added reference-counting for grids used within 'Data' class.
- Added 'Grid::Copy'.

** Bug fixes:

- Memory management for 'Grid'.


Version 0.9 (2003-02-28)
-----------


Version 0.8 (2003-02-23)
-----------
