diff --git a/.gitignore b/.gitignore index 782109a..54860fd 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,10 @@ .libs **/.deps **/.dirstamp -libsharp-uninstalled.pc -libsharp-uninstalled.sh -libsharp.pc -libsharp.pc.in +libsharp2-uninstalled.pc +libsharp2-uninstalled.sh +libsharp2.pc +libsharp2.pc.in perf.data* /auto /autom4te.cache diff --git a/COMPILE b/COMPILE index a898662..e3a87b7 100644 --- a/COMPILE +++ b/COMPILE @@ -1,6 +1,6 @@ -Libsharp is configured, compiled and installed using GNU autotools. +Libsharp2 is configured, compiled and installed using GNU autotools. -If you have cloned the libsharp repository, you have to run +If you have cloned the libsharp2 repository, you have to run "autoreconf -i" before starting the configuration, which requires several GNU developer tools to be available on your system. @@ -20,8 +20,8 @@ since it allows the compiler to fuse multiplications and additions into FMA instructions, which is forbidden by the C99 standard. Since FMAs are a central aspect of the algorithm, they are needed for optimum performance. -If you are calling libsharp from other code which requires strict adherence -to the C99 standard, you should still be able to compile libsharp with +If you are calling libsharp2 from other code which requires strict adherence +to the C99 standard, you should still be able to compile libsharp2 with "-ffast-math" without any problems. @@ -36,7 +36,7 @@ at runtime. This is enabled by passing "-DMULTIARCH" as part of the CFLAGS. If this is enabled, please do _not_ specify "-march=native" or "-mtarget=avx" or similar! -If you are compiling libsharp for a particular target CPU only, or if you are +If you are compiling libsharp2 for a particular target CPU only, or if you are using a different compiler, however, "-march-native" should be used. The resulting binary will most likely not run on other computers, though. diff --git a/Makefile.am b/Makefile.am index 8b7d243..50ea60a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,22 +1,22 @@ ACLOCAL_AMFLAGS = -I m4 -lib_LTLIBRARIES = libsharp.la +lib_LTLIBRARIES = libsharp2.la -libsharp_la_SOURCES = \ - pocketfft/pocketfft.c \ - pocketfft/pocketfft.h \ - libsharp/sharp_utils.c \ - libsharp/sharp_utils.h \ - libsharp/sharp.c \ - libsharp/sharp_almhelpers.c \ - libsharp/sharp_core.c \ - libsharp/sharp_geomhelpers.c \ - libsharp/sharp_legendre_roots.c \ - libsharp/sharp_ylmgen_c.c \ - libsharp/sharp_internal.h \ - libsharp/sharp_legendre_roots.h \ - libsharp/sharp_vecsupport.h \ - libsharp/sharp_ylmgen_c.h +libsharp2_la_SOURCES = \ + libsharp2/pocketfft.c \ + libsharp2/pocketfft.h \ + libsharp2/sharp_utils.c \ + libsharp2/sharp_utils.h \ + libsharp2/sharp.c \ + libsharp2/sharp_almhelpers.c \ + libsharp2/sharp_core.c \ + libsharp2/sharp_geomhelpers.c \ + libsharp2/sharp_legendre_roots.c \ + libsharp2/sharp_ylmgen_c.c \ + libsharp2/sharp_internal.h \ + libsharp2/sharp_legendre_roots.h \ + libsharp2/sharp_vecsupport.h \ + libsharp2/sharp_ylmgen_c.h # format is "current:revision:age" # any change: increase revision @@ -24,17 +24,17 @@ libsharp_la_SOURCES = \ # any backward-compatible change: increase age # any backward-incompatible change: age=0 # ==> age <= current -libsharp_la_LDFLAGS = -version-info 0:0:0 +libsharp2_la_LDFLAGS = -version-info 0:0:0 AM_CFLAGS = @AM_CFLAGS@ if HAVE_MULTIARCH -libavx_la_SOURCES = libsharp/sharp_core_inc.c -libavx2_la_SOURCES = libsharp/sharp_core_inc.c -libfma_la_SOURCES = libsharp/sharp_core_inc.c -libfma4_la_SOURCES = libsharp/sharp_core_inc.c -libavx512f_la_SOURCES = libsharp/sharp_core_inc.c +libavx_la_SOURCES = libsharp2/sharp_core_inc.c +libavx2_la_SOURCES = libsharp2/sharp_core_inc.c +libfma_la_SOURCES = libsharp2/sharp_core_inc.c +libfma4_la_SOURCES = libsharp2/sharp_core_inc.c +libavx512f_la_SOURCES = libsharp2/sharp_core_inc.c noinst_LTLIBRARIES = libavx.la libavx2.la libfma.la libfma4.la libavx512f.la @@ -44,23 +44,23 @@ libfma_la_CFLAGS = ${AM_CFLAGS} -mfma -DARCH=fma libfma4_la_CFLAGS = ${AM_CFLAGS} -mfma4 -DARCH=fma4 libavx512f_la_CFLAGS = ${AM_CFLAGS} -mavx512f -DARCH=avx512f -libsharp_la_LIBADD = libavx.la libavx2.la libfma.la libfma4.la libavx512f.la +libsharp2_la_LIBADD = libavx.la libavx2.la libfma.la libfma4.la libavx512f.la endif nobase_include_HEADERS = \ - libsharp/sharp.h \ - libsharp/sharp_mpi.h \ - libsharp/sharp_geomhelpers.h \ - libsharp/sharp_almhelpers.h \ - libsharp/sharp_cxx.h + libsharp2/sharp.h \ + libsharp2/sharp_mpi.h \ + libsharp2/sharp_geomhelpers.h \ + libsharp2/sharp_almhelpers.h \ + libsharp2/sharp_cxx.h EXTRA_DIST = \ - runtest.sh fortran/sharp.f90 fortran/test_sharp.f90 libsharp/sharp_mpi.c + runtest.sh fortran/sharp.f90 fortran/test_sharp.f90 libsharp2/sharp_mpi.c -check_PROGRAMS = sharp_testsuite -sharp_testsuite_SOURCES = test/sharp_testsuite.c test/memusage.c test/memusage.h -sharp_testsuite_LDADD = libsharp.la -lm +check_PROGRAMS = sharp2_testsuite +sharp2_testsuite_SOURCES = test/sharp2_testsuite.c test/memusage.c test/memusage.h +sharp2_testsuite_LDADD = libsharp2.la -lm TESTS = runtest.sh diff --git a/README.md b/README.md index e135b44..c526224 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Libsharp +# Libsharp2 Library for efficient spherical harmonic transforms at arbitrary spins, supporting CPU vectorization, OpenMP and MPI. @@ -20,10 +20,10 @@ These improvements reduce the fraction of CPU time spent on evaluating the recurrences for Y_lm coefficients, which means that computing multiple simultaneous SHTs no longer has a big performance advantage compared to SHTs done one after the other. -As a consequence, libsharp support for simultaneous SHTs was dropped, making +As a consequence, libsharp's support for simultaneous SHTs was dropped, making its interface much simpler. -With the proper compilers and flags (see the file COMPILE for details) libsharp +With the proper compilers and flags (see the file COMPILE for details) libsharp2 is now built with support for SSE2, AVX, AVX2, FMA3, FMA4 and AVX512f and the appropriate implementation is selected dynamically at runtime. This should provide a very significant performance boost for everyone using pre-compiled diff --git a/configure.ac b/configure.ac index b020181..28ec900 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([libsharp], [1.0.0]) +AC_INIT([libsharp2], [1.0.0]) AM_INIT_AUTOMAKE([foreign subdir-objects -Wall -Werror]) AM_MAINTAINER_MODE([enable]) @@ -29,7 +29,7 @@ AM_CONDITIONAL([HAVE_MULTIARCH], [test $tmpval -gt 0]) AM_CFLAGS="$AM_CFLAGS $OPENMP_CFLAGS" -PACKAGE_LIBS="-lsharp" +PACKAGE_LIBS="-lsharp2" PACKAGE_CFLAGS="$PACKAGE_CFLAGS $OPENMP_CFLAGS" PACKAGE_LDFLAGS="$PACKAGE_LDFLAGS $OPENMP_CFLAGS" diff --git a/libsharp/libsharp.dox b/libsharp2/libsharp2.dox similarity index 89% rename from libsharp/libsharp.dox rename to libsharp2/libsharp2.dox index 06361ee..b180091 100644 --- a/libsharp/libsharp.dox +++ b/libsharp2/libsharp2.dox @@ -1,17 +1,17 @@ -/*! \mainpage libsharp documentation +/*! \mainpage libsharp2 documentation */ -/*! \page introduction Introduction to libsharp +/*! \page introduction Introduction to libsharp2 "SHARP" is an acronym for Spherical HARmonic Package. All user-visible data types and functions in this library start with the prefix "sharp_" to avoid pollution of the global C namespace. - libsharp's main functionality is the conversion between maps + libsharp2's main functionality is the conversion between maps on the sphere and spherical harmonic coefficients (or a_lm). A map is defined as a set of rings, which in turn consist of individual pixels that @@ -56,7 +56,7 @@ for generating often-used pixelisations like ECP grids, Gaussian grids, and Healpix grids. - Currently, libsharp supports the following kinds of transforms: + Currently, libsharp2 supports the following kinds of transforms: - libsharp supports shared-memory parallelisation via OpenMP; this feature will + libsharp2 supports shared-memory parallelisation via OpenMP; this feature will be automatically enabled if the compiler supports it. - Libsharp will also make use of SSE2/AVX/AVX512 instructions when compiled + Libsharp2 will also make use of SSE2/AVX/AVX512 instructions when compiled for a platform known to support them. Support for MPI-parallel transforms is also available; in this mode, diff --git a/pocketfft/pocketfft.c b/libsharp2/pocketfft.c similarity index 99% rename from pocketfft/pocketfft.c rename to libsharp2/pocketfft.c index 56c9dc5..50ee2e8 100644 --- a/pocketfft/pocketfft.c +++ b/libsharp2/pocketfft.c @@ -13,7 +13,7 @@ #include #include -#include "pocketfft/pocketfft.h" +#include "libsharp2/pocketfft.h" #define RALLOC(type,num) \ ((type *)malloc((num)*sizeof(type))) @@ -31,6 +31,8 @@ #define WARN_UNUSED_RESULT #endif +#pragma GCC visibility push(hidden) + // adapted from https://stackoverflow.com/questions/42792939/ // CAUTION: this function only works for arguments in the range [-0.25; 0.25]! static void my_sincosm1pi (double a, double *restrict res) @@ -2192,3 +2194,5 @@ int pocketfft_forward_r(pocketfft_plan_r plan, double c[], double fct) else // if (plan->blueplan) return rfftblue_forward(plan->blueplan,c,fct); } + +#pragma GCC visibility pop diff --git a/pocketfft/pocketfft.h b/libsharp2/pocketfft.h similarity index 100% rename from pocketfft/pocketfft.h rename to libsharp2/pocketfft.h diff --git a/libsharp/sharp.c b/libsharp2/sharp.c similarity index 98% rename from libsharp/sharp.c rename to libsharp2/sharp.c index a4345f2..1e5ac03 100644 --- a/libsharp/sharp.c +++ b/libsharp2/sharp.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp.c * Spherical transform library @@ -27,12 +27,12 @@ #include #include -#include "pocketfft/pocketfft.h" -#include "libsharp/sharp_ylmgen_c.h" -#include "libsharp/sharp_internal.h" -#include "libsharp/sharp_utils.h" -#include "libsharp/sharp_almhelpers.h" -#include "libsharp/sharp_geomhelpers.h" +#include "libsharp2/pocketfft.h" +#include "libsharp2/sharp_ylmgen_c.h" +#include "libsharp2/sharp_internal.h" +#include "libsharp2/sharp_utils.h" +#include "libsharp2/sharp_almhelpers.h" +#include "libsharp2/sharp_geomhelpers.h" typedef complex double dcmplx; typedef complex float fcmplx; diff --git a/libsharp/sharp.h b/libsharp2/sharp.h similarity index 95% rename from libsharp/sharp.h rename to libsharp2/sharp.h index 1fe1566..a279235 100644 --- a/libsharp/sharp.h +++ b/libsharp2/sharp.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp.h * Portable interface for the spherical transform library. @@ -169,7 +169,7 @@ void sharp_destroy_geom_info (sharp_geom_info *info); /*! \} */ -/*! \defgroup lowlevelgroup Low-level libsharp SHT interface */ +/*! \defgroup lowlevelgroup Low-level libsharp2 SHT interface */ /*! \{ */ /*! Enumeration of SHARP job types. */ @@ -197,7 +197,7 @@ typedef enum { SHARP_DP = 1<<4, SHARP_USE_WEIGHTS = 1<<20, /* internal use only */ } sharp_jobflags; -/*! Performs a libsharp SHT job. The interface deliberately does not use +/*! Performs a libsharp2 SHT job. The interface deliberately does not use the C99 "complex" data type, in order to be callable from C89 and C++. \param type the type of SHT \param spin the spin of the quantities to be transformed @@ -231,10 +231,10 @@ void sharp_set_nchunks_max(int new_nchunks_max); typedef enum { SHARP_ERROR_NO_MPI = 1, - /*!< libsharp not compiled with MPI support */ + /*!< libsharp2 not compiled with MPI support */ } sharp_errors; -/*! Works like sharp_execute_mpi, but is always present whether or not libsharp +/*! Works like sharp_execute_mpi, but is always present whether or not libsharp2 is compiled with USE_MPI. This is primarily useful for wrapper code etc. Note that \a pcomm has the type MPI_Comm*, except we declare void* to avoid diff --git a/libsharp/sharp_almhelpers.c b/libsharp2/sharp_almhelpers.c similarity index 85% rename from libsharp/sharp_almhelpers.c rename to libsharp2/sharp_almhelpers.c index 59b564c..3df322d 100644 --- a/libsharp/sharp_almhelpers.c +++ b/libsharp2/sharp_almhelpers.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_almhelpers.c * Spherical transform library @@ -25,8 +25,8 @@ * \author Martin Reinecke */ -#include "libsharp/sharp_almhelpers.h" -#include "libsharp/sharp_utils.h" +#include "libsharp2/sharp_almhelpers.h" +#include "libsharp2/sharp_utils.h" void sharp_make_triangular_alm_info (int lmax, int mmax, int stride, sharp_alm_info **alm_info) diff --git a/libsharp/sharp_almhelpers.h b/libsharp2/sharp_almhelpers.h similarity index 80% rename from libsharp/sharp_almhelpers.h rename to libsharp2/sharp_almhelpers.h index 3dc85f5..91d098b 100644 --- a/libsharp/sharp_almhelpers.h +++ b/libsharp2/sharp_almhelpers.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_almhelpers.h * SHARP helper function for the creation of a_lm data structures @@ -25,10 +25,10 @@ * \author Martin Reinecke */ -#ifndef SHARP_ALMHELPERS_H -#define SHARP_ALMHELPERS_H +#ifndef SHARP2_ALMHELPERS_H +#define SHARP2_ALMHELPERS_H -#include "libsharp/sharp.h" +#include "libsharp2/sharp.h" #ifdef __cplusplus extern "C" { diff --git a/libsharp/sharp_core.c b/libsharp2/sharp_core.c similarity index 90% rename from libsharp/sharp_core.c rename to libsharp2/sharp_core.c index 1dec17a..6f41ad2 100644 --- a/libsharp/sharp_core.c +++ b/libsharp2/sharp_core.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_core.c * Spherical transform library @@ -27,7 +27,7 @@ #define ARCH default #define GENERIC_ARCH -#include "libsharp/sharp_core_inc.c" +#include "libsharp2/sharp_core_inc.c" #undef GENERIC_ARCH #undef ARCH diff --git a/libsharp/sharp_core_inc.c b/libsharp2/sharp_core_inc.c similarity index 98% rename from libsharp/sharp_core_inc.c rename to libsharp2/sharp_core_inc.c index 612a778..eaf34f0 100644 --- a/libsharp/sharp_core_inc.c +++ b/libsharp2/sharp_core_inc.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_core_inc.c * Computational core @@ -37,10 +37,10 @@ #include #include #include -#include "libsharp/sharp_vecsupport.h" -#include "libsharp/sharp.h" -#include "libsharp/sharp_internal.h" -#include "libsharp/sharp_utils.h" +#include "libsharp2/sharp_vecsupport.h" +#include "libsharp2/sharp.h" +#include "libsharp2/sharp_internal.h" +#include "libsharp2/sharp_utils.h" #pragma GCC visibility push(hidden) diff --git a/libsharp/sharp_cxx.h b/libsharp2/sharp_cxx.h similarity index 94% rename from libsharp/sharp_cxx.h rename to libsharp2/sharp_cxx.h index 60995ed..191fea1 100644 --- a/libsharp/sharp_cxx.h +++ b/libsharp2/sharp_cxx.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_cxx.h * Spherical transform library @@ -25,13 +25,13 @@ * \author Martin Reinecke */ -#ifndef SHARP_CXX_H -#define SHARP_CXX_H +#ifndef SHARP2_CXX_H +#define SHARP2_CXX_H #include -#include "libsharp/sharp.h" -#include "libsharp/sharp_geomhelpers.h" -#include "libsharp/sharp_almhelpers.h" +#include "libsharp2/sharp.h" +#include "libsharp2/sharp_geomhelpers.h" +#include "libsharp2/sharp_almhelpers.h" class sharp_base { diff --git a/libsharp/sharp_geomhelpers.c b/libsharp2/sharp_geomhelpers.c similarity index 95% rename from libsharp/sharp_geomhelpers.c rename to libsharp2/sharp_geomhelpers.c index cd7c6fa..db459bc 100644 --- a/libsharp/sharp_geomhelpers.c +++ b/libsharp2/sharp_geomhelpers.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_geomhelpers.c * Spherical transform library @@ -26,10 +26,10 @@ */ #include -#include "libsharp/sharp_geomhelpers.h" -#include "libsharp/sharp_legendre_roots.h" -#include "libsharp/sharp_utils.h" -#include "pocketfft/pocketfft.h" +#include "libsharp2/sharp_geomhelpers.h" +#include "libsharp2/sharp_legendre_roots.h" +#include "libsharp2/sharp_utils.h" +#include "libsharp2/pocketfft.h" void sharp_make_subset_healpix_geom_info (int nside, int stride, int nrings, const int *rings, const double *weight, sharp_geom_info **geom_info) diff --git a/libsharp/sharp_geomhelpers.h b/libsharp2/sharp_geomhelpers.h similarity index 94% rename from libsharp/sharp_geomhelpers.h rename to libsharp2/sharp_geomhelpers.h index d0a4f33..dcd12e8 100644 --- a/libsharp/sharp_geomhelpers.h +++ b/libsharp2/sharp_geomhelpers.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_geomhelpers.h * SHARP helper function for the creation of grid geometries @@ -25,10 +25,10 @@ * \author Martin Reinecke */ -#ifndef SHARP_GEOMHELPERS_H -#define SHARP_GEOMHELPERS_H +#ifndef SHARP2_GEOMHELPERS_H +#define SHARP2_GEOMHELPERS_H -#include "libsharp/sharp.h" +#include "libsharp2/sharp.h" #ifdef __cplusplus extern "C" { diff --git a/libsharp/sharp_internal.h b/libsharp2/sharp_internal.h similarity index 76% rename from libsharp/sharp_internal.h rename to libsharp2/sharp_internal.h index 89c4429..09e45e8 100644 --- a/libsharp/sharp_internal.h +++ b/libsharp2/sharp_internal.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_internal.h * Internally used functionality for the spherical transform library. @@ -25,16 +25,16 @@ * \author Martin Reinecke \author Dag Sverre Seljebotn */ -#ifndef SHARP_INTERNAL_H -#define SHARP_INTERNAL_H +#ifndef SHARP2_INTERNAL_H +#define SHARP2_INTERNAL_H #ifdef __cplusplus #error This header file cannot be included from C++, only from C #endif #include -#include "libsharp/sharp.h" -#include "libsharp/sharp_ylmgen_c.h" +#include "libsharp2/sharp.h" +#include "libsharp2/sharp_ylmgen_c.h" typedef struct { diff --git a/libsharp/sharp_legendre_roots.c b/libsharp2/sharp_legendre_roots.c similarity index 95% rename from libsharp/sharp_legendre_roots.c rename to libsharp2/sharp_legendre_roots.c index 648cfca..5a0376b 100644 --- a/libsharp/sharp_legendre_roots.c +++ b/libsharp2/sharp_legendre_roots.c @@ -7,8 +7,8 @@ - tweaked Newton iteration to obtain higher accuracy */ #include -#include "libsharp/sharp_legendre_roots.h" -#include "libsharp/sharp_utils.h" +#include "libsharp2/sharp_legendre_roots.h" +#include "libsharp2/sharp_utils.h" static inline double one_minus_x2 (double x) { return (fabs(x)>0.1) ? (1.+x)*(1.-x) : 1.-x*x; } diff --git a/libsharp/sharp_legendre_roots.h b/libsharp2/sharp_legendre_roots.h similarity index 73% rename from libsharp/sharp_legendre_roots.h rename to libsharp2/sharp_legendre_roots.h index 4220fce..518058b 100644 --- a/libsharp/sharp_legendre_roots.h +++ b/libsharp2/sharp_legendre_roots.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_legendre_roots.h * @@ -24,8 +24,8 @@ * \author Martin Reinecke */ -#ifndef SHARP_LEGENDRE_ROOTS_H -#define SHARP_LEGENDRE_ROOTS_H +#ifndef SHARP2_LEGENDRE_ROOTS_H +#define SHARP2_LEGENDRE_ROOTS_H #ifdef __cplusplus extern "C" { diff --git a/libsharp/sharp_mpi.c b/libsharp2/sharp_mpi.c similarity index 96% rename from libsharp/sharp_mpi.c rename to libsharp2/sharp_mpi.c index 2be016a..3b7ca7f 100644 --- a/libsharp/sharp_mpi.c +++ b/libsharp2/sharp_mpi.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_mpi.c * Functionality only needed for MPI-parallel transforms @@ -27,7 +27,7 @@ #ifdef USE_MPI -#include "libsharp/sharp_mpi.h" +#include "libsharp2/sharp_mpi.h" typedef struct { diff --git a/libsharp/sharp_mpi.h b/libsharp2/sharp_mpi.h similarity index 87% rename from libsharp/sharp_mpi.h rename to libsharp2/sharp_mpi.h index 0195032..56c7587 100644 --- a/libsharp/sharp_mpi.h +++ b/libsharp2/sharp_mpi.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_mpi.h * Interface for the spherical transform library with MPI support. @@ -29,13 +29,13 @@ #define SHARP_MPI_H #include -#include "libsharp/sharp.h" +#include "libsharp2/sharp.h" #ifdef __cplusplus extern "C" { #endif -/*! Performs an MPI parallel libsharp SHT job. The interface deliberately does +/*! Performs an MPI parallel libsharp2 SHT job. The interface deliberately does not use the C99 "complex" data type, in order to be callable from C89 and C++. \param comm the MPI communicator to be used for this SHT \param type the type of SHT diff --git a/libsharp/sharp_utils.c b/libsharp2/sharp_utils.c similarity index 81% rename from libsharp/sharp_utils.c rename to libsharp2/sharp_utils.c index c73edf8..f1acd9f 100644 --- a/libsharp/sharp_utils.c +++ b/libsharp2/sharp_utils.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /* * Convenience functions @@ -26,8 +26,9 @@ */ #include -#include "libsharp/sharp_utils.h" +#include "libsharp2/sharp_utils.h" +#pragma GCC visibility push(hidden) void sharp_fail_ (const char *file, int line, const char *func, const char *msg) { fprintf(stderr,"%s, %i (%s):\n%s\n",file,line,func,msg); @@ -46,9 +47,11 @@ static size_t manipsize(size_t sz) if (((sz+overhead)%critical_stride)>(2*cacheline)) return sz; return sz+2*cacheline; } +#pragma GCC visibility pop #ifdef __SSE__ #include +#pragma GCC visibility push(hidden) void *sharp_malloc_ (size_t sz) { void *res; @@ -59,7 +62,9 @@ void *sharp_malloc_ (size_t sz) } void sharp_free_ (void *ptr) { if ((ptr)!=NULL) _mm_free(ptr); } +#pragma GCC visibility pop #else +#pragma GCC visibility push(hidden) void *sharp_malloc_ (size_t sz) { void *res; @@ -70,6 +75,7 @@ void *sharp_malloc_ (size_t sz) } void sharp_free_ (void *ptr) { if ((ptr)!=NULL) free(ptr); } +#pragma GCC visibility pop #endif #if defined (_OPENMP) @@ -83,6 +89,7 @@ void sharp_free_ (void *ptr) #include #endif +#pragma GCC visibility push(hidden) double sharp_wallTime(void) { #if defined (_OPENMP) @@ -106,3 +113,4 @@ double sharp_wallTime(void) return t.tv_sec + 1e-6*t.tv_usec; #endif } +#pragma GCC visibility pop diff --git a/libsharp/sharp_utils.h b/libsharp2/sharp_utils.h similarity index 100% rename from libsharp/sharp_utils.h rename to libsharp2/sharp_utils.h diff --git a/libsharp/sharp_vecsupport.h b/libsharp2/sharp_vecsupport.h similarity index 94% rename from libsharp/sharp_vecsupport.h rename to libsharp2/sharp_vecsupport.h index 7894ef6..ca9bee7 100644 --- a/libsharp/sharp_vecsupport.h +++ b/libsharp2/sharp_vecsupport.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /* \file sharp_vecsupport.h * Convenience functions for vector arithmetics @@ -25,8 +25,8 @@ * Author: Martin Reinecke */ -#ifndef SHARP_VECSUPPORT_H -#define SHARP_VECSUPPORT_H +#ifndef SHARP2_VECSUPPORT_H +#define SHARP2_VECSUPPORT_H #include diff --git a/libsharp/sharp_ylmgen_c.c b/libsharp2/sharp_ylmgen_c.c similarity index 95% rename from libsharp/sharp_ylmgen_c.c rename to libsharp2/sharp_ylmgen_c.c index 791908c..9e01902 100644 --- a/libsharp/sharp_ylmgen_c.c +++ b/libsharp2/sharp_ylmgen_c.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /* * Helper code for efficient calculation of Y_lm(theta,phi=0) @@ -27,8 +27,8 @@ #include #include -#include "libsharp/sharp_ylmgen_c.h" -#include "libsharp/sharp_utils.h" +#include "libsharp2/sharp_ylmgen_c.h" +#include "libsharp2/sharp_utils.h" #pragma GCC visibility push(hidden) diff --git a/libsharp/sharp_ylmgen_c.h b/libsharp2/sharp_ylmgen_c.h similarity index 87% rename from libsharp/sharp_ylmgen_c.h rename to libsharp2/sharp_ylmgen_c.h index 1fa1cfa..a14e7b5 100644 --- a/libsharp/sharp_ylmgen_c.h +++ b/libsharp2/sharp_ylmgen_c.h @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /*! \file sharp_ylmgen_c.h * Code for efficient calculation of Y_lm(phi=0,theta) @@ -25,8 +25,8 @@ * \author Martin Reinecke */ -#ifndef SHARP_YLMGEN_C_H -#define SHARP_YLMGEN_C_H +#ifndef SHARP2_YLMGEN_C_H +#define SHARP2_YLMGEN_C_H #ifdef __cplusplus extern "C" { diff --git a/python/pysharp.cc b/python/pysharp.cc index 1b1d28e..ebf9ba5 100644 --- a/python/pysharp.cc +++ b/python/pysharp.cc @@ -1,25 +1,25 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * For more information about HEALPix, see http://healpix.sourceforge.net */ /* - * libsharp is being developed at the Max-Planck-Institut fuer Astrophysik + * libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /* @@ -34,8 +34,8 @@ #include #include -#include "libsharp/sharp_cxx.h" -#include "libsharp/sharp_legendre_roots.h" +#include "libsharp2/sharp_cxx.h" +#include "libsharp2/sharp_legendre_roots.h" using namespace std; @@ -169,7 +169,7 @@ a_d_c GL_thetas(int64_t nlat) const char *pysharp_DS = R"""( -Python interface for libsharp +Python interface for libsharp2 All angles are interpreted as radians. The theta coordinate is measured as co-latitude, ranging from 0 (North Pole) diff --git a/python/setup.py b/python/setup.py index 153af06..f70ef07 100644 --- a/python/setup.py +++ b/python/setup.py @@ -59,7 +59,7 @@ def get_extension_modules(): setup(name='pysharp', version='0.0.1', - description='Python bindings for libsharp', + description='Python bindings for libsharp2', include_package_data=True, author='Martin Reinecke', author_email='martin@mpa-garching.mpg.de', diff --git a/runtest.sh b/runtest.sh index be291ec..1a0dde1 100755 --- a/runtest.sh +++ b/runtest.sh @@ -1,4 +1,4 @@ #!/bin/sh -./sharp_testsuite acctest +./sharp2_testsuite acctest diff --git a/test/sharp_testsuite.c b/test/sharp2_testsuite.c similarity index 97% rename from test/sharp_testsuite.c rename to test/sharp2_testsuite.c index c9986be..80949fb 100644 --- a/test/sharp_testsuite.c +++ b/test/sharp2_testsuite.c @@ -1,22 +1,22 @@ /* - * This file is part of libsharp. + * This file is part of libsharp2. * - * libsharp is free software; you can redistribute it and/or modify + * libsharp2 is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * libsharp is distributed in the hope that it will be useful, + * libsharp2 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 General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with libsharp; if not, write to the Free Software + * along with libsharp2; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */ +/* libsharp2 is being developed at the Max-Planck-Institut fuer Astrophysik */ /* \file sharp_testsuite.c * @@ -29,15 +29,16 @@ #include #ifdef USE_MPI #include "mpi.h" -#include "libsharp/sharp_mpi.h" +#include "libsharp2/sharp_mpi.h" #endif #ifdef _OPENMP #include #endif -#include "libsharp/sharp.h" -#include "libsharp/sharp_geomhelpers.h" -#include "libsharp/sharp_almhelpers.h" -#include "libsharp/sharp_utils.h" +#include "libsharp2/sharp.h" +#include "libsharp2/sharp_geomhelpers.h" +#include "libsharp2/sharp_almhelpers.h" +#include "libsharp2/sharp_utils.h" +#include "libsharp2/sharp_utils.c" #include "test/memusage.h" static void OpenMP_status(void)