Draw arrows to build models

Revision as of 23:56, 16 August 2007 by Max (talk | contribs) (new page copied and edited from release notes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

These new and improved features let you build and modify model expressions just by drawing arrows between variables -- without typing:

  • If you draw an arrow from index I to variable A defined as a Table (or a ProbTable, DetermTable), if I is not an index of A, it will ask if you want to add I as an extra dimension of A. If I is already an index of A, it will ask if you want to remove it.
  • If you draw an arrow from array A to B and A is already in the definition of B:
  • Deleting arrows or input variables: If you delete an arrow from A to B (select and press "delete" key, or just redraw an arrow), Analytica changes the definition of B. It used to substitute "expr" in place of A and surround the entire definition with FunctionOf(...). That was inconvenient and lost information about the former input. Now, if the Mid value of A is a scalar (single number or text), it substitutes it into the definition of B. Otherwise, it replaces A by '{A}' (a comment). Or if you delete A, it doesn't change the definition of B, but B will no longer parse, and its node is cross-hatched.
  • Auto definitions: If you draw an arrow from A to B:
    • If B is a list of zero or more variables not including A, or if B is a function call whose first parameters is such a list, it adds A into the list. For example
 B := Sum([X])
  draw an arrow from A to B
 B := Sum([X, A])
    • If B is a list of variables including A, or is a function whose first parameter is such a list, it removes A from the list. For example,
 B := Sum([X, A])
  draw an arrow from A to B
 B := Sum([X])
    • If B uses a function whose first parameter is an ellipsis (repeating) variable, it similarly adds A (or removes A if it is already there). For example,
Function ObjList(vars: ... Optional Variable)
B := Objlist(X)
   draw an arrow from A to B
B := Objlist(X, A)

Note: If you want Objlist to have no parameters, you must use the Optional qualifier along with "..." -- otherwise, the function needs at least one parameter.

    • If you draw an arrow from index I to and Edit table B, if B is not indexed by I, it askif you want to add I as an index. If so, it adds the index to the table, repeating the current value over each value of I. If B is already indexed by I, it will ask if you want to remove I as an index. If so, the new value of B will be the first slice of its old value over I. It will lose all other data.
  • When you drag a nodes into a module, or use the "Move to Parent" action, the location of the node in the module is not so crammed up so tightly in the top-left corner.
  • Undo also works for:
    • Move Into Parent
    • Move node(s) using the arrow keys
  • A couple UI glitches fixed: Stray compute button, result windows immediately recomputing after invalidation.
Comments


You are not allowed to post comments.