What's new in Analytica 6.3?
Note: The current release is Analytica 6.4
New features and notable bug fixes in release 6.3 of Analytica and ADE since the previous Analytica 6.2 release.
Slider controls
The new sliders are user inputs letting you pick a value by dragging a pointer ("thumb") along a scale. These values can be continuous or discrete numbers, or even text. You can select one value, an interval, or multiple values. You can use sliders in an Edit table. Sliders have many style and color options. See Slider controls for more.
Color Themes Library
The new Color Themes Library lets you apply themes to your models -- including a coordinate sets of colors for diagram nodes and background, and for graph colors . Try these new 2023 Dark and 2023 themes:
Show/Hide Attributes
It's now much easier to select which attributes to show for each object -- for example, to view or edit less common attributes, such as OnChange, OnClick, . In an Object Window in Edit mode, click the Show/Hide icon in the bottom left corner to see a menu from which you can choose which attributes to show (or not) for the current object only.
In an Attribute pane below a diagram in Edit mode you can also select which attributes to show or hide from the More ▸ submenu:
You can still use the Attributes dialog from the Object menu to control which attributes to show by default for all objects. These new object-level Attribute settings override the default visibility set in the Attributes dialog, but only for that object.
Arrows
Dashed and sticky arrows
Somtimes it's useful to show a qualitative or potential influence of node A on B even though A isn't (or isn't yet) in the Definition of B. When you draw an arrow from A to B, it now appears as a dashed line (a "display arrow"). It becomes a solid line when you include A in the Definition of B.
If you want to retain a dashed arrow from A to B even when you define B without explicitly mentioning A, you can make it "Sticky", such as as in the Alignment probability
node above. To make an arrow Sticky, right click on the arrow line in edit mode, and select Sticky:
Changing defaults
If you don't like the new default dashed display arrows that appear before you include a source node in the definition of a destination node, you can revert to the previous sold arrows using a Typescript. (Note: Key F12 to show the Typescript window ).
To restore the original default solid lines, enter:
att_arrowproperties::displayDashStyle arrowclass:0
To use to the new default dashed lines, enter:
att_arrowproperties::displayDashStyle arrowclass:1
No arrows to unused alias nodes
Analytica no longer shows an arrow from a variable X nodes to a module M that contains an alias of X (and no other variable influenced by X). When you draw an arrow from a variable to module M, it no longer adds an alias in M, but shows the ipotential influence as a dashed display arrow.
For backward compatibility, it shows a display arrow from a variable to module for legacy models that showed them even when you run the model in Analytica 6.3.
Arrow to system variable alias nodes
Sometimes it's useful to show an alias of a system variable. (Select the system variable and use CTRL-M or Make alias..." from the Object view of the system variable.) Analytica now shows arrows to aliases of system variables:
Built-in functions
New built-in functions
returns the largest representable number smaller than «x». Useful in some algorithms that must contend with round-off errors.
Log(x, b)
: The logarithm to an arbitrary base «b». The default when you omit «x» is the natural logarithm, base e.Relu(x)
: Returns 0 when «x» is negative, «x» otherwise. (Becoming common in other languages.)NextFloatToward(x, to)
: Lets you increase or decrease a floating number «x» by epsilon, the smallest increment possible in the computer representation. When «to» > «x», it returns the smallest representable number larger than «x». When «to» < «x»,
Enhancement to existing functions
- TextCharacterEncode: The new «type» option
'characterName'
let's you use Extended characters, e.g.:
TextCharacterEncode( 'Psi', '-characterName'
→'Ψ'
- RankCorrel and Correlation: The newoptional flag «resultIfNoVariation» let's you provide a result to be returned when a value is invalid because it has fewer than 3 numbers.
- Make Importance sets «resultIfNoVariation» to 0, eliminating some annoying NaN and Chance nodes with no uncertainty spread.
- MdTable conveniences:
- Where before you had to define global indexes separately for use by MdTable, you can now define each index using
ComputedBy(X)
, whereX
is the name of the variable that calls MdTable. The index will bet set to the sorted unique values from the corresponding column. - If you don't provide a global index, MdTable can automatically create a local target index for any of you required target indexes. Again it will be defined as the sorted unique values from the corresponding column.
- MdTable can now ignore any coordinate column if you specify Null in the corresponding entry to the «vars» parameter.
- When the input relational table does not have a Value column, MdTable can return a count of the number of rows matching each cell in the result. You set «valueColumn» to Null, or set «vars» to a list all the indexes but without a Value column. Set «conglomerationFn» to 'Count' .
- «vars» can be indexed by «Cols». In this case, «valueColumn» can be any column or 1-D array of columns -- i.e., the index columns don't have to come first). For example,
MdTable(T, Row, Col, '.'&Col )
- automatically creates a local index for each column of your relational table. This makes it easy to do a quick transformation without having to set up all the index variables as locals or globals.
- Where before you had to define global indexes separately for use by MdTable, you can now define each index using
- NumberToText and CellNumberFormat functions have an optional «showZeroImPart» parameter to control whether to show the imaginary part of complex numbers.
- Formatted Text Literals format flags now include
'j'
and'J'
for the imaginary part of a complex number.
Graphing
Plot Axis Thresholds
The OnGraphDraw annotations library now incudes a Plot_axis_thresholds function.
Area Fill Line Option
There is now a graph setting option to turn off the border line in an area fill plot. To change this, go to Chart Type tab of the Graph setup dialog#Chart_Type_tab,, and appears when Area Fill is on.
Without Border | With Border |
---|---|
Evaluation
- These expressions are normally prone to underflow when x is very small (especially when abs(x)<1)
- Removed an automatic conversion of a complex number to a real number when its imaginary part is zero.
- By convention, you have always been able to compute a complex function
f(z)
whenz
is complex even when EnableComplexNumbers is off. For example,Ln(-2-3j)
. But this convention would fail withLn(-2+0j)
, since that would evaluate asLn(-2)
, which issues a warning and returns NaN (unless EnableComplexNumbers is on), which made the convention somewhat inconsistent.
- By convention, you have always been able to compute a complex function
- Added a number format flag to control whether a zero imaginary part is printed for a complex number. For example, when it is on it might print
5+0j
for a value of 5 with a data type of ComplexNumber.- In typescript or assignment, the flag can be set using:
NumberFormat::showZeroImPart of Va1 := 1
- In the Number format dialog, appears as a new checkbox named Show complex number im part when it is zero.
- Controllable in a Formatted Text Literal with
'j'
(to show, e.g. 5+0j) or'J'
(to hide, e.g., 5). - New option parameter «showZeroImPart» to NumberToText and CellNumberFormat functions.
- In typescript or assignment, the flag can be set using:
UI Fonts
Font fallback for Unicode characters
Extended Unicode characters that are not available the current font now “fall back” to use a different font that includes the character instead of appearing as a box (e.g., ▯).
Configuring default fonts
You can change the default fonts used by the UI via these registry settings
{HKLM,HKCU}/SOFTWARE/Lumina Decision Systems/Analytica/6.3/UI Font
{HKLM,HKCU}/SOFTWARE/Lumina Decision Systems/Analytica/6.3/UI Fixed Font
You can list several font names separated by commas. The first font in the list that is installed on your computer is used. At this time, this is intended mostly for our internal experimentation.
Typing extended characters
You can now type an extended character that does not correspond to a key on your keyboard by using its name. Press a backslash (\), type its name, then press the TAB key. You can also type a character using its hexadecimal code. For example:
\sigma[TAB]
➝ σ\+22ed[TAB]
➝ ⋭.
Misc
- The Attribute menu now includes List of Text as an option for a Constant node.
- Can copy/paste a node icon image.
- A Expression Assist works in the Typescript Window, along with parenthesis matching, extended character entry and syntax coloration during entry. At this first cut, it only knows about expression grammar (not typescript-specific syntax nor command parameters and descriptions).
- The preference setting "Flag nodes w/descriptions" has been inverted to "Flag nodes without descriptions".
- Added the option 'Hide in Browse'/'Unhide in Browse' to the right click variable context menu This has the same effect as ChangeNodeVisibility(handle(node),'Hidden in browse'). Requires Analytica_Enterprise or better.
- Choice nodes now accept 'Null' for the
n
parameter. - Changed the caption for the File menu > Import dialog to 'Import data or image from file'.
Preview: Data import and transformation
These features make it much easier to import data from a CSV file or image file, and transform from a relational table to a multi-dimensional array. They are currently "preview" features in build 6.3 -- not quite finalized or fully documented. Some may only become "official" in release 6.4:
Import data from a csv file or image file
Select the new Import... option from the File menu to:
- Import a
*.csv
file into a diagram (with no nodes selected), which automatically adds a new variable and its required indexes as new nodes. - Import from
*.csv
file into an edit table - Import an image file into a diagram, which automatically creates a new Picture node.
- Import an image as the icon image into a selected node
- Import a
Split a table into variables for each column
When you select a column from an edit table or result table in edit mode, the right-click context menu has a new option New variable from column.... It makes a new variable using the values from that column (so without the Column index). This is convenient when you have an imported table with different columns that mix different quantities together, and you want to split them into separate variables, which is a best practice in Analytica.
Convert relational table to multiD array
This wizard makes it much easier toconvert imported data from a relational table to a multidimensional array without having to write code using MdTable and manually create the new indexes. When viewing a relational result table in edit mode, the new Relational table to array... option on the right-click context menu, opens a wizard dialog to help convert the table into a multidmensional array. It generates a new variable defined using the MdTable function, along with any needed extra indexes, local or global.
Enable comment auto-refresher