What's new in Analytica 6.2?
This page lists enhancements and more notable bug fixes in Analytica or ADE release 6.2 since the previous Analytica 6.1 release. Release 6.2 is a minor release, mostly addressing minor bug fixes, and is expected to run models saved in the previous release just fine.
Because our ACP server is running release 6.2, you'll see a warning if you are still running release 6.1 or earlier on your desktop when you open a model that was saved then downloaded from ACP -- specifically, the warning: "You are opening this model with Analytica 6.1.0, which is an older release than the release 6.2.0 from which the model was last saved." By upgrading Analytica on your desktop, you can avoid this warning
Sometimes during a subscription renewal activation, an extra quotation character was written to the license file, causing the renewed license to be unrecognized.
In-memory binary data
This release improves the capability to manipulate binary data terms (aka "blobs") in memory.
The need to manipulate binary data arises when you encounter custom binary data formats. The contents of these files are generally unreadable to humans, but your model may need to access their contents, or may need create the contents of a binary data file. Binary formats are also the fastest way to get large amounts of data into or out of Analytica's memory due to the fact that numbers do not need to be parsed from a textual form into the binary form used for calculations; hence, some models make use of binary format for improving load-time speed.
The ability to access binary data files is not new to this release -- ReadBinaryFile and WriteBinaryFile were introduced in Analytica 5.0 -- but the new functionality enables you to copy binary content into in-memory binary data terms that you can then treat as if they were binary files, but in memory instead of on disk. When reading binary data formats, you often need to make many different reads from different locations in the file. The new functionality enables you to replace multiple calls to ReadBinaryFile (which have extra overhead of having to open and close the file with each read) with calls to the new GetFromBinaryData function, which is parameter-identical to ReadBinaryFile except that is reads from an in-memory binary data term instead of from disk. When your model runs on ACP, it is especially important to read into memory once so your user isn't asked repeated to upload the same file over and over.
This release also introduces Base64-encoded binary term literals, which provide a representation of binary data terms ("blobs") that can appear in an expression. The enables Analytica's Assignment operator to copy binary data to a definition since it can now represent the binary data directly. This means it is also possible to embed the contents of a binary file in your Analytica model. This can be leveraged to improve model start-up speed (when it needs to load lots of data), or make a binary file accessible to your users who don't have an Enterprise or Optimizer edition.
The following changes and additions in 6.2 provide these new capabilities for manipulating binary data terms:
- ReadBinaryFile: The «typeFlags» parameter has a new option (7) which reads the file contents into an in-memory binary data term. If you specify a «bytesPer» size, you can read it in as fixed-sized binary chunks.
- WriteBinaryFile: Also has the «typeFlags» option of 7 (raw binary), which writes binary term contents directly to the file without any surrounding type information, etc. Your file ends up with exactly the contents of your in-memory data term, or with the byte-concatenation of data terms when applied to an array of data terms.
- GetFromBinaryData: A new function which is parameter-identical to ReadBinaryFile, but reads from in-memory binary data terms instead of from files on disk. This is the primary mechanism for accessing the internals of an in-memory binary data term.
- WriteBinaryFile and ReadBinaryFile with «typeFlags» set to 4 (Value) can write/read arrays containing numbers, nulls, dates, text and now also binary data terms. This option is often used to write & read large data sets to/from files quickly.
- BinaryDataSize: This new function return the number of bytes in an in-memory binary data term.
- TypeOf: Returns "BinaryData" when applied to a binary data term.
- Base64-encoded binary term literals: A representation of binary data that can appear directly in expressions. It uses the industry standard base64-encoding.
- The Assignment operator can copy a binary data term to a definition as a base64-encoded literal.
- GraphToCanvasCoord() ignored the «cluster» parameter when swapXY was on. This impacted the location of data labels in a clustered horizontal bar graph.
- Added an optional parameter «resultIfNoVariation» to RankCorrel( ) and Correlation( ), which is the value returned when one or both values has no variation (or fewer than 3 points). "Make Importance" sets this parameter to 0 it its call to RankCorrel.
- CanvasDrawLine crashed when color was an array.
- UncertainLMH reported an error when parameters were Null, instead of just returning Null.
- When the imaginary part of a number is INF, 1/z sometimes evaluated to NAN + NANj, changed it to 0.
- Added a graph axis hover icon for "include zero" or "don't include zero" (depending on the current setting).
- Fixed an Internal type mismatch error when constraint has text instead of numeric Right Hand Side.