Older Changes

Changes between releases 3.00 and 3.20

Version 3.20

* HEALPix-F90 routines and facilities can now also be compiled with the free Fortran95 compiler g95 (
* a separate build directory is used to store the objects, modules, ... produced during the compilation of the source codes
* bug correction in query_disc for some very small discs in standard mode
* improved handling of long FITS keywords, now producing FITS files fully compatible with the PyFITS and Astropy ( Python libraries
* improved FITS file parsing in generate_beam, affecting the external B(l) reading in the F90 facilities alteralm, synfast, sky_ng_sim, smoothing.

Version 3.11

* libsharp C routines used for Spherical Harmonics Transforms and introduced in HEALPix 3.10 can now be compiled with any gcc version.
* bug correction in query_disc routine in inclusive mode
* bug correction in alm2map_spin routine, which had its spin value set to 2

Version 3.10

* Support for cfitsio ''Extended File Name Syntax'', and usage of libsharp Spherical Harmonics Transform library. See ''Fortran Facilities'' for details.
* Faster Spherical Harmonics Transform routines thanks to libsharp C routines1.

Changes between releases 2.20 and 3.00

* all input FITS files can now be compressed (with a .gz, .Z, .z, or .zip extension) and/or remotely located (with a ftp:// or http:// prefix). Besides, the fits2cl routine, used to read external beam window functions from FITS files, supports (part of) the CFTISIO Extended File Name Syntax in order to read an arbitrary extension identified by its number or its name.
Version 3.14 (March 2009) or newer of CFITSIO is required for HEALPix 3.31.
* new code process_mask and new module mask_tools containing the routines dist2holes_nest, fill_holes_nest, maskborder_nest, size_holes_nest useful for mask apodization,
* improved accuracy of the co-latitude calculation in the vicinity of the poles at high resolution in nest2ring, ring2nest, pix2ang_*, pix2vec_*, $\ldots$,
* the pixel query routine query_disc has been improved and will return fewer false positive pixels in the inclusive mode.

Changes between releases 2.14 and 2.20

* Spherical Harmonics Transform routines now transparently call libpsht C routines, leading to a significant (2 to 4) speed-up factor. This concerns temperature and polarized transforms (alm2map, map2alm) without precomputation of the Plm as well as spin weighted (alm2map_spin, map2alm_spin) transforms for $0 < \vert s\vert \le 100$, but not the generation of spatial derivatives (alm2map_der) which still uses the original F90 code. The compilation and linking to libpsht, now shipped with HEALPix , is done automatically, without any extra download or installation for the user2.

* All routines for Spherical Harmonics Transforms and most routines for pixel manipulations ( ang2xxx, pix2xxx, vec2xxx, $\ldots$, nside2npix, npix2nside, nside2ntemplates, $\ldots$) pixel queries ( query_*, $\ldots$) and FITS I/O (input_map, output_map, read_bintab, write_bintab, $\ldots$) of sky maps now support resolution parameters ${N_{\rm side}}> 8192$. This means that the number of pixels and the pixel indexes can now be stored in either integer(I4B) or integer(I8B) variables (on systems supporting 64 bit variables).
The reading and writing of alm containing files remains limited to l < 46340, though. This restriction does not apply to C(l) containing files.

* As a positive side effect of their upgrade, the F90 pixel/coordinate conversion routines are now up to 20% faster.

* Introduction of long_count and long_size functions.

Changes between releases 2.13 and 2.14

* In alm2map_der routine, a numerical bug affecting the accuracy of the Stokes parameter derivatives $\partial X/\partial\theta$, $\partial^2 X/(\partial\theta\partial\phi\sin\theta)$, $\partial^2 X/\partial \theta^2$, for X=Q,U has been corrected. See ''Fortran Facilities'' Appendix for details.

Changes between releases 2.0 and 2.13

* New functions in version 2.13:
* get_healpix_data_dir, get_healpix_main_dir, get_healpix_test_dir return full path to HEALPix directories.
* New routines in version 2.10:
* alm2map_spin: synthesis of maps of arbitrary spin
* map2alm_iterative: iterative analysis of map
* map2alm_spin: analysis of maps of arbitrary spin
* healpix_modules: meta-module
* write_minimal_header: routine to write minimal FITS header
* parse_check_unused: prints out parameters present in parameter file but not used by the code.
* Improved routines:
* query_strip: the inclusive option now returns all (and only) the pixels overlapping, even partially, with the strip
* query_disc: when the disc center is on one of the poles, only the pixels overlapping with the disc are now returned.
* remove_dipole: can now deal with non-uniform pixel weights.
* parse_init: silent mode
* parse_string: can expand environment variables (${XXX}) and leading ~$\!$/

Changes between releases 1.2 and 2.0

Some new features have been added
* Most routines dealing with maps and alm (eg, create_alm, map2alm, alm2map, convert_inplace, convert_nest2ring, udgrade_nest, udgrade_ring) or inputting or outputting data (read_*, write_*) now accept both single and double precision arguments.
* The routines map2alm and remove_dipole can now deal with non-symmetric azimuthal cut sky. For backward compatibility, the former calling sequence is still accepted.
* most routines are now parallelized with OpenMP (for shared memory architecture), and some of them are also parallelized with MPI (for distributed memory architecture)

Some new routines have been introduced since version 1.2, as listed below.

* New routines in version 2.0
* add_dipole
* alm2cl
* alm2map_der
* fits2cl (replaces read_asctab)
* nside2ntemplates
* plm_gen
* rand_gauss, rand_init, rand_uni
* same_shape_pixels_nest, same_shape_pixels_ring
* template_pixel_nest, template_pixel_ring
* write_plm (replaces write_dbintab)
* New modules or modules with new name
* misc_utils: assert, assert_alloc, assert_directory_present, assert_not_present, assert_present, fatal_error, file_present, string, strupcase, strlowcase, upcase, lowcase, wall_clock_time, brag_openmp
* rngmod: rand_gauss, rand_init, rand_uni

* The following routines are superseded.
* read_asctab (replaced by fits2cl)
* write_dbintab (replaced by write_plm)

Changes between releases 1.1 and 1.2

Some new routines have been introduced since version 1.1, as listed below.

* New routines in version 1.2
* angdist, complex_fft, concatnl, del_card, get_card, getargument, getenvironment, input_tod*, nArguments, parse_double, parse_init, parse_int, parse_lgt, parse_long, parse_real, parse_string (see parse_xxx), query_disc (replaces getdisc_ring), query_polygon, query_strip, query_triangle, read_fits_cut4, real_fft, scan_directories, surface_triangle, vect_prod, write_bintabh, write_fits_cut4,

* New modules or modules with new name
* the modules extension (C extensions), healpix_fft (FFT operations), paramfile_io (parameter parsing) have been introduced,
* the module wrap_fits has been renamed head_fits to reflect its extended capabilities in manipulating FITS headers.

* The following routines are superseded. They have been moved to the obsolete module.
* ask_inputmap, ask_outputmap, ask_lrange (initially in fitstools module)
* setpar, getpar, anafast_parser, anafast_setpar, anafast_getpar, hotspots_parser, hotspots_setpar, hotspots_getpar, udgrade_parser, udgrade_setpar, udgrade_getpar, smoothing_parser, smoothing_setpar, smoothing_getpar (initially in utilities module).

Version 3.31, 2017-01-06