\contentsline {section}{\numberline {1}ACKNOWLEDGEMENTS}{10}{section.1} \contentsline {section}{\numberline {2}Introduction}{11}{section.2} \contentsline {subsection}{\numberline {2.1}The Purpose of GRASP}{11}{subsection.2.1} \contentsline {subsection}{\numberline {2.2}Printing/Reading the Manual}{11}{subsection.2.2} \contentsline {subsection}{\numberline {2.3}Quick Start}{11}{subsection.2.3} \contentsline {subsection}{\numberline {2.4}A few words about data formats}{12}{subsection.2.4} \contentsline {subsection}{\numberline {2.5}GRASP Hardware \& Software Requirements}{13}{subsection.2.5} \contentsline {subsection}{\numberline {2.6}GRASP Installation}{14}{subsection.2.6} \contentsline {subsubsection}{\numberline {2.6.1}GRASP File Structure}{14}{subsubsection.2.6.1} \contentsline {subsubsection}{\numberline {2.6.2}Accessing {\it Numerical Recipes in C} libraries}{16}{subsubsection.2.6.2} \contentsline {subsubsection}{\numberline {2.6.3}Accessing MPI and MPE libraries}{17}{subsubsection.2.6.3} \contentsline {subsubsection}{\numberline {2.6.4}Accessing {\it MESA} libraries}{17}{subsubsection.2.6.4} \contentsline {subsubsection}{\numberline {2.6.5}Accessing CLAPACK libraries}{18}{subsubsection.2.6.5} \contentsline {subsubsection}{\numberline {2.6.6}Accessing FRAME libraries}{19}{subsubsection.2.6.6} \contentsline {subsubsection}{\numberline {2.6.7}Real-time 40-meter analysis}{19}{subsubsection.2.6.7} \contentsline {subsubsection}{\numberline {2.6.8}The Matlab Interface}{19}{subsubsection.2.6.8} \contentsline {subsubsection}{\numberline {2.6.9}Making the GRASP binaries and libraries}{19}{subsubsection.2.6.9} \contentsline {subsubsection}{\numberline {2.6.10}Stupid Pet Tricks}{23}{subsubsection.2.6.10} \contentsline {subsection}{\numberline {2.7}Conventions used in this manual}{24}{subsection.2.7} \contentsline {subsection}{\numberline {2.8}How to add your contributions to future GRASP releases.}{25}{subsection.2.8} \contentsline {subsection}{\numberline {2.9}How to use the GRASP library from ROOT.}{28}{subsection.2.9} \contentsline {section}{\numberline {3}GRASP Routines: Reading/using Caltech 40-meter prototype data}{30}{section.3} \contentsline {subsection}{\numberline {3.1}The data format}{31}{subsection.3.1} \contentsline {subsection}{\numberline {3.2}Function: {\tt read\_block()}}{35}{subsection.3.2} \contentsline {subsection}{\numberline {3.3}Example: {\tt reader} program}{37}{subsection.3.3} \contentsline {subsection}{\numberline {3.4}Function: {\tt find\_locked()}}{38}{subsection.3.4} \contentsline {subsection}{\numberline {3.5}Example: {\tt locklist} program}{39}{subsection.3.5} \contentsline {subsection}{\numberline {3.6}Function: {\tt get\_data()}}{40}{subsection.3.6} \contentsline {subsection}{\numberline {3.7}Example: {\tt gwoutput} program}{41}{subsection.3.7} \contentsline {subsection}{\numberline {3.8}Example: {\tt animate} program}{42}{subsection.3.8} \contentsline {subsection}{\numberline {3.9}Function: {\tt read\_sweptsine()}}{46}{subsection.3.9} \contentsline {subsection}{\numberline {3.10}Function: {\tt calibrate()}}{49}{subsection.3.10} \contentsline {subsection}{\numberline {3.11}Example: {\tt print\_ss} program}{50}{subsection.3.11} \contentsline {subsection}{\numberline {3.12}Function: {\tt normalize\_gw()}}{51}{subsection.3.12} \contentsline {subsection}{\numberline {3.13}Example: {\tt power\_spectrum} program}{53}{subsection.3.13} \contentsline {subsection}{\numberline {3.14}Example: {\tt calibrate} program}{56}{subsection.3.14} \contentsline {subsection}{\numberline {3.15}Example: {\tt transfer} program}{59}{subsection.3.15} \contentsline {subsection}{\numberline {3.16}Example: {\tt diag} program}{63}{subsection.3.16} \contentsline {section}{\numberline {4}GRASP Routines: Reading/using FRAME format data}{66}{section.4} \contentsline {subsection}{\numberline {4.1}Time-stamps in the November 1994 data-set}{68}{subsection.4.1} \contentsline {subsection}{\numberline {4.2}Function: {\tt fget\_ch()} }{69}{subsection.4.2} \contentsline {subsection}{\numberline {4.3}Function: {\tt framefiles()} }{74}{subsection.4.3} \contentsline {subsection}{\numberline {4.4}Example: {\tt locklistF} program}{75}{subsection.4.4} \contentsline {subsection}{\numberline {4.5}Example: {\tt gwoutputF} program}{78}{subsection.4.5} \contentsline {subsection}{\numberline {4.6}Example: {\tt animateF} program}{80}{subsection.4.6} \contentsline {subsection}{\numberline {4.7}Swept-sine calibration information}{85}{subsection.4.7} \contentsline {subsection}{\numberline {4.8}Function: {\tt GRcalibrate()}}{87}{subsection.4.8} \contentsline {subsection}{\numberline {4.9}Example: {\tt print\_ssF} program}{88}{subsection.4.9} \contentsline {subsection}{\numberline {4.10}Function: {\tt GRnormalize()}}{90}{subsection.4.10} \contentsline {subsection}{\numberline {4.11}Example: {\tt power\_spectrumF} program}{92}{subsection.4.11} \contentsline {subsection}{\numberline {4.12}Example: {\tt calibrateF} program}{96}{subsection.4.12} \contentsline {subsection}{\numberline {4.13}Example: {\tt transferF} program}{100}{subsection.4.13} \contentsline {subsection}{\numberline {4.14}Example: {\tt diagF} program}{104}{subsection.4.14} \contentsline {subsection}{\numberline {4.15}Example: {\tt seismicF} program}{107}{subsection.4.15} \contentsline {section}{\numberline {5}GRASP Routines: Signal-to-noise enhancement techniques}{108}{section.5} \contentsline {subsection}{\numberline {5.1}Signal-to-noise enhancement by environmental cross-correlation}{108}{subsection.5.1} \contentsline {subsection}{\numberline {5.2}Outline}{110}{subsection.5.2} \contentsline {subsection}{\numberline {5.3}Function: {\tt calc\_rho()}}{112}{subsection.5.3} \contentsline {subsection}{\numberline {5.4}Function {\tt chan\_clean()}}{113}{subsection.5.4} \contentsline {subsection}{\numberline {5.5}Example: Correlations in data from the 40m interferometer }{115}{subsection.5.5} \contentsline {subsection}{\numberline {5.6}Example: {\tt corr\_init} }{118}{subsection.5.6} \contentsline {subsection}{\numberline {5.7}Example: {\tt env\_corr} }{122}{subsection.5.7} \contentsline {section}{\numberline {6}GRASP Routines: Gravitational Radiation from Binary Inspiral}{130}{section.6} \contentsline {subsection}{\numberline {6.1}Chirp generation routines}{131}{subsection.6.1} \contentsline {subsection}{\numberline {6.2}Function: {\tt phase\_frequency()}}{132}{subsection.6.2} \contentsline {subsection}{\numberline {6.3}Example: {\tt phase\_evoltn} program}{134}{subsection.6.3} \contentsline {subsection}{\numberline {6.4}Detailed explanation of {\tt phase\_frequency()} routine}{137}{subsection.6.4} \contentsline {subsection}{\numberline {6.5}Function: {\tt chirp\_filters()}}{139}{subsection.6.5} \contentsline {subsection}{\numberline {6.6}Detailed explanation of {\tt chirp\_filters()} routine}{141}{subsection.6.6} \contentsline {subsection}{\numberline {6.7}Example: {\tt filters} program}{143}{subsection.6.7} \contentsline {subsection}{\numberline {6.8}Practical Suggestion for Setting Up a Large Bank of Filters:}{145}{subsection.6.8} \contentsline {subsection}{\numberline {6.9}Additional contributions to the phase and frequency of the chirp}{146}{subsection.6.9} \contentsline {subsubsection}{\numberline {6.9.1}Spin Effects}{146}{subsubsection.6.9.1} \contentsline {subsubsection}{\numberline {6.9.2} 2.5 Post-Newtonian corrections to the inspiral chirp}{149}{subsubsection.6.9.2} \contentsline {subsection}{\numberline {6.10}Function: {\tt make\_filters()}}{151}{subsection.6.10} \contentsline {subsection}{\numberline {6.11}Stationary phase approximation to binary inspiral chirps}{152}{subsection.6.11} \contentsline {subsection}{\numberline {6.12}Function: {\tt sp\_filters()}}{154}{subsection.6.12} \contentsline {subsection}{\numberline {6.13}Example: {\tt compare\_chirps} program}{155}{subsection.6.13} \contentsline {subsection}{\numberline {6.14}Wiener (optimal) filtering}{157}{subsection.6.14} \contentsline {subsection}{\numberline {6.15}Comparison of signal detectability for single-phase and two-phase searches}{162}{subsection.6.15} \contentsline {subsection}{\numberline {6.16}Function: \tt correlate()}{164}{subsection.6.16} \contentsline {subsection}{\numberline {6.17}Function: {\tt avg\_inv\_spec()}}{166}{subsection.6.17} \contentsline {subsection}{\numberline {6.18}Function: {\tt orthonormalize()}}{167}{subsection.6.18} \contentsline {subsection}{\numberline {6.19}Dirty details of optimal filtering: wraparound and windowing}{168}{subsection.6.19} \contentsline {subsection}{\numberline {6.20}Function: {\tt find\_chirp()}}{174}{subsection.6.20} \contentsline {subsection}{\numberline {6.21}Function: {\tt freq\_inject\_chirp()}}{175}{subsection.6.21} \contentsline {subsection}{\numberline {6.22}Function: {\tt time\_inject\_chirp()}}{176}{subsection.6.22} \contentsline {subsection}{\numberline {6.23}Vetoing techniques (time domain outlier test)}{177}{subsection.6.23} \contentsline {subsection}{\numberline {6.24}Vetoing techniques ($r^2$ time/frequency test)}{180}{subsection.6.24} \contentsline {subsection}{\numberline {6.25} How does the $r^2$ test work ?}{187}{subsection.6.25} \contentsline {subsection}{\numberline {6.26}Function: {\tt splitup()}}{189}{subsection.6.26} \contentsline {subsection}{\numberline {6.27}Function: {\tt splitup\_freq()}}{190}{subsection.6.27} \contentsline {subsection}{\numberline {6.28}Function: {\tt splitup\_freq2()}}{191}{subsection.6.28} \contentsline {subsection}{\numberline {6.29}Function: {\tt splitup\_freq3()}}{192}{subsection.6.29} \contentsline {subsection}{\numberline {6.30}Example: {\tt optimal} program}{193}{subsection.6.30} \contentsline {subsection}{\numberline {6.31}Some output from the {\tt optimal} program}{199}{subsection.6.31} \contentsline {subsection}{\numberline {6.32}The effective distance to which a source can be seen}{204}{subsection.6.32} \contentsline {subsection}{\numberline {6.33}Function: {\tt inspiral\_dist()}}{206}{subsection.6.33} \contentsline {subsection}{\numberline {6.34}Function: {\tt merger\_dist()}}{207}{subsection.6.34} \contentsline {subsection}{\numberline {6.35}Example: {\tt compute\_dist} program}{208}{subsection.6.35} \contentsline {section}{\numberline {7}GRASP Routines: Waveforms from perturbation theory}{211}{section.7} \contentsline {subsection}{\numberline {7.1}The waveform}{211}{subsection.7.1} \contentsline {subsection}{\numberline {7.2}Chirp generation for test mass signals}{213}{subsection.7.2} \contentsline {subsection}{\numberline {7.3}Function: {\tt testmass\_chirp()}}{214}{subsection.7.3} \contentsline {subsection}{\numberline {7.4}Function: {\tt calculate\_testmass\_phase()}}{216}{subsection.7.4} \contentsline {subsection}{\numberline {7.5}Function: {\tt Get\_Duration()}}{217}{subsection.7.5} \contentsline {subsection}{\numberline {7.6}Function: {\tt Get\_Fmax()}}{218}{subsection.7.6} \contentsline {subsection}{\numberline {7.7}Function: {\tt ReadData()}}{219}{subsection.7.7} \contentsline {subsection}{\numberline {7.8}Function: {\tt Clean\_Up\_Memory()}}{220}{subsection.7.8} \contentsline {subsection}{\numberline {7.9}Function: {\tt Set\_Up\_Data()}}{221}{subsection.7.9} \contentsline {subsection}{\numberline {7.10}Function: {\tt minustwoSlm()}}{222}{subsection.7.10} \contentsline {subsection}{\numberline {7.11}Function: {\tt read\_modes()}}{223}{subsection.7.11} \contentsline {subsection}{\numberline {7.12}Function: {\tt read\_real\_data\_file()}}{224}{subsection.7.12} \contentsline {subsection}{\numberline {7.13}Function: {\tt integrate\_function()}}{225}{subsection.7.13} \contentsline {subsection}{\numberline {7.14}Function: {\tt integrateODE()}}{226}{subsection.7.14} \contentsline {subsection}{\numberline {7.15}Errors}{227}{subsection.7.15} \contentsline {subsection}{\numberline {7.16}Example: {\tt tmwave} program}{228}{subsection.7.16} \contentsline {subsection}{\numberline {7.17}Example: {\tt lorenz} program}{231}{subsection.7.17} \contentsline {subsection}{\numberline {7.18}Example: {\tt plot\_ambig} program}{233}{subsection.7.18} \contentsline {section}{\numberline {8}GRASP Routines: Black hole ringdown}{238}{section.8} \contentsline {subsection}{\numberline {8.1}Quasinormal modes of black holes}{239}{subsection.8.1} \contentsline {subsection}{\numberline {8.2}Function: \texttt {qn\_eigenvalues()}}{241}{subsection.8.2} \contentsline {subsection}{\numberline {8.3}Example: \texttt {eigenvalues} program}{242}{subsection.8.3} \contentsline {subsection}{\numberline {8.4}Function: \texttt {sw\_spheroid()}}{244}{subsection.8.4} \contentsline {subsection}{\numberline {8.5}Example: \texttt {spherical} program}{245}{subsection.8.5} \contentsline {subsection}{\numberline {8.6}Example: \texttt {spheroid} program}{248}{subsection.8.6} \contentsline {subsection}{\numberline {8.7}Function: \texttt {qn\_ring()}}{250}{subsection.8.7} \contentsline {subsection}{\numberline {8.8}Example: \texttt {ringdown} program}{251}{subsection.8.8} \contentsline {subsection}{\numberline {8.9}Function: \texttt {qn\_qring()}}{253}{subsection.8.9} \contentsline {subsection}{\numberline {8.10}Function: \texttt {qn\_filter()}}{255}{subsection.8.10} \contentsline {subsection}{\numberline {8.11}Function: \texttt {qn\_normalize()}}{256}{subsection.8.11} \contentsline {subsection}{\numberline {8.12}Function: \texttt {find\_ring()}}{257}{subsection.8.12} \contentsline {subsection}{\numberline {8.13}Function: \texttt {qn\_inject()}}{258}{subsection.8.13} \contentsline {subsection}{\numberline {8.14}Vetoing techniques for ringdown waveforms}{259}{subsection.8.14} \contentsline {subsection}{\numberline {8.15}Example: \texttt {qn\_optimal} program}{260}{subsection.8.15} \contentsline {subsection}{\numberline {8.16}Structure: \texttt {struct qnTemplate}}{264}{subsection.8.16} \contentsline {subsection}{\numberline {8.17}Structure: \texttt {struct qnScope}}{265}{subsection.8.17} \contentsline {subsection}{\numberline {8.18}Function: \texttt {qn\_template\_grid()}}{266}{subsection.8.18} \contentsline {subsection}{\numberline {8.19}The close-limit approximation and numerical simulations}{268}{subsection.8.19} \contentsline {subsection}{\numberline {8.20}Inspiralling collisions}{270}{subsection.8.20} \contentsline {subsection}{\numberline {8.21}Example: \texttt {ring-corr} program}{272}{subsection.8.21} \contentsline {section}{\numberline {9}GRASP Routines: Template Bank Generation \& Searching}{279}{section.9} \contentsline {subsection}{\numberline {9.1}Structure: {\tt struct Template}}{279}{subsection.9.1} \contentsline {subsection}{\numberline {9.2}Structure: {\tt struct Scope}}{282}{subsection.9.2} \contentsline {subsection}{\numberline {9.3}Function: {\tt tau\_of\_mass()}}{283}{subsection.9.3} \contentsline {subsection}{\numberline {9.4}Function: {\tt m\_and\_eta()}}{284}{subsection.9.4} \contentsline {subsection}{\numberline {9.5}Function: {\tt template\_area()}}{286}{subsection.9.5} \contentsline {subsection}{\numberline {9.6}Example: {\tt area} program}{287}{subsection.9.6} \contentsline {subsection}{\numberline {9.7}The match between two templates}{288}{subsection.9.7} \contentsline {subsection}{\numberline {9.8}Function: \tt {compute\_match()}}{289}{subsection.9.8} \contentsline {subsection}{\numberline {9.9}Function: \tt {match\_parab()}}{290}{subsection.9.9} \contentsline {subsection}{\numberline {9.10}Function: \tt {match\_cubic()}}{292}{subsection.9.10} \contentsline {subsection}{\numberline {9.11}Example: {\tt match\_fit} program}{293}{subsection.9.11} \contentsline {subsection}{\numberline {9.12}Structure: {\tt struct cubic\_grid}}{295}{subsection.9.12} \contentsline {subsection}{\numberline {9.13}Function: {\tt generate\_cubic}}{296}{subsection.9.13} \contentsline {subsection}{\numberline {9.14}Function: {\tt regenerate\_cubic}}{297}{subsection.9.14} \contentsline {subsection}{\numberline {9.15}Function: {\tt read\_cubic}}{298}{subsection.9.15} \contentsline {subsection}{\numberline {9.16}Function: {\tt get\_cubic}}{299}{subsection.9.16} \contentsline {subsection}{\numberline {9.17}Function: {\tt free\_cubic}}{300}{subsection.9.17} \contentsline {subsection}{\numberline {9.18}Function: {\tt transform\_cubic}}{301}{subsection.9.18} \contentsline {subsection}{\numberline {9.19}Example: {\tt make\_grid} program}{302}{subsection.9.19} \contentsline {subsection}{\numberline {9.20}Example: {\tt read\_grid} program}{304}{subsection.9.20} \contentsline {subsection}{\numberline {9.21}Function: {\tt template\_grid()}}{306}{subsection.9.21} \contentsline {subsection}{\numberline {9.22}Function: {\tt plot\_template()}}{309}{subsection.9.22} \contentsline {subsection}{\numberline {9.23}Example: {\tt template} program}{311}{subsection.9.23} \contentsline {subsection}{\numberline {9.24}Example: {\tt multifilter} program}{312}{subsection.9.24} \contentsline {subsection}{\numberline {9.25}Optimization and computation-speed considerations}{325}{subsection.9.25} \contentsline {subsection}{\numberline {9.26}Template Placement}{327}{subsection.9.26} \contentsline {subsection}{\numberline {9.27}Structure: {\tt struct tile}}{329}{subsection.9.27} \contentsline {subsection}{\numberline {9.28}Function: {\tt tiling\_2d}}{330}{subsection.9.28} \contentsline {subsection}{\numberline {9.29}Function: {\tt plot\_list}}{332}{subsection.9.29} \contentsline {subsection}{\numberline {9.30}Constants in {\tt tiling\_2d.c}}{333}{subsection.9.30} \contentsline {subsection}{\numberline {9.31}Structure: {\tt struct chirp\_space}}{334}{subsection.9.31} \contentsline {subsection}{\numberline {9.32}Structure: {\tt struct chirp\_template}}{335}{subsection.9.32} \contentsline {subsection}{\numberline {9.33}Function: {\tt set\_chirp\_space}}{337}{subsection.9.33} \contentsline {subsection}{\numberline {9.34}Function: {\tt chirp\_metric}}{338}{subsection.9.34} \contentsline {subsection}{\numberline {9.35}Function: {\tt get\_chirp\_boundary}}{339}{subsection.9.35} \contentsline {subsection}{\numberline {9.36}Function: {\tt get\_chirp\_grid}}{340}{subsection.9.36} \contentsline {subsection}{\numberline {9.37}Function: {\tt get\_chirp\_templates}}{341}{subsection.9.37} \contentsline {subsection}{\numberline {9.38}Function: {\tt plot\_chirp\_templates}}{342}{subsection.9.38} \contentsline {subsection}{\numberline {9.39}Example: {\tt make\_mesh} program}{343}{subsection.9.39} \contentsline {section}{\numberline {10}GRASP Routines: Time-Frequency Methods}{346}{section.10} \contentsline {subsection}{\numberline {10.1}Construction of the TF map}{346}{subsection.10.1} \contentsline {subsubsection}{\numberline {10.1.1}Wigner-Ville Distribution}{346}{subsubsection.10.1.1} \contentsline {subsubsection}{\numberline {10.1.2}Windowed Fourier transform}{348}{subsubsection.10.1.2} \contentsline {subsubsection}{\numberline {10.1.3}Choi-William's distribution}{348}{subsubsection.10.1.3} \contentsline {subsection}{\numberline {10.2}Steger's Line Detection Routines}{348}{subsection.10.2} \contentsline {subsection}{\numberline {10.3}Structure: {\tt struct struct\_tfparam}}{349}{subsection.10.3} \contentsline {subsection}{\numberline {10.4}Function: {\tt time\_freq\_map()}}{350}{subsection.10.4} \contentsline {subsection}{\numberline {10.5}Function {\tt compute\_scalefactor()}}{350}{subsection.10.5} \contentsline {subsection}{\numberline {10.6}Function {\tt rescale()}}{351}{subsection.10.6} \contentsline {subsection}{\numberline {10.7}Function {\tt normalize\_picture()}}{351}{subsection.10.7} \contentsline {subsection}{\numberline {10.8}Function {\tt gen\_quasiperiodic\_signal()}}{351}{subsection.10.8} \contentsline {subsection}{\numberline {10.9}Function: {\tt ppmprint()}}{353}{subsection.10.9} \contentsline {subsection}{\numberline {10.10}Function: {\tt pgmprint()}}{353}{subsection.10.10} \contentsline {subsection}{\numberline {10.11}Function: {\tt plottf()}}{353}{subsection.10.11} \contentsline {subsection}{\numberline {10.12}Function: {\tt get\_line\_lens()}}{354}{subsection.10.12} \contentsline {subsection}{\numberline {10.13}Function: {\tt get\_lines()}}{354}{subsection.10.13} \contentsline {subsection}{\numberline {10.14}Example: tfmain program}{355}{subsection.10.14} \contentsline {subsubsection}{\numberline {10.14.1}Environment variables used by tfmain}{355}{subsubsection.10.14.1} \contentsline {subsubsection}{\numberline {10.14.2}File: \tt tfmain.h}{356}{subsubsection.10.14.2} \contentsline {subsubsection}{\numberline {10.14.3}File: \tt tfmain.c}{358}{subsubsection.10.14.3} \contentsline {subsubsection}{\numberline {10.14.4}File: \tt tf\_get\_data.c}{363}{subsubsection.10.14.4} \contentsline {subsubsection}{\numberline {10.14.5}File: \tt tfmain.in}{364}{subsubsection.10.14.5} \contentsline {subsubsection}{\numberline {10.14.6}\texttt File: {\tt combine.c}}{366}{subsubsection.10.14.6} \contentsline {subsubsection}{\numberline {10.14.7}File: \tt readertf.c}{366}{subsubsection.10.14.7} \contentsline {section}{\numberline {11}GRASP Routines: Stochastic background detection}{367}{section.11} \contentsline {subsection}{\numberline {11.1}Data File: {\tt detectors.dat}}{367}{subsection.11.1} \contentsline {subsection}{\numberline {11.2}Function: {\tt detector\_site()}}{370}{subsection.11.2} \contentsline {subsection}{\numberline {11.3}Comment: noise power spectra for ``advanced" LIGO \& the Cutler-Flanagan model}{372}{subsection.11.3} \contentsline {subsection}{\numberline {11.4}Function: {\tt noise\_power()}}{373}{subsection.11.4} \contentsline {subsection}{\numberline {11.5}Function: {\tt whiten()}}{375}{subsection.11.5} \contentsline {subsection}{\numberline {11.6}Function: {\tt overlap()}}{377}{subsection.11.6} \contentsline {subsection}{\numberline {11.7}Example: {\tt overlap} program}{378}{subsection.11.7} \contentsline {subsection}{\numberline {11.8}Function: {\tt get\_IFO12()}}{380}{subsection.11.8} \contentsline {subsection}{\numberline {11.9}Function: {\tt simulate\_noise()}}{381}{subsection.11.9} \contentsline {subsection}{\numberline {11.10}Function: {\tt simulate\_sb()}}{383}{subsection.11.10} \contentsline {subsection}{\numberline {11.11}Function: {\tt combine\_data()}}{386}{subsection.11.11} \contentsline {subsection}{\numberline {11.12}Function: {\tt monte\_carlo()}}{387}{subsection.11.12} \contentsline {subsection}{\numberline {11.13}Example: {\tt monte\_carlo} program}{389}{subsection.11.13} \contentsline {subsection}{\numberline {11.14}Function: {\tt test\_data12()}}{396}{subsection.11.14} \contentsline {subsection}{\numberline {11.15}Function: {\tt extract\_noise()}}{397}{subsection.11.15} \contentsline {subsection}{\numberline {11.16}Function: {\tt extract\_signal()}}{399}{subsection.11.16} \contentsline {subsection}{\numberline {11.17}Function: {\tt optimal\_filter()}}{401}{subsection.11.17} \contentsline {subsection}{\numberline {11.18}Example: {\tt optimal\_filter} program}{403}{subsection.11.18} \contentsline {subsection}{\numberline {11.19}Discussion: Theoretical signal-to-noise ratio for the stochastic background}{407}{subsection.11.19} \contentsline {subsection}{\numberline {11.20}Function: {\tt calculate\_var()}}{409}{subsection.11.20} \contentsline {subsection}{\numberline {11.21}Example: {\tt snr} program}{411}{subsection.11.21} \contentsline {subsection}{\numberline {11.22}Example: {\tt omega\_min} program}{413}{subsection.11.22} \contentsline {subsection}{\numberline {11.23}Function: {\tt analyze()}}{416}{subsection.11.23} \contentsline {subsection}{\numberline {11.24}Function: {\tt prelim\_stats()}}{418}{subsection.11.24} \contentsline {subsection}{\numberline {11.25}Function: {\tt statistics()}}{420}{subsection.11.25} \contentsline {subsection}{\numberline {11.26}Example: {\tt simulation} program}{421}{subsection.11.26} \contentsline {subsection}{\numberline {11.27}Some output from the {\tt simulation} program}{424}{subsection.11.27} \contentsline {section}{\numberline {12}Galactic Modelling}{427}{section.12} \contentsline {subsection}{\numberline {12.1}Function: \texttt {local\_sidereal\_time()}}{428}{subsection.12.1} \contentsline {subsection}{\numberline {12.2}Example: \texttt {caltech\_lst} program}{429}{subsection.12.2} \contentsline {subsection}{\numberline {12.3}Function: \texttt {galactic\_to\_equatorial()}}{431}{subsection.12.3} \contentsline {subsection}{\numberline {12.4}Example: \texttt {galactic2equatorial} program}{432}{subsection.12.4} \contentsline {subsection}{\numberline {12.5}Function: \texttt {equatorial\_to\_horizon()}}{434}{subsection.12.5} \contentsline {subsection}{\numberline {12.6}Function: \texttt {beam\_pattern()}}{435}{subsection.12.6} \contentsline {subsection}{\numberline {12.7}Function: \texttt {mc\_chirp()}}{436}{subsection.12.7} \contentsline {subsection}{\numberline {12.8}Example: \texttt {inject} program}{437}{subsection.12.8} \contentsline {section}{\numberline {13}Binary Inspiral Search on November 1994 Data}{441}{section.13} \contentsline {subsection}{\numberline {13.1}The Statistical Theory of Reception}{442}{subsection.13.1} \contentsline {subsubsection}{\numberline {13.1.1}Maximum Likelihood Receiver}{442}{subsubsection.13.1.1} \contentsline {subsubsection}{\numberline {13.1.2}A Receiver for a Known Signal}{442}{subsubsection.13.1.2} \contentsline {subsubsection}{\numberline {13.1.3}A Receiver for a Signal of Unknown Phase}{443}{subsubsection.13.1.3} \contentsline {subsubsection}{\numberline {13.1.4}Reception of a Signal with Unknown Arrival Time}{444}{subsubsection.13.1.4} \contentsline {subsubsection}{\numberline {13.1.5}Reception of a Signal with Additional Unknown Parameters}{445}{subsubsection.13.1.5} \contentsline {subsection}{\numberline {13.2}Details of Normalization}{446}{subsection.13.2} \contentsline {subsection}{\numberline {13.3}Function: \texttt {strain\_spec()}}{447}{subsection.13.3} \contentsline {subsection}{\numberline {13.4}Function: \texttt {corr\_coef()}}{448}{subsection.13.4} \contentsline {subsection}{\numberline {13.5}Function: \texttt {receiver1()}}{449}{subsection.13.5} \contentsline {subsection}{\numberline {13.6}Function: \texttt {receiver2()}}{450}{subsection.13.6} \contentsline {subsection}{\numberline {13.7}Example: \texttt {binary\_search} program}{452}{subsection.13.7} \contentsline {subsubsection}{\numberline {13.7.1}Environment variables used by {\tt binary\_search}}{454}{subsubsection.13.7.1} \contentsline {subsubsection}{\numberline {13.7.2}File: \texttt {binary\_params.h}}{455}{subsubsection.13.7.2} \contentsline {subsubsection}{\numberline {13.7.3}File: \texttt {binary\_search.c} (MPI multiprocessor code)}{458}{subsubsection.13.7.3} \contentsline {subsubsection}{\numberline {13.7.4}File: \texttt {binary\_get\_data.c}}{472}{subsubsection.13.7.4} \contentsline {subsection}{\numberline {13.8}Scripts for running {\tt binary\_search}}{492}{subsection.13.8} \contentsline {subsection}{\numberline {13.9}Example: \texttt {binary\_reader} program}{493}{subsection.13.9} \contentsline {subsection}{\numberline {13.10}Identification of Spurious Events}{496}{subsection.13.10} \contentsline {section}{\numberline {14}GRASP Routines: Supernovae and other transient sources}{499}{section.14} \contentsline {subsection}{\numberline {14.1}Centrifugal Hang-up of Core Collapse Supernovae}{500}{subsection.14.1} \contentsline {subsection}{\numberline {14.2}Structure: {\tt LS\_physical\_constants}}{502}{subsection.14.2} \contentsline {subsection}{\numberline {14.3}Function: {\tt LS\_freq\_deriv()}}{503}{subsection.14.3} \contentsline {subsection}{\numberline {14.4}Function: {\tt LS\_phas\_and\_freq()}}{504}{subsection.14.4} \contentsline {subsection}{\numberline {14.5}Function: {\tt LS\_waveform()}}{505}{subsection.14.5} \contentsline {subsection}{\numberline {14.6}Example: {\tt LS\_filter} program}{506}{subsection.14.6} \contentsline {section}{\numberline {15}GRASP Routines: Periodic and quasi-periodic sources}{507}{section.15} \contentsline {section}{\numberline {16}GRASP Routines: General purpose utilities}{508}{section.16} \contentsline {subsection}{\numberline {16.1}GRASP Error Handling}{509}{subsection.16.1} \contentsline {subsubsection}{\numberline {16.1.1}Reporting Errors In GRASP Code}{509}{subsubsection.16.1.1} \contentsline {subsubsection}{\numberline {16.1.2}How GRASP Error Reports Are Handled}{510}{subsubsection.16.1.2} \contentsline {subsubsection}{\numberline {16.1.3}Customizing The Default Handlers}{510}{subsubsection.16.1.3} \contentsline {subsubsection}{\numberline {16.1.4}Writing Custom Error Handlers}{511}{subsubsection.16.1.4} \contentsline {subsubsection}{\numberline {16.1.5}Functions: {\tt GR\_start\_error()}, {\tt GR\_report\_error()}, {\tt GR\_end\_error()}}{513}{subsubsection.16.1.5} \contentsline {subsection}{\numberline {16.2}Function: {\tt grasp\_open()}}{514}{subsection.16.2} \contentsline {subsection}{\numberline {16.3}Function: {\tt avg\_spec() }}{515}{subsection.16.3} \contentsline {subsection}{\numberline {16.4}Function: {\tt binshort()}}{517}{subsection.16.4} \contentsline {subsection}{\numberline {16.5}Function: {\tt is\_gaussian()}}{518}{subsection.16.5} \contentsline {subsection}{\numberline {16.6}Function: {\tt clear()}}{520}{subsection.16.6} \contentsline {subsection}{\numberline {16.7}Function: \tt product()}{521}{subsection.16.7} \contentsline {subsection}{\numberline {16.8}Function: \tt productc()}{522}{subsection.16.8} \contentsline {subsection}{\numberline {16.9}Function: \tt ratio()}{523}{subsection.16.9} \contentsline {subsection}{\numberline {16.10}Function: \texttt {reciprocal()}}{524}{subsection.16.10} \contentsline {subsection}{\numberline {16.11}Function: {\tt graph()}}{525}{subsection.16.11} \contentsline {subsection}{\numberline {16.12}Function: {\tt graph\_double()}}{526}{subsection.16.12} \contentsline {subsection}{\numberline {16.13}Function: {\tt graph\_short()}}{527}{subsection.16.13} \contentsline {subsection}{\numberline {16.14}Function: {\tt sgraph()}}{528}{subsection.16.14} \contentsline {subsection}{\numberline {16.15}Function: {\tt audio()}}{529}{subsection.16.15} \contentsline {subsection}{\numberline {16.16}Example: {\tt makesounds} program}{530}{subsection.16.16} \contentsline {subsection}{\numberline {16.17}Function: {\tt sound()}}{532}{subsection.16.17} \contentsline {subsection}{\numberline {16.18}Example: {\tt translate}}{533}{subsection.16.18} \contentsline {subsection}{\numberline {16.19}Multi-taper methods for spectral analysis}{543}{subsection.16.19} \contentsline {subsection}{\numberline {16.20}Function: {\tt slepian\_tapers()} }{544}{subsection.16.20} \contentsline {subsection}{\numberline {16.21}Function: {\tt multitaper\_spectrum()} }{546}{subsection.16.21} \contentsline {subsection}{\numberline {16.22}Function: {\tt multitaper\_cross\_spectrum()} }{548}{subsection.16.22} \contentsline {subsection}{\numberline {16.23}Structure: {\tt struct removed\_lines} }{549}{subsection.16.23} \contentsline {subsection}{\numberline {16.24}Function: {\tt fvalue\_cmp()} }{550}{subsection.16.24} \contentsline {subsection}{\numberline {16.25}Function: {\tt index\_cmp()} }{551}{subsection.16.25} \contentsline {subsection}{\numberline {16.26}Function: {\tt remove\_spectral\_lines()} }{552}{subsection.16.26} \contentsline {subsection}{\numberline {16.27}Example: {\tt river} }{554}{subsection.16.27} \contentsline {subsection}{\numberline {16.28}Example: {\tt ifo\_clean} }{557}{subsection.16.28} \contentsline {subsection}{\numberline {16.29}Example: {\tt tracker} }{561}{subsection.16.29} \contentsline {subsection}{\numberline {16.30}Example: {\tt trackerF}}{563}{subsection.16.30} \contentsline {section}{\numberline {17}Time Standards: UTC, GPS, TAI, and Unix-C times.}{569}{section.17} \contentsline {subsection}{\numberline {17.1}Function: {\tt utctime()} }{573}{subsection.17.1} \contentsline {subsection}{\numberline {17.2}Function: {\tt gpstime()} }{574}{subsection.17.2} \contentsline {subsection}{\numberline {17.3}Example: {\tt testutctime} }{575}{subsection.17.3} \contentsline {section}{\numberline {18}Matlab Interface: Gravitational Radiation Toolbox}{576}{section.18} \contentsline {subsection}{\numberline {18.1}Using {\tt GRtool}}{577}{subsection.18.1} \contentsline {subsection}{\numberline {18.2}Functions}{580}{subsection.18.2} \contentsline {subsubsection}{\numberline {18.2.1}Function: {\tt frextract}}{581}{subsubsection.18.2.1} \contentsline {subsubsection}{\numberline {18.2.2}Function: {\tt getfri}}{581}{subsubsection.18.2.2} \contentsline {subsubsection}{\numberline {18.2.3}Function: {\tt inspfilt}}{582}{subsubsection.18.2.3} \contentsline {subsubsection}{\numberline {18.2.4}Function: {\tt mxAvg\_inv\_spec}}{583}{subsubsection.18.2.4} \contentsline {subsubsection}{\numberline {18.2.5}Function: {\tt mxChirp\_filters}}{583}{subsubsection.18.2.5} \contentsline {subsubsection}{\numberline {18.2.6}Function: {\tt mxCompute\_match}}{583}{subsubsection.18.2.6} \contentsline {subsubsection}{\numberline {18.2.7}Function: {\tt mxCorrelate}}{583}{subsubsection.18.2.7} \contentsline {subsubsection}{\numberline {18.2.8}Function: {\tt mxDetector\_site}}{583}{subsubsection.18.2.8} \contentsline {subsubsection}{\numberline {18.2.9}Function: {\tt mxFget\_ch}}{584}{subsubsection.18.2.9} \contentsline {subsubsection}{\numberline {18.2.10}Function: {\tt mxFind\_chirp}}{585}{subsubsection.18.2.10} \contentsline {subsubsection}{\numberline {18.2.11}Function: {\tt mxFreq\_inject\_chirp}}{585}{subsubsection.18.2.11} \contentsline {subsubsection}{\numberline {18.2.12}Function: {\tt mxGRcalibrate}}{585}{subsubsection.18.2.12} \contentsline {subsubsection}{\numberline {18.2.13}Function: {\tt mxGRnormalize}}{585}{subsubsection.18.2.13} \contentsline {subsubsection}{\numberline {18.2.14}Function: {\tt mxM\_and\_eta}}{585}{subsubsection.18.2.14} \contentsline {subsubsection}{\numberline {18.2.15}Function: {\tt mxMake\_filters}}{586}{subsubsection.18.2.15} \contentsline {subsubsection}{\numberline {18.2.16}Function: {\tt mxMatch\_cubic}}{586}{subsubsection.18.2.16} \contentsline {subsubsection}{\numberline {18.2.17}Function: {\tt mxOrthonormalize}}{586}{subsubsection.18.2.17} \contentsline {subsubsection}{\numberline {18.2.18}Function: {\tt mxPhase\_frequency}}{586}{subsubsection.18.2.18} \contentsline {subsubsection}{\numberline {18.2.19}Function: {\tt mxSp\_filters}}{586}{subsubsection.18.2.19} \contentsline {subsubsection}{\numberline {18.2.20}Function: {\tt mxSplitup}}{587}{subsubsection.18.2.20} \contentsline {subsubsection}{\numberline {18.2.21}Function: {\tt mxSplitup\_freq}}{587}{subsubsection.18.2.21} \contentsline {subsubsection}{\numberline {18.2.22}Function: {\tt mxSplitup\_freq2}}{587}{subsubsection.18.2.22} \contentsline {subsubsection}{\numberline {18.2.23}Function: {\tt mxTau\_of\_mass}}{587}{subsubsection.18.2.23} \contentsline {subsubsection}{\numberline {18.2.24}Function: {\tt mxTemplate\_area}}{587}{subsubsection.18.2.24} \contentsline {subsubsection}{\numberline {18.2.25}Function: {\tt mxTime\_inject\_chirp}}{587}{subsubsection.18.2.25} \contentsline {subsubsection}{\numberline {18.2.26}Function: {\tt mxUrlopen}}{588}{subsubsection.18.2.26} \contentsline {subsection}{\numberline {18.3}Examples}{588}{subsection.18.3} \contentsline {subsubsection}{\numberline {18.3.1}Example: {\tt print\_ssF}}{588}{subsubsection.18.3.1} \contentsline {subsubsection}{\numberline {18.3.2}Example: {\tt power\_spectrumF}}{589}{subsubsection.18.3.2} \contentsline {subsubsection}{\numberline {18.3.3}Example: {\tt phase\_evoltn}}{590}{subsubsection.18.3.3} \contentsline {subsubsection}{\numberline {18.3.4}Example: {\tt filters}}{590}{subsubsection.18.3.4} \contentsline {subsubsection}{\numberline {18.3.5}Example: {\tt area}}{591}{subsubsection.18.3.5} \contentsline {subsubsection}{\numberline {18.3.6}Example: {\tt match\_fit}}{591}{subsubsection.18.3.6} \contentsline {subsubsection}{\numberline {18.3.7}Example: {\tt readfri}}{592}{subsubsection.18.3.7} \contentsline {subsubsection}{\numberline {18.3.8}Example: {\tt oneFget}}{593}{subsubsection.18.3.8} \contentsline {subsubsection}{\numberline {18.3.9}Example: {\tt twoFget}}{593}{subsubsection.18.3.9} \contentsline {section}{\numberline {19}REFERENCES}{595}{section.19}