Skip to content

Commit 63fc348

Browse files
authored
Merge pull request #49 from FastNFT/release-0.3
Merge the final changes from release 0.3 back into development
2 parents 19b4749 + 4735e59 commit 63fc348

9 files changed

Lines changed: 181 additions & 84 deletions

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
# Changelog
22

3+
## [0.3.0] -- 2020-03-06
4+
5+
### Added
6+
7+
- The routine fnft_nsep for the NFT of the periodic nonlinear Schroedinger equation can now visualize spines (see the new points_per_spine option)
8+
- The subsampling and refinement processes in fnft_nsep can now be better controlled using the new Dsub and max_evals options
9+
- The Matlab routine mex_fnft_nsep has been updated accordingly
10+
11+
### Fixed
12+
13+
- The Matlab interface now builds also with the most recent versions of Matlab
14+
- The refinement of the auxiliary spectrum in fnft_nsep was refining the complex conjugate of mu_k instead of mu_k
15+
16+
### Changed
17+
18+
- The refinement of the main spectrum in fnft_nsep has been improved
19+
- The polynomial rootfinder in fnft__poly_roots_fasteigen now always uses the QR algorithm
20+
321
## [0.2.2] -- 2018-12-13
422

523
### Added

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ cmake_minimum_required(VERSION 3.5)
2020
project(fnft C)
2121

2222
set(FNFT_VERSION_MAJOR 0)
23-
set(FNFT_VERSION_MINOR 2)
24-
set(FNFT_VERSION_PATCH 2)
25-
set(FNFT_VERSION_SUFFIX "-dev") # should not be longer than FNFT_SUFFIX_MAXLEN
23+
set(FNFT_VERSION_MINOR 3)
24+
set(FNFT_VERSION_PATCH 0)
25+
set(FNFT_VERSION_SUFFIX "") # should not be longer than FNFT_SUFFIX_MAXLEN
2626
set(FNFT_VERSION ${FNFT_VERSION_MAJOR}.${FNFT_VERSION_MINOR}.${FNFT_VERSION_PATCH}${FNFT_VERSION_SUFFIX})
2727

2828
include(CheckIncludeFiles)

Doxyfile

Lines changed: 124 additions & 61 deletions
Large diffs are not rendered by default.

Getting-Started.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,11 @@ If the MATLAB interface has been built, try the following in MATLAB
2929

3030
## Documentation
3131

32-
The C interface is separated in a public ('fnft_' prefix) and a private part ('fnft__' prefix). To get started with the public part, read the documentation in the public header files in the 'include' folder. It is also possible to build a html version of the documentation. To build it, run doxygen in the main folder of the library. It can then be found in the
33-
doc folder. Simply open the file '~/FNFT/doc/html/index.html' in your web browser.
32+
The documentation of the C interface is available online at
33+
34+
[https://fastnft.github.io/FNFT/](https://fastnft.github.io/FNFT/)
35+
36+
The C interface is separated into a public part ('fnft_' prefix) and a private part ('fnft__' prefix). The public part corresponds to the header files directly inside the 'include' folder. The header files in the subdirectories of the 'include' folder are considered private. To build the documentation yourself, run doxygen in the main folder of the library. It can then be found in the doc folder. Simply open the file '~/FNFT/doc/html/index.html' in your web browser.
3437

3538
The MATLAB interface is documented in the usual way. Run the commands
3639

include/fnft.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,18 @@
2828
/**
2929
* \mainpage FNFT: Fast nonlinear Fourier transforms
3030
*
31-
* The library is separated into a public ("fnft_" prefix) and a private part
32-
* ("fnft__" prefix). \n\n
33-
* To get started, read the modules \ref fnft and \ref fnft_inverse, and try
34-
* the examples in the examples directory.
31+
* This is the documention for the C interface of the library FNFT.
32+
*
33+
* You can download FNFT at https://github.com/FastNFT/FNFT/
34+
*
35+
* Please read the file README.md first if you are new to FNFT.
36+
*
37+
* The C interface is separated into a public part ("fnft_" prefix) and a private
38+
* part ("fnft__" prefix).
39+
*
40+
* To get start with the public part of the C interface, study the modules
41+
* \ref fnft and \ref fnft_inverse, and try the examples in the examples
42+
* directory.
3543
*/
3644

3745
/* Define groups for Doxygen documentation */

include/fnft_nsep.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
* @ingroup data_types
3636
* fnft_nsep_opts_loc_SUBSAMPLE_AND_REFINE: Similar approach as for
3737
* fnft_nsev_opts_dsloc_SUBSAMPLE_AND_REFINE (see
38-
* \link fnft_nsev_opts_t::bound_state_localization\endlink.)\n\n
38+
* \link fnft_nsev_opts_t::bound_state_localization \endlink.)\n\n
3939
* fnft_nsep_opts_loc_GRIDSEARCH: Uses a grid search to localize roots. Can
4040
* only find main and auxiliary spectrum points on the real axis. In the
4141
* defocusing case, the main spectrum is always real.\n\n
@@ -123,6 +123,11 @@ typedef enum {
123123
* is used during localization. See \link fnft_nsep_loc_t \endlink.
124124
* When set to zero (default), the algorithm will choose Dsub automatically
125125
* such that the complexity of finding initial guesses is O(D log^2 D).
126+
*
127+
* @var fnft_nsep_opts_t::tol
128+
* Tolerance used to stop the refinement of main and auxiliary spectrum.
129+
* Should be positive or -1. In latter case, the algorithm chooses the
130+
* tolerance.
126131
*/
127132
typedef struct {
128133
fnft_nsep_loc_t localization;

include/private/fnft__akns_discretization_t.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* This file is part of FNFT.
3-
*
2+
* This file is part of FNFT.
3+
*
44
* FNFT is free software; you can redistribute it and/or
55
* modify it under the terms of the version 2 of the GNU General
66
* Public License as published by the Free Software Foundation.
@@ -9,7 +9,7 @@
99
* but WITHOUT ANY WARRANTY; without even the implied warranty of
1010
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111
* GNU General Public License for more details.
12-
*
12+
*
1313
* You should have received a copy of the GNU General Public License
1414
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1515
*
@@ -92,8 +92,8 @@
9292
* equation,&quot;</a> J. Comput. Phys. 102(2), 1992.
9393
* It is supported by \link fnft__nse_scatter.h \endlink.
9494
*
95-
* Used in \link fnft__akns_fscatter\endlink and
96-
* \link fnft__akns_scatter.h\endlink.
95+
* Used in \link fnft__akns_fscatter.h \endlink and
96+
* \link fnft__akns_scatter.h \endlink.
9797
*
9898
* @ingroup data_types
9999
*/

test/fnft_nsep/fnft_nsep_test_plane_wave_focusing_2split2A.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* This file is part of FNFT.
3-
*
2+
* This file is part of FNFT.
3+
*
44
* FNFT is free software; you can redistribute it and/or
55
* modify it under the terms of the version 2 of the GNU General
66
* Public License as published by the Free Software Foundation.
@@ -9,7 +9,7 @@
99
* but WITHOUT ANY WARRANTY; without even the implied warranty of
1010
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111
* GNU General Public License for more details.
12-
*
12+
*
1313
* You should have received a copy of the GNU General Public License
1414
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1515
*
@@ -57,7 +57,7 @@ INT main()
5757
// Repeat tests without real spectrum
5858
opts.bounding_box[2] = 0.1;
5959
D = 1024;
60-
error_bounds[0] = 4.4e-5;
60+
error_bounds[0] = 4.5e-5;
6161
error_bounds[1] = 4.4e-5;
6262
error_bounds[2] = 0.0;
6363
ret_code = nsep_testcases_test_fnft(tc, D, error_bounds, &opts);

test/fnft_nsep/fnft_nsep_test_plane_wave_focusing_2split4B.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* This file is part of FNFT.
3-
*
2+
* This file is part of FNFT.
3+
*
44
* FNFT is free software; you can redistribute it and/or
55
* modify it under the terms of the version 2 of the GNU General
66
* Public License as published by the Free Software Foundation.
@@ -9,7 +9,7 @@
99
* but WITHOUT ANY WARRANTY; without even the implied warranty of
1010
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111
* GNU General Public License for more details.
12-
*
12+
*
1313
* You should have received a copy of the GNU General Public License
1414
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1515
*
@@ -57,7 +57,7 @@ INT main()
5757
// Repeat tests without real spectrum
5858
opts.bounding_box[2] = 0.1;
5959
D = 1024;
60-
error_bounds[0] = 4.4e-5;
60+
error_bounds[0] = 4.5e-5;
6161
error_bounds[1] = 4.4e-5;
6262
error_bounds[2] = 0.0;
6363
ret_code = nsep_testcases_test_fnft(tc, D, error_bounds, &opts);

0 commit comments

Comments
 (0)