Description:
This
routine convolves array A with array B using multiplication only (i.e. no FFTs are used).
The routine assumes that the A arrays are N_A long and that the convolution array B is
N_B long, centred at N_MIDDLE. The final result is normalised by dividing by NORM.
Elements of the A array that have bad quality are ignored. The input variances are propagated
as:-
| (26) |
After this process the errors can no longer be considered independent.
Invocation
CALL
SCULIB_CONVOLVE (A_DATA, A_VARIANCE, A_QUALITY, B, N_A, N_B, N_MIDDLE, NORM, R_DATA,
R_VARIANCE, R_QUALITY, STATUS)
Arguments
A_DATA (N_A) = REAL (Given)
input data array
A_VARIANCE (N_A) = REAL (Given)
variance on A_DATA
A_QUALITY (N_A) = BYTE (Given)
quality on A_DATA
B (N_B) = REAL (Given)
convolution function
N_A = INTEGER (Given)
the
size of A_DATA
N_B = INTEGER (Given)
length of convolution function
N_MIDDLE =
INTEGER (Given)
index of zero point of convolution function
NORM = REAL (Given)
normalisation factor for convolution function
R_DATA (N_A) = REAL (Returned)
result of the
convolution
R_VARIANCE (N_A) = REAL (Returned)
variance on R_DATA
R_QUALITY
(N_A) = QUALITY (Returned)
quality on R_DATA
BADBIT = BYTE (Given)
badbit
mask
STATUS = INTEGER (Given and returned)
global status
Copyright
Copyright
©1995,1996,1997,1998,1999 Particle Physics and Astronomy Research Council. All Rights Reserved.