Analytica 4.3.3 Patch Release Notes

The Analytica patch release 4.3.3 is a bug fix patch. This page lists the fixes since release 4.3.2. We don't believe any of these fixes have potential to break models developed in 4.3.2.

Tool Tips

  • Tool tip controls were not working at all under in the 4.3.2 release. These were restored, and include:
    • Tool tips describing toolbar buttons
    • Error messages when bad values are entered into lower or upper domain bounds
    • Error bubbles on edit table cells when domain or check bounds are violated
    • Bubbles showing the coordinate of a graph point when you click the point on a graph

This problem is pretty major, and for this bug alone, we highly recommend installing the 4.3.3 patch if you are using 4.3.2!

Built-in Functions

  • Sequence(start,stop) and the sequence operator (start..stop) were enhanced to allow certain textual values for start and stop. In particular:
    • Single-character ASCII sequences: e.g., 'a'..'z' or Sequence('A','Z',2)
    • Spreadsheet column sequences: e.g., 'A'..'BC' → ['A','B',...,'Z','AA','AB',...,'AZ','BA','BB','BC']
  • When Sequence(date1,date2,step) was used with a fractional step, the actual sequence would land on integer-step boundaries. An example was when Sequence(1-Jan-2011, 1-Feb-2011, 1/24) was attempted to produce an hourly sequence (note: The preferred way to do this is: Sequence(1-Jan-2011, 1-Feb-2011, dateUnit:'h')). Sequence was fixed to honor these fractional increments on a date sequence where they are unambiguous. An error will result if you do this using a «dateUnit» of 'Y' (year) or 'M' (month), since it then becomes ambiguous as to exactly what the duration of 0.5 years or 0.5 months is.
  • Dynamic
    • When two dynamic loops based on two (or more) different dynamic indexes intersect (i.e., a multi-dimensional recurrence), and one of those indexes has >255 elements, an internal error resulted in some cases, which has been fixed. These multi-D recurrences are pretty rare.
    • Fixed an erroneous domain out-of-bounds warning stating that Undefined is not consistent with domain bounds when a Dynamic variable had domain bounds specified.
    • When the recurrence of a Dynamic is a comparison, e.g., Dynamic(true,Self[Time-1] <= B), the result table was displaying as comparisons, where a cell would contain e.g., {!} 1 <= 0, rather than 0. This is supposed to happen for constraint nodes, but it was happening for normal variable nodes also. Now Dynamic non-constraint nodes with a comparison for a recurrence display as 0 or 1.
  • Fixed an internal error that occurred in a slice-with-offset involving local indexes of the form A[@.I=@A.I-1].
  • CondMin and CondMax -- conditional min and max -- can now be used with a named-parameter syntax, where formerly this was not possible.
  • MdTable would issue an error when the 4th parameter was e.g., [ Handle(I), Handle(J) ]. (Note: it expected just [I,J]). This was generalized to accept computed handles such as a call to the Handle function.
  • When the «discrete» parameter is explicitly specified to functions Pdf or Cdf, and is array-valued with some columns marked as discrete and others a continuous, the set of values collected into the .PossibleValues index for the discrete portion of the result would previous collect all unique values, but now collects only the unique values in the discrete slices. Note that in general, you really would never want to use Pdf or Cdf on a mixed discrete/continuous result, since the result will contain .PossibleValues index for the discrete part as well as the .Step and DensityIndex indexes for the continuous part, which is a bit strange.

Library Functions

  • The Dens_* functions, such as Dens_Normal, Dens_Beta, etc., found in the Distribution Densities.ana library, will now accept Null values for their parameters. The resulting density value will be Null in these cases. This makes it easier to apply these density functions to data sets containing missing values.


  • When certain numbers were entered into a table cell, input box or definition field, they were being parsed as dates, even though they were clearly numbers. While 4.3 does try to recognize when a date has been entered and then interpret it as a date, in these cases its interpretation as a date was too liberal. The cases here involved numbers entered with thousands separators, such as 1,002,003, between 1 and 12 million, where the next two fields appeared to be valid day and year values. In this example, it was being parsed as 2-Jan-2003. This has been adjusted so that numbers in this form are parsed as numbers, not dates.
  • The result of the DateAdd was sometimes a standard numeric value, rather than a date-time number.


  • Fixed a crash that could result when an out-of-memory condition is experienced during the computation of a discrete probability mass or cumulative probability display.

Influence Diagram

  • Eliminated stray arrowheads that would show up incorrectly on nodes after a portion of a table had been copied to the clipboard.


  • Fixed a crash during Copy Table

Function Finder

  • When your definition was of either of the forms Subscript(A,I,x) or A[I=x], and you opened the function finder, it would open to the Subscript function. Now it will open to the ident[I=x] entry for A[I=x]. When you pressed OK, it would previous change a A[I=x] definition to Subscript(A,I,x) (not surprising since that is what was selected). Now, of course, it leaves it in its original form.
  • When an A.I expression was used in a context where A could be omitted, such as A[.I=x], which is shorthand for A[A.I=x], the index part would be mangled in the function finder. You would end up with A[Undefined.I=x], which would then result in an error. This case is now handled.

User Guide

  • The file name for the User Guide was changed to UserGuide.pdf. Previously it had been UsersGuide.pdf, which is inconsistent with its official name, which does not contain an "s".

You are not allowed to post comments.