⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transp.c

📁 seismic software,very useful
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 1990./* All rights reserved.                       */char *sdoc ="TRANSP - TRANSPose an n1 by n2 element matrix\n""\n""transp <infile >outfile n1= [optional parameters]\n""\n""Required Parameters:\n""n1                     number of elements in 1st (fast) dimension of matrix\n""\n""Optional Parameters:\n""n2=all                 number of elements in 2nd (slow) dimension of matrix\n""nbpe=sizeof(float)     number of bytes per matrix element\n""verbose=0              =1 for diagnostic information\n""\n""AUTHOR:  Dave Hale, Colorado School of Mines, 07/07/89\n""\n";#include "par.h"main (argc,argv)int argc; char **argv;{	int n1,n2,nbpe,i1,i2,nread,nwrite,verbose;	char *v;	bmstate *state;	FILE *infp=stdin,*outfp=stdout;	/* hook up getpar */	initargs(argc,argv);	askdoc(1);	/* get parameters */	if (!getparint("n1",&n1)) err("must specify n1!\n");	if (!getparint("nbpe",&nbpe)) nbpe = sizeof(float);	if (!getparint("n2",&n2)) {		if (fseek(infp,0L,2)==-1)			err("input file size unknown; specify n2\n");		n2 = eftell(infp)/(n1*nbpe);		efseek(infp,0L,0);	}	verbose = 0;  getparint("verbose",&verbose);	if (verbose) fprintf(stderr,"n1=%d  n2=%d  nbpe=%d\n",n1,n2,nbpe);	/* allocate space for a single vector in either dimension */	v = ealloc1(((n1>n2)?n1:n2),nbpe);	/* allocate big matrix state */	state = bmalloc(nbpe,n1,n2);	/* put vectors along 1st dimension to big matrix */	if (verbose) fprintf(stderr,"Reading input file\n");	for (i2=0; i2<n2; i2++) {		if (fread(v,1,nbpe*n1,infp)!=nbpe*n1)			err("Error reading input file:  i2=%d\n",i2);		bmwrite(state,1,0,i2,n1,v);	}	/* get vectors along 2nd dimension from big matrix */	if (verbose) fprintf(stderr,"Writing output file\n");	for (i1=0; i1<n1; i1++) {		bmread(state,2,i1,0,n2,v);		if (fwrite(v,1,nbpe*n2,outfp)!=nbpe*n2)			err("Error writing output file:  i1=%d\n",i1);	}	/* free big matrix state */	bmfree(state);	if (verbose) fprintf(stderr,"Transpose done!\n");	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -