lassoinf
lassoinf provides selective inference tools leveraging a high-performance C++ backend. It is a hybrid codebase written in Python and C++, utilizing pybind11 for bindings and the Eigen library for fast linear algebra.
Features
- Affine Constraints: Core numerical tools for inference tasks.
- Dual Implementation: Logic provided in pure Python (
lassoinf.affine_constraints) and fast C++ counterparts (lassoinf_cpp). - High Performance: The C++ extensions target C++14 and integrate seamlessly with numpy and scipy.
Requirements
Python
- Python >= 3.10
numpy,scipy,matplotlibmeson-python,ninja,pybind11(for building the extension)
R
- R >= 4.0
Rcpp,RcppEigen
General
- A C++14 compliant compiler
Installation
Python
pip install lassoinf
To build from source, you can install lassoinf and build its C++ extension directly using pip:
pip install .
For an editable install during development (using the meson-python backend):
pip install --no-build-isolation -Csetup-args=-Dbuildtype=debug -e .
Editable install with uv
uv venv
source .venv/bin/activate
uv pip install meson-python meson ninja pybind11 setuptools_scm
uv pip install --no-build-isolation -e .
--no-build-isolation is required: meson-python rebuilds the C++ extension on import after C++ sources change, and that rebuild uses the build tools installed in the venv, so keep them installed. Add ".[test]" instead of . to also install the test dependencies.
If the build fails with stale paths (e.g. pybind11/pybind11.h not found after a previous non-editable install), remove the old build directory and reinstall:
rm -rf build/cp*
R
The R package lassoinf requires Rcpp, RcppEigen, and R6. You can install the package from the terminal or directly from the source directory.
The C++ library is shared with Python and must be synced first. The C++ sources live in cpp/ (used by the Python extension). R CMD build and CRAN require the R package to be self-contained, so R_pkg/src/lassoinf/ holds a copy of them that is committed to the repository. After editing anything under cpp/, refresh the copy before installing, building or testing the R package:
sh R_pkg/tools/sync_cpp.sh
Commit the updated R_pkg/src/lassoinf/ together with the change to cpp/. Otherwise, the R package builds against stale C++ code.
From the terminal:
# Build and install the package
R CMD INSTALL R_pkg
From within an R session:
# Install required dependencies if not already present
install.packages(c("Rcpp", "RcppEigen", "R6", "mvtnorm"))
# Install the package from the source directory
install.packages("R_pkg", repos = NULL, type = "source")
Or using devtools:
devtools::install("R_pkg")
Testing the R Package
To run the R test suite, you can use the testthat package from the command line:
cd R_pkg
Rscript -e 'testthat::test_dir("tests/testthat")'
Documentation
For more information, refer to the documentation in the docs/ folder. For the R package, you can view the vignette:
vignette("gaussian_lasso_boot", package = "lassoinf")
Alternatively, you can browse the pkgdown documentation site in R_pkg/docs/index.html.
License
This project is licensed under the BSD 3-Clause License. See the LICENSE file for details.
Metadata
Release files for lassoinf 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lassoinf-0.2.1.tar.gz | 3.8 MB | Details |
Built distributions (wheels)
Total release size: 21.4 MB
Release files / lassoinf-0.2.1.tar.gz
| Download URL | lassoinf-0.2.1.tar.gz |
|---|---|
| Size | 3.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
96b388eaa5972d1a33919be7e7787ade08f53de82197815ccb5927c57dbac0ca
|
|
BLAKE2b-256 checksum How to use checksums |
2030de0a45bb3aab1b4a7ed357548c1bac9df50e319a9470786faba5f8f6a571
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp314-cp314t-win_amd64.whl
| Download URL | lassoinf-0.2.1-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 526.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
380937e6cf462833dacffd12625b2306a815f6d4eb2e5b155efff9a560a50711
|
|
BLAKE2b-256 checksum How to use checksums |
5d2e46cf2272be14edb9fd40f9c7694fc17ba5d1ed98717d0367c1978f25da14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | lassoinf-0.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
097df0f9864944509b6aaf147a2a06966359820f2a7ed67cc598334cbb6ca9f0
|
|
BLAKE2b-256 checksum How to use checksums |
877f0c43497d35a6e4a76a9dd79a04b35894f5a81b792fc689b10bcba9421ad2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | lassoinf-0.2.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 488.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ba12fa413d40b437e76a8ba11831b5204871e57417ff8b283e687d4c04e1f121
|
|
BLAKE2b-256 checksum How to use checksums |
bc6f61ca79e7b7006578199dd8ddf71592e9c87a748a8bb5876848bafa71fbb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | lassoinf-0.2.1-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 401.9 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
53d29cc7bf8ccd76962791155578e3ea199aa1e3e6c3c35d6a9b628bd34c5115
|
|
BLAKE2b-256 checksum How to use checksums |
713af6f02cadb3db342d7887a1aec985d6cfe0a7ec629ed90e6e7903ce3a9762
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp314-cp314-win_amd64.whl
| Download URL | lassoinf-0.2.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 528.8 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d1306610126918474aba4df3fd168180563e0834488138a6fa86291147fed6a6
|
|
BLAKE2b-256 checksum How to use checksums |
219621fdf8d69a4875955725ebfbf33cad3d2bd888f260c83848a49642e49019
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | lassoinf-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
87c968c1469e4b27cf029315df75476f66397755686568fb95f3a594643fb2ea
|
|
BLAKE2b-256 checksum How to use checksums |
c1eab3f661a25a4418797a1171936eee4c16558abfd762f813078ad503433380
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | lassoinf-0.2.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 490.2 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
d769f8eb734eda1697fde8644c7b045cad5041e80aa622cc658b2856d784344a
|
|
BLAKE2b-256 checksum How to use checksums |
6fe2ae46b3ff92465183f4768430848a31137d03559ae456e08163eb9e3edd5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | lassoinf-0.2.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 389.8 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
97a46f4ec95cb84414d587a2f3e504e7f9c32e4437a370345829ef04cfdae14f
|
|
BLAKE2b-256 checksum How to use checksums |
c00f48962baccf39fd7a3cbd9f425d285665ce9254706d2239af5c45210636a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp313-cp313-win_amd64.whl
| Download URL | lassoinf-0.2.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 517.0 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a352ec575e82a0675a3d001af34c2f6e7096dfcce522b9902daee4fa052d5c43
|
|
BLAKE2b-256 checksum How to use checksums |
5fd6eedf633ea94926e70348d357e7c49b50d363488aa2fe45cddcc99c7ad8a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | lassoinf-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
d0a008b61892ace4edc633c85114f16cd5c1d1b6a7469785d86870d6c00e82ac
|
|
BLAKE2b-256 checksum How to use checksums |
b28ee4ea465852b046c305b134bb12dd9c7c080e761ed1918ef687314d4bb6ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | lassoinf-0.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 490.1 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3999c8d568164567932daaf69bc9160d37ce7729b939d225fab063b61d71065b
|
|
BLAKE2b-256 checksum How to use checksums |
53b9aa37c3e1a6dc2a0b0dd8f6f9b4d1157ae6c3ee22b38218acc7739b7ed87a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | lassoinf-0.2.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 389.3 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
28f2634f5bc082a924f47c45e70212f022f0d6ae20f63563833d10c061f1294a
|
|
BLAKE2b-256 checksum How to use checksums |
ab3b9a2f48e46ba385c7298439c52d7e95d0a735eab94027356af2626555de8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp312-cp312-win_amd64.whl
| Download URL | lassoinf-0.2.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 516.2 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
32287af57813227160a6ac265fb39f4b0adc5574ce71209d226a26984f133bfe
|
|
BLAKE2b-256 checksum How to use checksums |
d7f0f2f6565bba58702db43b466c66a8b23895ae04d4e39833f269d90c82d236
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | lassoinf-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
b7086546d3c182621d75c958bf895df840914d5a797472fda61b7fc47a6d027b
|
|
BLAKE2b-256 checksum How to use checksums |
a94663bf5543a7463f0d3944f75ced22d81f7fdc8db9b4dc57d2aa3c4c2e8692
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | lassoinf-0.2.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 490.0 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
799557a61729564b6589278ef049ab92d7f70eb5b3aec783b51f4b474f2adc95
|
|
BLAKE2b-256 checksum How to use checksums |
8efe0a8d39b59161ec06b048a053ab4522de7b99ac2643d03683539ef17f7c95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | lassoinf-0.2.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 389.2 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b8c505105dbfa8a0d9b7bd6ee6d37c47242402e20411cf550937ccb2917840f5
|
|
BLAKE2b-256 checksum How to use checksums |
26dac3b4cc2e8bd0d38999545b6682d0d010fde320d6866d480783f5916597e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp311-cp311-win_amd64.whl
| Download URL | lassoinf-0.2.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 516.2 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d75bd03ec3d52420685c29ffc2cdc784e51b0b8cacc717596557572aa1810e3a
|
|
BLAKE2b-256 checksum How to use checksums |
53d120645a49066887a90e0a1a15044937ee3680daf8c279789cdf5079a9345e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | lassoinf-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
05f1e4acee67738fe0897c3da283dfd0d59e3806da1ed62e0c23014db5fd1c06
|
|
BLAKE2b-256 checksum How to use checksums |
86b5811db8548046e7c287d282ba936251bedc97f943afc5004541aba47f2955
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | lassoinf-0.2.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 489.3 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5d66674f956c6efdbb2b3093b4ec4bc752cc60d94f14a928c60ffcee6d9ab29f
|
|
BLAKE2b-256 checksum How to use checksums |
b326831365f8c31e197cfa2c50f0ac1adc74b8b7e0ef20d62288cbb5a2c090d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | lassoinf-0.2.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 387.6 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
278889b1f1cdf2d0e6d73bf878cd49e98f2193d4fd1df0bc611992a4ce8cae54
|
|
BLAKE2b-256 checksum How to use checksums |
deb3a74c05d5e3aaa74d9fad606c950412558ea29b0e9331218b2b4b468fa3a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp310-cp310-win_amd64.whl
| Download URL | lassoinf-0.2.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 515.4 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
93362405641e220702e92b83da6500eb54010f1c4561657048762cf2f88d5482
|
|
BLAKE2b-256 checksum How to use checksums |
e9cb117376139dc3f973920d9ee73f66a10006022f7c784bf74982df124c7f3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | lassoinf-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
632f4f6fe3ebedfd94f0ac51495a1c8d1840d2f81f009d1aa37eb3b8f9ac2166
|
|
BLAKE2b-256 checksum How to use checksums |
b01edd6f9d3c900e77880970ec8de36ea384a28a6002ae8edff4854aeb975402
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | lassoinf-0.2.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 487.9 kB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5c201ac9f0826787df4baf475be8ca3b51595a9c377794d553b397717256b7f6
|
|
BLAKE2b-256 checksum How to use checksums |
341605928029b6b3517773e12f0d93ea63c53a26ea61809ad5f3349af251d7b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / lassoinf-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | lassoinf-0.2.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 386.2 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5e9146df78794e22077b2be6fde2dc309fc33a60a4dcb1263431b12b3fd27b22
|
|
BLAKE2b-256 checksum How to use checksums |
8f8457a160fa731b9857b98afc0ee40bcb1bfcbf43791f14fcc9cfa7edd33ee0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|