*******************************************************
TreeAge Pro 2007 – Release 1.6 – Notes
29 November 2007
*******************************************************

Release 1.6 -- 29 November 2007:

* Autosave -- Fix time check to detect a useful -autosave file.

* Probability sum error -- When roll back failed due to probabilities not summing to 1.0, error message was suppressed.

* TreeAgeProLib/ApplicationObj.TopDocClose -- Ensure that calling TopDocClose does not hang.

* TreeAgeProLib/MonteParams -- When running trials-only simulation on a TreeObj containing both 1st-order and 2nd-order sampling distributions, defaults to sampling only 1st-order distributions (same default behavior as simulation carried out normally, from TreeAge Pro's Analysis menu).


Release 1.5 -- 14 September 2007:

* Parser messages -- Disabled some extra parser syntax error messages.


Release 1.4 -- 7 September 2007:

* Distributions list -- In trees with no distributions, list dialog buttons were not being disabled. Fixed.


Release 1.3 -- 30 August 2007:

* Stored analyses -- Re-enabled stored 1-way sensitivity analyses (broken in release 1.0).

* Analysis > Net Benefit -- Now works correctly with downstream/embedded decisions, which are optimized (as during rollback) using interval values of WTP.

* User() function -- Fixed problem with User("myfunc";x;y...) calls to user-defined Python functions failing in some models when tree variables passed as function arguments.

* Debugging simulations -- Better handling of aborted simulations when detailed calculation debugging preference turned on. Was causing error when tree subsequently closed.

* Multithreaded simulations -- Fixed problems causing multi-threaded simulations to sometimes fail with models using the Tree() function, user-defined Python functions, or recursive variable definitions. Also, enable ESC key to skip long simulation pre-optimization step.

* Parallel trials -- Simulations would stop if parallel trials option was checked (from the prior simulation) but not currently enabled because wrong type of node selected; a warning is now presented. Additionally, fixed a minor memory leak occurring when the Calculate extra payoffs settings was also on.

* Dirichlet distribution -- During fast, multi-threaded simulations on multiprocessor computers, if Dirichlet distribution was not being sampled (e.g., expected values used during a 1st-order-only simulation), it was possible for threads to conflict, causing probability errors. Fixed.

* Weibull distribution -- Enable sampling when shape parameter (was called "k") < 0. Also fix expected value calculation.

* Distribution parameter approximation -- Distributions created using the option to approximate parameters from statistics -- the gamma, beta (real number form), or lognormal -- will wrap complex, multi-part expressions entered by the user within parentheses. (Not needed if simple expression entered.)


Release 1.2 -- 18 June 2007:

* Tracker variables -- When turning tracker property on/off in Variable Properties, was not resorting variables list for Variable Definitions window. Fixed.


Release 1.1 -- 13 June 2007:

* TreeAgeProLib/Excel module (Note: For Excel macros to use new methods, you may need to remove VBA reference to TreeAgeProLib, save and close project, reopen and add reference back.)

>> TreeObj -- GetTable(name) handles numeric "name", to allow getting a TableObj without knowing table name, just by order in list. Also, better handling of CostEff analysis method (e.g., suppresses dialogs).

>> TextReportObj -- ExportToExcel("cell", i, j) method added, allowing fast export of report to an Excel cell; if i and j are non-zero, they specify a range of rows/iterations to export. Also, GetRowsLong() method added, because GetRows() returns only "short" value, up to 32k.

>> ApplicationObj -- TopDocSaveAs() works for saving a tree (*.tre) as a new package (*.pkg) file.

* Inverted effectiveness -- Cost-effectiveness net benefit graphs now work correctly when tree preferences using inverted incremental effectiveness setting (e.g. 2-way graph). [Healthcare module]

* Monte Carlo -- Improved stability. No longer stops/aborts at start of simulation if ESC key pressed sometime prior to simulation. In multithreaded simulations, models using the _trial or _sample counter (or a simulation seed) will have completed iterations added to the report sorted by iteration (rather than simply appended in order of batch completion). Full pre-optimization no longer required for multi-threaded simulations (e.g., if memory limits will not allow full optimization). Global()/GlobalN() functions not calculated during pre-optimization.

* Undo -- Undoing a variable definition change was resetting text of definition correctly, but was resetting value to -1 temporarily until tree was closed, or definition updated again.

* Sensitivity analysis -- Line graphs no longer report thresholds at every interval when lines are stacked on top of each other (as opposed to crossing/intersecting).

* Excel exports -- Better support for higher row and column limits in Excel 2007. [Excel module]

* Extra payoffs -- In two-dimensional simulation, extra payoffs were not being recorded in simulation output. Fixed.

* Distribution graph -- GRAPH > Statistics report now adds 10th, 90th percentiles.

* Properties grid -- Grid navigation using keyboard works. Use Tab, Enter, or Arrow key to move from label column into editing column on the right, and Tab or Enter to save change. (When editing node name field, use CTRL+ENTER to save the changes). Also, fixed problems occurring when changing node selection while editing a property.

* Node outline - Variables ending in underscores no longer converted to bindings. Node outline pane's show/hide preference saved with tree.

* Tree() function -- More stable in multi-threaded simulations, and "sub" tree calls to variables defined in the "master" tree will also be evaluated in the master (e.g., using distributions in the master).

* Tracker variables -- Tracker property can be turned on/off in Variable Properties.

* Rollback columns -- Avoid crash when a custom-type column uses a deleted variable.

* Rollback (TRB) files -- Clones saved as regular nodes, to store all calculations.

* Autosave -- No prompts during background autosave.

* Python() function -- Simple Python("expression") syntax working.

* TreeAgeScript -- SetNodeVar() works to define trackers. Also, quotes can be "escaped" using a "\\q" sequence, e.g. Script("!SetNodeVar(testPy, Python(\\q100\\q))")

* Other interface changes -- CTRL+F1 hides ALL extra panes. Categories button in variable Properties. Node Comment window's help note removed.

*******************************************************

Original Release 1.0 -- 2 March 2007:

* Add COM library (TreeAgeProLib) to TreeAge Pro's Excel/COM module, for scripting: > ApplicationObj -- used to open or connect to trees, graphs, and other documents > TreeObj -- used to change and analyze tree documents > MonteOutput -- used to output graphs/reports from simulations > GraphObj -- used to output and manipulate graph documents > TextReportObj -- used to manipulate text reports > TableObj -- used to update/output table data > and much more... (NOTE: Old DataATLLib.CurrentTree object is no longer available, its functions handled by TreeAgeProLib.TreeObj and TreeAgeProLib.ApplicationObj objects in the v2007 library.)

* User-defined functions -- Custom functions can be quickly written in the straightforward but powerful Python language. Previously, using Python scripts in TreeAge was not easy. Now, Python functions can simply be written in a regular variable definition, for example:

def DiscVal(val,yrs,rate=.05): denom = (1+rate)**yrs; return val/denom;

Your custom Python functions can access tree variables and functions, Python's powerful built-in functions and objects, as well as the vast array of custom and third-party Python scripts and modules. (See -- http://docs.python.org and http://www.treeage.com/support/Python.html)

* Documents View -- The TreeAge Pro window includes a floating window showing a "tree" depicting all open documents, as well as other active windows open for editing variables, tables, and other formulas/expressions. Clicking on a "node" in the Document View will bring up the selected window. The Documents View window can be resized, and closed/reopened (from the Window menu).

* Node Outline pane -- The tree window adds a new dockable, hideable pane which displays the currently selected node in text/outline format. The Node Outline pane has its own new button on the TreeAge Pro tool bar. The text outline of a single selected node can be modified, and then the node can be updated with the click of a button. (The syntax for the node outline is the same as the tree outline available in previous versions. To see examples of syntax, simply open a tree and display the Node Outline pane, from the Display menu.)

* C/E sensitivity analysis -- In cost-effectiveness models, 2-way, 3-way, and threshold analysis sensitivity analysis now can use Net Benefits calculations, making cost-effectiveness thresholds easy to identify. Also, a new Net Benefits command under the Analysis menu generates a line graph showing how each strategy's Net Benefits change as the willingness-to-pay increases. [Healthcare]

* Formula editor -- Display > Font... button works, allowing default font used for variables editing window to be changed to an easier-to-read size, for example. Also now works to edit probabilities for multiple selected nodes, as well as non- calculation fields (e.g., node labels and text boxes).

* Statistics -- Statistical reporting much faster on very long lists of numbers (i.e., millions)

* Simulations -- Virtual memory requirements of very long simulations (or long runs on trees with many outputs) handled better. Under Windows XP for example, running more than 1.3 million iterations on a tree with 100 output columns (e.g., C/E for 5 strategies, with 18 trackers) previously would exceed virtual memory allowed to a program (~1.5GB). A new user-specified threshold memory size setting (default=500MB) is used to swap outputs to temporary files (requires sufficient space on TEMP folder drive).

* Distributions -- Approximations for Beta, Gamma, and Lognormal are easier to use and modify.

* Influence diagrams -- New preferences allow user to control style of border around either noteboxes or arc information notes. Also, arcs between incomplete nodes (e.g., no alternatives) can be displayed as gray dashed lines, like structure-only arcs.

* Excel reports -- Allows larger matrix/table exports to Excel 2007 (e.g., 1m x 64k), for example simulation and Markov details reports.

* Import/Export values to Excel -- The updated Excel module also includes changes to the Export Variables (from TreeAge) command as well as the Excel add-in's commands for adding/updating variables from the spreadsheet. Exporting a variable to Excel now includes extra information, allowing variables to be renamed from the spreadsheet. Also, when a non-root node is selected in the tree, exporting a variable to Excel includes its node-specific definition (as well as a default definition, if any). New TreeAge menu commands in Excel enable worksheets already including variables and tables to be "refreshed," in order to retrieve newer/modified versions from the tree. [Excel module]

* Variables Report -- The Values > Reports > Variables... command now includes new options. For example, node-specific reporting can be done on variables in the tree using options for filtering out undefined variables in the currently selected path. * Variable definitions -- New option in the Define Variable window to enter a narrative description of the variable definition (as opposed to a general comment or description of the variable). This definition narrative information can be included in the Variables Report. * Variables display -- Improved the "wrap" option to avoid expanding the width of variable boxes that do not require wrapping. Also, turned off display of extra lines in user-defined Python function definitions (unless "wrap" option is turned on).

* Formula editor -- Works to edit probabilities on multiple selected nodes. Also works to edit non-calculation fields (e.g., node labels, text boxes).

* Docked Finder dialog -- The Options > Find/Replace tool can be docked (like the Properties grid, etc.) Regular Find/Replace dialog is still available, too.

* Tables -- Global table file folder can be changed within TreeAge Pro. Go to Variables and Table dialog, and click on the Backup/Move button. Changing the table files location here sets a preference which overrides any TABLE.DIR text file settings. Use the Reset button to revert (deletes the preference setting).

* Enabled GIF graphic outputs.

* Debug pane -- New preference to limit lines of output in debug pane will speed up its operation, especially during simulations.

* Right-click menu -- Change Node Type options added.

* GlobalN() function -- New function with similar functionality to Global(), but used to create multiple, separate matrices for different uses. The additional first parameter should be an integer (1 or higher), identifying which matrix to create/use. Matrices limited to a total of 10e8 cells (e.g., 4x5000x5000).

* Global() function -- Changed to use a single matrix during multi-threading Monte Carlo simulations (as in all other analyses), rather than a separate matrix for each thread/processor. Size limited to 10e8 cells (e.g., 10000x10000).

* Command() function -- Added Command("Excel";"ExportGlobalMatrix";WorkbookFile; SheetName;CellName;LabelText) syntax for exporting the global matrix to a new sheet. Like all string functions, Command() arguments can use concatenation, as in:

Command(...; "sheet_" + varX + "_n_" + varY; ...)

Added Command("Excel";"ExportGlobalMatrixN";MatrixNum; ... ) syntax also, for exporting a numbered GlobalN matrix to a worksheet. [Excel module]

* PathProb() function -- Now takes optional arguments specifying a path to a node. For example, "PathProb(2;3)" will return the path probability of 3rd branch of the 2nd branch of the root node.

* CTRL + Number -- Jumping to branches by number works with numeric keypad.

* Updated Functions Helper

* More suppressable dialogs

* Custom payoff names -- Allow longer names (25 characters).

************************************************************************