From 148dca926a8b40e1e3e9dc456fce50002907125d Mon Sep 17 00:00:00 2001 From: Martin Reinecke Date: Thu, 18 Oct 2012 12:53:23 +0200 Subject: [PATCH] improve documentation --- libsharp/sharp_lowlevel.h | 5 +++++ libsharp/sharp_mpi.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/libsharp/sharp_lowlevel.h b/libsharp/sharp_lowlevel.h index 2778984..96dca06 100644 --- a/libsharp/sharp_lowlevel.h +++ b/libsharp/sharp_lowlevel.h @@ -160,6 +160,11 @@ typedef enum { SHARP_MAP2ALM, /*!< analysis */ etc. If \a spin>0, map[0] and map[1] point to the maps of the first SHT, map[2] and map[3] to those of the second, etc. The exact data type of \a map depends on the \a dp parameter. + \param geom_info A \c sharp_geom_info object compatible with the provided + \a map arrays. + \param alm_info A \c sharp_alm_info object compatible with the provided + \a alm arrays. All \c m values from 0 to some \c mmax<=lmax must be present + exactly once. \param ntrans the number of simultaneous SHTs \param dp if 0, the \a alm is expected to have the type "complex float **" and \a map is expected to have the type "float **"; otherwise the expected diff --git a/libsharp/sharp_mpi.h b/libsharp/sharp_mpi.h index a1f9ba5..2a79864 100644 --- a/libsharp/sharp_mpi.h +++ b/libsharp/sharp_mpi.h @@ -39,6 +39,40 @@ extern "C" { #endif +/*! Performs an MPI parallel libsharp SHT job. The interface deliberately does + not use the C99 "complex" data type, in order to be callable from C. + \param comm the MPI communicator to be used for this SHT + \param type the type of SHT + \param spin the spin of the quantities to be transformed + \param add_output if 0, the output arrays will be overwritten, + else the result will be added to the output arrays. + \param alm contains pointers to the a_lm coefficients. If \a spin==0, + alm[0] points to the a_lm of the first SHT, alm[1] to those of the second + etc. If \a spin>0, alm[0] and alm[1] point to the a_lm of the first SHT, + alm[2] and alm[3] to those of the second, etc. The exact data type of \a alm + depends on the \a dp parameter. + \param map contains pointers to the maps. If \a spin==0, + map[0] points to the map of the first SHT, map[1] to that of the second + etc. If \a spin>0, map[0] and map[1] point to the maps of the first SHT, + map[2] and map[3] to those of the second, etc. The exact data type of \a map + depends on the \a dp parameter. + \param geom_info A \c sharp_geom_info object compatible with the provided + \a map arrays. The total map geometry is the union of all \a geom_info + objects over the participating MPI tasks. + \param alm_info A \c sharp_alm_info object compatible with the provided + \a alm arrays. All \c m values from 0 to some \c mmax<=lmax must be present + exactly once in the union of all \a alm_info objects over the participating + MPI tasks. + \param ntrans the number of simultaneous SHTs + \param dp if 0, the \a alm is expected to have the type "complex float **" + and \a map is expected to have the type "float **"; otherwise the expected + types are "complex double **" and "double **", respectively. + \param nv Internally used SHT parameter. Set to 0 unless you know what you are + doing. + \param time If not NULL, the wall clock time required for this SHT + (in seconds)will be written here. + \param opcnt If not NULL, a conservative estimate of the total floating point + operation count for this SHT will be written here. */ void sharp_execute_mpi (MPI_Comm comm, sharp_jobtype type, int spin, int add_output, void *alm, void *map, const sharp_geom_info *geom_info, const sharp_alm_info *alm_info, int ntrans, int dp, int nv, double *time,