MIDAPACK - MIcrowave Data Analysis PACKage  1.1b
Parallel software tools for high performance CMB DA analysis
toeplitz_nofft.c File Reference

Contains basic product without using ffts for Toeplitz algebra. More...

Go to the source code of this file.

Functions

int stmm_simple_basic (double **V, int n, int m, double *T, int lambda, double **TV)
 Perform the product of a Toeplitz matrix by a matrix without using FFT's. More...
 
int stmm_simple_core (double **V, int n, int m, double *T, int blocksize, int lambda, int nfft, int flag_offset)
 

Variables

int PRINT_RANK
 

Detailed Description

Contains basic product without using ffts for Toeplitz algebra.

version 1.1b, July 2012

Author
Frederic Dauvergne

Project: Midapack library, ANR MIDAS'09 - Toeplitz Algebra module Purpose: Provide Toeplitz algebra tools suitable for Cosmic Microwave Background (CMB) data analysis.

Note
Copyright (c) 2010-2012 APC CNRS Université Paris Diderot
This program is free software; you can redistribute it and/or modify it under the terms
of the GNU Lesser General Public License as published by the Free Software Foundation;
either version 3 of the License, or (at your option) any later version. This program is
distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this
program; if not, see http://www.gnu.org/licenses/lgpl.html
For more information about ANR MIDAS'09 project see :
http://www.apc.univ-paris7.fr/APC_CS/Recherche/Adamis/MIDAS09/index.html
ACKNOWLEDGMENT: This work has been supported in part by the French National Research
Agency (ANR) through COSINUS program (project MIDAS no. ANR-09-COSI-009).

Log: toeplitz*.c

Revision 1.0b 2012/05/07 Frederic Dauvergne (APC) Official release 1.0beta. The first installement of the library is the Toeplitz algebra module.

Revision 1.1b 2012/07/- Frederic Dauvergne (APC)

  • mpi_stbmm allows now rowi-wise order per process datas and no-blocking communications.
  • OMP improvment for optimal cpu time.
  • bug fixed for OMP in the stmm_basic routine.
  • distcorrmin is used to communicate only lambda-1 datas when it is needed.
  • new reshaping routines using transformation functions in stmm. Thus, only one copy at most is needed.
  • tpltz_init improvement using define_nfft and define_blocksize routines.
  • add Block struture to define each Toeplitz block.
  • add Flag structure and preprocessing parameters to define the computational strategy. All the flag parameters are then available directly from the API.

Revision 1.2b 2012/11/30 Frederic Dauvergne (APC)

  • extend the mpi product routine to rowwise order data distribution. This is now allowing tree kinds of distribution.
  • add int64 for some variables to extend the global volume of data you can use.
  • Openmp improvments.
  • Add toeplitz_wizard.c, which contains a set of easy to use routines with defined structures.

Definition in file toeplitz_nofft.c.

Function Documentation

◆ stmm_simple_basic()

int stmm_simple_basic ( double **  V,
int  n,
int  m,
double *  T,
int  lambda,
double **  TV 
)

Perform the product of a Toeplitz matrix by a matrix without using FFT's.

This routine multiplies the values directly between them. This exploit the fact that the bandwith is small compared to the matrix size. The number of operation is then no more than (lambda*2-1) multiplications and (lambda*2-1)-1 additions per row.

Definition at line 104 of file toeplitz_nofft.c.

◆ stmm_simple_core()

int stmm_simple_core ( double **  V,
int  n,
int  m,
double *  T,
int  blocksize,
int  lambda,
int  nfft,
int  flag_offset 
)

Perform the stand alone product of a Toeplitz matrix by a matrix using the sliding window algorithm.

The product is performed block-by-block with a defined block size or a computed optimized blocksize. This routine is not used by th API.

Parameters
V[input] data matrix (with the convention V(i,j)=V[i+j*n]) ; [out] result of the product TV
nnumber of rows of V
mnumber of columns of V
TToeplitz matrix data composed of the non-zero entries of his first row
blocksizeblock size used in the sliding window algorithm
lambdaToeplitz band width
nfftnumber of simultaneous FFTs
flag_offsetflag to avoid extra 2*lambda padding to zeros on the edges

Definition at line 156 of file toeplitz_nofft.c.

Variable Documentation

◆ PRINT_RANK

int PRINT_RANK
extern

Definition at line 117 of file toeplitz.c.