int main (int argc, char **argv) { char ch, pow = 0, fac = 0; double number = 0; /* only switches are use to force factorization */ while ((ch = getopt(argc, argv, "hbkmgt")) != -1) { switch (ch) { case 'h': usage(argv[0]); exit(0); break; case 't': fac = 'T'; break; case 'g': fac = 'G'; break; case 'm': fac = 'M'; break; case 'k': fac = 'K'; break; case 'b': fac = 'B'; break; } } switch (argv[argc - 1][strnlen(argv[argc - 1],32) - 1]) { case 'T': pow++; case 'G': pow++; case 'M': pow++; case 'K': pow++; case 'B': argv[argc - 1][strnlen(argv[argc - 1],32) - 1] = 0; } /* get the number and convert it to bytes. If there is none, strtold will return 0 */ number = strtold(argv[argc - 1], NULL); number *= power(1024, pow); if (number <= 0) { errx(EXIT_FAILURE, "I ain't gonna do that. Deal with it."); } /* use explicit factorization. otherwise, guess the best one */ fac = fac > 0 ? fac : factorize(number); /* actually print the result, isn't that what we're here for after all ? */ printf("%.*f%c\n", getscale(), humanize(number, fac), fac == 'B' ? 0 : fac); return 0; }
int main (int argc, char* argv[]) { off_t n1, n2, n[SF_MAX_DIM]; int axis, ndim, i, i2, *ibuf; size_t nsize, nbuf, ntest; sf_file in=NULL; sf_file out=NULL; float *fbuf, *abuf, dscale, pclip; sf_complex* cbuf; sf_datatype type; sf_init (argc, argv); in = sf_input ("in"); out = sf_output ("out"); type = sf_gettype(in); nbuf = sf_bufsiz(in); if (SF_INT == type) sf_settype(out,SF_FLOAT); sf_fileflush(out,in); if (!sf_getint("axis",&axis)) axis = 0; /* Scale by maximum in the dimensions up to this axis. */ if (!sf_getfloat("rscale",&dscale)) dscale=0.; /* Scale by this factor. */ if (!sf_getfloat("pclip",&pclip)) pclip=100.; /* data clip percentile */ ndim = sf_largefiledims (in, n); n1=1; n2=1; for (i=0; i < ndim; i++) { if (i < axis) n1 *= n[i]; else n2 *= n[i]; } abuf = sf_floatalloc(n1); ntest = SF_MAX(n1*pclip/100. + .5,0); if (ntest > n1) ntest = n1; if (1 < n1 && 0. == dscale) { switch (type) { case SF_FLOAT: fbuf = sf_floatalloc(n1); for (i2=0; i2 < n2; i2++) { sf_floatread (fbuf,n1,in); for (i=0; i < n1; i++) { abuf[i] = fabsf(fbuf[i]); } dscale = getscale(ntest,n1,abuf); for (i=0; i < n1; i++) { fbuf[i] *= dscale; } sf_floatwrite (fbuf,n1,out); } break; case SF_COMPLEX: cbuf = sf_complexalloc(n1); for (i2=0; i2 < n2; i2++) { sf_complexread (cbuf,n1,in); for (i=0; i < n1; i++) { abuf[i] = cabsf(cbuf[i]); } dscale = getscale(ntest,n1,abuf); for (i=0; i < n1; i++) { #ifdef SF_HAS_COMPLEX_H cbuf[i] *= dscale; #else cbuf[i] = sf_crmul(cbuf[i],dscale); #endif } sf_complexwrite (cbuf,n1,out); } break; default: sf_error("Unsupported type %d",type); break; } } else { if (0.==dscale && !sf_getfloat("dscale",&dscale)) dscale=1.; /* Scale by this factor (works if rscale=0) */ nsize = n1*n2; switch (type) { case SF_COMPLEX: nsize *= 2; sf_settype(in,SF_FLOAT); sf_settype(out,SF_FLOAT); case SF_FLOAT: nbuf /= sizeof(float); fbuf = sf_floatalloc(nbuf); while (nsize > 0) { if (nsize < nbuf) nbuf = nsize; sf_floatread (fbuf,nbuf,in); for (i=0; i < nbuf; i++) { fbuf[i] *= dscale; } sf_floatwrite (fbuf,nbuf,out); nsize -= nbuf; } break; case SF_INT: nbuf /= sizeof(int); ibuf = sf_intalloc(nbuf); fbuf = sf_floatalloc(nbuf); while (nsize > 0) { if (nsize < nbuf) nbuf = nsize; sf_intread (ibuf,nbuf,in); for (i=0; i < nbuf; i++) { fbuf[i] = (double) ibuf[i]*dscale; } sf_floatwrite (fbuf,nbuf,out); nsize -= nbuf; } break; default: sf_error("Unsupported type %d",type); } } exit (0); }
void rpgitem::render() { vec4 col(colour, temp.alpha); rendermodel(temp.mdl, ANIM_MAPMODEL|ANIM_LOOP, vec(o).sub(vec(0, 0, eyeheight)), yaw, pitch, roll, MDL_CULL_DIST|MDL_CULL_OCCLUDED, NULL, NULL, 0, 0, getscale(), col); }