00001 /* 00002 * This file is part of libsharp. 00003 * 00004 * libsharp is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * libsharp is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with libsharp; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00017 */ 00018 00019 /* 00020 * libsharp is being developed at the Max-Planck-Institut fuer Astrophysik 00021 * and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt 00022 * (DLR). 00023 */ 00024 00025 /*! \file sharp_internal.h 00026 * Internally used functionality for the spherical transform library. 00027 * 00028 * Copyright (C) 2006-2013 Max-Planck-Society 00029 * \author Martin Reinecke \author Dag Sverre Seljebotn 00030 */ 00031 00032 #ifndef PLANCK_SHARP_INTERNAL_H 00033 #define PLANCK_SHARP_INTERNAL_H 00034 00035 #ifdef __cplusplus 00036 #error This header file cannot be included from C++, only from C 00037 #endif 00038 00039 #include "sharp.h" 00040 00041 #define SHARP_MAXTRANS 100 00042 00043 typedef struct 00044 { 00045 sharp_jobtype type; 00046 int spin; 00047 int nmaps, nalm; 00048 int flags; 00049 void **map; 00050 void **alm; 00051 int s_m, s_th; // strides in m and theta direction 00052 complex double *phase; 00053 double *norm_l; 00054 complex double *almtmp; 00055 const sharp_geom_info *ginfo; 00056 const sharp_alm_info *ainfo; 00057 double time; 00058 int ntrans; 00059 unsigned long long opcnt; 00060 } sharp_job; 00061 00062 int sharp_get_nv_max (void); 00063 int sharp_nv_oracle (sharp_jobtype type, int spin, int ntrans); 00064 int sharp_get_mlim (int lmax, int spin, double sth, double cth); 00065 00066 #endif