Menu

#104 Remove/Encapsulate boost::odeint (remove boost #3)

0.2.2
done
nobody
None
nobody
2018-05-31
2017-08-21
Ulf Lorenz
No

Boost is a major drag when you want to compile anything, as the huge number of headers slows down the compilation considerably.

The OdePropagators directly expose the boost::odeint headers to all clients that use them. This should stop. Everything that includes boost should be used only internally in the library, the outside world should only see data structures that have nothing to do with boost.

Measure the effect of this cleanup on compilation times!


  • boost dependency removed, only left in a private implementation header that is not regularily exposed outside => almost no boost dependency left
  • effect on compilation times small (2% overall, < 10% for demos), might gain another few percent if ProgramOptions also encapsulates the boost dependency ([#105])
    • Update: forgot one include in the main "wavepacket.hpp" include. Removing this gives another 10-20% speedup of the whole library (including demos); considering that only a few acceptance tests and the demos are affected, the speedup for the demos only is considerably larger.

Related

Tickets: #105
Tickets: #84

Discussion

  • Ulf Lorenz

    Ulf Lorenz - 2017-11-11
    • Milestone: Backlog --> 0.3 goal
     
  • Ulf Lorenz

    Ulf Lorenz - 2018-04-02
    • Milestone: 0.3 goal --> 0.2.2
     
  • Ulf Lorenz

    Ulf Lorenz - 2018-04-13
    • status: open --> assigned
    • assigned_to: Ulf Lorenz
     
  • Ulf Lorenz

    Ulf Lorenz - 2018-04-17
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -3,3 +3,8 @@
     The OdePropagators directly expose the boost::odeint headers to all clients that use them. This should stop. Everything that includes boost should be used only internally in the library, the outside world should only see data structures that have nothing to do with boost.
    
     Measure the effect of this cleanup on compilation times!
    +
    +----
    +
    +* boost dependency removed, only left in a private implementation header that is not regularily exposed outside => almost no boost dependency left
    +* effect on compilation times small (2% overall, < 10% for demos), might gain another few percent if ProgramOptions also encapsulates the boost dependency ([#105])
    
    • status: assigned --> done
    • assigned_to: Ulf Lorenz --> nobody
     

    Related

    Tickets: #105

  • Ulf Lorenz

    Ulf Lorenz - 2018-05-31
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -8,3 +8,4 @@
    
     * boost dependency removed, only left in a private implementation header that is not regularily exposed outside => almost no boost dependency left
     * effect on compilation times small (2% overall, < 10% for demos), might gain another few percent if ProgramOptions also encapsulates the boost dependency ([#105])
    +    * Update: forgot one include in the main "wavepacket.hpp" include. Removing this gives another 10-20% speedup of the whole library (including demos); considering that only a few acceptance tests and the demos are affected, the speedup for the demos only is considerably larger.
    
     

    Related

    Tickets: #105


Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.