Analytica Release Notes/Changes in Patch Build 4.4.4

<< What's new in Analytica 4.4

Analytica Patch Release 4.4.4 fixes a number of bugs, listed below, in case you are interested. Most of these are minor issues or appear only in rare special cases. But, we recommend installing this release just in case. The previous 4.4.3 patch release, which introduced several substantial internal improvements in Analytica. This release 4.4.4 is much smaller, and fixes some residual issues in 4.4.3.


Fixed the following issues that caused crashes in certain rare cases:

  • When matching records in a client's model. Requires a very special and complex set of circumstances to be present to reproduce.
  • A hang when SplitText was called with an array-valued parameter.
  • When trying to add an item to an index list-of-labels that has a ProbTable child.
  • When trying to view a DetermTable in expr mode after viewing its domain.
  • When viewing the result of a multi-dimensional array with zero-length indexes, totals checked, and some other oddities.
  • After deleting a module via typescript when object window is open.

Engine and Evaluation

Fixes to these problems:

  • The All in «module» syntax in [[DefineOptimization] was not parsing in 4.4.3.
  • A node with CachingMethod is set to "Release when children computed" was being computed twice, when it should have been computed a single time.
  • The Npv function incorrectly reports "The second parameter, values, should be numeric, but the array passed contains a non-numeric value at Time=0..." when the array passed is a zero-length array.
  • The EvaluateScript command is supposed to consume any typescript output, including any error message. Error messages and some output (e.g., when creating an object) was not being grabbed in 4.4.3.
  • When using SubTable(A,fulDeterm:true) to obtain the contents of a DetermTable that has been loaded but not yet viewed or evaluated, the result was not right in 4.4.3. Some cells are blank where they should have zeroes, etc.
  • A certain DetermTable was evaluating to Undefined if its edit table has never been viewed since the model was loaded.
  • A certain DetermTable was not showing correctly until the model was saved and re-opened (when the Domain acts as self-index preference was checked).
  • In a certain model, a circular dependency is reported in the typescript when the model is loaded, but no circular dependency exists.
  • The result of a comparison (e.g., B=1 or B>1) no longer drops indexes when a zero-length index is present. Similarly, the evaluation of Table(zero_len,In1) now preserves In1 in the result.
  • The result of Concat([A],[B]), where Aand B are indexed by I, should be an array indexed by I and .K. When I is zero-length, the .K was missing, which would also cause any subsequent expression using res.K to have an error.
  • LogNormal(median:10%,mean:1%) crashes Analytica.
  • Uniform(date1,date2), where date1 and date2 are date-time numbers, now returns a sample of date-time numbers (not just numbers). This makes it convenient to pick a random date between two given dates without having to worry about number formatting (this applies just to the Uniform distribution, not to all distributions).
  • After duplicating a module containing a computed index and an edit table on that index, and then changing the length of the duplicated index, the duplicated table didn't splice correctly.

File Saving and Loading

  • In many models, the reformVal and reformDef attributes (which are used by Analytica internally to remember the pivot of edit and result tables) contain identifiers that don't exist any more in the model. When those models are loaded, those lines cause syntax errors that are reported in the typescript window. These don't impact anything, but they are confusing for users, so they have now been suppressed.
  • If you load a model created in Analytica 4.5 into 4.4.3, it fails to report that "this model was created in a newer version".
  • Immediately after adding a linked module to a new model, the File→Save menu option appears to save but doesn't ask for a filename. Apparenty the module was marked dirty (but shouldn't have been) and the model itself was not marked dirty (but should have been).
  • Fixed a problem in which files saved in encrypted form from 4.4.3 were not able to be loaded into earlier releases.
  • Fixed a problem that caused an unknown attribute warning when the model is loaded into an earlier release. Occurs when the model uses an attribute that had been added since the earlier release and where the attribute visibility had been changed in the Objects→Attributes... dialog.

Influence Diagrams

  • When you are in arrow-drawing mode when an error occurs, pressing [Edit Definition] would needlessly change out of arrow mode to edit mode.
  • When adding variables to a list by drawing arrows, sometimes the title is not treated as a handle (until the file is saved).

Result Tables and Graphs

  • When a sample contains some «null» values, the Min and Max statistics used to display as «null». This has been changed to display the Min and Max when the «null» values are ignored.
  • A bar graph with manual axis scaling was coming out blank in 4.4.3.

Clipboard and OLE Linking

  • When copying multiple nodes from one module to another, if an identifier appears in the TableCellDefault ("Cell Default") attribute of one object, and that object is also being copied, the identifier is now updated so as to preserve the same relative relationship that existed originally.
  • When the target table of an OLE link uses a computed index which itself depends on an OLE link from the spreadsheet (such as is the case with the "trick" demonstrated OLE Linking), the data sometimes did not refresh correctly. The problem is related to the order in which OLE links are refreshed. To make this reliable, Analytica 4.4.4 now ensures that links are refreshed in an order consistent with the dependency ordering between variables.
  • A changes to the UpdateLink attribute from typescript or a button script would cause the attribute to change be a "Automatic" link (even if you were setting its value to 3, which should be manual).
  • A crash when you try to OLE link to a table that is indexed by a domain index and which has been previous pivoted.

Libraries and Example Models

  • The CallOption and PutOption functions in the Financial Library would return NaN when the time to expiration is zero and the stock price equals the strike price.

Crash Recovery

  • Certain changes to domain attributes were not correctly recovered following a crash and crash recovery.


  • The Export command was not using the number format for the object being exported.


  • When you leave window maximized mode after loading a model that had been built by someone in maximized mode, the unmaximized windows would open very small.

Test new spreadsheet functions

  • Preliminary versions of two new functions, SpreadsheetInfo and SpreadsheetSetInfo, have been added. They are present for testing, but not exposed in Expression Assist. They are targeted for release with 4.5, and until then they are subject to change.

User Guide

  • Added info on how to create an identity matrix (@i=@j and unit vector Array(i,1) to the section on matrices.

Installer and Automatic Updates

  • If you started up Analytica while a download of a new patch release was in progress, but when the download had not yet completed, it would inform you that a new patch release "has been downloaded and is ready to install," and would indicate that you should press Yes or No, but only an OK button would appear.


  • When you use CAObject::GetAttribute("value") or CAObject::GetAttribute("probValue") to get the mid- or sample-value of a variable, and an evaluation error occurs when evaluating it, it was returning ErrorCode==1 ("Unimplemented"). The ErrorCode was wrong, it should have been (and now is) 62 ("Error evaluating expression").

You are not allowed to post comments.