Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

sink.c File Reference

#include "mrilib.h"

Go to the source code of this file.


Defines

#define sinc(x)   (((x)==0.0) ? 1.0 : sin(x)/(x))

Functions

int main (int argc, char *argv[])

Define Documentation

#define sinc      (((x)==0.0) ? 1.0 : sin(x)/(x))
 

Definition at line 3 of file sink.c.

Referenced by main().


Function Documentation

int main int    argc,
char *    argv[]
 

\** File : SUMA.c

Author:
: Ziad Saad Date : Thu Dec 27 16:21:01 EST 2001
Purpose :

Input paramters :

Parameters:
param  Usage : SUMA ( )
Returns :
Returns:
Support :
See also:
OpenGL prog. Guide 3rd edition , varray.c from book's sample code
Side effects :

Definition at line 5 of file sink.c.

References argc, sinc, and strtod().

00006 {
00007    int iarg , nP , nN , pp,nn ;
00008    double rr,qq, lam , val , beta=0.0 ;
00009 
00010    /* help? */
00011 
00012    if( argc < 4 || strcmp(argv[1],"-help") == 0 ){
00013      printf("Usage: sink N P lam [beta]\n"
00014             "Outputs to stdout the .1D file with 2*P+1 columns and 2*N+1 rows:\n"
00015             " sinc[ pi * (p-P*lam*n/N) ]\n"
00016             "OR, if beta != 0:\n"
00017             "  sinc[ pi * (p-P*lam*( beta+(1-beta)*n/N)) ]\n"
00018             " +sinc[ pi * (p-P*lam*(-beta+(1-beta)*n/N)) ]\n"
00019             "for p=-P..P (column index) and n=-N..N (row index).\n"
00020            ) ;
00021      exit(0) ;
00022    }
00023 
00024    nN = (int)strtod(argv[1],NULL); if( nN < 1 ){fprintf(stderr,"illegal N\n");exit(1);}
00025    nP = (int)strtod(argv[2],NULL); if( nP < 1 ){fprintf(stderr,"illegal P\n");exit(1);}
00026    lam = strtod(argv[3],NULL);
00027    if( argc > 4 ) beta = strtod(argv[4],NULL) ;
00028 
00029    rr = (nP*lam*(1.0-beta))/nN ;
00030    qq = (nP*lam*beta) ;
00031 
00032    for( nn=-nN ; nn <= nN ; nn++ ){
00033      for( pp=-nP ; pp <= nP ; pp++ ){
00034        val = sinc( PI * (pp-rr*nn-qq) ) ;
00035 #if 1
00036        if( beta != 0.0 ) val += 0.737*sinc( PI * (pp-rr*nn+qq) ) ;
00037 #endif
00038        printf(" %.12g",val) ;
00039      }
00040      printf("\n") ;
00041    }
00042 
00043    exit(0) ;
00044 }
 

Powered by Plone

This site conforms to the following standards: