Boost C++ Libraries: Ticket #9030: Should pass steppers by reference in integrate functions https://svn.boost.org/trac10/ticket/9030 <p> The <em>integrate</em> family of functions takes steppers by value, but steppers like the most useful <strong>runge_kutta_dopri5</strong> may contain state which is not the best type to copy around. The worst happens if you try to use SSE-aligned vector for state type, e.g. Eigen::Array. Passing aligned struct by value cannot preserve the alignment and the program crashes. Which makes it impossible to use SSE vectorization with odeint. I think you need to change to passing steppers by reference or add odeint::unwrap_reference&lt; Stepper &gt; wherever steppers are passed, so that boost::ref could be used with them. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/9030 Trac 1.4.3 karsten Thu, 12 Sep 2013 19:40:05 GMT status changed https://svn.boost.org/trac10/ticket/9030#comment:1 https://svn.boost.org/trac10/ticket/9030#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> </ul> <p> I think using odeint::unwrap_reference&lt; Stepper &gt; is the best solution since it does not break any code and one can pass steppers by reference. </p> Ticket karsten Thu, 29 Jan 2015 21:09:23 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/9030#comment:2 https://svn.boost.org/trac10/ticket/9030#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> It should already work with std::ref or boost::ref </p> Ticket