8 Dimensional (or so) AnalytiCalc This document is meant to describe some of how a variant of AnalytiCalc that supports multi-dimensional access might appear. Basically, the existing storage can be handled, not only as a 2 dimensional array, but as an n dimensional one, where n may be up to some reasonable limit (7 or 8, let's say). A command would be added to define dimensionality of the matrix, so it might be done inside the S command (where questions are free form), and could ask for dimensions (col, row, page, hyperpage, superpage, ...) of the equivalent storage area. The actual storage would be ALIASED by these dimensions and cells could be referenced as something like P#(d1,d2,d3,d4,d5...) by modifications to VARSCN (and probably nowhere else) (if use of "(" and ")" causes trouble then the "{" and "}" chars could be substituted without messing much up, I think. But I'd try normal parens first. The usual Fortran type formulas for computing a one dimensional alias address could be used. Command syntax would need to have added options mainly in XQTCMD. Ranges would need the ability to be spec'd as: V1;V2:V3 instead of only V1:V3. This would mean that the interval between V1 and V2 would specify the increment of the cells to use (permitting generalized diagonals) and V3 would be the last cell (or a limit cell) to be used. A fair amount of XQTCMD logic needs to be altered to make this work. At least the following commands would be needed: (in addition to what comes free by the VARSCN mod) CR inrange outrange ; with multidim. ranges OAM and ORM cell;cell;cell ; Specifies to set part of display ; to point to a hyperplane of cells specified by the three-cell ; range, where the cells would define a plane (being at three ; corners of the plane, so the command OAM A1,B1,A2 ; would be equivalent to OA A1 ; exactly. Ranges of 3-cell types would have to be supported inside multi-argument functions as well as the present 2-cell ranges. DF c1;c2:c3 [format] would have to be supported too. PP and GP functions could be used as is (restricting generality) and the dimensions would need a usually-adequate default value set. However, dimension aliases need to be saved/restored. This means at least minor alterations in save format. Possibly consideration of 2 dimensional sums etc. should be taken too... N.B. - It may be important to support this for only 4 or so dimensions, whose sizes could be (on a sheet of 80 by 400 size) 20 col by 50 rows by 8 planes by 4 hyperplanes This appears pretty modest, but is a LOT of cells and likely to be useful. One would want to ensure that the number of cells generated by the dimensions given fit in the storage available. This could be built into the S option questions. The notation for cells P#(d1,d2,d3,...) follows from the fact that dimensions are treated "equally" and where there are more than two, the paradigm does not help. Glenn Everhart 8/13/1987