MIDAPACK - MIcrowave Data Analysis PACKage  1.1b
Parallel software tools for high performance CMB DA analysis
 All Data Structures Files Functions Variables Typedefs Groups Pages
toeplitz_rshp.c File Reference

Contains reshaping routines to build the optimal data structure when needed for Toeplitz algebra. More...

Go to the source code of this file.

Functions

int fctid_mat2vect (int i, int id0, int n, int lambda)
int fctid_mat2vect_inv (int i, int id0, int n, int lambda)
int fctid_concatcol (int i, int id0, int n, int m, int l, int lconc, int lambda, int *nocol, int nbcol)
int fctid_concatcol_inv (int i, int id0, int n, int m, int l, int lconc, int lambda, int *nocol_inv, int nbcol)
int fctid_vect2nfftblock (int i, int v1_size, int fft_size, int nfft, int lambda)
int is_needconcat (int *nocol, int nbcol)
int fctid_vect2nfftblock_inv (int i, int v1_size, int fft_size, int nfft, int lambda)
int define_rshp_size (int flag_format_rshp, int fft_size, int nfft, int v1_size, int vedge_size, int *nrshp, int *mrshp, int *lrshp)
int build_nocol_inv (int *nocol, int nbcol, int m)
int build_reshape (double *Vin, int *nocol, int nbcol, int lconc, int n, int m, int id0, int l, int lambda, int nfft, double *Vrshp, int nrshp, int mrshp, int lrshp, int flag_format_rshp)
int extract_result (double *Vout, int *nocol, int nbcol, int lconc, int n, int m, int id0, int l, int lambda, int nfft, double *Vrshp, int nrshp, int mrshp, int lrshp, int flag_format_rshp)

Detailed Description

Contains reshaping routines to build the optimal data structure when needed 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_rshp.c.


Function Documentation

int fctid_mat2vect ( int  i,
int  id0,
int  n,
int  lambda 
)

Definition at line 65 of file toeplitz_rshp.c.

int fctid_mat2vect_inv ( int  i,
int  id0,
int  n,
int  lambda 
)

Definition at line 88 of file toeplitz_rshp.c.

int fctid_concatcol ( int  i,
int  id0,
int  n,
int  m,
int  l,
int  lconc,
int  lambda,
int *  nocol,
int  nbcol 
)

Definition at line 106 of file toeplitz_rshp.c.

int fctid_concatcol_inv ( int  i,
int  id0,
int  n,
int  m,
int  l,
int  lconc,
int  lambda,
int *  nocol_inv,
int  nbcol 
)

Definition at line 128 of file toeplitz_rshp.c.

int fctid_vect2nfftblock ( int  i,
int  v1_size,
int  fft_size,
int  nfft,
int  lambda 
)

Definition at line 154 of file toeplitz_rshp.c.

int is_needconcat ( int *  nocol,
int  nbcol 
)

Definition at line 176 of file toeplitz_rshp.c.

int fctid_vect2nfftblock_inv ( int  i,
int  v1_size,
int  fft_size,
int  nfft,
int  lambda 
)

Definition at line 190 of file toeplitz_rshp.c.

int define_rshp_size ( int  flag_format_rshp,
int  fft_size,
int  nfft,
int  v1_size,
int  vedge_size,
int *  nrshp,
int *  mrshp,
int *  lrshp 
)

Definition at line 208 of file toeplitz_rshp.c.

int build_nocol_inv ( int *  nocol,
int  nbcol,
int  m 
)

Definition at line 233 of file toeplitz_rshp.c.

int build_reshape ( double *  Vin,
int *  nocol,
int  nbcol,
int  lconc,
int  n,
int  m,
int  id0,
int  l,
int  lambda,
int  nfft,
double *  Vrshp,
int  nrshp,
int  mrshp,
int  lrshp,
int  flag_format_rshp 
)

Definition at line 249 of file toeplitz_rshp.c.

int extract_result ( double *  Vout,
int *  nocol,
int  nbcol,
int  lconc,
int  n,
int  m,
int  id0,
int  l,
int  lambda,
int  nfft,
double *  Vrshp,
int  nrshp,
int  mrshp,
int  lrshp,
int  flag_format_rshp 
)

Definition at line 307 of file toeplitz_rshp.c.