Einspline B-spline library -------------------------- libeinspline is intended to be a simple, fast, and accurate library for creating and evaluation interpolating B-splines. In supports splines in 1D, 2D, and 3D, with real and complex datatypes in single or double precision. It supports spline with uniform on nonuniform knot spacing. When many splines need to be evaluated a single point, it has specialized routines to speed the calculations. Building -------- einspline is built with the standard autotools sequence: 1) autoreconf -i 2) mkdir build && cd build 3) ../configure --prefix=/usr/local CXX=g++-5 CC=gcc-5 4) make 5) make install Options ------- Einspline contains hand-coded routines to take advantage of SSE, SSE2, and SSE3 instructions. To enable their use, use ./configure --enable-sse Some routines make optional use of software prefetching, which helps on some processors and may hurt on others. It is enabled by passing "--enable-prefetch" to configure. Known issues: - GCC 7.4.0 (and perhaps newer versions) fails to compile. A simple fix is to compile the library with ealrier version of gcc and g++, as proposed here using GCC 5.5.0 - GCC 4.0.2 (and perhaps earlier versions) has a known bug in generating optimized SSE code on 32-bit machines. The results of using the SSE version may not be correct. We suggest upgrading to the 4.1 or 4.2 line of gcc or using the Intel compiler, which is free on Linux for noncommercial use. Alternatively, disable the SSE routines.