

                    CubiCalc (R)
                    Version 2.0
              HyperLogic Corporation



This file contains additional information beyond that contained in the
printed documentation accompanying the software.

If you have CubiCalc RTC or CubiCard, read README.TOO for more
information about programming with the RTC libraries.

If you installed example projects and programs, read EXAMPLES.TXT in the
EXAMPLES subdirectory.


I. GENERAL

First, CubiCalc requires Microsoft Windows 3.1 to run. If you do not yet
have a copy of Windows, you will need to acquire one.

In view of the above, you also need an IBM AT-type computer (80286 or
higher), with hard disk and at least 1 megabyte of memory. Hardware
floating-point assistance (such as 80287 or 80387 coprocessor chip) is
used if present. Since scenario execution is compute-intensive, fast
CPUs, coprocessor support, and ample memory help to accelerate
performance.

A setup program will install the software and sample projects into a
directory of your choosing and create Program Manager icons for the
CubiCalc program and for the sample projects.

Even though CubiCalc provides an intuitive graphical user interface, you
should not try to use it until you have read at least the first half of
Chapter 3 in the manual. This will summarize the many features provided
and help you understand what's going on. If you have no experience with
fuzzy logic, you should read Chapters 1 and 2 first.

If this copy of CubiCalc is an upgrade from an earlier version, be sure
to read the remarks under "UPGRADE" below.

If you want to request inclusion of specific features in future editions,
please contact HyperLogic technical support. Any comments you may have
about the product are welcome.

Should you require continued technical support, bug-fix updates, or
automatic upgrades to new versions after the initial 90-day warranty
period, fill out and return the Maintenance Order Form included with the
package (USA and Canada only) or contact HyperLogic Customer Service at
(619) 746-2765.


II. INSTALLATION

You must use the SETUP program to install CubiCalc. The files on the
distribution cannot be used in their compressed form. To run SETUP,
start Windows then use Program Manager's File/Run... command to run
A:SETUP or B:SETUP as appropriate.

The SETUP program will ask for a directory in which to install CubiCalc
and related files. It will offer you the option of installing examples
or not. Once you have finished looking at the examples, you may delete
the entire EXAMPLES subdirectory. None of the files in it is required to
use CubiCalc. You can also delete the tutorial support files CATRULES
and CATPOSN.100.

If you are upgrading from a prior version of CubiCalc, you can use a new
directory for version 2.0 or you can install the new version in your
existing directory over your old files. We recommend that you install in
a new directory so that you can easily delete unneeded files from the
old directory.

When you have finished installing CubiCalc, put your distribution disks
away for safekeeping. You may need to return them for updates or special
offers. Be sure to fill out and return your registration card. (There is
no registration card in update packages. Your registration is automatically
updated when you order the update.)


III. UPGRADE

CubiCalc version 2.0 is generally compatible with version 1.2, but there
are a few changes that will require that you modify your old projects.

The IF() function has been renamed to IIF().  IF is now used for conditional
blocks. You can use either IF or WHEN for conditional blocks in V2.0, but the
IF keyword is preferred. WHEN may be eliminated in a future version of
CubiCalc.

If you used the "tagged list" functions, you will need to create array
variables and modify the function calls to use arrays and the new array
functions. Read about the array functions on pages 131-134 of the
manual.

Release notes provided with upgrade packages list all of the changes
from V1.2 to 2.0. If you need details of changes from prior versions,
please contact HyperLogic Technical Support.


IV. CUBICALC.INI OPTIONS

Extra options have been added to the configuration file CUBICALC.INI.
These are not documented in the CubiCalc manual. If you wish to use
them, they should appear under the [CubiCalc] heading.

 LabelFont=(font_name)          the name of the font to use
 LabelFontSz=(size_in_points)   the size of the fonts in points

   These two items control the selection of the font to use for labels on
   plots and in the adjective editor display.  If no choice is given in the
   INI file, CubiCalc will use an 8-point Swiss-family (sans-serif) font.

 TabStops=(number_of_characters)

   This specifies the number of characters between tab stops in the
   text edit windows. If not specified, the default is 8.

 FileComments=(0 or 1)

   If 1, lines of a CubiCalc input data file that begin with the '#' character
   are comment lines, ignored during file reads. If 0, lines beginning with
   '#' are treated as data lines. The default is 1, which allows comments.

DotAdjLines=(0 or 1)

   If 1, inactive adjectives are drawn with dotted lines. If 0 or not present,
   inactive adjectives are drawn in gray if it is part of the current Windows
   color scheme, otherwise they are dotted. This also affects the bounding
   box in the 3D display; rear bounding box lines are either light gray or
   dotted.


V. EXAMPLE SCENARIOS

If you installed the example projects, they will be found in the
EXAMPLES subdirectory. Read the file EXAMPLES.TXT for information about
them.


VI. MANUAL CHANGES


Variables Editor Dialog

The manual's illustration for the Variables Editor dialog is out of date.
In addition to the controls shown, there are check boxes to enable display
of the various types of variables you might have.  A variable class appears
in the list box only if the corresponding box is checked.

This affects page 50 in the manual.

If you change the range of a fuzzy input or output variable, CubiCalc now
offers you an option for how the adjectives are changed. You can choose
to retain adjectives either in absolute terms or in relative terms. If
you retain them in absolute terms, they will be truncated or extended
as appropriate for the range change. If you retain them in relative terms,
they will rescale to the new range; thus the view in the adjective editor
will be unchanged except for the numeric X coordinates. The dialog that
appears when you change the variable range illustrates these choices.



Input File Comments

CubiCalc now allows text input data files to contain comments.  Comment
lines begin with the '#' character in the first character position.  You
should not end a file with comment lines, because CubiCalc will not be
able to correctly set the EndOfFile internal variable.  To ensure correct
operation of the EndOfFile variable and to avoid "premature end of file
errors", the last line of your text data file should contain data, not
comments.


Writable Fuzzy Outputs

The manual indicates that fuzzy output variables cannot be modified except
by the fuzzy engine.  This is no longer true.  Therefore, references to
this effect in the manual are incorrect.  However, if you choose the "Warn
about multiple assignment" option in Check Definitions, CubiCalc issues a
warning when an output is changed by an expression.

The following pages are affected: 33, 36, 52, 75, 115, 163.


Decision Surface Plots

The decision surface remembers the orientation and other display options
you select and uses them as the initial defaults for the next surface plot.
However, the default orientation is not saved when you use the dials in the
decision surface window, only when you use the dialog to set the orientation.
If you want to keep a particular position as the default for future surface
plots, use the Decision Surface display options dialog to set the altitude
and azimuth. An easy way to do this is to double-click the surface plot's
display area and then, in the dialog that appears, choose OK without
making any changes.

The Decision Surface is described on pages 66-69.


Rule Evaluation Options

At the bottom of page 98, the CubiCalc manual states that the third and
fourth standard options are equivalent when no two rules have the same
consequent. In fact, they are similar but not equivalent since they use
different defuzzification methods.

Note that, in all of CubiCalc's rule evaluation techniques, the fuzzy
inference step does not change the value of an output variable when no
rules were active for the variable.  If you don't want this behavior
and you have rules that don't cover every situation, assign a default
value to the output variable in Preprocessing.


Accelerator Keys for Interactive Window

The accelerator keys used with the interactive window are incorrect in
the manual.  The key combination for invoking the Project / Interactive...
menu command is Ctrl+I instead of Ctrl+N.  The key combination for
Options / Interactive Window is Ctrl+D instead of Ctrl+I.

This affects pages 176 and 185.


Help Menu and Tutorial

An additional menu item has been added under the Help menu. The 'Tutorial'
menu command starts the Windows help system with CBCTUTOR.HLP, a help file
containing tutorial instructions.  The DOGCAT tutorial discussed in the
printed manual (Chapter 8) is included.  An additional tutorial illustrating
the use of an input file for a decision problem (PICKER) is also present.
(The data file for the PICKER tutorial project is installed only if you
choose to install example projects when you run Setup.)

This affects page 180.


Matrix and Array Functions

There are several matrix functions within CubiCalc that are not documented
in the manual.  They are, however, documented in the on-line help.

  matadd(x, y, z) - add arrays

    matadd computes the sum of the arrays x and y and puts the result in z.
    The arrays can be of any legal size, but all must have exactly the same
    sizes in each dimension. matadd does not return a value, so you must
    CALL it.

  matcopy(x, y) - copy an array

    matcopy copies the array x into the array y.  The arrays can be of any
    legal size, but all must have exactly the same sizes in each dimension.
    matcopy does not return a value so you must CALL it.

  matdiag(s, y) - initialize diagonal matrix

    matdiag initializes the matrix y to the value s along the diagonal, and
    zero in all other cells.  The matrix can be of any legal size, but must
    be square, that is, both dimensions must be the same.  The scale value
    s can be any numeric expression.  matdiag does not return a value so you
    must CALL it.

  matinv(x) - invert a matrix

    matinv computes the inverse of the matrix (two-dimensional array) x,
    leaving the result in x.  The old value of the matrix is lost.  The
    matrix must be a two-dimensional array, with the same sizes in each
    dimension (i.e., a square matrix).  Not all square matrices have an
    inverse; the call can generate a run-time error if this is the case
    or if the matrix is "badly conditioned".  matinv does not return a
    value so you must CALL it.

  matscale(s, y) - scale an array

    matscale multiplies all the entries of the array y by the scalar s.
    The array can be of any legal size.  The scale value s can be any
    numeric expression.  matscale does not return a value so you must
    CALL it.

  matsub(x, y, z) - subtract arrays

    matsub subtracts the array y from the array x and puts the result in z.
    The arrays can be of any legal size, but all must have exactly the same
    sizes in each dimension.  matsub does not return a value so you must
    CALL it.

  mattrans(x, y) - transpose a matrix

    mattrans puts the transpose of the matrix x into the matrix y.
    The row dimension of matrix x must be the column dimension of matrix
    y, and the column dimension of matrix x must be the row dimension of
    matrix y.  mattrans does not return a value so you must CALL it.

  norm1(x) - compute the L-1 norm of an array

    norm1 returns the L-1 norm of the array x.  The L-1 norm is the sum of
    the absolute values of the elements.  The array x can be any legal size.

  norm2(x) - compute the L-2 norm of an array

    norm2 returns the L2 norm of the array x.  The L-2 norm is the square
    root of the sum of the squares of the elements.  The array x can be
    any legal size.

  normsup(x) - compute the L-infinity norm of an array

    normsup returns the L-infinity norm of the array x.  The L-infinity norm
    is the largest of the absolute values of the elements.  The array x can
    be any legal size.



VII. U.S. GOVERNMENT RESTRICTED RIGHTS

This software and documentation are provided with RESTRICTED RIGHTS.
Use, duplication, or disclosure by the Government is subject to
restrictions as set forth in subparagraph (c)(1)(ii) of The Rights
in Technical Data and Computer Software clause at 52.227-7013.
Contractor/Manufacturer is HyperLogic Corporation / 1855 East Valley
Parkway, Suite 210 / Escondido, CA 92027.



CubiCalc is a registered trademark of HyperLogic Corporation.

Copyright (C) 1990-1994 HyperLogic Corporation. All rights reserved.
ToolBook Runtime is Copyright (C) 1991 Asymetrix Corporation.
Visual Basic Runtime and setup toolkit Copyright (C) 1991 Microsoft Corporation.

