Skip to content

Commit

Permalink
Merge pull request #78 from FastNFT/release-0.5
Browse files Browse the repository at this point in the history
Release 0.5
  • Loading branch information
wahls authored Jul 19, 2023
2 parents db8d068 + 74be828 commit 3619f24
Show file tree
Hide file tree
Showing 284 changed files with 23,958 additions and 6,031 deletions.
22 changes: 20 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
!Doxyfile

# Unignore subdirectories
#!/examples/
!/examples/
!/include/
!/include/private/
!/include/3rd_party/eiscor/
Expand All @@ -16,7 +16,24 @@
!/src/private/
!/src/3rd_party/eiscor/
!/src/3rd_party/kiss_fft/
#!/test/
!/test/
!/test/fnft__akns_fscatter/
!/test/fnft__fft_wrapper/
!/test/fnft__kdv_finvscatter/
!/test/fnft__kdv_scatter/
!/test/fnft_kdvv/
!/test/fnft__manakov_fscatter/
!/test/fnft__manakov_scatter/
!/test/fnft_manakovv/
!/test/fnft__misc/
!/test/fnft__nse_finvscatter/
!/test/fnft_nsep/
!/test/fnft__nse_scatter/
!/test/fnft_nsev/
!/test/fnft_nsev_inverse/
!/test/fnft__poly/
!/test/fnft_version_test/
!/test/fnft_version_test.c/

# Ignore MacOS hidden files in subdirectories
/**/*.DS_Store
Expand All @@ -36,6 +53,7 @@
!/**/*.h
!/**/*.h.in
!/**/*.m
!/**/*.inc

# Explicitly reignore fnft_config.h, which is generated by cmake
/include/fnft_config.h
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ before_script:
- cd build

script:
- if dpkg -s libfftw3-dev; then cmake .. -DENABLE_FFTW=ON; else cmake ..; fi
- if dpkg -s libfftw3-dev; then cmake .. -DENABLE_FFTW=ON -DDEBUG=ON; else cmake .. -DDEBUG=ON; fi
- make
- make test CTEST_OUTPUT_ON_FAILURE=1
27 changes: 26 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,39 @@
# Changelog

## [0.5.0]

### Added

- The routine fnft_kdvv now can now also compute the discrete spectrum. To locate the bound states, either Newton's method or a grid search with additional Newton refinements are available.
- A NFT routine fnft_manakovv for the Manakov equation with vanishing boundaries was added (continuous spectrum only).
- The slow scattering methods for AKNS-type systems now include a normalization procedure to deal with numerical overflow (enabled by default).
- The periodic NFT routine fnft_nsep now also supports pure Newton refinement.
- The vanishing NFT routine fnft_nsev now also supports manual filtering.
- The routine fnft__kdv_finvscatter has been added. The plan is to later use it for a fast inverse KdV NFT.

### Changed

- New criteria for stopping Newton iterations in fnft_nsep and fnft_nsev.
- The tolerance for the Newton refinements in fnft_nsev can now be set by the user.
- The default number of iterations for the Newton refinements in fnft_nsev is now 100, and the user is warned if the number was too small.
- Reduced some tests to reduce run times.
- The code for AKNS scattering has been overhauled.

### Fixed

- Several memory leaks have been fixed.

## [0.4.1] -- 2020-07-13

### Changed

- Number of samples for fnft_nsep again has to be a power of two.
- misc_resample no longer issues a warning when the signal appears to be undersampled. This gave the wrong impression that CFx_y discrizations suffer more in such scenarios than the other ones, which do not use this routine.

### Fixed

- misc_downsample could return incorrect values for first_last_index[1]
- misc_downsample could return incorrect values for first_last_index[1].
- Some errors in fnft_nsev become meaningless when bound_states==NULL and should not be risen in that case.

## [0.4.0] -- 2020-07-08

Expand Down
7 changes: 5 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ cmake_minimum_required(VERSION 3.17.3)
project(fnft C)

set(FNFT_VERSION_MAJOR 0)
set(FNFT_VERSION_MINOR 4)
set(FNFT_VERSION_PATCH 1)
set(FNFT_VERSION_MINOR 5)
set(FNFT_VERSION_PATCH 0)
set(FNFT_VERSION_SUFFIX "") # should not be longer than FNFT_SUFFIX_MAXLEN
set(FNFT_VERSION ${FNFT_VERSION_MAJOR}.${FNFT_VERSION_MINOR}.${FNFT_VERSION_PATCH}${FNFT_VERSION_SUFFIX})

Expand Down Expand Up @@ -94,6 +94,7 @@ include_directories(include/3rd_party/eiscor)
include(CheckCCompilerFlag)

# configure C compiler
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wextra -pedantic -Werror=implicit-function-declaration -Wsign-conversion")
if (CMAKE_COMPILER_IS_GNUCC) # gcc
if (DEBUG)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
Expand All @@ -112,6 +113,8 @@ if (CMAKE_COMPILER_IS_GNUCC) # gcc
check_c_source_compiles("#pragma GCC optimize(\"Ofast\") \n int main() { int g = 1; return g; }" HAVE_PRAGMA_GCC_OPTIMIZE_OFAST)
else()
message(WARNING "++ Compiler is not gcc. Will try to set flags anyway.")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
message("++ Enabled -Wconversion flag in the C compiler")
if (DEBUG)
check_c_compiler_flag("-g" HAS_C_G_FLAG)
if (HAS_C_G_FLAG)
Expand Down
Loading

0 comments on commit 3619f24

Please sign in to comment.