--- ray/doc/man/man1/rcalc.1 2017/10/10 16:10:14 1.13 +++ ray/doc/man/man1/rcalc.1 2022/03/11 22:50:13 1.16 @@ -1,4 +1,4 @@ -.\" RCSid "$Id: rcalc.1,v 1.13 2017/10/10 16:10:14 greg Exp $" +.\" RCSid "$Id: rcalc.1,v 1.16 2022/03/11 22:50:13 greg Exp $" .TH RCALC 1 4/6/99 RADIANCE .SH NAME rcalc - record calculator @@ -9,7 +9,7 @@ rcalc - record calculator ][ .B \-l ][ -.B \-p +.B "\-p | \-P" ][ .B \-n ][ @@ -87,11 +87,18 @@ The .I \-p option specifies "passive mode," where characters that do not match the input format are passed unaltered to the output. -This option has no effect unless +If the +.I \-P +option is given instead, then valid input records that do not +yield a positive +.I cond +value are similarly passed to the output. +(See paragraph below.)\0 +These options options require that the .I \-i -is also specified, and does not make much sense unless +input format and .I \-o -is also given. +output format also be present. With both input and output formats, the passive mode can effectively substitute information in the middle of a file or stream without affecting the rest of the data. @@ -250,7 +257,10 @@ If is positive, output is produced. If .I cond -is less than or equal to zero, the record is skipped and no other expressions +is less than or equal to zero, the record is skipped (or passed to the +output if +.I \-P +is specified) and no other expressions are evaluated. This provides a convenient method for avoiding inappropriate calculations. The following library of pre-defined functions and variables is provided: @@ -270,8 +280,8 @@ This is an alternate way to get a column value instead the $N notation, and is more flexible since it is programmable. This function is disabled if an input format is used. .TP -.BR "if(cond, then, else)" -if cond is greater than zero, +.BR "if(test, then, else)" +if test is greater than zero, then is evaluated, otherwise else is evaluated. This function is necessary for recursive definitions. .TP @@ -285,6 +295,12 @@ is zero, the number of available arguments is returned .BR "rand(x)" compute a random number between 0 and 1 based on x. .TP +.BR "min(a1, a2, ..)" +return the minimum value from a list of arguments. +.TP +.BR "max(a1, a2, ..)" +return the maximum value from a list of arguments. +.TP .BR "floor(x)" return largest integer not greater than x. .TP @@ -324,7 +340,7 @@ inverse tangent of y/x (range \-pi to pi). To print the square root of column two in column one, and column one times column three in column two: .IP "" .2i -rcalc \-e '$1=sqrt($2);$2=$1*$3' inputfile > outputfile +rcalc -e '$1=sqrt($2);$2=$1*$3' inputfile > outputfile .SH ENVIRONMENT RAYPATH the directories to check for auxiliary files. .SH AUTHOR @@ -336,4 +352,5 @@ options, not in definitions. .PP Tabs count as single spaces inside fields. .SH "SEE ALSO" -cnt(1), ev(1), getinfo(1), icalc(1), rcollate(1), rlam(1), tabfunc(1), total(1) +cnt(1), ev(1), getinfo(1), icalc(1), rcollate(1), rlam(1), +rsplit(1), tabfunc(1), total(1)