<br><br><div class="gmail_quote">On Sun, Dec 20, 2009 at 6:46 PM, David Goldsmith <span dir="ltr">&lt;<a href="mailto:d.l.goldsmith@gmail.com">d.l.goldsmith@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5">On Sun, Dec 20, 2009 at 4:03 PM, Charles R Harris<br>
&lt;<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>&gt; wrote:<br>
&gt; Hi All,<br>
&gt;<br>
&gt; There are two versions of bisection for finding roots, bisect in zeros.py<br>
&gt; and bisection in minpack.py. I think it might be appropriate to deprecate<br>
&gt; bisection with a suggestion to use bisect instead. Along the same lines, I<br>
&gt; think newton should be moved into the zeros module. Thoughts?<br>
&gt;<br>
&gt; Chuck<br>
<br>
</div></div>First off, are the implementations equivalent, e.g., do they both<br>
return the same results for test cases, and with essentially the same<br>
speed?  Are they both implemented at the C level?  Both at the Python?<br>
 One one way, the other the other?  You see where I&#39;m going with this:<br>
make sure you keep the &quot;right&quot; one. :-)<br>
<br></blockquote><div><br>Bisection is in python, bisect is in C and a bit faster. I haven&#39;t checked the comparative accuracy, bisect is the only one currently tested. Newton isn&#39;t tested either.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Second, it&#39;s been a while, but my recollection is that some<br>
minimization methods (e.g., conjugate gradient) rely fundamentally on<br>
the bisection method, correct?  Is bisection called within minpack.py?<br></blockquote><div><br>Doesn&#39;t look like it. Newton doesn&#39;t seem to be called anywhere either.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

 More than once?  Do you really want to add an import zeros into<br>
minpack.py and replace bisection everywhere with zeros.bisect?</blockquote><div><br>No, but I don&#39;t think any of the routines are needed there. The c versions of the zero finders were written back around 2003 (by me) and came later than the versions in minpack. I think the current placement is a bit of an historical accident.<br>
 <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">(It&#39;s<br>
a semi-rhetorical question: I know it&#39;s not that big a deal to do so,<br>
&quot;but if it ain&#39;t broke, don&#39;t fix it&quot;; of course, code divergence is a<br>
source of future breakage...)<br>
<br></blockquote><div><br>Maintenance can get to be a hassle, but that really isn&#39;t a problem yet.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Those would be my only concerns about that; as far as moving newton<br>
into zeros, I assume we&#39;d keep a copy where it is through two release<br>
cycles and add a &quot;this has been moved&quot; warning, correct?<br>
<br></blockquote><div><br>Actually, I&#39;d like to move zeros too, but that is probably a change too much ;)<br><br>Chuck <br></div><br></div>