Directories in this packageΒΆ

When you git clone https://github.com/flatironinstitute/finufft, or unpack a tar ball, you will get the following. (Please see installation instructions)

Main library source:

  • makefile : the single GNU makefile (there are no makefiles in subdirectories)
  • make.inc.* : system-specific example overrides to use as your make.inc
  • src : main library C++ sources
  • include : header files, including those for users to compile against
  • contrib : 3rd-party codes in the main library
  • lib : dynamic (.so) library will be built here
  • lib-static : static (.a) library will be built here

Examples, tutorials, and docs:

  • examples : simple example codes for calling the library from C++ and C
  • tutorial : application demo codes (various languages), supporting docs/tutorial/
  • finufft-manual.pdf : the manual (auto-generated by sphinx, eg via make docs)
  • docs : source files for documentation (.rst files are human-readable, kinda)
  • README.md : github-facing (and human text-only reader) welcome
  • LICENSE : how you may use this software
  • CHANGELOG : list of changes, release notes
  • TODO : list of things needed to fix or extend (also see git Issues)

Testing:

  • test : main validation tests (C++/bash), including:
    • test/basicpassfail{f} simple smoke test with exit code
    • test/check_finufft.sh is the main pass-fail validation bash script
    • test/results has validation comparison outputs (\*.refout; do not remove these), and local test outputs (\*.out; you may remove these)
  • perftest : main performance and developer tests (C++/bash), including:
    • test/spreadtestnd.sh spread/interp performance test bash script
    • test/nuffttestnd.sh NUFFT performance test bash script

Other language interfaces, further testing:

  • fortran : wrappers and example drivers for Fortran (see fortran/README)
  • matlab : MATLAB/octave wrappers, tests, and examples
  • python : python wrappers, examples, and tests
    • python/ci continuous integration tests
  • julia : (not yet functional; for now see FINUFFT.jl)