Skip to content

5.0.0

Compare
Choose a tag to compare
@kabasset kabasset released this 10 Feb 18:51
· 391 commits to develop since this release

5.0.0

Bug fixes

  • Function shapeSize() was wrong for N = 0
  • Method readSize() of ImageHdu and ImageRaster was wrong for N != 2
  • BintableColumns::initSeq() was ill-formed for non-tuple sequences
  • Fixed BintableColumns::readSegmentSeq() with unresolved bound (-1)

Breaking changes

  • Updated to Elements 6.0.1
  • Raster<T, N> becomes Raster<T, N, TContainer> to work with any contiguous container
    (with PtrRaster<T, N> = Raster<T, N, T*> and VecRaster<T, N> = Raster<T, N, vector<T>>)
  • ColumnInfo<T> becomes ColumnInfo<T, N> and variable repeatCount becomes method repeatCount()
    to support multidimensional entries
  • Column<T> becomes Column<T, N, TContainer>
    to support multidimensional entries and to work with any contiguous container
    (with PtrColumn<T, N> = Column<T, N, T*> and VecColumn<T, N> = Column<T, N, vector<T>>)
  • PtrColumn(info, elementCount, data) becomes PtrColumn(info, rowCount, data) for homogeneity with VecColumn

Refactoring

  • Raster, Column and Position inherit DataContainer (see below)
  • PtrRaster, VecRaster, PtrColumn and VecColumn are now mere aliases
  • Methods which took a Raster& or Column& as parameter now accept any type which fullfills Raster or Column requirements
  • All DataContainers fulfill the standard ContiguousContainer requirements (e.g are iterable)
  • All DataContainers have vector space arithmetic (e.g. support +, -, *, /)
  • DataContainer::apply() and DataContainer::generate() enable arbitrary element-wise transforms,
    including with other DataContainers as arguments
  • ColumnInfo has a member shape in lieu of repeatCount to support multidimensional entries
  • Column::entry() returns a view as a PtrRaster for multidimensional columns
  • Column::elementCount() is deprecated and replaced with standard size()
  • MefFile method names have been standardized (old names are kept for backward compatibility but deprecated)
  • VecRaster::vector() and VecColumn::vector() are deprecated (use container() instead, which performs no copy)
  • Named and Indexed are deprecated (use maker function as())

Other new features

  • Header units and data units can be accessed directly from a MefFile
    (e.g. access<ImageRaster>(1) is a shortcut for access<ImageHdu>(1).raster())
  • Multi-dimensional columns are supported
  • Empty binary table HDUs can be created
  • FileMode::Write added to edit an existing file or create a new one
  • Added BintableColumns::readSeq() overloads for homogeneous sequences (returns std::vector<VecColumn<T>>)
  • Record and DataContainers support operator<<()
  • New method FitsFile::handoverToCfitsio() returns the CFITSIO's fitsfile*
  • New "Game of Life" example demonstrates the use of slicing

Optimization and cleaning

  • Access to raster and column elements is notably faster
  • Many similar code blocks have been merged (e.g. through mixins)
  • Several overloads have been merged (e.g. with ColumnKey and TypedKey)
  • Legal notices have been reviewed
  • Formatting has been reviewed
  • This change log was added to Doxygen pages