Skip to content

Conversation

@matbesancon
Copy link
Member

@matbesancon matbesancon commented Nov 4, 2021

Cleaning things up in the step size strategy.
All step size structures now implement the function perform_line_search. Any static or dynamic parameter is kept within the struct itself.

Each line search can define a workspace which is used to store intermediate expensive variables (temporary arrays). If they don't use any, they can ignore it. The workspace can be anything, built-in or custom type

@codecov-commenter
Copy link

codecov-commenter commented Nov 5, 2021

Codecov Report

Merging #259 (c5839a1) into breaking-02 (ab3f753) will increase coverage by 0.65%.
The diff coverage is 83.79%.

Impacted file tree graph

@@               Coverage Diff               @@
##           breaking-02     #259      +/-   ##
===============================================
+ Coverage        71.29%   71.95%   +0.65%     
===============================================
  Files               14       14              
  Lines             1937     1936       -1     
===============================================
+ Hits              1381     1393      +12     
+ Misses             556      543      -13     
Impacted Files Coverage Δ
src/norm_oracles.jl 95.45% <ø> (ø)
src/utils.jl 39.83% <ø> (-14.41%) ⬇️
src/pairwise.jl 66.08% <66.66%> (+0.83%) ⬆️
src/linesearch.jl 82.51% <82.51%> (ø)
src/blended_cg.jl 50.80% <91.66%> (+0.67%) ⬆️
src/fw_algorithms.jl 80.80% <92.85%> (+3.49%) ⬆️
src/afw.jl 77.97% <100.00%> (+0.91%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ab3f753...c5839a1. Read the comment docs.

@matbesancon matbesancon reopened this Nov 15, 2021
@matbesancon matbesancon merged commit 6840d68 into breaking-02 Dec 22, 2021
@matbesancon matbesancon deleted the struct-step branch December 22, 2021 18:38
dviladrich95 added a commit to dviladrich95/FrankWolfe.jl that referenced this pull request Feb 1, 2022
commit fb30a66
Author: dviladrich95 <daniel.viladrich.h@gmail.com>
Date:   Thu Jan 27 16:00:13 2022 +0100

    typo, fixed precompile

commit fe7a984
Merge: 27adb12 a01ba78
Author: dviladrich95 <daniel.viladrich.h@gmail.com>
Date:   Thu Jan 27 12:52:24 2022 +0100

    Merge branch 'step-counter' of https://github.com/dviladrich95/FrankWolfe.jl into step-counter

commit 27adb12
Merge: de05c01 019c9f2
Author: dviladrich95 <daniel.viladrich.h@gmail.com>
Date:   Thu Jan 27 12:14:31 2022 +0100

    added tracking src, test,, example, docs

commit 019c9f2
Author: dviladrich95 <daniel.viladrich.h@gmail.com>
Date:   Thu Jan 27 11:27:03 2022 +0100

    added src tracking, examples, docs

commit a01ba78
Merge: de05c01 77ac9e8
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Wed Jan 26 10:01:16 2022 +0100

    Merge branch 'breaking-02' into step-counter

commit de05c01
Author: dviladrich95 <daniel.viladrich.h@gmail.com>
Date:   Wed Jan 26 09:48:35 2022 +0100

    Revert "Merge branch 'breaking-02' into step-counter"

    This reverts commit a78dba0, reversing
    changes made to 5bb6f6c.

commit b0635ab
Merge: a29d117 a78dba0
Author: dviladrich95 <daniel.viladrich.h@gmail.com>
Date:   Wed Jan 26 09:27:55 2022 +0100

    Merge branch 'step-counter' of https://github.com/dviladrich95/FrankWolfe.jl into step-counter

commit a29d117
Author: j-geuter <85136388+j-geuter@users.noreply.github.com>
Date:   Mon Jan 17 10:22:08 2022 +0100

    In place v (ZIB-IOL#263)

    * basic documentation structure

    * docs/build in gitignore now

    * docs/build/ in .gitignore now

    * docs/build/ added to .gitignore

    * dollarsigns replaced

    * Update ci.yml

    * Project.toml update

    * docs/Project.toml added

    * minor fix

    * some c_e_p in-place

    * more in place changes

    * in place reworked

    * minor fix

    * minor fix

    * minor fix

    * minor fix

    * minor fix

    * v=similar(direction) and spzeros fixes

    * minor fix

    * minor fix

    * add sentence to docs

    * in place performance

    * add kwargs

    * initialize v

    * first_iter fix

    * first iter fix #2

    * tests update

    * remove floats

    * performance fix

    * performance test update

    * Update src/fw_algorithms.jl

    * Update src/norm_oracles.jl

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

    * Update src/norm_oracles.jl

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

    * Update src/norm_oracles.jl

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

commit 1c9f7dd
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Wed Jan 12 17:25:40 2022 +0100

    reduce readme (ZIB-IOL#285)

commit 2ff0d85
Author: hannahtro <46645533+hannahtro@users.noreply.github.com>
Date:   Wed Jan 12 14:39:44 2022 +0100

    update order of callback arguments in code and in docs (ZIB-IOL#284)

commit dde41d6
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Sat Jan 8 14:16:41 2022 +0100

    separate doc action (ZIB-IOL#283)

commit 4072104
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Jan 7 20:36:43 2022 +0100

    trajectory names (ZIB-IOL#282)

commit d4e6671
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Jan 17 11:43:37 2022 +0100

    Fix plot (ZIB-IOL#286)

    * remove plot from FW

    * homogenize logs

commit 81b4ae5
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Jan 7 15:30:05 2022 +0100

    [WIP] Speed inference (ZIB-IOL#245)

    * removed unnecessary deps

    * remove old code from example

    * fix bug

    * move plots to external file

    * import plots in file

    * attempt fixing env

    * exclude plot utils from examples run

    * occursin

    * fix occursin

    * readd check_gradient in utils

    * rem from module

    * readd precompile

    * remove precompile

    * update precompile

commit 462bd19
Author: hannahtro <46645533+hannahtro@users.noreply.github.com>
Date:   Fri Jan 7 10:50:13 2022 +0100

    update precompilation (ZIB-IOL#281)

    * SnoopCompile parcels for examples

    * update precompilation

    * delete SnoopCompile files

commit a9ebde2
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Tue Jan 4 12:25:01 2022 +0100

    Contributing (ZIB-IOL#280)

    * ignore generated, add contribution guide

    * add to readme

    * on in

    * more details on PRs

    * dead links

    * question mark removed

commit 77ac9e8
Merge: fd3dc25 bc042f8
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Tue Jan 25 16:02:07 2022 +0100

    Merge branch 'master' of github.com:ZIB-IOL/FrankWolfe.jl into breaking-02

commit a78dba0
Merge: 5bb6f6c fd3dc25
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Jan 21 11:46:00 2022 +0100

    Merge branch 'breaking-02' into step-counter

commit bc042f8
Author: hannahtro <46645533+hannahtro@users.noreply.github.com>
Date:   Fri Jan 21 11:17:38 2022 +0100

    [WIP] Visualization example (ZIB-IOL#287)

    * visualization of fw on polytope added

    * unsued package removed

    * simplify MOI constraints

    * move example to docs

    * add MOI to docs

    * reorder

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

commit fd3dc25
Merge: f7ab5cf aab3881
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Tue Jan 18 15:18:14 2022 +0100

    fix conflict

commit 5bb6f6c
Merge: 6d9f1fd f7ab5cf
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Jan 17 11:44:12 2022 +0100

    Merge branch 'breaking-02' of github.com:ZIB-IOL/FrankWolfe.jl into step-counter

commit f7ab5cf
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Jan 17 11:43:37 2022 +0100

    Fix plot (ZIB-IOL#286)

    * remove plot from FW

    * homogenize logs

commit aab3881
Author: j-geuter <85136388+j-geuter@users.noreply.github.com>
Date:   Mon Jan 17 10:22:08 2022 +0100

    In place v (ZIB-IOL#263)

    * basic documentation structure

    * docs/build in gitignore now

    * docs/build/ in .gitignore now

    * docs/build/ added to .gitignore

    * dollarsigns replaced

    * Update ci.yml

    * Project.toml update

    * docs/Project.toml added

    * minor fix

    * some c_e_p in-place

    * more in place changes

    * in place reworked

    * minor fix

    * minor fix

    * minor fix

    * minor fix

    * minor fix

    * v=similar(direction) and spzeros fixes

    * minor fix

    * minor fix

    * add sentence to docs

    * in place performance

    * add kwargs

    * initialize v

    * first_iter fix

    * first iter fix #2

    * tests update

    * remove floats

    * performance fix

    * performance test update

    * Update src/fw_algorithms.jl

    * Update src/norm_oracles.jl

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

    * Update src/norm_oracles.jl

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

    * Update src/norm_oracles.jl

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

commit 37bc2ac
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Wed Jan 12 17:25:40 2022 +0100

    reduce readme (ZIB-IOL#285)

commit 6d9f1fd
Merge: ffa11ac 1a9dc82
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Wed Jan 12 15:37:02 2022 +0100

    Merge branch 'breaking-02' into step-counter

commit d44cf20
Author: hannahtro <46645533+hannahtro@users.noreply.github.com>
Date:   Wed Jan 12 14:39:44 2022 +0100

    update order of callback arguments in code and in docs (ZIB-IOL#284)

commit b9aa911
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Sat Jan 8 14:16:41 2022 +0100

    separate doc action (ZIB-IOL#283)

commit f9f6246
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Jan 7 20:36:43 2022 +0100

    trajectory names (ZIB-IOL#282)

commit 1a9dc82
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Jan 7 15:30:05 2022 +0100

    [WIP] Speed inference (ZIB-IOL#245)

    * removed unnecessary deps

    * remove old code from example

    * fix bug

    * move plots to external file

    * import plots in file

    * attempt fixing env

    * exclude plot utils from examples run

    * occursin

    * fix occursin

    * readd check_gradient in utils

    * rem from module

    * readd precompile

    * remove precompile

    * update precompile

commit 34f9f26
Author: hannahtro <46645533+hannahtro@users.noreply.github.com>
Date:   Fri Jan 7 10:50:13 2022 +0100

    update precompilation (ZIB-IOL#281)

    * SnoopCompile parcels for examples

    * update precompilation

    * delete SnoopCompile files

commit 1af4360
Merge: e96e063 3854292
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Jan 7 09:56:24 2022 +0100

    Merge branch 'master' into breaking-02

commit 3854292
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Tue Jan 4 12:25:01 2022 +0100

    Contributing (ZIB-IOL#280)

    * ignore generated, add contribution guide

    * add to readme

    * on in

    * more details on PRs

    * dead links

    * question mark removed

commit ffa11ac
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Tue Jan 4 10:23:47 2022 +0100

    improve test

commit e96e063
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Jan 3 15:10:02 2022 +0100

    eltype

commit d661549
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Jan 3 14:48:15 2022 +0100

    added example

commit d8b2f59
Merge: 9c385e4 1537805
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Jan 3 10:12:45 2022 +0100

    Merge branch 'master' of github.com:ZIB-IOL/FrankWolfe.jl into breaking-02

commit 9c385e4
Author: hannahtro <jaimelabaguette@gmail.com>
Date:   Tue Dec 28 15:48:21 2021 +0100

    compute min and max eigenvalues with GenericSchur

commit c1247b8
Author: hannahtro <jaimelabaguette@gmail.com>
Date:   Tue Dec 28 15:32:51 2021 +0100

    add GenericSchur to Project.toml and to main FrankWolfe

commit e8811a4
Author: hannahtro <jaimelabaguette@gmail.com>
Date:   Tue Dec 28 15:25:34 2021 +0100

    use GenericSchur to have type stable eigen values

commit 96359a6
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Dec 24 15:51:07 2021 +0100

    improve docstrings

commit 2c579c9
Merge: 501cfeb e225f8a
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Dec 24 15:45:33 2021 +0100

    Merge branch 'breaking-02' into step-counter

commit 501cfeb
Merge: c62674c e1ac81f
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Dec 24 15:28:09 2021 +0100

    fix conflict

commit aaac9d1
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Thu Dec 23 18:17:23 2021 +0100

    fix header (ZIB-IOL#278)

    * Replace type of x in ActiveSet (ZIB-IOL#275)

    * fix initialization of active set

    * ActiveSet for Vector{BigFloat} fixed

    * reset Project.toml to master of forked repo

    * reset Project.toml to master of forked repo

    * test added

    * plots compat

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

    * Update Project.toml

    * fix header

    Co-authored-by: hannahtro <46645533+hannahtro@users.noreply.github.com>

commit 1537805
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Thu Dec 23 14:36:32 2021 +0100

    Update Project.toml

commit e225f8a
Author: hannahtro <46645533+hannahtro@users.noreply.github.com>
Date:   Thu Dec 23 14:35:10 2021 +0100

    memory_mode for type stability (ZIB-IOL#277)

    * struct inplace and outplace emphasis

    * replace memory with InplaceEmphasis, replace blas with OutplaceEmphasis

    * precompile updated

    * type error fixed

    * precompile updated

    * restrict memory_mode to MemoryEmphasis

    * precompile updated, == to isa

    * examples updated

    * tests updated

    * docs updated

    * passing a struct, not the type

    * fix some equality to type

    * warn to info

    * warn to info generalized

    * cleanup some parts of the readme

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

commit f676b99
Author: hannahtro <46645533+hannahtro@users.noreply.github.com>
Date:   Thu Dec 23 11:57:34 2021 +0100

    Replace type of x in ActiveSet (ZIB-IOL#275)

    * fix initialization of active set

    * ActiveSet for Vector{BigFloat} fixed

    * reset Project.toml to master of forked repo

    * reset Project.toml to master of forked repo

    * test added

    * plots compat

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

commit 6840d68
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Wed Dec 22 19:38:47 2021 +0100

    Step size strategy refactor (ZIB-IOL#259)

    * first attempt on line search refactor

    * intermediate solution

    * workspace

    * fix d to x - v

    * fix examples

    * monotonous

    * more monotonous

    * numbering for examples

    * rename spect

    * improve doc

    * should upgrade false by default

    * stability

    * fix adaptive call

    * more iterations

    * remove obsolete doc

    * remove log scale

    * scale up example

    * test

    * test CI without plot

    * fix minor things in docs

    * readd plot, reference

    * LTS for docs

    * reset docs version

    * fix plots version

    * fix PlotUtils

    * rm FW from docs

    * Plots 22

    * rem PlotsUtils

    * test 1.20

    * fix plotutils

    * GR

commit ab3f753
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Wed Dec 22 14:46:44 2021 +0100

    remove dense L1 (ZIB-IOL#276)

commit 9280e6f
Merge: 0acdc5e e1ac81f
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Dec 13 18:06:29 2021 +0100

    merge master

commit e1ac81f
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Dec 13 18:02:42 2021 +0100

    Update Project.toml

commit bb9863e
Author: dhendryc <92737336+dhendryc@users.noreply.github.com>
Date:   Mon Dec 13 18:02:17 2021 +0100

    Copy MathOptLMO (ZIB-IOL#270)

    * Added method to copy MathOptLMO

    * added test

    * custom copy for cache

    * readd test, bridging Hypatia

    * Update src/moi_oracle.jl

    * remove Clp

    Co-authored-by: Deborah Hendrych <hendrych@zib.de>
    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

commit 1277aa0
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Sun Dec 12 16:55:17 2021 +0100

    Moi up (ZIB-IOL#271)

    * MOI up

    * remove temp broken tests

commit b0f1653
Author: hannahtro <46645533+hannahtro@users.noreply.github.com>
Date:   Tue Dec 7 17:18:24 2021 +0100

    type stability of compute_extreme_point (ZIB-IOL#266)

    * first attempt on line search refactor

    * intermediate solution

    * workspace

    * Clean up active_set.jl (ZIB-IOL#258)

    * Added isempty function for ActiveSet, created method for away_frank_wolfe that takes an ActiveSet as parameter

    * The away_frank_wolfe function taking an initial starting point now creates an ActiveSet with said point and hands it and all the other inputs to the method taking an ActiveSet as input

    * Added tests for the new method away_frank_wolfe taking an ActiveSet as input

    * changed comment in afw.jl

    * Changed compute_active_set_iterate to get_active_set_iterate and replaced all instances

    * Merged src/active.jl's functions active_set_argminmax and find_minmax_direction into one function, updated the appearing instances

    * Renamed update_active_set_iterate! to compue_active_set_iterate! and changed all instances of it.

    * Update src/active_set.jl

    * Update src/active_set.jl

    * Update src/afw.jl

    * Update src/active_set.jl

    * Changed the instances of renamed methods in pairwise.jl

    Co-authored-by: Deborah Hendrych <hendrych@zib.de>
    Co-authored-by: Hendrych <dhendryc@opt117.zib.de>
    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>

    * fix d to x - v

    * tolerance keyword (ZIB-IOL#255)

    * tolerance keyword

    * one digit after dot

    * naming, consistent logging

    * fix examples

    * monotonous

    * more monotonous

    * numbering for examples

    * rename spect

    * improve doc

    * comments regarding type instability

    * resolve merge conflicts

    * test type stability

    * type stability added in compute_extreme_point with NuclearNormLMO

    Co-authored-by: Mathieu Besançon <mathieu.besancon@gmail.com>
    Co-authored-by: dhendryc <92737336+dhendryc@users.noreply.github.com>
    Co-authored-by: Deborah Hendrych <hendrych@zib.de>
    Co-authored-by: Hendrych <dhendryc@opt117.zib.de>

commit 3646712
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Tue Dec 7 16:29:23 2021 +0100

    test on 1.6 and stable (ZIB-IOL#267)

commit 093bcb0
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Fri Dec 3 09:40:55 2021 +0100

    remove nightly

commit dbac4f1
Author: Mathieu Besançon <mathieu.besancon@gmail.com>
Date:   Mon Nov 29 18:32:41 2021 +0100

    Update Project.toml

commit bdf0f35
Author: Sebastian Pokutta <23001135+pokutta@users.noreply.github.com>
Date:   Mon Nov 29 18:32:13 2021 +0100

    removed unnecessarily twice computed gap (ZIB-IOL#264)
dhendryc pushed a commit that referenced this pull request Jan 17, 2025
* first attempt on line search refactor

* intermediate solution

* workspace

* fix d to x - v

* fix examples

* monotonous

* more monotonous

* numbering for examples

* rename spect

* improve doc

* should upgrade false by default

* stability

* fix adaptive call

* more iterations

* remove obsolete doc

* remove log scale

* scale up example

* test

* test CI without plot

* fix minor things in docs

* readd plot, reference

* LTS for docs

* reset docs version

* fix plots version

* fix PlotUtils

* rm FW from docs

* Plots 22

* rem PlotsUtils

* test 1.20

* fix plotutils

* GR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants