[MRG] Faster gromov-wasserstein linesearch for symmetric matrices #607
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Types of changes
Add a new argument "symmetric" to ot.gromov._gw.solve_gromov_linesearch. The default value symmetric=False results in the previous behaviour. When C1 and C2 are symmetric however, one can set symmetric=True which results in faster computations as the formula can be simplified in that case.
ot.gromov._gw.fused_gromov_wasserstein and ot.gromov._gw.gromov_wasserstein have been changed accordingly to automatically pass symmetric=False or symmetric=True to solve_gromov_linesearch.
A new file symmetric_linesearch.py has been added to examples.gromov to check the usefullness of setting symmetric=True.
Motivation and context / Related issue
The formula for solving the gromov linesearch can be simplified in the (very common case) where the matrices C1 and C2 are symmetric, resulting in a small (but free) improvement in computationnal cost.
How has this been tested (if it applies)
PR checklist