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 :ref:`installation <install>` instructions)

 .. warning:
    This is obsolete, as of March 2023, since we are transitioning to cmake, plus have a bunch of new directories from the merge in of cufinufft. Stay tuned!

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 <https://github.com/ludvigak/FINUFFT.jl>`_)
