cmake memory check

Making CMake work for you

if (USE_SANITIZER STREQUAL "Address")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
elseif (USE_SANITIZER STREQUAL "Thread")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
elseif (USE_SANITIZER STREQUAL "Undefined")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
elseif (USE_SANITIZER STREQUAL "Leak")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=leak")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=leak")
elseif (USE_SANITIZER STREQUAL "Memory")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=memory")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=memory")
endif()

Using finufft from python and conda-forge environment

GitHub - flatironinstitute/finufft: Non-uniform fast Fourier transform library of types 1,2,3 in dimensions 1,2,3

  1. git clone https://github.com/flatironinstitute/finufft.git
  2. Modify make.inc.
  3. make lib
  4. export LD_LIBRARY_PATH=finufft_dir/lib
  5. cd python
  6. python setup.py build && pip install -e .
  7. python test/run_accuracy_tests.py

make.inc for macOS and conda-forge environment:

CFLAGS = -O3
CONDA_PREFIX = /Users/accountname/.miniforge/envs/dev
CXX=$(CONDA_PREFIX)/bin/clang++
CC=$(CONDA_PREFIX)/bin/clang
CFLAGS   += -I./include -I$(CONDA_PREFIX)/include
FFLAGS   = $(CFLAGS)
CXXFLAGS = $(CFLAGS)
LIBS += -L$(CONDA_PREFIX)/lib
OMPFLAGS = -fopenmp
OMPLIBS = -L$(CONDA_PREFIX)/lib -lomp

(recovery) np.fft.ifft and finufft.nufft1d2

x = 2 * np.pi * np.arange(100) / 100
c = np.exp(1j * x)
f = np.fft.fftshift(np.fft.ifft(c))
c_r = finufft.nufft1d2(x, f)

import matplotlib.pyplot as plt
plt.plot(x, c_r.real)
plt.plot(x, c.real, '.')
plt.show()

Note fftshift but not ifftshift for the case that the number of original uniform data is odd. This shift is necessary to make data compatible between np.fft and finufft. See

(interpolation) np.fft.ifft and finufft.nufft1d2

x = 2 * np.pi * np.arange(100) / 100
c = np.exp(1j * x)
f = np.fft.fftshift(np.fft.ifft(c))
y = 2 * np.pi * np.arange(200) / 200
c_i = finufft.nufft1d2(y, f)

import matplotlib.pyplot as plt
plt.plot(y, c_i.real)
plt.plot(x, c.real, '.')
plt.show()

Note fftshift but not ifftshift for the case that the number of original uniform data is odd. This shift is necessary to make data compatible between np.fft and finufft. See

hiki (on my private server with no security consideration at my own risk)

On Ubuntu 20.04

sudo apt install apache2 ruby ruby-hikidoc docdiff ruby-nokogiri
ln -s ../mods-available/cgi.load
ln -s ../mods-available/cgid.load
ln -s ../mods-available/cgid.conf
        <Directory /var/www/html>
                Options ExecCGI FollowSymLinks
                AddHandler cgi-script .cgi
                DirectoryIndex hiki.cgi
                <Files "hikiconf.rb">
                        deny from all
                </Files>
        </Directory>

conda-forge

Autotick Bot

GitHub - regro/cf-graph-countyfair: Working files for the @cf-regro-autotick-bot

https://github.com/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+author%3Aregro-cf-autotick-bot+archived%3Afalse+

Google Summer of Code 2020 improved automatic maintenance of conda-forge — the conda-forge blog

Status

conda-forge status

Number of packages

conda-forge :: Anaconda.org