Skip to content

Commit fa2e960

Browse files
authored
Merge branch 'master' into refactor-simplex-storage
2 parents 32da742 + 6e21613 commit fa2e960

28 files changed

Lines changed: 4065 additions & 7 deletions

.circleci/config.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ version: 2
44
jobs:
55
build_docs:
66
docker:
7-
- image: cimg/python:3.10
8-
resource_class: medium
7+
- image: cimg/python:3.12
8+
resource_class: large
99
steps:
1010
- checkout
1111
- run:
@@ -27,6 +27,7 @@ jobs:
2727
git remote add upstream https://github.com/PythonOT/POT.git;
2828
git pull --ff-only upstream "refs/pull/$(cat merge.txt)/merge";
2929
git fetch upstream master;
30+
git submodule update --init --recursive
3031
fi
3132
3233
# Load our data

.github/workflows/build_doc.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ jobs:
1414

1515
steps:
1616
- uses: actions/checkout@v4
17+
with:
18+
submodules: true
1719
# Standard drop-in approach that should work for most people.
1820
- name: Free Disk Space (Ubuntu)
1921
uses: insightsengineering/disk-space-reclaimer@v1
@@ -32,7 +34,7 @@ jobs:
3234
python -m pip install --user --upgrade --progress-bar off -r requirements_all.txt
3335
python -m pip install --user --upgrade --progress-bar off -r docs/requirements.txt
3436
python -m pip install --user --upgrade --progress-bar off ipython sphinx-gallery memory_profiler
35-
python -m pip install --user -e .
37+
python -m pip install -v --user -e .
3638
# Look at what we have and fail early if there is some library conflict
3739
- name: Check installation
3840
run: |

.github/workflows/build_tests.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ jobs:
2828

2929
- name: Checking Out Repository
3030
uses: actions/checkout@v4
31+
with:
32+
submodules: true
3133
# Install Python & Packages
3234
- uses: actions/setup-python@v4
3335
with:
@@ -43,6 +45,9 @@ jobs:
4345
runs-on: ubuntu-latest
4446
steps:
4547
- uses: actions/checkout@v4
48+
with:
49+
submodules: true
50+
4651
- name: Set up Python
4752
uses: actions/setup-python@v5
4853
with:
@@ -70,6 +75,9 @@ jobs:
7075
android: true
7176
dotnet: true
7277
- uses: actions/checkout@v4
78+
with:
79+
submodules: true
80+
7381
- name: Set up Python ${{ matrix.python-version }}
7482
uses: actions/setup-python@v5
7583
with:
@@ -98,6 +106,9 @@ jobs:
98106
if: "!contains(github.event.head_commit.message, 'no ci')"
99107
steps:
100108
- uses: actions/checkout@v4
109+
with:
110+
submodules: true
111+
101112
- name: Set up Python
102113
uses: actions/setup-python@v5
103114
with:
@@ -125,6 +136,8 @@ jobs:
125136

126137
steps:
127138
- uses: actions/checkout@v4
139+
with:
140+
submodules: true
128141
- name: Set up Python ${{ matrix.python-version }}
129142
uses: actions/setup-python@v5
130143
with:
@@ -153,6 +166,8 @@ jobs:
153166

154167
steps:
155168
- uses: actions/checkout@v4
169+
with:
170+
submodules: true
156171
- name: Set up Python ${{ matrix.python-version }}
157172
uses: actions/setup-python@v5
158173
with:

.github/workflows/build_wheels.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ jobs:
1919

2020
steps:
2121
- uses: actions/checkout@v4
22+
with:
23+
submodules: true
2224
- name: Set up Python 3.10
2325
uses: actions/setup-python@v5
2426
with:
@@ -54,6 +56,8 @@ jobs:
5456

5557
steps:
5658
- uses: actions/checkout@v4
59+
with:
60+
submodules: true
5761
- name: Set up Python 3.10
5862
uses: actions/setup-python@v5
5963
with:

.github/workflows/build_wheels_weekly.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ jobs:
1818

1919
steps:
2020
- uses: actions/checkout@v4
21+
with:
22+
submodules: true
2123
- name: Set up Python 3.11
2224
uses: actions/setup-python@v5
2325
with:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ docs/modules/
1616
# Cython output
1717
ot/lp/emd_wrap.cpp
1818
ot/partial/partial_cython.cpp
19+
ot/bsp/bsp_wrap.cpp
1920

2021
# Distribution / packaging
2122
.Python

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[submodule "deps/eigen"]
2+
path = deps/eigen
3+
url = https://gitlab.com/libeigen/eigen.git
4+
branch = 3.4

CITATION.cff

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ authors:
7575
- given-names: Nathan
7676
family-names: Neike
7777
affiliation: Hi! PARIS
78+
- given-names: Baptiste
79+
family-names: Genest
80+
affiliation: CNRS, LIRIS
81+
- given-names: David
82+
family-names: Coeurjolly
83+
affiliation: CNRS, LIRIS
84+
7885
identifiers:
7986
- type: url
8087
value: 'https://github.com/PythonOT/POT'

MANIFEST.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,8 @@ include ot/lp/network_simplex_simple.h
1212
include ot/lp/network_simplex_simple_omp.h
1313
include ot/lp/sparse_bipartitegraph.h
1414
include ot/partial/partial_cython.pyx
15+
include ot/bsp/BSP-OT_header_only.h
16+
include ot/bsp/bsp_wrapper.cpp
17+
include ot/bsp/bsp_wrapper.h
18+
include ot/bsp/bsp_wrap.pyx
19+
graft deps/eigen/Eigen

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ POT provides the following generic OT solvers:
7373
* Fused unbalanced Gromov-Wasserstein [70].
7474
* [Optimal Transport Barycenters for Generic Costs](https://pythonot.github.io/auto_examples/barycenters/plot_free_support_barycenter_generic_cost.html) [77]
7575
* [Barycenters between Gaussian Mixture Models](https://pythonot.github.io/auto_examples/barycenters/plot_gmm_barycenter.html) [69, 77]
76+
* [Fast and accurate transport bijections using BSP-OT](https://pythonot.github.io/auto_examples/plot_bsp_ot.html) [84]
7677

7778
POT provides the following Machine Learning related solvers:
7879

@@ -139,7 +140,7 @@ pip install POT
139140
or get the very latest version by running:
140141

141142
```console
142-
pip install -U https://github.com/PythonOT/POT/archive/master.zip # with --user for user install (no root)
143+
pip install -U git+https://github.com/PythonOT/POT.git # with --user for user install (no root)
143144
```
144145

145146
Optional dependencies may be installed with
@@ -452,4 +453,6 @@ Artificial Intelligence.
452453

453454
[82] Bonet, C., Nadjahi, K., Séjourné, T., Fatras, K., & Courty, N. (2024). [Slicing Unbalanced Optimal Transport](https://openreview.net/forum?id=AjJTg5M0r8). Transactions on Machine Learning Research.
454455

455-
[83] Germain, T., Flamary, R., Kostic, V. R., & Lounici, K. (2025). [A Spectral-Grassmann Wasserstein Metric for Operator Representations of Dynamical Systems](https://arxiv.org/abs/2509.24920).
456+
[83] Germain, T., Flamary, R., Kostic, V. R., & Lounici, K. (2025). [A Spectral-Grassmann Wasserstein Metric for Operator Representations of Dynamical Systems](https://arxiv.org/abs/2509.24920).
457+
458+
[84] Genest, B., Bonneel, N., Nivoliers, V., & Coeurjolly, D. (2025). [BSP-OT: Sparse transport plans between discrete measures in loglinear time.](https://dl.acm.org/doi/10.1145/3763281) ACM Transactions on Graphics (TOG), 44(6), 1-15.

0 commit comments

Comments
 (0)