Commit d9736284 authored by Nathanaël Schaeffer's avatar Nathanaël Schaeffer
Browse files

v3.5

parent 8a4aa146
Pipeline #78360 passed with stages
in 4 minutes and 24 seconds
SHTNS CHANGE LOG:
-----------------
* v3.5 (26 Oct 2021)
- Rotations now support all normalizations; older pseudo-spectral rotations are deprected.
- Python interface for rotations.
- New `SH_to_point_cplx()` function for point-evaluation of complex-valued field.
- New support for odd number of grid points in latitude (nlat).
- Support for ARM Neon vector instructions.
- beta: float support (single precision) for cuda transforms on GPU.
- Polar optimization for point evaluations.
- Fix issues in `shtns_rotation_set_angles_ZXZ()` and `shtns_rotation_set_angle_axis()`
- Fix all accuracy errors for regular grids including poles and lmax>=1000.
* v3.4.6 (15 May 2021)
- Fix major bug arising in complex-valued synthesis since v3.4 (issue #42).
- Fix accuracy error for regular grids including poles and lmax>=1000.
......@@ -14,13 +25,13 @@ SHTNS CHANGE LOG:
* v3.4.4 (12 Oct 2020)
- Fix accuracy loss with cuda-transforms on GPU at large sizes (Lmax around 8000)
- Fix wrong sign for rotation around Z-axis in `shtns_rotation_set_angle*()`
- Fix compilations issues arising with some compilers and systems.
- Fix compilation issues arising with some compilers and systems.
- Rotations: allow beta<0 in `shtns_rotation_set_angles_Z?Z()`
* v3.4.3 (8 Sep 2020)
- Fix critical bug sometimes causing intermittent accuracy errors with avx512 and large
sizes (Lmax>=1800).
- Detection and workaround for a bug in some versions `binutils` causing systematic failures
- Detection and workaround for a bug in some versions of `binutils` causing systematic failures.
with avx512 and gcc as the compiler. The bug is fixed in `binutils` 2.32 or more recent.
- Better handling of cuda by `./configure` allowing to set target architecture/compute
capability (e.g. `--enable-cuda=pascal`)
......
......@@ -20,7 +20,7 @@ FEATURES:
Gauss-Legendre quadrature).
- support for **regular grids** (but they require twice the number of nodes than Gauss grid)
- support for SSE2, SSE3, **AVX, AVX2, AVX-512** vectorization, as well as
Xeon Phi (KNL) and AltiVec VSX.
Xeon Phi (KNL), AltiVec VSX, and Neon.
- **parallel transforms with OpenMP**.
- *Beta*: automatic **GPU off-loading** with nvidia cuda (Kepler, Pascal & Volta).
- synthesis (inverse transform) at any coordinate (not constrained to a grid).
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for SHTns 3.4.6.
# Generated by GNU Autoconf 2.71 for SHTns 3.5.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
......@@ -608,8 +608,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='SHTns'
PACKAGE_TARNAME='shtns'
PACKAGE_VERSION='3.4.6'
PACKAGE_STRING='SHTns 3.4.6'
PACKAGE_VERSION='3.5'
PACKAGE_STRING='SHTns 3.5'
PACKAGE_BUGREPORT=''
PACKAGE_URL='https://bitbucket.org/nschaeff/shtns'
......@@ -1285,7 +1285,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures SHTns 3.4.6 to adapt to many kinds of systems.
\`configure' configures SHTns 3.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1347,7 +1347,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of SHTns 3.4.6:";;
short | recursive ) echo "Configuration of SHTns 3.5:";;
esac
cat <<\_ACEOF
......@@ -1457,7 +1457,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
SHTns configure 3.4.6
SHTns configure 3.5
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
......@@ -1771,7 +1771,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by SHTns $as_me 3.4.6, which was
It was created by SHTns $as_me 3.5, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
......@@ -6023,7 +6023,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by SHTns $as_me 3.4.6, which was
This file was extended by SHTns $as_me 3.5, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -6088,7 +6088,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
SHTns config.status 3.4.6
SHTns config.status 3.5
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
......
......@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.71])
AC_INIT([SHTns],[3.4.6],[],[shtns],[https://bitbucket.org/nschaeff/shtns])
AC_INIT([SHTns],[3.5],[],[shtns],[https://bitbucket.org/nschaeff/shtns])
AC_LANG([C])
AC_CONFIG_SRCDIR([sht_init.c])
AC_CONFIG_HEADERS([sht_config.h])
......
......@@ -1059,7 +1059,7 @@ int config_load(shtns_cfg shtns, int req_flags)
}
/// \internal returns 1 if val cannot fit in dest (unsigned)
#define IS_TOO_LARGE(val, dest) (sizeof(dest) >= sizeof(val)) ? 0 : ( ( val >= (1<<(8*sizeof(dest))) ) ? 1 : 0 )
#define IS_TOO_LARGE(val, dest) (sizeof(dest) >= sizeof(val)) ? 0 : ( ( val >= (1ULL<<(8*sizeof(dest))) ) ? 1 : 0 )
/// \internal returns the size that must be allocated for an shtns_info.
#define SIZEOF_SHTNS_INFO(mmax) ( sizeof(struct shtns_info) + (mmax+1)*( sizeof(unsigned short) ) )
......
......@@ -27,7 +27,7 @@
#endif
/* are there supported vector extensions available ? */
#if !(defined __SSE2__ || defined __VSX__ || defined __ARM_NEON)
#if !(defined __SSE2__ || defined __VSX__ || __ARM_NEON_FP >= 8)
#undef _GCC_VEC_
#endif
#ifdef __INTEL_COMPILER
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment