Version 1.0 (Feb 2012)

Version 1.1 (Mar 2012)
    - Improved robustness to input errors and negative values.
    - Improved scaling of the density plots. Clicking on the plot rescales the y-axis.
    (update based on feedback by Tom Stevens and Nikolas Michael)

Version 1.2 (May 2012)
    - Added an option in the 'Attributes' menu to specify a custom KDE bandwidth.

Version 1.3 (Jun 2012)
    - It is now possible to save various settings (data transformation, colours etc.) in a preferences file. This option can be selected in the Options -> Settings form.
    - The input table was extended to 1000 rows and the PDP option has been turned off in the density plot by default.
    - Fixed a bug causing anomalously high P(χ2) values in all previous versions of the program!

Version 1.4 (Sep 2012)
    - The mixture modelling no longer uses a logarithmic transformation by default, although this option is still available.
    - The labels of the X-axis and mixture models are no longer shortened by default, but an option to do so has been added to the 'Settings' menu.
    - The sample size is now reported in the legend of radial plots as well as density plots.
    - The program used to 'forget' the number of peaks in the mixture models if other options were changed. This problem has been fixed.
    (update based on feedback by Peter Clift and Andy Carter)

Version 1.5 (Dec 2012)
    - Added a three parameter minimum age model to the Mixture Models function.
    (feature requested by Jakob Wallinga)

Version 2.0 (Jan 2013)
    - Modified the scaling of the histogram bins. The setting are now according to bin width instead of number of bins.
    - Fission track labels in the density plots were made consistent with the radial plots (i.e. using 'ka' and 'Ma' instead of '103' and '106').
    - Bug fix: the minimum age model no longer hangs with zero tracks.
    - The PDF output now embeds the fonts, rather than converting them to paths. This makes editing the vector graphics much easier. PDF is now also the default format, with PNG still offered as an alternative option.
    - Improved fonts (special symbols for χ2, σ and ±). Additionally, the font size of the text now scales with the size of the graphics window. Tip: the best ('smoothest') PDFs are generated by maximising the graphics windows before saving your plot.
    (updates thanks in part to feedback from Alejandro Bande and Andy Carter)

Version 2.1 (Mar 2013)
    - Copy & paste from MS Excel now also works on Macs (Cmd-c, Ctrl-v).
    - Clicking on the KDEs now shows the age of the point on which you clicked. To zoom and rescale the Y axis, Ctrl-click.
    - Tick marks on the X axis of radial plots have been adjusted to accommodate high precision data such as U-Pb ages.
    (updates based on feedback from Chris Spencer and Matt Horstwood)

Version 2.2 (Apr 2013)
    - Addition of command line options enabling batch processing.
    - Prettier tick marks
    (updates based on feedback from Martin Rittner)

Version 2.3 (June 2013)
    - Higher resolution graphics
    - Ability to visualise the location and error distribution of the input data as individual bell curves or ticks whose height is proportional to the analytical precision
    - More intelligent placement of X-axis ticks and labels in log-space

Version 2.4 (Jul 2013)
    - Fixed a bug caused by one of the Java libraries, which had hitherto made it impossible to save the graphical output as .png on Linux and OS-X. Replacing this library with a native one has resulted in a 10% size reduction.
    - Added a text box in the Settings form allowing the user to modify the height of the (option) Gaussian bell curves and ticks.
    - Minor fix to the tick labels, removing overlapping labels on some log-scales.
    - Update (July 31, August 5): fixed bugs caused by the upgrade, affecting the Save Plot function on, first, the command line and, next, the GUI (thanks to Christian Seiler and Sean Sanguinito for reporting these bugs)

Version 2.5 (Sep 2013)
    - Fixed further minor bugs caused by the previous upgrade.

Version 2.6 (Oct 2013)
    - Re-established the ability to set custom axes, band- and binwidths. Hopefully all the bugs arising from the upgrade from 2.3 to 2.4 should be fixed now!
     (thanks to Kirsten Sauer for reporting the bug)

Version 2.7 (Nov 2013)
    - No longer changes the kernel bandwidth when rescaling the x-axis.
    - Alt-S and Ctrl-W keyboard shortcuts now also work when the plot window is in focus.
     (update based on feedback from Ian Miller and Luigi Solari)

Version 3.0 (Dec 2013)
    - The program now allows zero and negative values to be plotted on a log scale. This is achieved by a log(D + a) transformation (Galbraith, Ancient TL vol 1, 2010).
     (feature requested by Jasper Van Nieuland, Christina Neudorf and Tom Stevens)

Version 3.1 (Jan 2014)
    - Fixed a minor bug in the central age calculation algorithm, which failed to converge for certain high precision datasets.
     (bug reported by Yuntao Tian)

Version 4.0 (Jan 2014)
    - Implements adaptive kernel density estimation according to Abramson (1982, Annals of Statistics).

Version 4.1 (Feb 2014)
    - Adds an option to use Epanechnikov kernels instead of the default Gaussians.

Version 4.2 (Mar 2014)
    - Adds the ability to normalise the area under the density estimates to a common value for one or several samples.

Version 4.3 (Mar 2014)
    - Automatically checks for updates.

Version 4.4 (Apr 2014)
    - Fixed bug in adaptive kernel density estimates which produced a narrower bandwidth when zooming into the time scale.
    - Sample size (n) in the legend now counts only the samples falling within the range of the time axis.
    - For clarity, the area textbox in the Settings menu is no longer editable when the normalise checkbox is unticked.

Version 5.0 (Apr 2014)
    - Added option to save KDEs (and radial plots) as .csv files for use in MS Excel etc.
     (feature requested by Moritz Kirsch)

Version 5.1 (Sept 2014)
    - Updated the x-axis label of the radial plots for negative values from 'σ/t' to 'σ/(t + offset)'.
    - Made the adaptive bandwidth selector invariant to rescaling of the time axis.
     (updates based on feedback by Micha Dietze, Chris Lewis and David Barbeau)

Version 6.0 (Oct 2014)
    - Added functionality to add KDEs to radial plots ('abanico plots').
    - Old preferences files are automatically cleared following a software upgrade.
     (second part of the update based on feedback from Kurt Hollocher).

Version 6.1 (Nov 2014)
    - Fixed minor bugs caused by the previous update.

Version 6.2 (Dec 2014)
    - Smarter tick mark placement in density plots.
    - The Settings menu now reports bandwidths and binwidths in raw (linear, log or arcsine) units.
    - Uses a better way to clean up old preferences files.
     (update partly based on feedback from Chris Spencer)

Version 6.3 (May 2015)
    - Minimum age model now also works for negative data, allowing the function to be used to calculate maximum ages.

Version 6.4 (Sep 2015)
    - External age information can be indicated as vertical markers, to be specified in the Settings menu.
     (feature requested by Stijn Glorie for RadialPlotter).

Version 7.0 (Mar 2016)
    - Restores the ability to specify custom colour label in the radial plots.
    - Source code is now available through github. To compile DensityPlotter, set 'static final boolean DENSITYPLOTTER = true' at the very end of

Version 7.1 (Aug 2016)
    - Adds χ2 test for age homogeneity in radial plots of 'Other' data.

Version 7.2 (Nov 2016)
    - Fixes errors of fission track mixture models. Adds FAQs to Help files.

Version 7.3 (Jan 2017)
    - Undoes peak fitting mistake introduced in the previous update.
     (thanks to Geoffrey Ruiz for feedback)

Version 8.0 (Feb 2018)
    - Added square root transformation.
    - Simplified mixing models, which no longer depend on the data transformation used.
     (thanks to Andy Gleadow for feedback)

Version 8.1 (Mar 2018)
    - Fixed zero dispersion error in 'other' data caused by previous update.
     (thanks to Sébastien Ternois for feedback).

Version 8.2 (May 2018)
    - Increased number of iterations of mixture modelling algorithm to ensure convergence.
     (thanks to Dale Issler for feedback).

Version 8.4 (November 2018)
    - Fixed type error (int to double) in adaptive KDE algorithm. Now yields results that are perfectly consistent with the version implemented in IsoplotR.

Version 8.5 (May 2019)
    - Fixed bug in standard error calculation for the central age. Results are now consistent with IsoplotR (thanks to Stuart Thomson for reporting the bug).