Version History¶
Version 1.6 — May 12, 2026¶
Changes include:
- Renamed
-Killharmto-harmonicfilter, retaining-Killharmas a backward-compatible synonym. - Added
-fourierfilter, a full-band Fourier-domain filter. - Added
-setlcnameoption to override thestdinplaceholder used as the LC name when input comes from-i -. - Added
allcols,changesuffix,gzip, andbzip2keywords to-o, and auto-detection of compressed light-curve inputs (.gz,.bz2,.fits.gz,.fits.fz,.fits.Z,.fits.bz2) on-iand-l. - Added
outputcolumnkeyword to-expr(used withlistvar/scalar/const) that exposes the computed value in the result table. - Reject duplicate statistic names in
-statsat parse time. - Added aggregate functions (
mean,median,stddev,sum,vmin,vmax,MAD,weightedmean,wmedian,meddev,medmeddev,kurtosis,skewness,pct<n>,wpct<n>) to the analytic-expression engine, plus parse-time constant folding and per-LC aggregate-call memoisation, which can speed common O(N²) patterns by orders of magnitude. - Fixed
parseonedelim*()STRING corruption (regression from the r5380 combinelcs change in 1.51). - Fixed
-nonlinfitfitmaskheap overflow and missing variable resolution that caused SIGSEGV in MCMC fitting, and a-nonlinfit omodeltoken-order bug that caused-oneline(and any subsequent global option) to be silently swallowed. - Fixed
-linfit formatkeyword silently swallowing the following argv token. - Fixed
-linfit save_modelto honourmodel_nameformat. - Fixed
-BLSFixPerDurTc save_phcurvebuffer overflow that triggered a glibc abort. - Fixed
-addnoise waveletlast-point out-of-bounds read. - Fixed
-pythonand-Rundersize allocations under-readall. - Fixed
-Starspot fitstarspot_amoebauninitialised index. - Fixed multiple format-string vulnerabilities in output and Python/R callback code.
- Fixed
vartools -helpandvartools -exampleoutput rendering literal%%instead of%in many help strings. - Added the
libvartoolspipeline.soshared library providing an in-process embedding API for external programs. - Added
make install-pythonandmake check-asanbuild targets. - Updated
configure.acto handle NumPy 2.x include layout. - Initial release of
pyvartools, a Python interface to VARTOOLS — see the Python API documentation for details.
Version 1.52 — March 19, 2026¶
Changes include:
- Added examples for the
-difffluxtomag,-restoretimes, and-sortlccommands. - Fixed typo in
-restoretimesdescription. - Fixed
-TFAsyntax display to correctly showuse_lc_errorsandweight_by_template_stddevas sub-options oftrend_coeff_priors. - Added
noinitmarksub-option ofmarkrestrictto-restricttimessyntax display.
Version 1.51 — May 27, 2025¶
Changes include:
- Modified usage of semaphores to fix error preventing parallel processing on Mac OS X.
- Sort the TFA template light curves by time for the case where FITS files are used for the templates and matching is done on time.
- Added
markclipoption to-clip, andclip,fitmaskandoutfitmaskoptions to-TFAand-TFA_SR. - Added
fitmaskoption to-linfitandmaskpointsoption to-stats. - Added
-hatpiflag usercommand. - Added mutexes for cspice to allow parallel processing with this library.
- Added
maskpointsoption to the-rms,-rmsbin,-chi2,-chi2binand-decorrcommands, and fixed bug in-chi2binand-rmsbinthat would lead to invalid results if NaN values were included in the input light curve. - Added
maskpointsoption to the-binlc,-changeerror,-ensemblerescalesig,-rescalesig,-LSand-BLScommands. - Added
markrestrictoption to-restricttimescommand. - Added
maskpointsoption to-BLSFixPer,-BLSFixDurTc,-BLSFixPerDurTc, and-aovcommands, fixed bug in recent commit for-linfit. - Added
dates_Jstetfile for the-Jstetexample. - Added
maskoption for the-alarm,-expr,-aov,-autocorrelation,-dftclean,-Jstetand-wwzcommands, and added option to include additional description of light curve column in the FITS header COMMENTS in the-ocommand. - Added the
T0option to-binlc. - Added bitwise OR, AND and complement operators to analytic expression evaluation.
- Added
pointingflagto-hatpiflagcommand. - Added
combinelcsoption to-iand-l, and-addfitskeywordcommand. - Added help and examples for the
-addfitskeywordcommand. - Added the
appendandupdateoptions to-addfitskeyword. - Added
-stitch USERLIBScommand. - Added
-sortlccommand. - Fixed bug in
-exprcommand affecting the==operator. - Added
namefromlistoption to-ocommand. - Added option to use
varorexprkeywords to set parameters for the-BLS,-LS,-aovand-aov_harmcommands. - Added ability to specify
dfrather thannfreqfor-BLS. - Added
-columnsuffixoption. - Added
-printcommand.
Version 1.41 — July 23, 2024¶
Changes include:
- Modified to support compilation for older versions of Python without the
Py_SetPathfunction. - Changes to build process for backward compatibility with Python 2.7.
- Updated
configure.acto handle case wherepython-configsends usage error to stdout instead of stderr. - Added
skipfailoption to-pythoncommand. - Added
-splinedetrend USERLIB. - Added some missing error handling to the
error2_noexitfunction. - Fixed segfault in BLS that occurs when there are no out-of-transit points.
- Added
expr,perJD expr, andperJD fromlcinput options for theradecandinput-radecparameters of the-converttimecommand. - Added
exprandlcexproptions tocoordsoption for-converttime. - Added
isnanfunction to analytic function list. - Added
-BLSFixPerDurTccommand. - Added outlier rejection to
-linfit. - Added support for providing
allas the entry for the column option to-l. - Changed
JDTOLfrom global variable to member ofProgramDatastruct to avoid compile errors with new gcc. - Added
namecommandoption to-ocommand and%boption tonameformatoption of-ocommand.
Version 1.40 — April 15, 2022¶
Added -match command.
October 30, 2020¶
Modified build tools and minor change to runpython.c to enable using -python with Python 3 under virtualenv.
October 8, 2020¶
Removed implicit function declarations to enable compilation on Mac OS Catalina. Thanks to J. Rodriguez for the report.
August 7, 2019¶
Changes include:
- Catch cases where light curve is too short for
-BLS, skip the light curve, and report a warning to stderr. - Fixed bug in
-restricttimescausing incorrect behavior for theJDlistandimagelistoptions.
Thanks to L. Sweeney and V. Nascimbeni for the bug reports.
April 17, 2019¶
Changes include:
- Changed build to allow finding R library on macOS.
- Fixed bug causing possible segfault in
-IFFT. - Fixed bug causing buffer overflow in
-Starspot.
Version 1.38 — April 10, 2019¶
Changes include:
- Added
-Rcommand. - Added
varsoption to-restorelccommand. - Fixed bugs in the
-pythoncommand related to specifying differentinvarsandoutvarsvariables, handling thecontinueprocesskeyword, and transferring large amounts of data between VARTOOLS and Python. - Fixed bug in
-pythonwhere the light curve header might be output multiple times. - Redirect stdout to stderr for output produced by the Python sub-process.
Version 1.37 — April 4, 2019¶
Changes include:
- Added
-FFTand-IFFTcommands and the-ftunevenextension command (thanks to J. Scargle for the code implementing the algorithm behind-ftuneven). - Modified build to allow specifying the cfitsio library path and include directory.
- Ensured the status variable is initialized to zero in various FITS library calls.
- Debugged thread locking problems with FITS input/output.
- Debugged output of string variables to FITS.
- Added
copyheaderandlogcommandlineoptions to-ocommand. - Modified
-TFAand-TFA_SRto allow FITS format trend light curves.
Version 1.36 — December 12, 2018¶
Changes include:
- Added
reportharmonicoptions to-BLS. - Modified
-converttimeto give an informative error message when performing BJD/TDB conversion without cspice. - Added
delimiteroption to-inputlcformatand fixed bug inskipcharoption. - Added
bootstrapoption to-LS. - Fixed bug handling default skipping of commented lines when no
inputlcformatwas given. - Fixed bug in
-statscommand when multiple weighted-percentile commands are given on the stats string. - Fixed bug in computing output models for the
-RunBLSFixDurTccommand (thanks to X. Yao for the bug report).
July 11, 2017¶
Fixed bug preventing compilation when Python is not detected. Thanks to K. Burdge for the bug report.
Version 1.35 — July 3, 2017¶
Changes include:
- Added
-pythoncommand,-restoretimescommand, andexproption to-restricttimes. - Added ability to index arrays in analytic expressions and added new
lenfunction analogous to the same function in Python. - Added
-foption. - Added delimiter option to output.
- Added new astrophysically relevant functions to the
astrofuncsUSERFUNCS library. - Fixed bug in
-aovperiodogram header, bug in memory allocation by-BLS, and bug causing NaN S/N estimates in some runs ofblsfixdurtc.
Version 1.34 — June 29, 2016¶
Changes include:
- Added stellar density as an input option to
-BLS. - Corrected bug in
parselc.cpreventing compilation when not using CFITSIO. - Fixed README to give correct output from new
-LScommand.
Version 1.33 — December 9, 2015¶
Changes include:
- Added
fixcolumnoption to-BLSFixPerandexprinput options to-Injecttransitand-BLSFixPer. - Fixed bug in parsing command line for
-nonlinfitcommand and added Gaussian Process Regression to output model file. - Fixed bug in computing log(det(Cov)) in
-nonlinfit. - Fixed bug in header of GLS periodogram file.
- Modified
-BLSto allow searching for transits with periods up to the timebase of the observations; also addedstepP,steplogP,adjust-qmin-by-mindtandreduce-nbinsoptions to-BLS. - Added
opencommandoption to-l. - Modified calling options for
-binlcand addedbincolumns,tnoshrinkandbincolumnsonlyoptions to this command. - Fixed bug in
-Injecttransitaffecting duration of simulated transits for non-solar stars. - Added
bintimeoption to-addnoisecommand. - Added line broadening profile to the
astrofuncslibrary.
Version 1.32 — June 6, 2015¶
Changes include:
- Converted to GNU autobuild system to improve portability.
- Changed loading of user-developed commands so that the necessary library is automatically loaded when a command is issued (the
-Loption is no longer needed). - Changed
-LSto compute the Generalized Lomb-Scargle Periodogram instead of the traditional LS (the traditional version can still be called using thenoGLSkeyword). - Added the
modelvar,ophcurveandojdcurvekeyword options to-MandelAgolTransit. - Added the
phasevarandstartphasekeyword options to-Phase.
Version 1.31 — April 29, 2015¶
Fixed bug in restricttimes.c preventing compilation. Thanks to T. Almeyda for the report.
Version 1.31 — January 20, 2015¶
Changes include:
- Added new commands:
-BlsFixDurTc,-copylc,-nonlinfit,-resample, and-WWZ. - Significantly revised the
-addnoisecommand to allow simulation of time-correlated noise via a Gaussian process model. - Modified routines for loading user-developed libraries (initialization function now requires more input values).
- Auto-sort light curves on input.
- Added
wmedianandwpctstatistics to-statscommand. - Added
niterandmedianoptions to-clip. - Added
formatoption to-linfit.
September 11, 2014¶
Fixed bug causing buffer overflow or segfault when outputting the model function in the -Killharm command. Thanks to T. Bovaird for the bug report.
July 16, 2014¶
Corrected bugs related to compiling without libraries and to compiling on Windows.
June 17, 2014¶
Fixed bug in vartools_functionpointers.h preventing compilation with the PARALLEL option turned off.
Version 1.3 — April 22, 2014¶
Major update. Changes include:
- New commands added:
-changevariable,-expr,-if -else -elif -fi,-linfit,-restricttimes,-stats. - New options added:
-inputlcformat,-inlistvars,-showinputlistformat,-showinputlcformat,-log-command-line,-functionlist,-Land-F. - New extension commands added:
-fastchi2,-jktebop,-macula,-magadd. - Changed the
speckeyword tolistfor all commands (more intuitive). - Changed the syntax for
-oto allow greater control over output formatting. - Changed
-aov_harmto correct for a singularity which can appear when applying the method to evenly sampled data (thanks to A. Schwarzenberg-Czerny for pointing this out). - Changed
-binlcand-clipto handle all light curve related vectors, not just t, mag and err. - Allow reading in rows of arbitrary length from ASCII files.
- Major new features include: the ability to handle analytic expressions and assign variable names to input vectors and scalars; the ability to read in many columns from a light curve as vectors and change the vectors which commands operate on using
-changevariable; support for user-developed extensions (including adding custom commands and new functions for use with-expr,-linfit, etc.).
July 18, 2013¶
Added Mac installation notes. Thanks to J. Pepper and his research team.
May 15, 2013¶
Updated help for the -Jstet command to note a difference between the J statistic computed by VARTOOLS and that defined in Stetson's paper. Thanks to L. Macri for reporting this.
Version 1.202 — April 23, 2012¶
Changes include:
- Fixed bugs in
-converttimerelated to the location of the observer and handling ofinput-ppm; also corrected bug in-converttimecausing loss of timing precision from accumulated rounding errors. Time conversions are now precise to ~0.1 millisecond near JD2000.0. - Reworked the internal method for parsing light curve data; the old method can be restored by deleting
-D _USE_PARSELCfrom the makefile. - Changed
-readformatto allow reading in light curves that are missing one or more of the JD, mag, or sig columns. - Fixed memory leak in
-getampthresh. - Added substantial code related to supporting user-developed extensions to VARTOOLS (not fully functional in this release and not compiled by default).
February 8, 2012¶
Fixed bug in -decorr causing LCColumn_?_coeff_err_?_? to not be output correctly. Thanks to D. Flateau for the report.
Version 1.201 — February 3, 2012¶
Fixed bug in -BLSFixPer causing incorrect periods to be printed to the ASCII output table when using list. Thanks to J. Pepper for the bug report.
February 1, 2012¶
Changes include:
- Fixed segfault when using
-inputlistformatwith-SYSREM. - Corrected a bug in the output table when combining
-headerand-redirectstats.
Thanks to D. Flateau for the bug report.
November 10, 2011¶
Updated descriptions of some commands on the website.
Version 1.2 — October 21, 2011¶
Significant changes including:
- Added
-addnoiseand-converttimecommands, and-example,-inputlistformatand-paralleloptions. - Significant internal revisions to allow for parallel processing of light curves (affecting many commands which had previously used global or static variables; there may be bugs introduced as a result).
- Added options to most commands to specify the column number for parameters taken from the input list file.
- Added
inpututcoption to-readformat. - Changed
-helpto only provide a brief synopsis of the program (-help allgives the previous behavior). - Changed
-MandelAgolTransitand-SoftenedTransitto internally vary the initial and final transit epochs rather than the period and epoch, and improved the initial parameter estimates based on-BLS. - Added
diluteoption to-Injecttransitto simulate diluted transits.
Version 1.158 — April 6, 2011¶
Changes include:
- Added
fittrapoption to-BLSand-BLSFixPer, which fits a trapezoid transit at each peak period. - Added
nobinnedrmsoption to-BLS(speeds up the run but suppresses theBLS_SNstatistic; use when not relying onBLS_SNto select transits). - Added
ophcurveandojdcurveoptions to-BLS. - Fixed bug in
-BLSwhich caused period "-1" peaks to be listed before the correct peaks when fewer than Npeaks periods were found. - Added
-onelineoption for easier to read output when processing a single light curve.
Version 1.157 — April 5, 2011¶
Fixed bug in -BLS causing integer overflow for large frequency number searches. Thanks to B. Sipocz for pointing out the bug and the fix.
Version 1.156 — March 1, 2011¶
Fixed bug in -BLS causing a memory leak. Thanks to R. Siverd for debugging this.
Version 1.155 — February 25, 2011¶
Fixed bug in -BLS causing the wrong transit time center to be output. Thanks to T. Beatty for reporting the bug.
Version 1.154 — February 14, 2011¶
Changes include:
- Minor change to
inputoutput.cto correct unpredictable behavior when reading FITS files (thanks to J. Rasor for reporting the bug). - Fixed bug related to the file names of BLS periodograms and added the version number to the help and usage functions (thanks to R. Siverd for the report/suggestion).
Version 1.153 — February 10, 2011¶
Changes include:
- Added the ability to read binary FITS table files.
- Renamed the old
-fluxtomagcommand as-difffluxtomagand added a new-fluxtomagcommand. - Added option to use amplitude spectra with
-dftclean. - Added
replaceoption to-medianfiltercommand. - Improvements to the
-Phasecommand. - Fixed bug in
-starspotwhich prevented the model from being output when no fitting was done. - Modified output of
-BLSand-BLSFixPerto include the epoch of transit center for the first transit after the start of the light curve.
Version 1.152 — August 13, 2009¶
Changes include:
- Added the
-microlenscommand. - Changed the DFT routine in
-dftcleanfrom the brute force to the FDFT algorithm. - Fixed a bug in the calculation of S/N for the
-LScommand. - Added GNU license.
Version 1.151 — May 19, 2009¶
Added the -findblends command (thanks to Kris Stanek for the suggestion).
Version 1.15 — March 3, 2009¶
Changes include:
- Added
whitenandclipoptions to-aov,-aov_harmand-LScommands. Also added SNR output to these commands, and the option to determine the SNR at a fixed period. Note that the default behavior for-aovnow gives the AoV statistic and its SNR; previously it gave the SNR of the log AoV statistic, which tended to suppress detection significance for large amplitude variables. Use theuselogoption to restore the previous behavior. - Added the
-Injecttransitcommand. - Fixed a bug in the AoV peak finder that could cause it to miss the peak in some cases.
- Fixed a bug in the
-MandelAgolTransitalgorithm that caused the transit to appear at the wrong phase for some values of omega. Changed-MandelAgolTransitto input/output omega in degrees. - Fixed an incompatibility between
-clipand several other commands. - Added the
-savelcand-restorelccommands. - Changed
-autocorrelationto use the Discrete Correlation Function (binning is done on the ACF rather than on the light curve, which also yields error estimates for the ACF). - Added the ability to reference arbitrary previously computed statistics by output column name or number (not yet fully extended to all commands).
- Added the option of reading in signals from a file to the
-GetLSAmpThreshcommand. - Added the option of simultaneously fitting a Fourier series to a light curve with TFA to the
-TFA_SRcommand.
December 11, 2008¶
Changes include:
- Changed
-Killharmto allow different output formats. - Fixed a bug with the
phaserelandampreloptions to-Injectharm. - Added an example on injecting and recovering a simulated RR Lyrae signal.
December 10, 2008¶
Substantial changes:
- Added new commands:
-autocorrelation,-changeerror,-dftclean,-Injectharm, and-TFA_SR. - Added new options:
-matchstringid,-quiet,-randseed,-numbercolumns,-listcommands. - Changed the
-helpoption to allow displaying help for individual commands. - Modified
-Killharmto allowinjectharmandfixoptions for inputting periods; also added thefitonlyoption and changed the output format/column headings. - Modified
-TFAto allow specification of readformat of trend light curves. - Added
fitRVoptions to-MandelAgolTransit(not fully debugged; not recommended for production use).
September 25, 2008¶
Changed the Mean_Mag output for the -Killharm command to be the fitted mean rather than the statistical mean, in line with Example 2.
September 22, 2008¶
Added -nobuffer option (thanks to Rob Siverd).
August 18, 2008¶
Fixed segfault when reading long input lists (thanks to Josh Pepper).
July 31, 2008¶
Added -headeronly option.
July 2, 2008¶
Modified to allow input from stdin.
May 27, 2008¶
Modified the -BLS and -BLSFixPer commands to output the number of points in transit, the number of transits, the number of points before and after transit, the red and white noise of the signal after removing the BLS model, and the signal-to-pink-noise ratio of the transit.
May 25, 2008¶
Fixed segfault in initialize_tfa routine. Added examples. (Thanks to Rob Siverd.)
March 26, 2008¶
Fixed memory leak in -aov command. (Thanks to David Nataf.)
January 16, 2008¶
Fixed isinf portability problem. (Thanks to Alceste Bonanos.)
November 26, 2007¶
Added -SYSREM and -binlc commands and the -jdtol option.
November 19, 2007¶
Added -TFA and -fluxtomag commands.
November 15, 2007¶
Added -MandelAgolTransit, -GetLSAmpThresh, and -aov_harm commands.