FARITH - File ARITHmetic -- perform
simple arithmetic with binary files
farith <infile
>outfile [optional parameters]
Optional Parameters:
in=stdin input
file
out=stdout output
file
in2= second input file (required for binary
operations)
if it can't be opened as a file, it might be a scalar
n=size_of_in, fastest dimension (used only for op=cartprod is set)
isig= index at
which signum function acts (used only for
op=signum)
op=noop
noop for out = in
neg for out = -in
abs for out = abs(in)
scale=1 for out = in * scale
exp for out = exp(in)
log for out = log(in)
sqrt for out = (signed) sqrt(in)
sqr
for out = in*in
pinv for out = (punctuated) 1 /
in
pinvsqr for out = (punctuated) 1
/in*in
pinvsqrt for out = (punctuated signed) 1 /sqrt(in)
add for out = in + in2
sub
for out = in - in2
mul for out = in * in2
div
for out = in / in2
cartprod for out = in x in2
requires: n=size_of_in, fastest
dimension in output
signum for out[i] = in[i] for i<
isig and
=
-in[i] for i>= isig
requires: isig=point where signum
function acts
Seismic operations:
slowp for
out = 1/in - 1/in2 Slowness perturbation
slothp
for out = 1/in^2 - 1/in2^2 Sloth perturbation
Notes:
op=sqrt takes sqrt(x) for x>=0 and
-sqrt(ABS(x)) for x<0 (signed sqrt)
op=pinv takes y=1/x for x!=0,
if x=0 then y=0. (punctuated inverse)
The seismic operations assume that in and in2
are wavespeed profiles.
"Slowness" is 1/wavespeed and
"sloth" is 1/wavespeed^2.
Use "suop" and "suop2" to perform unary and
binary operations on
data in the SU (SEGY trace) format.
The options "pinvsq" and
"pinvsqrt" are also useful for seismic
computations
involving converting velocity to sloth and vice versa.
The option
"cartprod" (cartesian product) requires also that the
parameter n=size_of_in be set. This will be the fastest dimension
of the rectangular array that is output.
The option "signum" causes a flip in sign for all values
with index
greater than "isig" (really -1*signum(index)).
AUTHOR: Dave Hale, Colorado
School of Mines, 07/07/89
Zhaobo
Meng added scale and cartprod, 10/01/96
Zhaobo
Meng added signum, 9 May 1997
Tony
Kocurko added scalar operations, August 1997