FUNCTION QQSM, X,YIN,SIGMA ;!+ ;! ;! Program: ;! QQSM ;! ;! Purpose: ;! Apply a box ca Gauusianr smoothing function to ;! function YIN(X), ;! where the FWHM of the box is 2.354*SIGMA. Output is YOUT. ;! Data assumed to be equally distributed in X. ;! ;! Accuracy: ;! Preserves integrated equivalent widths of lines in smoothed spectra ;! to 0.04 % ;! ;! Language: ;! IDL - adapted from Fortran 77 ;! ;! Authors: ;! C.S.Jeffery (CSJ) (Armagh Observatory) ;! ;! History: ;! 03-FEB-2000: CSJ ;! original version based on qsm function in DIPSO ;! 07-OCT-2003: CSJ ;! IDL version (includes truncation to keep local mean valid near ends of data) ;! 08-OCT-2003: CSJ ;! Adapted from QSMOOTH -- much much faster !!! ;! 09-OCT-2003: CSJ ;! Converted to a function ;!- SIGMA2 = 2.0*SIGMA*SIGMA THRSIG = 4.242640687*SIGMA NP = N_ELEMENTS(X) YOUT = FLTARR(NP) DX = (X(NP-1)-X(0)) / (NP-1) NG = FIX ( THRSIG / DX ) XWIN = (FINDGEN(2L*NG+1L)*DX) - THRSIG GWIN = EXP ( -0.5 * (XWIN/SIGMA)^2 ) / SQRT (2*!PI) FOR I = 0L, NP-1 DO BEGIN KL = MAX ( [0L, I - NG ] ) KU = MIN ( [NP-1L, MAX( [I + NG,0L] ) ] ) JL = MAX ( [0L, NG - (I-0L) ] ) JU = MIN ( [2L*NG,NG + (NP-1L-I) ] ) YOUT(I) = TOTAL ( GWIN(JL:JU) * YIN(KL:KU) ) / TOTAL ( GWIN(JL:JU) ) ENDFOR RETURN,YOUT END