MIDAPACK - MIcrowave Data Analysis PACKage 1.0beta
Parallel software tools for high performance CMB DA analysis
lower internal routines

Functions

int print_error_message (int error_number, char const *file, int line)
 Print error message corresponding to an error number.
int copy_block (int ninrow, int nincol, double *Vin, int noutrow, int noutcol, double *Vout, int inrow, int incol, int nblockrow, int nblockcol, int outrow, int outcol, double norm, int set_zero_flag)
 Copy a matrix block from an input matrix inside an output matrix.
int vect2nfftblock (double *V1, int v1_size, double *V2, int fft_size, int nfft, int lambda)
 convert the data vector structure into a matrix structure optimized for nfft
int nfftblock2vect (double *V2, int fft_size, int nfft, int lambda, double *V1, int v1_size)
 convert the matrix structure optimized for nfft into the data vector structure
int get_overlapping_blocks_params (int nbloc, int *idv, int *n, int local_V_size, int nrow, int idp, int *idpnew, int *local_V_size_new, int *nnew, int *ifirstBlock, int *ilastBlock)
 ..Copy a matrix block from an input matrix inside an output matrix.

Detailed Description

These are lower internal routines.


Function Documentation

int copy_block ( int  ninrow,
int  nincol,
double *  Vin,
int  noutrow,
int  noutcol,
double *  Vout,
int  inrow,
int  incol,
int  nblockrow,
int  nblockcol,
int  outrow,
int  outcol,
double  norm,
int  set_zero_flag 
)

Copy a matrix block from an input matrix inside an output matrix.

Copy a matrix block of a size nblockrow x nblockcol from the input matrix Vin (size ninrow x nincol) starting with the element (inrow, incol) to the output matrix Vout (size notrow x noutcol) starting with the element (outrow, outcol) after multiplying by norm. If the output matrix is larger than the block the extra elements are either left as they were on the input or zeroed if zero_flag is set to 1. If the block to be copied is larger than either the input or the output matrix an error occurs.

Definition at line 348 of file toeplitz.c.

int get_overlapping_blocks_params ( int  nbloc,
int *  idv,
int *  n,
int  local_V_size,
int  nrow,
int  idp,
int *  idpnew,
int *  local_V_size_new,
int *  nnew,
int *  ifirstBlock,
int *  ilastBlock 
)

..Copy a matrix block from an input matrix inside an output matrix.

Copies a matrix block of a size nblockrow x nblockcol from the input matrix Vin (size ninrow x nincol) starting with the element (inrow, incol) to the output matrix Vout (size notrow x noutcol) starting with the element (outrow, outcol) after multiplying by norm. If the output matrix is larger than the block the extra elements are either left as they were on the input or zeroed if zero_flag is set to 1. If the block to be copied is larger than either the input or the output matrix an error occurs.

Definition at line 1424 of file toeplitz.c.

int nfftblock2vect ( double *  V2,
int  fft_size,
int  nfft,
int  lambda,
double *  V1,
int  v1_size 
)

convert the matrix structure optimized for nfft into the data vector structure

Copy only the middle part of the matrix structure into the previous vector structure. Indeed, we don't need the extra terms located on the edges of each column used only to keep the correlation of the datas in the product computation.

Definition at line 786 of file toeplitz.c.

int print_error_message ( int  error_number,
char const *  file,
int  line 
)

Print error message corresponding to an error number.

Parameters:
error_numbererror number
filefile name
lineline number

Definition at line 108 of file toeplitz.c.

int vect2nfftblock ( double *  V1,
int  v1_size,
double *  V2,
int  fft_size,
int  nfft,
int  lambda 
)

convert the data vector structure into a matrix structure optimized for nfft

Copy the data vector structure into an equivalent matrix with nfft column. Thus, the obtained matrix is optimize for the nfft multithreading algorithm use. The middle part is a direct copy of the data vector and we copy on the edges of each column the lambda terms needed to fullfill the correlation of theses data.

Definition at line 740 of file toeplitz.c.