<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ahay.org/index.php?action=history&amp;feed=atom&amp;title=Documentation%3Asystem%2Fmain</id>
	<title>Documentation:system/main - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ahay.org/index.php?action=history&amp;feed=atom&amp;title=Documentation%3Asystem%2Fmain"/>
	<link rel="alternate" type="text/html" href="https://ahay.org/index.php?title=Documentation:system/main&amp;action=history"/>
	<updated>2026-05-24T21:29:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.7</generator>
	<entry>
		<id>https://ahay.org/index.php?title=Documentation:system/main&amp;diff=2452&amp;oldid=prev</id>
		<title>Sfomel: Created page with &quot;Let us improve self-documentation of Madagascar programs!  Listed below are selfdocs for programs in system/main (generated with sfdoc). Please edit the descriptions to make t...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ahay.org/index.php?title=Documentation:system/main&amp;diff=2452&amp;oldid=prev"/>
		<updated>2013-02-11T17:31:16Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Let us improve self-documentation of Madagascar programs!  Listed below are selfdocs for programs in system/main (generated with sfdoc). Please edit the descriptions to make t...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Let us improve self-documentation of Madagascar programs!&lt;br /&gt;
&lt;br /&gt;
Listed below are selfdocs for programs in system/main (generated with sfdoc). Please edit the descriptions to make them more complete and/or easier to understand.&lt;br /&gt;
&lt;br /&gt;
==sfadd==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Add, multiply, or divide  RSF datasets.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfadd &amp;gt; out.rsf scale= add= sqrt= abs= log= exp= mode= [&amp;lt; file0.rsf] file1.rsf file2.rsf ...&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | The various operations, if selected, occur in the following order:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(1) Take absolute value, abs=&amp;lt;br&amp;gt;(2) Add a scalar, add=&amp;lt;br&amp;gt;(3) Take the natural logarithm, log=&amp;lt;br&amp;gt;(4) Take the square root, sqrt=&amp;lt;br&amp;gt;(5) Multiply by a scalar, scale=&amp;lt;br&amp;gt;(6) Compute the base-e exponential, exp=&amp;lt;br&amp;gt;(7) Add, multiply, or divide the data sets, mode=&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;sfadd operates on integer, float, or complex data, but all the input&amp;lt;br&amp;gt;and output files must be of the same data type.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;An alternative to sfadd is sfmath, which is more versatile, but may be&amp;lt;br&amp;gt;less efficient.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bools  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;abs=&amp;#039;&amp;#039;&amp;#039; ||   || 	If true take absolute value  [nin]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;floats &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;add=&amp;#039;&amp;#039;&amp;#039; ||   || 	Scalar values to add to each dataset  [nin]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bools  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;exp=&amp;#039;&amp;#039;&amp;#039; ||   || 	If true compute exponential  [nin]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bools  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;log=&amp;#039;&amp;#039;&amp;#039; ||   || 	If true take logarithm  [nin]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;mode=&amp;#039;&amp;#039;&amp;#039; ||   || 	&amp;#039;a&amp;#039; means add (default), &amp;lt;br&amp;gt;	  &amp;#039;p&amp;#039; or &amp;#039;m&amp;#039; means multiply, &amp;lt;br&amp;gt;	  &amp;#039;d&amp;#039; means divide&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;floats &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;scale=&amp;#039;&amp;#039;&amp;#039; ||   || 	Scalar values to multiply each dataset with  [nin]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bools  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;sqrt=&amp;#039;&amp;#039;&amp;#039; ||   || 	If true take square root  [nin]&lt;br /&gt;
|}&lt;br /&gt;
==sfattr==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Display dataset attributes.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfattr &amp;lt; in.rsf lval=2 want=&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;Sample output from &amp;quot;sfspike n1=100 | sfbandpass fhi=60 | sfattr&amp;quot;&amp;lt;br&amp;gt;*******************************************&amp;lt;br&amp;gt;     rms =      0.992354&amp;lt;br&amp;gt;    mean =      0.987576&amp;lt;br&amp;gt;  2-norm =       9.92354&amp;lt;br&amp;gt;variance =    0.00955481&amp;lt;br&amp;gt; std dev =     0.0977487&amp;lt;br&amp;gt;     max =       1.12735 at 97&amp;lt;br&amp;gt;     min =      0.151392 at 100&amp;lt;br&amp;gt;nonzero samples = 100&amp;lt;br&amp;gt;  total samples = 100&amp;lt;br&amp;gt;*******************************************&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;rms                = sqrt[ sum(data^2) / n ]&amp;lt;br&amp;gt;mean               = sum(data) / n&amp;lt;br&amp;gt;norm               = sum(abs(data)^lval)^(1/lval)&amp;lt;br&amp;gt;variance           = [ sum(data^2) - n*mean^2 ] / [ n-1 ]&amp;lt;br&amp;gt;standard deviation = sqrt [ variance ]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;lval=2&amp;#039;&amp;#039;&amp;#039; ||   || 	norm option, lval is a non-negative integer, computes the vector lval-norm&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;want=&amp;#039;&amp;#039;&amp;#039; ||   || 	&amp;#039;all&amp;#039;(default), &amp;#039;rms&amp;#039;, &amp;#039;mean&amp;#039;, &amp;#039;norm&amp;#039;, &amp;#039;var&amp;#039;, &amp;lt;br&amp;gt;       &amp;#039;std&amp;#039;, &amp;#039;max&amp;#039;, &amp;#039;min&amp;#039;, &amp;#039;nonzero&amp;#039;, &amp;#039;samples&amp;#039;, &amp;#039;short&amp;#039; &lt;br /&gt;
:want=   &amp;#039;rms&amp;#039; displays the root mean square&lt;br /&gt;
:want=   &amp;#039;norm&amp;#039; displays the square norm, otherwise specified by lval.&lt;br /&gt;
:want=   &amp;#039;var&amp;#039; displays the variance&lt;br /&gt;
:want=   &amp;#039;std&amp;#039; displays the standard deviation&lt;br /&gt;
:want=   &amp;#039;nonzero&amp;#039; displays number of nonzero samples&lt;br /&gt;
:want=   &amp;#039;samples&amp;#039; displays total number of samples&lt;br /&gt;
:want=   &amp;#039;short&amp;#039; displays a short one-line version&lt;br /&gt;
|}&lt;br /&gt;
==sfcat==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Concatenate datasets. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfcat &amp;gt; out.rsf order= space= axis=3 nspace=(int) (ni/(20*nin) + 1) o= d= [&amp;lt;file0.rsf] file1.rsf file2.rsf ... &lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | sfmerge inserts additional space between merged data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;axis=3&amp;#039;&amp;#039;&amp;#039; ||   || 	Axis being merged&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;d=&amp;#039;&amp;#039;&amp;#039; ||   || 	axis sampling&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;nspace=(int) (ni/(20*nin) + 1)&amp;#039;&amp;#039;&amp;#039; ||   || 	if space=y, number of traces to insert&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;o=&amp;#039;&amp;#039;&amp;#039; ||   || 	axis origin&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;ints   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;order=&amp;#039;&amp;#039;&amp;#039; ||   || 	concatenation order  [nin]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;space=&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	Insert additional space.&lt;br /&gt;
:y is default for sfmerge, n is default for sfcat&lt;br /&gt;
|}&lt;br /&gt;
==sfcconjgrad==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Generic conjugate-gradient solver for linear inversion with complex data &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfcconjgrad &amp;lt; dat.rsf mod=mod.rsf &amp;gt; to.rsf &amp;lt; from.rsf &amp;gt; out.rsf niter=1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;mod=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;niter=1&amp;#039;&amp;#039;&amp;#039; ||   || 	number of iterations&lt;br /&gt;
|}&lt;br /&gt;
==sfcdottest==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Generic dot-product test for complex linear operators with adjoints &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfcdottest mod=mod.rsf dat=dat.rsf &amp;gt; pip.rsf&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;dat=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;mod=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|}&lt;br /&gt;
==sfcmplx==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Create a complex dataset from its real and imaginary parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfcmplx &amp;lt; real.rsf &amp;gt; cmplx.rsf real.rsf imag.rsf&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | There has to be only two input files specified and no additional parameters.&lt;br /&gt;
|}&lt;br /&gt;
==sfconjgrad==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Generic conjugate-gradient solver for linear inversion &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfconjgrad &amp;lt; dat.rsf mod=mod.rsf &amp;gt; to.rsf &amp;lt; from.rsf &amp;gt; out.rsf niter=1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;mod=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;niter=1&amp;#039;&amp;#039;&amp;#039; ||   || 	number of iterations&lt;br /&gt;
|}&lt;br /&gt;
==sfcp==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Copy or move a dataset.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfcp &amp;lt; in.rsf &amp;gt; out.rsf in.rsf out.rsf&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | sfcp - copy, sfmv - move.&amp;lt;br&amp;gt;Mimics standard Unix commands.&lt;br /&gt;
|}&lt;br /&gt;
==sfcut==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Zero a portion of the dataset.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfcut &amp;lt; in.rsf &amp;gt; out.rsf verb=n j#=(1,...) d#=(d1,d2,...) f#=(0,...) min#=(o1,o2,,...) n#=(0,...) max#=(o1+(n1-1)*d1,o2+(n1-1)*d2,,...)&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;Reverse of window. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;d#=(d1,d2,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	sampling in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;largeint&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;f#=(0,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	window start in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;j#=(1,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	jump in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;max#=(o1+(n1-1)*d1,o2+(n1-1)*d2,,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	maximum in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;min#=(o1,o2,,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	minimum in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;n#=(0,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	window size in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;verb=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	Verbosity flag&lt;br /&gt;
|}&lt;br /&gt;
==sfdd==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Convert between different formats. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfdd &amp;lt; in.rsf &amp;gt; out.rsf trunc=n line=8 ibm=n form= type= format=&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;form=&amp;#039;&amp;#039;&amp;#039; ||   || 	ascii, native, xdr&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;format=&amp;#039;&amp;#039;&amp;#039; ||   || 	Element format (for conversion to ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;ibm=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	Special case - assume integers actually represent IBM floats&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;line=8&amp;#039;&amp;#039;&amp;#039; ||   || 	Number of numbers per line (for conversion to ASCII)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;trunc=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	Truncate or round to nearest when converting from float to int/short&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;type=&amp;#039;&amp;#039;&amp;#039; ||   || 	int, float, complex, short&lt;br /&gt;
|}&lt;br /&gt;
==sfdisfil==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Print out data values.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfdisfil &amp;lt; in.rsf number=y col=0 format= header= trailer=&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;Alternatively, use sfdd and convert to ASCII form.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;col=0&amp;#039;&amp;#039;&amp;#039; ||   || 	Number of columns.&lt;br /&gt;
:The default depends on the data type:&lt;br /&gt;
:10 for int and char,&lt;br /&gt;
:5 for float,&lt;br /&gt;
:3 for complex&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;format=&amp;#039;&amp;#039;&amp;#039; ||   || 	Format for numbers (printf-style).&lt;br /&gt;
:The default depends on the data type:&amp;lt;br&amp;gt;       &amp;quot;%4d &amp;quot; for int and char,&amp;lt;br&amp;gt;       &amp;quot;%13.4g&amp;quot; for float,&amp;lt;br&amp;gt;       &amp;quot;%10.4g,%10.4gi&amp;quot; for complex&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;header=&amp;#039;&amp;#039;&amp;#039; ||   || 	Optional header string to output before data&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;number=y&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If number the elements&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;trailer=&amp;#039;&amp;#039;&amp;#039; ||   || 	Optional trailer string to output after data&lt;br /&gt;
|}&lt;br /&gt;
==sfdottest==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Generic dot-product test for linear operators with adjoints &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfdottest mod=mod.rsf dat=dat.rsf &amp;gt; pip.rsf&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;dat=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;mod=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|}&lt;br /&gt;
==sfget==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Output parameters from the header.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfget parform=y all=n par1 par2 ...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;all=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If output all values.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;parform=y&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If y, print out parameter=value. If n, print out value.&lt;br /&gt;
|}&lt;br /&gt;
==sfheadercut==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Zero a portion of a dataset based on a header mask.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfheadercut mask=head.rsf &amp;lt; in.rsf &amp;gt; out.rsf&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;The input data is a collection of traces n1xn2,&amp;lt;br&amp;gt;mask is an integer array of size n2.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;mask=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|}&lt;br /&gt;
==sfheadersort==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Sort a dataset according to a header key. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfheadersort &amp;lt; in.rsf &amp;gt; out.rsf head=&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;head=&amp;#039;&amp;#039;&amp;#039; ||   || 	header file&lt;br /&gt;
|}&lt;br /&gt;
==sfheaderwindow==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Window a dataset based on a header mask.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfheaderwindow mask=head.rsf &amp;lt; in.rsf &amp;gt; out.rsf&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;The input data is a collection of traces n1xn2,&amp;lt;br&amp;gt;mask is an integer array os size n2, windowed is n1xm2,&amp;lt;br&amp;gt;where m2 is the number of nonzero elements in mask.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;mask=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|}&lt;br /&gt;
==sfin==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Display basic information about RSF files.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfin info=y check=2. trail=y [&amp;lt;file0.rsf] file1.rsf file2.rsf ...&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | n1,n2,... are data dimensions&amp;lt;br&amp;gt;o1,o2,... are axis origins&amp;lt;br&amp;gt;d1,d2,... are axis sampling intervals&amp;lt;br&amp;gt;label1,label2,... are axis labels&amp;lt;br&amp;gt;unit1,unit2,... are axis units&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;check=2.&amp;#039;&amp;#039;&amp;#039; ||   || 	Portion of the data (in Mb) to check for zero values.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;info=y&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If n, only display the name of the data file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;trail=y&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If n, skip trailing dimensions of  one&lt;br /&gt;
|}&lt;br /&gt;
==sfinterleave==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Combine several datasets by interleaving.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfinterleave &amp;gt; out.rsf axis=3 [&amp;lt; file0.rsf] file1.rsf file2.rsf ...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;axis=3&amp;#039;&amp;#039;&amp;#039; ||   || 	Axis for interleaving&lt;br /&gt;
|}&lt;br /&gt;
==sfmask==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Create a mask.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfmask &amp;lt; in.rsf &amp;gt; out.rsf min= max= min= max=&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;Mask is an integer data with ones and zeros. &amp;lt;br&amp;gt;Ones correspond to input values between min and max.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;The output can be used with sfheaderwindow.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;max=&amp;#039;&amp;#039;&amp;#039; ||   || 	maximum header value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;min=&amp;#039;&amp;#039;&amp;#039; ||   || 	minimum header value&lt;br /&gt;
|}&lt;br /&gt;
==sfmath==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Mathematical operations on data files.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfmath &amp;gt; out.rsf n#= d#=(1,1,...) o#=(0,0,...) label#= unit#= type= label= unit= output=&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; |    &amp;lt;br&amp;gt;Known functions: &amp;lt;br&amp;gt;cos,  sin,  tan,  acos,  asin,  atan, &amp;lt;br&amp;gt;cosh, sinh, tanh, acosh, asinh, atanh,&amp;lt;br&amp;gt;exp,  log,  sqrt, abs,&amp;lt;br&amp;gt;erf,  erfc (for float data),&amp;lt;br&amp;gt;arg,  conj, real, imag (for complex data).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;sfmath will work on float or complex data, but all the input and output&amp;lt;br&amp;gt;files must be of the same data type.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;An alternative to sfmath is sfadd, which may be more efficient, but is&amp;lt;br&amp;gt;less versatile.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Examples:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;sfmath x=file1.rsf y=file2.rsf power=file3.rsf output=&amp;#039;sin((x+2*y)^power)&amp;#039; &amp;gt; out.rsf&amp;lt;br&amp;gt;sfmath &amp;lt; file1.rsf tau=file2.rsf output=&amp;#039;exp(tau*input)&amp;#039; &amp;gt; out.rsf&amp;lt;br&amp;gt;sfmath n1=100 type=complex output=&amp;quot;exp(I*x1)&amp;quot; &amp;gt; out.rsf&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Arguments which are not treated as variables in mathematical expressions:&amp;lt;br&amp;gt;datapath=, type=, out=&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;See also: sfheadermath.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;d#=(1,1,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	sampling on #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;label=&amp;#039;&amp;#039;&amp;#039; ||   || 	data label&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;label#=&amp;#039;&amp;#039;&amp;#039; ||   || 	label on #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;largeint&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;n#=&amp;#039;&amp;#039;&amp;#039; ||   || 	size of #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;o#=(0,0,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	origin on #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;output=&amp;#039;&amp;#039;&amp;#039; ||   || 	Mathematical description of the output&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;type=&amp;#039;&amp;#039;&amp;#039; ||   || 	output data type [float,complex]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;unit=&amp;#039;&amp;#039;&amp;#039; ||   || 	data unit&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;unit#=&amp;#039;&amp;#039;&amp;#039; ||   || 	unit on #-th axis&lt;br /&gt;
|}&lt;br /&gt;
==sfmpi==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | MPI wrapper for embarassingly parallel jobs. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfmpi input=inp.rsf output=out.rsf split=ndim join=axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;input=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary input file name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;join=axis&amp;#039;&amp;#039;&amp;#039; ||   || 	axis to join&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;file   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;output=&amp;#039;&amp;#039;&amp;#039; ||   || 	auxiliary output file name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;split=ndim&amp;#039;&amp;#039;&amp;#039; ||   || 	axis to split&lt;br /&gt;
|}&lt;br /&gt;
==sfomp==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | OpenMP wrapper for embarassingly parallel jobs. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfomp &amp;lt; inp.rsf &amp;gt; out.rsf split=ndim join=axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;join=axis&amp;#039;&amp;#039;&amp;#039; ||   || 	axis to join&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;split=ndim&amp;#039;&amp;#039;&amp;#039; ||   || 	axis to split&lt;br /&gt;
|}&lt;br /&gt;
==sfpad==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Pad a dataset with zeros.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfpad &amp;lt; in.rsf &amp;gt; out.rsf beg#=0 end#=0 n#=&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;   n#out is equivalent to n#, both of them overwrite end#.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;beg#=0&amp;#039;&amp;#039;&amp;#039; ||   || 	the number of zeros to add before the beginning of #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;end#=0&amp;#039;&amp;#039;&amp;#039; ||   || 	the number of zeros to add after the end of #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;n#=&amp;#039;&amp;#039;&amp;#039; ||   || 	the output length of #-th axis - padding at the end&lt;br /&gt;
|}&lt;br /&gt;
==sfput==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Input parameters into a header. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfput &amp;lt; in.rsf &amp;gt; out.rsf [parameter=value list]&lt;br /&gt;
|}&lt;br /&gt;
==sfreal==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Extract real (sfreal) or imaginary (sfimag) part of a complex dataset. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfreal &amp;lt; cmplx.rsf &amp;gt; real.rsf&lt;br /&gt;
|}&lt;br /&gt;
==sfreverse==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Reverse one or more axes in the data hypercube. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfreverse &amp;lt; in.rsf &amp;gt; out.rsf which=-1 verb=n memsize=sf_memsize() opt=&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;memsize=sf_memsize()&amp;#039;&amp;#039;&amp;#039; ||   || 	Max amount of RAM (in Mb) to be used&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;opt=&amp;#039;&amp;#039;&amp;#039; ||   || 	If y, change o and d parameters on the reversed axis;&lt;br /&gt;
:if i, don&amp;#039;t change o and d&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;verb=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	Verbosity flag&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;which=-1&amp;#039;&amp;#039;&amp;#039; ||   || 	Which axis to reverse.&lt;br /&gt;
:To reverse a given axis, start with 0,&lt;br /&gt;
:add 1 to number to reverse n1 dimension,&lt;br /&gt;
:add 2 to number to reverse n2 dimension,&lt;br /&gt;
:add 4 to number to reverse n3 dimension, etc.&lt;br /&gt;
:Thus, which=7 would reverse the first three dimensions,&lt;br /&gt;
:which=5 just n1 and n3, etc.&lt;br /&gt;
:which=0 will just pass the input on through unchanged.&lt;br /&gt;
|}&lt;br /&gt;
==sfrm==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Remove RSF files together with their data.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfrm file1.rsf [file2.rsf ...] [-i] [-v] [-f] &lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | Mimics the standard Unix rm command.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;See also: sfmv, sfcp.&lt;br /&gt;
|}&lt;br /&gt;
==sfrotate==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Rotate a portion of one or more axes in the data hypercube. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfrotate &amp;lt; in.rsf &amp;gt; out.rsf verb=n memsize=sf_memsize() rot#=(0,0,...)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;memsize=sf_memsize()&amp;#039;&amp;#039;&amp;#039; ||   || 	Max amount of RAM (in Mb) to be used&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;rot#=(0,0,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	length of #-th axis that is moved to the end&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;verb=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	Verbosity flag&lt;br /&gt;
|}&lt;br /&gt;
==sfrtoc==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Convert real data to complex (by adding zero imaginary part).&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfrtoc &amp;lt; real.rsf &amp;gt; cmplx.rsf pair=n&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;See also: sfcmplx&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;pair=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	y - use odd elements for real part and even ones for imaginary part&lt;br /&gt;
|}&lt;br /&gt;
==sfscale==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Scale data.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfscale &amp;lt; in.rsf &amp;gt; out.rsf axis=0 rscale=0. dscale=1.&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;To scale by a constant factor, you can also use sfmath.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;axis=0&amp;#039;&amp;#039;&amp;#039; ||   || 	Scale by maximum in the dimensions up to this axis.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;dscale=1.&amp;#039;&amp;#039;&amp;#039; ||   || 	Scale by this factor (works if rscale=0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;rscale=0.&amp;#039;&amp;#039;&amp;#039; ||   || 	Scale by this factor.&lt;br /&gt;
|}&lt;br /&gt;
==sfspike==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Generate simple data: spikes, boxes, planes, constants. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfspike &amp;lt; in.rsf &amp;gt; spike.rsf mag= nsp=1 k#=[0,...] l#=[k1,k2,...] p#=[0,...] n#= o#=[0,0,...] d#=[0.004,0.1,0.1,...] label#=[Time,Distance,Distance,...] unit#=[s,km,km,...] title=&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;Spike positioning is given in samples and starts with 1.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;d#=[0.004,0.1,0.1,...]&amp;#039;&amp;#039;&amp;#039; ||   || 	sampling on #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;ints   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;k#=[0,...]&amp;#039;&amp;#039;&amp;#039; ||   || 	spike starting position  [nsp]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;ints   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;l#=[k1,k2,...]&amp;#039;&amp;#039;&amp;#039; ||   || 	spike ending position  [nsp]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;label#=[Time,Distance,Distance,...]&amp;#039;&amp;#039;&amp;#039; ||   || 	label on #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;floats &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;mag=&amp;#039;&amp;#039;&amp;#039; ||   || 	spike magnitudes  [nsp]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;n#=&amp;#039;&amp;#039;&amp;#039; ||   || 	size of #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;nsp=1&amp;#039;&amp;#039;&amp;#039; ||   || 	Number of spikes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;o#=[0,0,...]&amp;#039;&amp;#039;&amp;#039; ||   || 	origin on #-th axis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;floats &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;p#=[0,...]&amp;#039;&amp;#039;&amp;#039; ||   || 	spike inclination (in samples)  [nsp]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;title=&amp;#039;&amp;#039;&amp;#039; ||   || 	title for plots&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;unit#=[s,km,km,...]&amp;#039;&amp;#039;&amp;#039; ||   || 	unit on #-th axis&lt;br /&gt;
|}&lt;br /&gt;
==sfspray==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Extend a dataset by duplicating in the specified axis dimension.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfspray &amp;lt; in.rsf &amp;gt; out.rsf axis=2 n= d= o= label= unit=&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; |    This operation is adjoint to sfstack.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;axis=2&amp;#039;&amp;#039;&amp;#039; ||   || 	which axis to spray&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;d=&amp;#039;&amp;#039;&amp;#039; ||   || 	Sampling of the newly created dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;label=&amp;#039;&amp;#039;&amp;#039; ||   || 	Label of the newly created dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;n=&amp;#039;&amp;#039;&amp;#039; ||   || 	Size of the newly created dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;o=&amp;#039;&amp;#039;&amp;#039; ||   || 	Origin of the newly created dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;string &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;unit=&amp;#039;&amp;#039;&amp;#039; ||   || 	Units of the newly created dimension&lt;br /&gt;
|}&lt;br /&gt;
==sfstack==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Stack a dataset over one of the dimensions.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfstack &amp;lt; in.rsf &amp;gt; out.rsf scale= axis=2 rms=n norm=y min=n max=n prod=n&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;This operation is adjoint to sfspray.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;axis=2&amp;#039;&amp;#039;&amp;#039; ||   || 	which axis to stack&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;max=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If y, find maximum instead of stack.  Ignores rms and norm.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;min=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If y, find minimum instead of stack.  Ignores rms and norm.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;norm=y&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If y, normalize by fold.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;prod=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If y, find product instead of stack.  Ignores rms and norm.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;rms=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	If y, compute the root-mean-square instead of stack.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;floats &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;scale=&amp;#039;&amp;#039;&amp;#039; ||   || 	optionally scale before stacking  [n2]&lt;br /&gt;
|}&lt;br /&gt;
==sftransp==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Transpose two axes in a dataset. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sftransp &amp;lt; in.rsf &amp;gt; out.rsf memsize=sf_memsize() plane=&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;4&amp;quot; | &amp;lt;br&amp;gt;If you get a &amp;quot;Cannot allocate memory&amp;quot; error, give the program a&amp;lt;br&amp;gt;memsize=1 command-line parameter to force out-of-core operation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;memsize=sf_memsize()&amp;#039;&amp;#039;&amp;#039; ||   || 	Max amount of RAM (in Mb) to be used&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;plane=&amp;#039;&amp;#039;&amp;#039; ||   || 	Two-digit number with axes to transpose. The default is 12&lt;br /&gt;
|}&lt;br /&gt;
==sfwindow==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Window a portion of a dataset. &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | sfwindow &amp;lt; in.rsf &amp;gt; out.rsf verb=n squeeze=y j#=(1,...) d#=(d1,d2,...) f#=(0,...) min#=(o1,o2,,...) n#=(0,...) max#=(o1+(n1-1)*d1,o2+(n1-1)*d2,,...)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;d#=(d1,d2,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	sampling in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;largeint&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;f#=(0,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	window start in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;int    &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;j#=(1,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	jump in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;max#=(o1+(n1-1)*d1,o2+(n1-1)*d2,,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	maximum in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;float  &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;min#=(o1,o2,,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	minimum in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;largeint&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;n#=(0,...)&amp;#039;&amp;#039;&amp;#039; ||   || 	window size in #-th dimension&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;squeeze=y&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	if y, squeeze dimensions equal to 1 to the end&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;bool   &amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;verb=n&amp;#039;&amp;#039;&amp;#039; ||  [y/n] || 	Verbosity flag&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Sfomel</name></author>
	</entry>
</feed>