本文整理汇总了C++中sf_getbool函数的典型用法代码示例。如果您正苦于以下问题:C++ sf_getbool函数的具体用法?C++ sf_getbool怎么用?C++ sf_getbool使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sf_getbool函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main (int argc, char **argv)
{
bool verb; /* verbosity flag */
bool adj;
int nt; /* number of time samples */
int nx; /* number of offsets */
int nf1, nf2, nf; /* number of filter size */
int n3, i3;
float *x, *y, *filt; /* input and output */
sf_file in, out, fil;
sf_init(argc,argv);
in = sf_input("in");
out = sf_output("out");
fil = sf_input("filt");
if (!sf_getbool("adj",&adj)) adj=true;
/* if y, perform adjoint operation */
if (!sf_getbool ("verb",&verb)) verb=false; /* verbosity flag */
/* read input file parameters */
if (!sf_histint(in,"n1",&nt)) sf_error("No n1= in input");
if (!sf_histint(in,"n2",&nx)) sf_error("No n2= in input");
n3 = sf_leftsize(in,2);
if (!sf_histint(fil,"n1",&nf1)) sf_error("No nf1= in filt");
if (!sf_histint(fil,"n2",&nf2)) sf_error("No nf2= in filt");
if (!sf_histint(fil,"n3",&nf)) sf_error("No nf3= in filt");
if (nt != nf1 || nx != nf2 ) sf_error("Nee n1==nf1 && n2==nf2");
x = sf_floatalloc (nt*nx);
y = sf_floatalloc (nt*nx);
filt = sf_floatalloc (nt*nx*nf);
for (i3=0; i3 < n3; i3++) {
if(verb) sf_warning("i=%d of %d",i3+1,n3);
sf_floatread(filt,nt*nx*nf,fil);
matching_init(filt,nt,nx,nf);
if (adj) {
sf_floatread(y,nt*nx,in);
} else { /* modeling */
sf_floatread(x,nt*nx,in);
}
pmatching_lop (adj, false, nt*nx, nt*nx, x, y);
if (adj) {
sf_floatwrite(x,nt*nx,out);
} else { /* modeling */
sf_floatwrite(y,nt*nx,out);
}
}
exit (0);
}
示例2: main
int main(int argc, char* argv[])
{
bool adj, verb;
int n1, n2, n12, n3, i3, order, ns;
float *input, *smooth, **slope, eps;
sf_file in, out, dip;
sf_init(argc,argv);
in = sf_input("in");
dip = sf_input("dip");
out = sf_output("out");
if (!sf_histint(in,"n1",&n1)) sf_error("No n1= in input");
if (!sf_histint(in,"n2",&n2)) sf_error("No n2= in input");
n3 = sf_leftsize(in,2);
n12 = n1*n2;
if (!sf_getbool("verb",&verb)) verb=false;
/* verbosity flag */
if (!sf_getint("ns",&ns)) ns=0;
/* smoothing radius */
if (!sf_getbool("adj",&adj)) adj=false;
/* adjoint flag */
if (!sf_getfloat("eps",&eps)) eps=0.01;
/* regularization */
if (!sf_getint("order",&order)) order=1;
/* accuracy order */
input = sf_floatalloc(n12);
smooth = sf_floatalloc(n12);
slope = sf_floatalloc2(n1,n2);
pwsmooth_init(ns, n1, n2, order, eps);
for (i3=0; i3 < n3; i3++) {
if (verb) sf_warning("slice %d of %d;",i3+1,n3);
sf_floatread(input,n12,in);
sf_floatread(slope[0],n12,dip);
pwsmooth_set(slope);
if (adj) {
pwsmooth_lop(true,false,n12,n12,smooth,input);
} else {
pwsmooth_lop(false,false,n12,n12,input,smooth);
}
sf_floatwrite(smooth,n12,out);
}
if (verb) sf_warning(".");
exit(0);
}
示例3: main
int main(int argc, char* argv[])
{
int nx, nf, i2, n2, lag, niter;
bool single, verb;
float eps;
sf_complex *xx, *yy, *ff;
sf_file in, out, filt;
sf_init(argc,argv);
in = sf_input("in");
out = sf_output("out");
filt = sf_input("filt");
if (SF_COMPLEX != sf_gettype(in) ||
SF_COMPLEX != sf_gettype(filt)) sf_error("Need float input");
if (!sf_histint(in,"n1",&nx)) sf_error("No n1= in input");
n2 = sf_leftsize(in,1);
if (!sf_histint(filt,"n1",&nf)) sf_error("No n1= in filtin");
xx = sf_complexalloc(nx);
ff = sf_complexalloc(nf);
if (!sf_getbool("single",&single)) single=true;
/* single channel or multichannel */
if (!sf_getint("lag",&lag)) lag=1;
/* lag for internal convolution */
yy = sf_complexalloc(nx);
if (!sf_getfloat("eps",&eps)) eps=1.0f;
/* regularizion parameter */
if (!sf_getint("niter",&niter)) niter=100;
/* number of iterations */
if (!sf_getbool("verb",&verb)) verb=false;
/* verbosity flag */
if (!single) sf_complexread (ff,nf,filt);
for (i2=0; i2 < n2; i2++) {
if (single) sf_complexread (ff,nf,filt);
sf_complexread (xx,nx,in);
cicai1_init(nf,ff,lag);
sf_csolver_reg(sf_ccopy_lop,sf_ccgstep,cicai1_lop,nx,nx,nx,yy,xx,niter,eps,"verb",verb,"end");
sf_ccgstep_close();
sf_complexwrite (yy,nx,out);
}
exit(0);
}
示例4: main
int
main (int argc, char *argv[])
{
int i;
int ndims;
off_t nlarge[SF_MAX_DIM];
int n[SF_MAX_DIM];
bool parform, large;
sf_file in=NULL;
sf_init(argc,argv);
in = sf_input("in");
if (!sf_getbool("large", &large))
large = false;
/* if y, file with large dimensions. */
if (large) {
ndims = sf_largefiledims(in, nlarge);
} else {
ndims = sf_filedims(in, n);
}
if (!sf_getbool("parform", &parform))
parform = true;
/* If y, print out parameter=value. If n, print out value. */
if (parform) printf( "ndims=" );
printf( "%d", ndims );
if (parform)
printf( "\nn=" );
else
printf( ":" );
for (i=0; i<ndims; i++) {
if (large) {
#if defined(__cplusplus) || defined(c_plusplus)
printf( "%ld", (long) n[i] );
#else
printf( "%lld", (long long) n[i] );
#endif
} else {
printf( "%d", n[i] );
}
if (i<ndims-1) printf(",");
}
printf( "\n" );
exit(0);
}
示例5: vp_coord_init
void vp_coord_init (bool transp1, bool yreverse1)
{
float crowd, marg;
bool set;
if (!sf_getfloat ("screenratio",&screenratio))
screenratio = VP_SCREEN_RATIO;
if (!sf_getfloat ("screenht",&screenht))
screenht = VP_STANDARD_HEIGHT;
if (!sf_getfloat ("screenwd",&screenwd))
screenwd = screenht / screenratio;
if (!sf_getfloat ("crowd",&crowd)) crowd = 0.75;
if (!sf_getfloat ("xinch",&inch1)) {
if (!sf_getfloat ("crowd1",&inch1)) inch1 = crowd;
inch1 *= screenwd;
}
if (!sf_getfloat ("yinch",&inch2)) {
if (!sf_getfloat ("crowd2",&inch2)) inch2 = crowd;
inch2 *= screenht;
}
set = sf_getfloat ("xll",&xll);
if (!sf_getfloat ("xur",&xur)) {
if (set) {
xur = xll + inch1;
} else {
marg = screenwd - inch1;
xll = marg * 2./3.;
xur = screenwd - marg * 1./3.;
}
} else if (!set) {
xll = xur - inch1;
}
set = sf_getfloat ("yll",&yll);
if (!sf_getfloat ("yur",&yur)) {
if (set) {
yur = yll + inch2;
} else {
marg = screenht - inch1;
yll = marg * 1./2.;
yur = screenht - marg * 1./2.;
}
} else if (!set) {
yll = yur - inch2;
}
if (!sf_getbool ("transp",&transp)) transp = transp1;
if (!sf_getbool ("xreverse",&xreverse)) xreverse = false;
if (!sf_getbool ("yreverse",&yreverse)) yreverse = yreverse1;
if (!sf_getbool ("labelrot",&labelrot)) labelrot = false;
}
示例6: main
int
main (int argc, char *argv[])
{
const bool su = true;
bool verb, xdr;
char *filename, *trace;
int format=0, ns, ntr, itrace[SF_NKEYS];
off_t pos, nsegy;
float dt;
FILE *file;
extern int fseeko (FILE * stream, off_t offset, int whence);
/**** Start common code with segy2rsf (16 lines) ****/
sf_init (argc, argv);
if (!sf_getbool ("verb", &verb))
verb = false;
/* Verbosity flag */
if (!sf_getbool ("endian", &xdr))
xdr = true;
/* Whether to automatically estimate endianness or not */
if (xdr)
endian ();
if (NULL == (filename = sf_getstring ("tape"))) /* input data */
sf_error ("Need to specify tape=");
if (NULL == (file = fopen (filename, "rb")))
sf_error ("Cannot open \"%s\" for reading:", filename);
pos = readfilesize (file);
/**** End common code with segy2rsf ****/
/* Figure out ns and ntr */
trace = sf_charalloc (SF_HDRBYTES);
if (SF_HDRBYTES != fread (trace, 1, SF_HDRBYTES, file))
sf_error ("Error reading first trace header");
fseeko (file, 0, SEEK_SET);
segy2head (trace, itrace, SF_NKEYS);
ns = itrace[segykey ("ns")];
dt = itrace[segykey ("dt")] / 1000000.;
free (trace);
nsegy = SF_HDRBYTES + ns * 4;
ntr = pos / nsegy;
su_or_segy_to_rsf (verb, su, ntr, format, ns, itrace, nsegy, file, dt);
exit (0);
}
示例7: main
int main(int argc, char* argv[])
{
int nx, nf, ny, i2, n2, lag;
bool each, trans;
float *xx, *yy, *ff;
sf_file in, out, filt;
sf_init(argc,argv);
in = sf_input("in");
out = sf_output("out");
filt = sf_input("filt");
if (SF_FLOAT != sf_gettype(in) ||
SF_FLOAT != sf_gettype(filt)) sf_error("Need float input");
if (!sf_histint(in,"n1",&nx)) sf_error("No n1= in input");
n2 = sf_leftsize(in,1);
if (!sf_histint(filt,"n1",&nf)) sf_error("No n1= in filtin");
xx = sf_floatalloc(nx);
ff = sf_floatalloc(nf);
if (!sf_getbool("trans",&trans)) trans=false;
/* if y, transient convolution; if n, internal */
if (!sf_getbool("each",&each)) each=false;
/* if y, new filter for each trace */
if (!sf_getint("lag",&lag)) lag=1;
/* lag for internal convolution */
ny = trans? (nx+nf-1)*(nx+nf-1): nx;
yy = sf_floatalloc(ny);
if (trans){
sf_putint(out,"n1",nx+nf-1);
sf_putint(out,"n2",nx+nf-1);
}
if (!each) sf_floatread (ff,nf,filt);
for (i2=0; i2 < n2; i2++) {
if (each) sf_floatread (ff,nf,filt);
sf_floatread (xx,nx,in);
if (trans) {
tcai1_ns_init(nf,ff);
tcai1_ns_lop (false, false,nx,ny,xx,yy);
} else {
icai1_init(nf,ff,lag);
icai1_lop (false, false,nx,ny,xx,yy);
}
sf_floatwrite (yy,ny,out);
}
exit(0);
}
示例8: main
int main(int argc, char* argv[])
{
int n1, n2, n12, nv, inv;
bool adj, add;
float *modl, *data, o1,d1,o2,d2, vel,v0;
sf_file in, out;
sf_init(argc,argv);
in = sf_input("in");
out = sf_output("out");
if (!sf_histint(in,"n1",&n1)) sf_error("No n1= in input");
if (!sf_histint(in,"n2",&n2)) sf_error("No n2= in input");
n12 = n1*n2;
if (!sf_histfloat(in,"o1",&o1)) o1=0.;
if (!sf_histfloat(in,"o2",&o2)) o2=0.;
if (!sf_histfloat(in,"d1",&d1)) sf_error("No d1= in input");
if (!sf_histfloat(in,"d2",&d2)) sf_error("No d2= in input");
if (!sf_getfloat("vel",&vel)) vel=0.75;
/* final velocity */
if (!sf_getfloat("v0",&v0)) v0=0.;
/* starting velocity */
if (!sf_getint("nv",&nv)) nv=n1;
/* number of steps */
if (!sf_getbool("adj",&adj)) adj=false;
/* adjoint flag */
if (!sf_getbool("add",&add)) add=false;
/* addition flag */
if (!sf_getint("inv",&inv)) inv=0;
/* amplitude type */
modl = sf_floatalloc(n12);
data = sf_floatalloc(n12);
sf_floatread (adj? data: modl,n12,in);
velcon_init (inv,vel,v0,o1,n1,n2,nv,d1,d2);
velcon_lop (adj, add, n12, n12, modl, data);
sf_floatwrite (adj? modl: data,n12,out);
exit(0);
}
示例9: main
int main(int argc, char* argv[])
{
int n1, n2, i2;
bool adj;
float *pp, *qq;
sf_file in=NULL, out=NULL;
sf_init(argc,argv);
in = sf_input("in");
out = sf_output("out");
if (!sf_histint(in,"n1",&n1)) sf_error("No n1= in input");
n2 = sf_leftsize(in,1);
pp = sf_floatalloc(n1);
qq = sf_floatalloc(n1);
if (!sf_getbool("adj",&adj)) adj=false;
/* if y, do adjoint integration */
for (i2=0; i2 < n2; i2++) {
sf_floatread(pp,n1,in);
if (adj) {
sf_causint_lop (true,false,n1,n1,qq,pp);
} else {
sf_causint_lop (false,false,n1,n1,pp,qq);
}
sf_floatwrite(qq,n1,out);
}
exit(0);
}
示例10: main
int main(int argc, char* argv[])
{
int n1,n2,n12;
bool adj;
float d1,d2,o1,o2,v, *model=NULL, *dat=NULL;
sf_file in=NULL, out=NULL;
sf_init(argc,argv);
in = sf_input("in");
out = sf_output("out");
if (!sf_histint(in,"n1",&n1)) sf_error("No n1= in input");
if (!sf_histfloat(in,"d1",&d1)) sf_error("No d1= in input");
if (!sf_histfloat(in,"o1",&o1)) o1=0.;
if (!sf_getbool("adj",&adj)) adj=false;
/* adjoint flag */
if (adj) {
if (!sf_histint(in,"n2",&n2)) sf_error("No n2= in input");
if (!sf_histfloat(in,"d2",&d2)) sf_error("No d2= in input");
if (!sf_histfloat(in,"o2",&o2)) sf_error("No o2= in input");
sf_putint(out,"n2",1);
} else {
if (!sf_getint("n2",&n2)) n2=20;
/* number of offsets (if inv=n) */
if (!sf_getfloat("d2",&d2)) d2=200.;
/* offset sampling (if inv=n) */
if (!sf_getfloat("o2",&o2)) o2=0.;
/* offset origin (if inv=n) */
sf_putint(out,"n2",n2);
sf_putfloat(out,"d2",d2);
sf_putfloat(out,"o2",o2);
}
n12 = n1*n2;
if (!sf_getfloat ("v",&v)) v=1000.;
/* velocity */
dat = sf_floatalloc(n12);
model = sf_floatalloc(n1);
imospray_init (1./v, o2,d2, o1,d1, n1,n2);
if (adj) {
sf_floatread(dat,n12,in);
imospray_lop (true,false,n1,n12,model,dat);
sf_floatwrite(model,n1,out);
} else {
sf_floatread(model,n1,in);
imospray_lop (false,false,n1,n12,model,dat);
sf_floatwrite(dat,n12,out);
}
exit(0);
}
示例11: main
int main(int argc, char* argv[])
{
bool adj, inv;
int nn,n1,n2,i1,i2;
float rho, *pp=NULL;
sf_file in=NULL, out=NULL;
sf_init(argc,argv);
in = sf_input("in");
out = sf_output("out");
if (!sf_histint(in,"n1",&n1)) sf_error("No n1= in input");
n2 = sf_leftsize(in,1);
if (!sf_getbool("adj",&adj)) adj=false;
/* If y, apply adjoint */
if (!sf_getbool("inv",&inv)) inv=false;
/* If y, do differentiation instead of integration */
if (!sf_getfloat("rho",&rho)) rho = 1.-1./n1;
/* Leaky integration constant */
if (inv) {
sf_warning("%s half-order differentiation",adj? "anticausal":"causal");
} else {
sf_warning("%s half-order integration",adj? "anticausal":"causal");
}
nn = 2*kiss_fft_next_fast_size((n1+1)/2);
pp = sf_floatalloc(nn);
sf_halfint_init (inv, nn, rho);
for (i2=0; i2 < n2; i2++) {
sf_floatread (pp,n1,in);
for (i1=n1; i1 < nn; i1++) {
pp[i1]=0.;
}
sf_halfint (adj, pp);
sf_floatwrite (pp,n1,out);
}
exit(0);
}
示例12: main
int main(int argc, char* argv[])
{
int n1, n2, i2;
float *pp, *qq;
bool square, adj;
sf_file in, out;
sf_init(argc,argv);
in = sf_input("in");
out = sf_output("out");
if (SF_FLOAT != sf_gettype(in)) sf_error("Need float input");
if (!sf_histint(in,"n1",&n1)) sf_error("No n1= in input");
n2 = sf_leftsize(in,1);
if (!sf_getbool("square",&square)) square=false;
/* if y, use gradient squared */
if (!sf_getbool("adj",&adj)) adj=false;
/* adjoint flag */
pp = sf_floatalloc(n1);
qq = sf_floatalloc(n1);
for (i2=0; i2 < n2; i2++) {
sf_floatread(pp,n1,in);
if (square) {
sf_grad2 (n1,pp,qq);
} else if (adj) {
sf_igrad1_lop (true,false,n1,n1,qq,pp);
} else {
sf_igrad1_lop (false,false,n1,n1,pp,qq);
}
sf_floatwrite(qq,n1,out);
}
exit(0);
}
示例13: main
int main(int argc, char* argv[])
{
bool verb;
int i, dim, n[SF_MAX_DIM], nd, rect[SF_MAX_DIM], niter;
float *noi, *sig, *rat, eps;
char key[6];
sf_file fnoi, fsig, flow;
sf_init(argc,argv);
fnoi = sf_input("in");
fsig = sf_input("sig"); /* input signal */
if (SF_FLOAT != sf_gettype(fnoi) ||
SF_FLOAT != sf_gettype(fsig)) sf_error("Need float input");
flow = sf_output("out");
dim = sf_filedims (fnoi,n);
nd = 1;
for (i=0; i < dim; i++) {
snprintf(key,6,"rect%d",i+1);
if (!sf_getint(key,rect+i)) rect[i]=1;
/*( rect#=(1,1,...) smoothing radius on #-th axis )*/
nd *= n[i];
}
noi = sf_floatalloc(nd);
sig = sf_floatalloc(nd);
rat = sf_floatalloc(nd);
if (!sf_getint("niter",&niter)) niter=100;
/* number of iterations */
if (!sf_getbool("verb",&verb)) verb=true;
/* verbosity */
if (!sf_getfloat("eps",&eps)) eps=0.0f;
/* regularization */
sf_divn_init(dim, nd, n, rect, niter, verb);
sf_floatread(noi,nd,fnoi);
sf_floatread(sig,nd,fsig);
sf_divne (noi, sig, rat, eps);
sf_floatwrite(rat,nd,flow);
exit(0);
}
示例14: main
int main(int argc, char* argv[])
{
bool verb;
int j, k, n, n2, i3, n3, iter, niter;
sf_complex **a=NULL, *e=NULL;
float s2;
sf_file mat=NULL, val=NULL;
sf_init(argc,argv);
mat = sf_input("in");
val = sf_output("out");
if (SF_COMPLEX != sf_gettype(mat)) sf_error("Need complex input");
if (!sf_histint(mat,"n1",&n)) sf_error("No n1= in input");
if (!sf_histint(mat,"n2",&n2) || n2 != n) sf_error("Need n1=n2 in input");
n3 = sf_leftsize(mat,2);
sf_putint(val,"n2",1);
if (!sf_getint("niter",&niter)) niter=10;
if (!sf_getbool("verb",&verb)) verb=false;
a = sf_complexalloc2(n,n);
e = sf_complexalloc(n);
jacobi2_init(n,verb);
for (i3=0; i3 < n3; i3++) {
sf_complexread(a[0],n*n,mat);
for (iter=0; iter < niter; iter++) {
s2 = 0.;
for (j=0; j < n; j++) {
for (k=0; k < n; k++) {
s2 += jacobi2(a,n,j,k);
}
}
sf_warning("iter=%d s2=%g",iter+1,s2);
}
for (j=0; j < n; j++) {
e[j]=a[j][j];
}
sf_complexwrite(e,n, val);
}
exit(0);
}
示例15: main
int main (int argc, char* argv[])
{
bool der;
int i1, n1, i2, n2, irep, nrep;
float *data, *data2, rect;
sf_file in, out;
sf_init (argc, argv);
in = sf_input ("in");
out = sf_output ("out");
if (SF_FLOAT != sf_gettype(in)) sf_error("Need float input");
if (!sf_histint(in,"n1",&n1)) sf_error("No n1= in input");
n2 = sf_leftsize(in,1);
if (!sf_getbool("der",&der)) der=false;
/* compute derivative */
if (!sf_getfloat("rect",&rect)) rect=1;
/* smoothing radius */
recgauss_init (n1,der,rect);
data = sf_floatalloc (n1);
data2 = der? sf_floatalloc (n1): NULL;
if (!sf_getint("repeat",&nrep)) nrep=1;
/* repeat filtering several times */
for (i2=0; i2 < n2; i2++) {
if (der) {
sf_floatread(data2,n1,in);
data[0] = data2[1]-data2[0];
for (i1=1; i1 < n1-1; i1++) {
data[i1] = 0.5*(data2[i1+1]-data2[i1-1]);
}
data[n1-1] = data2[n1-1]-data2[n1-2];
} else {
sf_floatread(data,n1,in);
}
for (irep=0; irep < nrep; irep++) {
recgauss (data);
}
sf_floatwrite(data,n1,out);
}
exit (0);
}