.. index:: single: G7 New; For 2013 *G7*: New for 2013 =============================== Work in 2013 provided a few new features, improvements to existing features, and a variety of bug fixes. The most important improvements and new capabilities provided in the *G7* software are these: - Improved Documentation: The *G7* documentation was revised heavily in 2012 and has been updated in 2013, with new Help files, Users' Guide, Reference Manual, Tutorial, and `other documentation `_. `Companion documents `_ in HTML and PDF formats also were updated. - Interface Improvements: a) Main menu items were added to load in a web browser the software documentation presented on Inforum web site and to assist the user when checking for software updates. b) The :ref:`Editor F1 (Help) ` key replaces the nonstandard F2 shortcut for the launch of Help files. c) The G7 icon and images on the splash, configuration, and about dialogs pages was updated. The configuration dialog and About window were revised and improved. d) Graph Series: Add :ref:`right-click menu item ` in the Editor to display data in a graph for a selected series name or algebraic expression. - Strings, Functions, and Keywords: a) Redefined :ref:`xl name ws ` so that the name is optional. If not specified, then the existing worksheet name can be recovered with the *%xls* keyword. b) Modified :ref:`%xlcol() ` to take either a column number and return equivalent column letters or to take column letters and return the equivalent number. c) Added a :ref:`-l rootname ` option to the listnames routines to store the series names as strings, where the string names are ** and the string definitions are the series names. d) Added :ref:`%nseries(bank_letter) ` function to return the number of series in the specified bank. e) Replaced the :ref:`%{...} ` routine with one that does proper Parentheses/Multiplication/Division/Addition/Subtraction integer arithmetic. Other %-routines and recursion may be employed within the function. f) Added :ref:`%exists(series_name) ` to return 1 (0) when the series is found (not found). The *exists()* routine provided in the *if()* command now is depricated. g) Added :ref:`%sexists(string_name) ` to return 1 (0) when the string is found (not found). - Numerical Routines: a) Added :ref:`@sign() ` that returns +1 (-1) if the argument is non-negative (negative). b) Added :ref:`%fabs() `, :ref:`%log() ` , :ref:`%exp() ` scripting functions that accept a scalar argument. c) Added a tolerance option to the set of :ref:`ras commands ` . - Miscellaneous Improvements: a) Added :ref:`wsreset ` command to allow the workspace to be cleared and a new workspace established with new parameters and possibly in a new location. b) Allow "update" as a command type for the :ref:`save command `; previously it was the default option but could not be specified manually. c) Rewrote routines that handle the scripts that specify sector groups and @-functions. This corrects garbled printing of equations by the regression commands, equation saving with the *save* command, and title printing for the () shortcut in graph command. d) In the :ref:`resector ` routines, increase the maximum number of sectors from 600 to 1500. e) Several internal codes were respecified to allow use of character sets with 8-bit extended ASCII representations. f) Added sanity checks for the dates in *g.cfg* files. - An Abridged Listing of Bug Fixes: a) Prevent overflow or run-on words when printing long series names with the *listnames* commands. b) Fixed a problem with focus with the "file-execute" box on the main window. c) Fixed problem in the *vc* command that caused incorrect date alignment between Vam banks and packed matrix files. d) Fixed += in *f* and *vf* to handle missing values on both the LHS and RHS. e) Added check to *@chain* routines to ensure that the specified base date frequecy matches that of the *fdates*. f) Force destruction of existing *show* window before a new one may be created; this finally should fix persistent bugs. Improved the show window save functions though problems remain. g) Fixed crash in Editor pop-up menu *Type Series* command when multiple lines were selected. h) Fixed problem with expansion of *%linelen*. i) Fixed problem with printing of settings with the *line* command. j) In *ipch* command, switch from scientific notation to standard notation for printed coefficients. k) In *wsdump*, fixed problem when printing a series with only missing values, and fixed problem with dates that could lead to incomplete printing of data, and eliminate automatic zapping after dumping data. l) Attempt to fix bug in *function* command where an existing argument list could be lost, and thus the attempt to restore it fails after the function was executed with an alternative list. m) In *findvec*, ensure that the Vam file is open before attempting to search it. n) Fixed *f* command to allow "f x{2008-%fdates2} = y", where previously the *%fdates2* keyword was not processed properly. o) Fixed problem in *%strcmp()* and related functions where the return value was not set properly. p) Reworked *find()* to do a proper Vam-file search when called by *G7* routines like *%exists()*. q) Attempted to fix a problem with *listnames* command where the G bank associated with a Vam file was not searched. Improvements also were made to companion software, including the table-making program *Compare* and the model-building program *IdBuild*. - *Compare*: a) Updated the :ref:`chain-weighting routine ` to incorporate *G7* updates. b) Added many new :ref:`printer control ` (*\pc*) commmands and added documentation for all. Added documentation for the :ref:`printing of these files `. c) Improved the appearance of screen formatting. d) When performing zero/zero or zero/nonzero calculations, set the result to zero instead of a missing value. - *IdBuild*: a) Increased buffer sizes for bank paths/names. Fixed problem with bank names that are surrounded by quotes. b) Fixed memory leaks and other problems. Merged code with non-optimizing version of *IdBuild* to incorporate recent improvements to that version. Improved check for divide-by-zero problems. Fixed problem with *@csum()* groups. c) Changed byte alignment to byte from quad word to ensure consistency with other programs. d) Added code to initialize vectors and matrices to zero to eliminate problems with garbage in unused portions of series (i.e. dates beyond *fdates* ranges). e) Improved the appearance of screen formatting. .. Update 2012 work below .. 2012: (Through 07/26/12) SCALING 05/04/12 Provide rdscale option for ctrl, with same syntax as for the scale command; must wrap group in () for rdscale option to be read. #RH 05/08/12 Add QP extension to proportional scaling that automatically is applied when the standard algorithm fails. Fixed problem affecting try-catch and perhaps # other flow control routines: unchop buffer was not getting cleared. 05/14/12 For now, disable 05/08/12 work on extension to proportional scaling. 05/15/12 Fix problems in syntax checking and improve messages of RAS command. 05/21/12 Continued to improve messaging, error handling, and to fix bugs in RAS and related routines. Fixed problem with alignment of data over time in RAS conditions, where equations were not aligned with workspace. 05/23/12 Rewrote much of the precon() routine. Now allow sc(max/min) <(row group)><(column group)> in addition to original block specification, where row-column groups must have the same number of elements and must form row-column pairs that identify the desired cells. 05/24/12 Rewrote RAS routine and supporting routines to employ double-precision calculations; this fixes some convergence problems. Need to adapt other routines to employ the double-precision versions of the supporting routines; meanwhile, conversion routines are in place to provide support for single-precision routines. 05/29/12 Make RAS routines skip conditions for which the control value is MISSING in a given period. Added fdates command to RAS conditions command set (not yet implemented for gvras routine). 06/15/12 Corrected and adjusted the RAS convergence check. Improved screen output for RAS. ....