Analytica 4.0 beta Release Notes

(Back to Beta Tester Page)

These Release Notes apply to Build 4.0.0.54, 14 Aug, 2007.

Installation Notes

  • Analytica 4.0 can coexist with Analytica 3.1 on the same computer. Thus, you can install Analytica 4.0 beta while retaining Analytica 3.1. After installing 4.0, a double-click on a x.ANA file will run the model in 4.0. To run a model with 3.1, start Analytica 3.1, and use the Open Model... option from the File menu to select the model.
  • If you uninstall Analytica 3.0 or 3.1 after installing 4.0, it will wipe out the 4.0 registry tree. So, you will need to re-run the 4.0 installer.

Upward compatibility for Models from Analytica 3.1

Most models created in Analyica 3.1 load and evaluate fine in 4.0. We hope beta testers will check that 4.0 works and gives the same results as 3.1 -- unless there is a good reason why they should be different. There are two areas where you should expect results to be different:

  • Graph settings: Some Graph Setup options will not transfer to 4.0, because 4.0 offers different (and much richer) graphing options. For example, settings for axis ranges in 4.0 may attach to the Index rather than the graph. So, expect to do some tweaking of graphs -- and to enjoy the new options.
  • 0*NaN and 0*INF: Analytica 4.0 supports the IEEE 754 Binary Floating Point Arithmetic standard: Thus 0*NaN or 0*INF return NaN. In 3.1, the result was zero. If your model took advantage of the old behavior to zero out NaNs or INFs, you may find NaN or Null in downstream results that were not there in 3.1. If you check Show result warnings in the Preference dialog, it will warn you if your model relies on the old behavior and help pinpoint where this occurs.

See Changes in 4.0 that could impact 3.x models for a more comprehensive list.

Not working yet

  • Auto recovery does not correctly recover "Add Linked Module" actions. Some problems after "Add Module". OLE links are not re-established. In the latter two cases, saving the model after crash recovery, then reloading should fix the problem. It is best to save after adding a module or library, rather than relying on auto recovery.

Changes in 4.0.0.56

(Since 4.0.0.54)

Some minor bug fixes not listed here.

Influence Diagrams

  • When you remove an arrow by redrawing it, if the definition is impacted, a confirmation dialog now appears before deleting it.
  • An experimental functionality when you delete an arrow from a scalar variable to another variable has been disabled. Suppose you delete an arrow A → B, and A's Mid-value is a scalar. The experimental functional replaced occurrences of A in B's definition with the actual scalar value, so that B's definition remained value. For example, if B is defined as Sqrt(A)+A, and A is 7.2, then when you delete A→B, the definition would be re-written as Sqrt(7.2)+7.2. This functionality has been present for several months in 4.0 beta on a tentative basis to see if people thought it desirable or undesirable. The verdict: disliked.
  • The feature that automatically comments input variable indentifiers in definitions when an arrow is deleted has been extended to work even when the definition does not succcessfully parse. This allows it to work when arrows are deleted in succession. For example, suppose C := A+B. When you delete the arrow A→C, the definition becomes {A}+B, which no longer parses. If you now delete the arrow B→C, the definition will be re-written again to become {A}+{B}. (Previously, the definition wasn't changed if the arrow deletion took place on an unparseable definition).
  • With a single node selected on a diagram, the dialog Uncertainty Settings... (or CTRL-U) now applies to that selected node. (Previously, you had to be in a result view to set the variable's own settings).

Sensitivity Analyses

  • Make Importance now defines the index as a list of identifiers, rather than as a self-indexed table. This has several advantages. For example, you can press CTRL-Y when viewing the result to toggle between viewing the identifier or title of the inputs. Also, you can double click on the identifier from the result table to jump directly to the input variable.

Functions & Evaluation

  • JoinText(A) can now be used on a list, to perform the join over the implicit index. Use the syntax
 JoinText(A,separator',')

or

 JoinText(A,,',')

to specify a separator without specifying the index.

  • When an optional index parameter is omitted to common built-in functions, like Sum or Max, the operation should occur over the implicit index (if there is an implicit index). For example:
Max( [A,B] )

takes larger of the values in A or in B, cell-by-cell -- the maximum is taken over the list-dimension. The recognition of which dimension is explicit has been extended to be a bit smarter. So, for example, if you write:

Var C := [A,B] Do Max(C)

it will recognize the list dimension as the implicit dimension. In this example, C can also be used explicitly, as in Max(C,C), to disambiguate the index being operated over. Because that was possible, Analytica did not always treat C as the outer-most dimension when it was named in this fashion. This enhancement ensures that Analyica recognizes that C is an implicit dimension in a case like this, even though it can also be used explicitly. Note: If you were to write

Fn(Var C := [A,B] Do C)

then inside the body of the Var..Do, C can be referred to explicitly where an index parameter is expected. But, once that value leaves the lexical context of the Var..Do, it can no longer be used explicitly, and thus would be an implicit dimension. So the parameter passed to Fn, the dimension corresponding can no longer be referred to by name, and is then implicit. (This has not changed). If you wanted it to remain explict outside of the lexical context, then you would use the Index..Do declaration.

  • The previous bullet also extends to user-defined functions with a parameter declared as List. For example:
 Fu1( L : List )

iterates over any explicit dimensions of the parameter, so that inside the function, L has only the implicit (list) dimension. A call like this remains uneffected:

 Fu1( [A,B] )

But in a call like this:

 Var C:=[A,B] Do Fu(C)

C was not previous recognized to be an implicit (list) dimension, while now it is.

Graphing

  • The font face for axis labels can be set to "(same as axis titles)". Similarly for key titles and key labels. Graphical artists recommend that a single font face be used for all labels on a graph, so it is normal to have all these the same, and this default setting allows the face to be controlled normally via a single selection. Previously, this option was presented as a blank selection, but all font attributes (size, bold, italics) were inherited when this was selected. Now only the face is, and size or style can be different while only face is being inherited. However, our internal QA found that some remnants of the old inheritance still remain -- we'll fix these for the next build. (If these get in your way, just select the font face explicitly instead of using same-as for now).

ADE

  • A problem in 4.0.0.54 made it impossible to add a reference to ADE from a new project in Visual Studio. This has been fixed.

Previous Beta Builds

Comments


You are not allowed to post comments.