<div dir="ltr">I have received and addressed many great suggestions and critiques from <a href="https://github.com/juliantaylor" class="inbox-inbox-user-mention" style="box-sizing:border-box;color:rgb(36,41,46);text-decoration-line:none;white-space:nowrap;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px">@juliantaylor</a><span style="color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px"> and </span><a href="https://github.com/eric-wieser" class="inbox-inbox-user-mention" style="box-sizing:border-box;color:rgb(36,41,46);text-decoration-line:none;white-space:nowrap;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px">@eric-wieser</a> for <a href="https://github.com/numpy/numpy/pull/9627">pull request #9627</a>  which moves the np.histogram() and np.histogramdd() methods into C. Speed ups of 2x to 20x were realized for large sample data depending on the percentage of sample points that lay outside the histogramming range. For details more see <a href="https://gist.github.com/theodoregoetz/10d2351421689bf2660b4f2fca350e6e">my report here</a>.<div><br></div><div>I'd like to know now how to proceed with this pull request. I.e., how can I move the process along.<br><div><br></div><div>Additionally, I'd like to propose a new feature which I'm sure requires some discussion:</div><div><br></div><div>The inspiration for this effort came from the <a href="https://pypi.python.org/pypi/fast-histogram">fast-histogram</a> python package which is still faster because it ignores ULP-level correctness. Towards the bottom of my report, I suggest adding a new option to the histogramming methods to ignore ULP corrections which would make the numpy implementation on-par with fast-histogram's. Something like:<br></div><div><br></div><div>    np.histogram(sample, bins=10, range=(0, 10), fast=True)</div><div><br></div><div>which would raise an exception or ignore the "fast" parameter perhaps if bins were given as a list of edges:</div><div><br></div><div>    np.histogram(sample, bins=[0,1,2,3], fast=True)  # not fast.</div></div><div><br></div><div>I think I'd shy away from testing the bin-uniformity since it is very hard to do without a specified tolerance. This can be done by the user with something like this:</div><div><br></div><div>    <span style="font-family:monospace;font-size:14px;white-space:pre-wrap">np.all(np.abs(np.diff(np.diff(edges))) <= \</span></div><div><span style="font-family:monospace;font-size:14px;white-space:pre-wrap">    2**6 * np.finfo(edges.dtype).eps)</span></div><div><span style="font-family:monospace;white-space:pre-wrap"><br></span></div>Or by comparison with the output of np.linspace().<div>--</div><div>Johann.</div></div>