<div dir="ltr">Of the 5 (the last one that I checked of course), CEPHES has just raw source, like LAPACK, and its in C. That is much better as we will eventually need to vectorize this code, it is a kernel.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Oct 22, 2016 at 10:24 AM, Mark Adams <span dir="ltr"><<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Sat, Oct 22, 2016 at 8:07 AM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Boost is an unmitigated nightmare. What exactly do you need? </div></blockquote><div><br></div></span><div><h4 class="m_-2551530336995931179gmail-subsection">7.13.3 Legendre Form of Complete Elliptic Integrals</h4><dl><dt><a name="m_-2551530336995931179_index-gsl_005fsf_005fellint_005fKcomp"></a>Function: <em>double</em> <strong>gsl_sf_<wbr>ellint_Kcomp</strong> <em>(double <var>k</var>, gsl_mode_t <var>mode</var>)</em></dt><dt><a name="m_-2551530336995931179_index-gsl_005fsf_005fellint_005fKcomp_005fe"></a>Function: <em>int</em> <strong>gsl_sf_ellint_<wbr>Kcomp_e</strong> <em>(double <var>k</var>, gsl_mode_t <var>mode</var>, gsl_sf_result * <var>result</var>)</em></dt><dd><p>These routines compute the complete elliptic integral <em>K(k)</em> to the accuracy specified by the mode variable <var>mode</var>. Note that Abramowitz & Stegun define this function in terms of the parameter <em>m = k^2</em>.</p></dd></dl><dl><dt style="color:rgb(0,0,0);font-family:times;font-size:medium"><a name="m_-2551530336995931179_index-gsl_005fsf_005fellint_005fEcomp"></a>Function: <em>double</em> <strong>gsl_sf_<wbr>ellint_Ecomp</strong> <em>(double <var>k</var>, gsl_mode_t <var>mode</var>)</em></dt><dt style="color:rgb(0,0,0);font-family:times;font-size:medium"><a name="m_-2551530336995931179_index-gsl_005fsf_005fellint_005fEcomp_005fe"></a>Function: <em>int</em> <strong>gsl_sf_ellint_<wbr>Ecomp_e</strong> <em>(double <var>k</var>, gsl_mode_t <var>mode</var>, gsl_sf_result * <var>result</var>)</em></dt><dd style="color:rgb(0,0,0);font-family:times;font-size:medium"></dd></dl></div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">DLMF is a good reference:<div><br></div><div>  <a href="http://dlmf.nist.gov/19.39" target="_blank">http://dlmf.nist.gov/19.39</a></div></div></blockquote><div><br></div></span><div>Yes, that is where I got a pointer to GSL. THere are 5 other open source options:</div><div><br></div></div></div></div>
</blockquote></div><br></div>