ca - calculate a new set of values for a stack		Matthew Miller


ca "#1=#2" ns:2			copy stack 2 into stack 1
ca "#1=#1*4" ns:1		multiply each channel in stack 1 by 4
ca "#2=#2+#1 #3=#3+#1" ns:3	add stack 1 to both stacks 1 and 2
ca "#1=-ln(1-#1/#2)" ns:2	set stack 1 to tau if stack 2 is ex temp
ca "?!"				get further documentation about the

Ca takes a function expressed in terms of the global numeric variables '#1',
'#2', and '#3'.  It then steps through the data, channel by channel, assigning
the value in stack 1 to '#1', the value in stack 2 to '#2', the value in
stack 3 to '#3', and executing the given function.  After the function has
been executed, ca assigns the value in '#1' to stack 1, '#2' to stack 2, and
'#3' to stack 3.

The number of stacks to use may be limited by changing 'ns'.  If 'ns' = 1 then
only stack 1 is used, and stacks 2 and three are untouched.  If 'ns' = 2 then
stacks 1 and 2 are used, and stack 3 is untouched.  If 'ns' = 3 then all three
stacks are used.  Only the overlapping channels of all the stacks used are
accessed. The stacks are shifted so that their center channels are lined up.

The formula is a string and is sent to the general command parsing routine;
thus it is possible to use all of the functions available for inputing real
numbers.  Different assignment expressions may appear within the string 
separated by commas or spaces.

Ca will not use sections of the spectrum for which the use array is not
set (i.e., the regions where there is no horizontal line under the x-axis).

This document was last updated on Tue Oct 17 16:24:05 EDT 2000 by Marc W. Pound.