Skip to main content

A C++ library to speed up jpathgen computations

Project description

libjpathgen

CI codecov

A fast 2D cubeature library written in C++, with Python bindings.

Installation

If you're simply looking for python, run pip install libjpathgen.

Else, to install the C++ library run

pip install git+https://github.com/iwishiwasaneagle/libjpathgen.git
cd libjpathgen
cmake \
    -B build
    -DCMAKE_BUILD_TYPE=Release \
    .
cmake \
    --build build \
    --target install

With conda, be sure to add -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX} -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} to ensure that it is correctly installed in the env.

Dependencies

cubpackpp

Ensure cubpackpp>=1.0.0 is installed from source.

Eigen3

Please see the official documentation.

libgeos

The minimum supported version of libgeos is 3.11.1. This means that it must be built from source in ubuntu 20.4 as even ppa:ubuntugis/ubuntugis-unstable cannot help here (3.10.2 is the maximum installable via apt).

pybind

The minimum version of pybind11 depends on the version of python. It is advised to either install from source or using pip (pip install "pybind11[global]>=2.11.0").

WARNING: Ubuntu 22.04 only ships with pybind11@v2.9.1.

Python pybind11-dev
3.10 2.9.0
3.11 2.10.0
3.12 2.11.0

Run tests

Catch2>=v3.4.0 is required (see CI.yml)

cmake -B build \
  -DJPATHGEN_ENABLE_UNIT_TESTING=ON \
  -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j $(nproc)
ctest --test-dir build

With coverage

Add -DJPATHGEN_ENABLE_CODE_COVERAGE=ON to the initial cmake call.

lcov --capture --directory build --output-file coverage.info
lcov --remove coverage.info --output-file coverage.info '/usr/*' '*/test/*' '*/extern/*' '*/geos/*'
genhtml coverage.info -o build/html
firefox build/html/index.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

libjpathgen-0.3.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.28+ x86-64

libjpathgen-0.3.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

libjpathgen-0.3.3-cp312-cp312-musllinux_1_1_x86_64.whl (2.2 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

libjpathgen-0.3.3-cp312-cp312-musllinux_1_1_i686.whl (2.5 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

libjpathgen-0.3.3-cp312-cp312-manylinux_2_28_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

libjpathgen-0.3.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

libjpathgen-0.3.3-cp311-cp311-musllinux_1_1_x86_64.whl (2.2 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

libjpathgen-0.3.3-cp311-cp311-musllinux_1_1_i686.whl (2.5 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

libjpathgen-0.3.3-cp311-cp311-manylinux_2_28_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

libjpathgen-0.3.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

libjpathgen-0.3.3-cp310-cp310-musllinux_1_1_x86_64.whl (2.2 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

libjpathgen-0.3.3-cp310-cp310-musllinux_1_1_i686.whl (2.5 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

libjpathgen-0.3.3-cp310-cp310-manylinux_2_28_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

libjpathgen-0.3.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page