The changelog is now published at https://docs.aptech.com/gauss/changelog.html.
Please go here for all future updates.
ARCHIVE
19.2.0
- Full re-mapping of all key/keyw values to match GAUSS 10 and below values. Lookup table available in key and keyw reference pages.
19.1.2
- Update bundled LaTeX library (MathJax 2.7.5)
- Bug fix: Formula strings that specified a modifier for a variable now always negate the original variable. eg. ". + ln(x)" will now remove 'x' from the output
- Bug fix: The saveall command could cause a program to crash after the save in specific situations.
19.1.1
- Bug fix: Saving files was improved in situations where the file could be locked, resulting in being unable to save or extra temporary files.
19.1.0
- The Program Input/Output window (PGM) now supports autocomplete for active workspace symbols.
- The Program Input/Output window (PGM) and all editor documents support autocomplete and lexing for library symbols not part of gauss.lcg.
- Struct definitions are now included in the library tool list.
- Add more descriptive messaging to gpkg errors when installing packages.
- Added function plotSetZRange to control the range of the Z-axis on surface plots.
- New example files plotlogx.e and plotlogy.e.
- Bug fix: quantileFit errors for case when weights are included and data has missing values.
- Bug fix: When viewing a struct member with the symbol editor (e.g Ctrl+E), the member now correctly scrolls into view in the tree.
- Bug fix: The 'Format Text' functionality in editor documents now keep preprocessor statements fully left-aligned. The 'keyword' token now correctly starts an indentation block.
- Bug fix: Autocomplete pop-up could freeze in certain situations with too many token references due to memory leak.
- Bug fix: Potential freeze when debugging with an undocked graphics page and floating symbol watch.
- Bug fix: Specific case of weights with missing values in data when using quantileFit.
- Bug fix: Fix 'Save with Encoding' option from codec selector dialog.
- Bug fix: Add missing context-menu icons for tab split action when a split already exists.
- Bug fix: Linux startup script writing empty file named '0' in current working directory.
- Bug fix: Proc detection for editor documents in certain cases where proc name or arguments contain underscores.
- Bug fix: Accidentally resetting legend orientation in plotSetLegend.
- Bug fix: Rare crash when plotting.
- Bug fix: Reading files with loadd could fail to read mixed columns in rare cases.
- Bug fix: Legend position now only uses original position on a plotAdd even if initial plot call had no legend.
- Bug fix: Parent graph could have incorrect sizing after a plotAdd if legend position was outside.
19.0.2
- Speed up of approximately 33% to quantileFit.
- Improved formatting of output tables for dstat, dstatmt and olsmt.
- Added ability for plotSetYTicLabel to control the tick label formatting of the right Y-axis.
- Bug fix: possible crash in certain cases when passing scalar input to invpd.
- Bug fix: output table printing returned error when variable names were not specified in quantileFit.
- Bug fix: X-tick labels did not start at the first label position specified by plotSetXTicInterval in certain cases for non-time series data.
- New example program plottshf_yellowstone.e shows how to: plot monthly data with plotTSHF, set labels and format the tick labels for the left and right Y-axes, control the location and frequency of X-axis tick labels, select observations from a matrix based on data and specify the graph size programmatically.
- New example programs plotbox_auto.e, and quantilefit3.e.
- Bug fix: Allow curve attribute control in graphics page settings widget for box plots with groupingBehavior set to 1.
19.0.1
- Update scatter1.e example.
- Fix action list 'Current File' action.
19.0.0
- New online license activation allows for convenient license activation from a product key.
- New function quantileFitLoc performs local linear and quadratric quantile regressions.
- New function quantileFit performs quantile regression.
- New function qfitControlCreate creates default qfitControl structure.
- Added option for clustered standard errors and robust standard errors to olsmt and quantileFit.
- New function clusterSE for computing clustered standard errors.
- New function robustSE for computing hesteroscedastic-robust standard errors.
- New 'date' keyword for formula strings simplifies reading dates from CSV files.
- New '$' keyword for formula strings reading and processing string columns.
- New function norm computes the matrix 1, 2 (Spectral), Infinity, Frobenius and Nuclear norms or the vector p-norm.
- New function lagTrim returns a matrix containing specified lags and/or leads with incomplete rows removed.
- New function recserVAR performs efficient simulation of a VAR process.
- lagn can now accept an optional argument to specify the fill value for the missing observations.
- saved can now conveniently create datasets in Excel or CSV format.
- plotTS can now plot daily data.
- X-tick locations can now be controlled with plotSetXTicInterval for XY, Scatter, Contour and Histogram plots.
- New function plotTSHF and plotAddTSHF creates time series plots for high frequency and irregularly spaced data.
- New functions plotTSLog and plotAddTSLog create time series plots with the Y-axis in log space.
- New function plotSetGroupingBehavior to control whether box plots are drawn as separate boxes or part of a group--which controls color behavior and spacing.
- New function plotSetYTicLabel controls the format and angle of Y-axis tick labels.
- New function plotSetLegendBkd controls the opacity and color of the legend background.
- Behavior change: The following default graph settings have changed: the grid is off, the axes lines and font text color are now set to black.
- Added option for Run and Debug buttons to run the Current File (Tools > Preferences > Command > Behavior).
- New function impute fills in missing data with a choice of imputation methods.
- Outer vector product is up to 400% faster, using the * operator.
- Matrix inverse with inv is 20%-400% faster for matrices with sizes around 40x40 to 110x110.
- The log 10 and natural log functions, log and ln, take 15% to 60% less computation time for matrices and arrays with more than approximately 50 or more elements.
- amult performs matrix multply with multi-dimensional arrays 20% to 3,500% faster for arrays with approximately 50 or more elements.
- exp is 20% to 800% faster for matrices and arrays with more than approximately 50 or more elements.
- dot is faster.
- X'y is faster when X is a matrix and y is a vector.
- Matrix multplication is faster and uses less memory when X is a non-square matrix.
- New function dttostrc converts DT Scalars to string dates with many new date formatting options.
- New function strctodt converts string dates to DT Scalars with many new date formatting options.
- New function posixtostrc converts seconds since the Epoch to string dates with many new date formatting options.
- New function strctoposix converts string dates to seconds since the Epoch with many new date formatting options.
- New function dttoposix converts DT Scalar dates to seconds since the Epoch.
- New functions timedeltadt and timedeltaposix add or subtract from DT scalar or Posix date/time values in terms of user specified time units.
- New functions timediffdt and timediffposix compute the difference between dates in either DT scalar or Posix date/time values in terms of user specified time units.
- New functions seqadt and seqaposix create sequences of dates in either DT scalar or Posix date/time format witha user specified time increment.
- Added support for high-frequency data to Posix date/times.
- Final input to strsect is now optional. New two input case: strsect will copy from the start index to the end of the string.
- Final input to strindx and strrindx is now optional. New two input case: strindx will start searching from the frst character, while strrindx will search from the last character.
- sqpSolvemt now has the option to compute covariance matrix from cross-product of gradient.
- Date strings returned from xlsReadSA (as well as loadd) that use LibXL or xls.dll (Windows-only) now return date with time information in fixed format pattern "MM/DD/YYYY HH:MI:SS.SSS"
- New GUI control. Right-click on a program tab and change your working directory to the directory of that file.
- New GUI control. Right-click on a program tab and copy the directory containing that file to the clipboard.
- HiDPI scaling is enabled by default.
- Updated navigation bar and new icons throughout the application.
- All icons now have HiDPI support (eg Retina displays)
- User interface styling updated to use flat elements.
- New preference (Tools > Preferences > Edit > Default Encoding) controls default file encoding for files opened in the GAUSS editor.
- New option to set file encoding for individual files (Edit > Select Encoding).
- Bug fix: improved automatic tick label location selection for data separated by very small intervals.
- Bug fix: multi-dimensional array matrix multiplication in certain cases with complex matrices would return an error message instead of computing the product.
- Bug fix: possible crash when opening files with very long lines.
- Bug fix: Fix plotBox with only 1 value
- New example files: plottshf.e, robustse.e, quantilebs.e, quantilefit1.e, quantilefitloc1.e.
- Bug fix: Fix source browser not highlighting match in rare cases.
- Bug fix: Fix issue with incorrect format type passed to satostrc
- Bug fix: Fix source browser replace for \r\n line endings in files not currently open
- OpenSSL dependencies are now bundled (Linux & Windows)
18.1.5
- Bug fix: Regression fix: varput was not working with char literals for symbol name.
- Bug fix: Fix rare stack overflow for stopping programs with certain multi-dimensional structs
- Bug fix: Fix memory issue with news check from 18.1.4
18.1.4
- UI: Check for news from Aptech on startup.
- UI: Show full value for strings and string arrays in debug tooltips
- UI: Add tooltips to debug watch widget.
- Perform better validation and whitespace trimming for formula strings
- Specifying 'factor' or 'cat' in formula string now negates the original variable
- Bug fix: in ols, constant was not added to variable labels for ols report in certain case
- Bug fix: olsqr trap case was not setting scalerror for 2 out / 3 in case.
- Bug fix: Assigning struct string member from 1x1 string array was broken.
- Bug fix: Recoded symbol debug tooltips. Sometimes columns didn't align correctly. This has been fixed.
- Bug fix: XLS files that didn't have a lowercase extension did not load correctly in import dialog.
- Bug fix: varget now supports 1x1 string arrays.
- Bug fix: assigning to struct string member would crash in specific cases.
18.1.3
- Minor bug fixes, documentation and example updates.
18.1.2
- Updates for examples glmbinomial1.e, glmgamma1.e and glmnormal1.e to use formula string notation.
18.1.1
- Fix loading structs via GDA files.
- saveStruct/loadStruct now work with files greater than 2GB on Windows (up to 4GB).
- Bug fix: sampleData could hang if 'size' parameter was less than 0
- Bug fix: Update file access flags on Windows to prevent occasional failure reading/writing files on network drives
18.1.0
- Add auto-update to macOS and Windows.
- Add tooltip to color selection buttons in UI.
- Added options to sort eigenvalues to schur.
- Bug fix: Fix package installation when both legacy xml and new package json are both present.
- Bug fix: Support > 2GB read/writes on macOS and Linux.
- Bug fix: Added ability to debug functions with threadfor statements.
- Other bug fixes.
18.0.1
- Allow spaces in file names and paths in GAUSS library files.
- Bug fix: Fix for incorrect error report when passing large numbers of extra dynamic arguments to gmmFit.
- Bug fix: Fixed incorrect error report with literal integer indexing of threadfor temporary variables in certain cases.
- Bug fix: Fix for possible compile time stack overflow with nested structure definitions.
18.0.0
- Added initial version of package manager (gpkg) CLI. Supports installation/removal of GAUSS application package(s).
- Added ability to read SAS and STATA datasets with loadd and any function that takes a formula string, such as dstatmt, glm, gmmFitIv.
- Formula strings can now apply transformations from GAUSS procedures, such as ln and exp as well as interaction terms.
- New keyword, 'factor', in formula strings will load specified columns as a set of dummy variables.
- New keyword, 'cat', in formula strings will load specified string columns and transform them to a vector of numeric categories.
- New function setBlockSize to set the size of each chunk of data that is read from a dataset that does not fit in memory.
- New function getHeaders to return the variable names from any supported data set type.
- New function gmmFit computes generalized method of moments estimates from user specified moment function.
- New function gmmFitIV estimates instrumental variables models using the generalized method of moments.
- New function gmmControlCreate creates default gmmControl structure.
- New function plotCanvasSize to programmatically control the size of graph canvas.
- New function plotSetTicLabelFont to programmatically control the font, font-size and font-color of X and Y tic labels.
- Speed up of chained concatenation operations and scalar indexing operations by 2-4x.
- Speed up of x'y for the vector-vector case by 25% to 800% for vectors longer than approximately 50 elements.
- Speed up of 15-30% for dstat, dstatmt and ols for large matrix inputs.
- Speed up run-time scalar performance on macOS. Smaller speed-up for all symbol types on all platforms.
- Speed up contour plot processing
- New functions innerJoin and outerJoin for joining matrices on specified columns.
- New function delcols to remove specified columns from a matrix.
- New function contains indicates whether a matrix, multi-dimensional array or string array contains one or more elements from the second input.
- New functions isMember and rowContains indicate whether any element of a matrix, or any element of a row of a matrix, 2-dimensional array or string array contains one or more elements from the second input.
- New function strreplace to replace all instances of a substring in a string or string array with another substring.
- New function squeeze to remove singleton dimensions from a multi-dimensional array.
- New function blockDiag to create a block-diagonal matrix from multiple input matrices.
- New function besselk computes the modified Bessel function of the second kind.
- New function rndRayleigh to compute Rayleigh distributed random numbers.
- New functions blendColorPalette, getColorPalette, getHSLPalette, getHSLuvPalette and listColorPalettes to simplify the process of creating modern, professional and attractive color palettes for graphics.
- Updated default color palettes for 2-D graph types.
- New define __FILE_DIR returns the directory in which the file is located.
- New functions cdfTruncNorm and pdfTruncNorm to compute the cumulative distribution function and the probability density of the truncated normal distribution.
- New functions cdfLogNorm and pdfLogNorm to compute the cumulative distribution and probability density functions of the log-normal distribution.
- Add initialization ability for GAUSS libraries. Placing a file named [libname]_init.src in the same directory as the library lcg file will cause that file to be ran when 'library [name]' is referenced.
- Increase preprocessor #define max length from 40 to 1024
- Add globstar wildcard matching to gauss.cfg. See distributed gauss.cfg with pkgs example.
- Added optional inputs mean and standard deviation to cdfn, and pdfn.
- Added support for multi-dimensional array inputs to pdfn, erf, erfc, erfInv, erfcInv, the power operator '^'.
- Added ability to pass string array as X axis tic labels for plotXY and plotScatter.
- Added ability to right-click a struct member in a floating symbol editor window to open it in another window for the purpose of simultaneously viewing more than one member of a structure.
- The function browser will now located structure definitions as well as proc definitions.
- 'Toggle block comment' can now comment out selections within a single line of code as well as adding multi-line comments.
- Added ability for ExE conformable vector inputs to europeanBSCall, europeanBSPut.
- Added ability to add scatter, xy and other 2-d plot types to an existing contour plot.
- Updated olsmt to make control structure an optional input.
- Watch window struct tree remembers expansion state and scrollbar position on reload (ie debug step in/over etc)
- Watch window struct vars can now be cloned into their own watch window
- Preferences are now saved to disk when after 'Apply' or 'OK' has been selected instead of when GAUSS exits
- Bug fix: Fix alt+left source page navigation becoming unresponsive sometimes
- Bug fix: Watch windows were sometimes not prevented from updating during program run, which could cause crash
- Bug fix for writer returning 0 on successful writes to HDF5 files, rather than number of written rows.
- Bug fix: gdaReadStruct on Linux can now read structs created on Windows and Mac.
- Bug fix: Data Page preview and Debug Page Watch Symbols list took more memory than necessary for sparse matrices.
- Bug fix: Fix minor memory leaks
- Added optional input to cdfEmpirical to allow specification of the number of bins/breakpoints to use.
- Behavior change: cdfEmpirical now returns the breakpoints as well as the cumulative probability. This will require use of cdfEmpirical to assign to two return values.
- Behavior change: plotAdd calls will now inherit curve level settings from the initial plot call. This should only be noticeable in cases in which a plotControl structure is passed in to create the initial graph and subsequent plotAdds to not use a plotControl structure. This does not require a code change. See "User Guide"->"GAUSS Graphics"->"Adding data to existing plots" for more details.
- Behavior change: Application modules will now be installed under GAUSSHOME/pkgs/PKG_NAME, where GAUSSHOME is your GAUSS installation directory and PKG_NAME is the name of the installed application module, i.e. tsmt. This does not require code change. Further, this path can be configured through gauss.cfg
- Behavior change: Global variable __row is no longer referenced, use setBlockSize instead. Note that this will not prevent older code from running correctly, but may result in less than optimal sizing of data blocks for which are explicitly processed in chunks which were previously controlled by __row.
- New example programs: cdfempirical.e, gmm_auto_ols.e, gmm_hsng1_iv.e, gmm_hsng2_iv.e, gmmfitiv_auto.e, gmmfitiv_hsng.e, gmm_tdist.e.