On Wed, Aug 23, 2023 at 10:06 PM Bao Guo <guoba...@gmail.com> wrote:

> I am writing to seek clarification on the specific differences between the
> numpy.trunc() and numpy.fix() functions.
>
> I have come across opinions stating that these two functions exist for
> backward compatibility and that they serve different functional
> requirements. However, I am puzzled as to why these functions could not be
> merged or one of them upgraded to encompass both functionalities. Despite
> my efforts in researching and contemplating on this matter, I have not come
> across a convincing explanation.
>
> Could anyone kindly shed some light on this matter? I am seeking a deeper
> understanding of the design choices made for these functions and the
> rationale behind their coexistence.
>
> Thank you in advance for your time and assistance.


`fix()` was added to numpy back in the super-early days when it was
emerging from Numeric, its earlier predecessor. It was named after the
equivalent MATLAB function.

At some point thereafter, we settled on a policy for inclusion of
mathematical ufuncs into numpy. We got tired of arguing whether a special
function was "important enough" to be in numpy instead of scipy.special.
Eventually, we settled on a bright line that if a math function was in the
C99 standard, we'd go ahead and allow a ufunc for it in numpy. `trunc()` is
the name of that equivalent function in the C99 standard. It is a ufunc
instead of a plain function like `fix()` and has a (strict, I believe)
superset of functionality. You can ignore `fix()`, more or less. I'm not
sure if it's on the list for deprecation/removal in numpy 2.0, but it
certainly could be.

-- 
Robert Kern
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to