@@ -38,6 +38,7 @@ FUNC_FF(FUNC_CONJ_FF, "conjugate_ff",fconjf, fconjf2, vsConj)
3838FUNC_FF(FUNC_CEIL_FF, " ceil_ff" , ceilf, ceilf2, vsCeil)
3939FUNC_FF(FUNC_FLOOR_FF, " floor_ff" , floorf, floorf2, vsFloor)
4040FUNC_FF(FUNC_TRUNC_FF, " trunc_ff" , truncf, truncf2, vsTrunc)
41+ FUNC_FF(FUNC_SIGN_FF, " sign_ff" , signf, signf2, vsSign)
4142// rint rounds to nearest even integer, matching NumPy (round doesn't)
4243FUNC_FF(FUNC_ROUND_FF, " round_ff" , rintf, rintf2, vsRint)
4344FUNC_FF(FUNC_FF_LAST, NULL , NULL , NULL , NULL )
@@ -55,6 +56,8 @@ FUNC_FFF(FUNC_ARCTAN2_FFF, "arctan2_fff", atan2f, atan2f2, vsAtan2)
5556FUNC_FFF(FUNC_HYPOT_FFF, " hypot_fff" , hypotf, hypotf2, vsHypot)
5657FUNC_FFF(FUNC_NEXTAFTER_FFF, " nextafter_fff" , nextafterf, nextafterf2, vsNextAfter)
5758FUNC_FFF(FUNC_COPYSIGN_FFF, " copysign_fff" , copysignf, copysignf2, vsCopySign)
59+ FUNC_FFF(FUNC_MAXIMUM_FFF, " maximum_fff" , fmaxf, fmaxf2, vsFmax)
60+ FUNC_FFF(FUNC_MINIMUM_FFF, " minimum_fff" , fminf, fminf2, vsFmin)
5861FUNC_FFF(FUNC_FFF_LAST, NULL , NULL , NULL , NULL )
5962#ifdef ELIDE_FUNC_FFF
6063#undef ELIDE_FUNC_FFF
@@ -81,15 +84,16 @@ FUNC_DD(FUNC_ARCTANH_DD, "arctanh_dd", atanh, vdAtanh)
8184FUNC_DD(FUNC_LOG_DD, " log_dd" , log, vdLn)
8285FUNC_DD(FUNC_LOG1P_DD, " log1p_dd" , log1p, vdLog1p)
8386FUNC_DD(FUNC_LOG10_DD, " log10_dd" , log10, vdLog10)
84- FUNC_DD(FUNC_LOG2_DD, " log2_dd" , log2, vdLog2)
87+ FUNC_DD(FUNC_LOG2_DD, " log2_dd" , log2, vdLog2)
8588FUNC_DD(FUNC_EXP_DD, " exp_dd" , exp, vdExp)
8689FUNC_DD(FUNC_EXPM1_DD, " expm1_dd" , expm1, vdExpm1)
8790FUNC_DD(FUNC_ABS_DD, " absolute_dd" , fabs, vdAbs)
8891FUNC_DD(FUNC_CONJ_DD, " conjugate_dd" ,fconj, vdConj)
8992FUNC_DD(FUNC_CEIL_DD, " ceil_dd" , ceil, vdCeil)
9093FUNC_DD(FUNC_FLOOR_DD, " floor_dd" , floor, vdFloor)
9194FUNC_DD(FUNC_TRUNC_DD, " trunc_dd" , trunc, vdTrunc)
92- // rint rounds to nearest even integer, matching NumPy (round doesn't)
95+ FUNC_DD(FUNC_SIGN_DD, " sign_dd" , sign, vdSign)
96+ // rint rounds to nearest even integer, matching NumPy (round doesn't)
9397FUNC_DD(FUNC_ROUND_DD, " round_dd" , rint, vdRint)
9498FUNC_DD(FUNC_DD_LAST, NULL , NULL , NULL )
9599#ifdef ELIDE_FUNC_DD
@@ -136,6 +140,8 @@ FUNC_DDD(FUNC_ARCTAN2_DDD, "arctan2_ddd", atan2, vdAtan2)
136140FUNC_DDD(FUNC_HYPOT_DDD, " hypot_ddd" , hypot, vdHypot)
137141FUNC_DDD(FUNC_NEXTAFTER_DDD, " nextafter_ddd" , nextafter, vdNextAfter)
138142FUNC_DDD(FUNC_COPYSIGN_DDD, " copysign_ddd" , copysign, vdCopySign)
143+ FUNC_DDD(FUNC_MAXIMUM_DDD, " maximum_ddd" , fmax, vdFmax)
144+ FUNC_DDD(FUNC_MINIMUM_DDD, " minimum_ddd" , fmin, vdFmin)
139145FUNC_DDD(FUNC_DDD_LAST, NULL , NULL , NULL )
140146#ifdef ELIDE_FUNC_DDD
141147#undef ELIDE_FUNC_DDD
@@ -167,6 +173,7 @@ FUNC_CC(FUNC_EXP_CC, "exp_cc", nc_exp, vzExp)
167173FUNC_CC(FUNC_EXPM1_CC, " expm1_cc" , nc_expm1, vzExpm1)
168174FUNC_CC(FUNC_ABS_CC, " absolute_cc" , nc_abs, vzAbs_)
169175FUNC_CC(FUNC_CONJ_CC, " conjugate_cc" ,nc_conj, vzConj)
176+ FUNC_CC(FUNC_SIGN_CC, " sign_cc" , nc_sign, vzSign)
170177// rint rounds to nearest even integer, matches NumPy behaviour (round doesn't)
171178FUNC_CC(FUNC_ROUND_CC, " round_cc" , nc_rint, vzRint)
172179FUNC_CC(FUNC_CC_LAST, NULL , NULL , NULL )
@@ -199,3 +206,26 @@ FUNC_BC(FUNC_BC_LAST, NULL, NULL, NULL)
199206#undef ELIDE_FUNC_BC
200207#undef FUNC_BC
201208#endif
209+
210+ // int -> int functions
211+ #ifndef FUNC_II
212+ #define ELIDE_FUNC_II
213+ #define FUNC_II (...)
214+ #endif
215+ FUNC_II (FUNC_SIGN_II, " sign_ii" , signi, viSign)
216+ FUNC_II(FUNC_II_LAST, NULL , NULL , NULL )
217+ #ifdef ELIDE_FUNC_II
218+ #undef ELIDE_FUNC_II
219+ #undef FUNC_II
220+ #endif
221+
222+ #ifndef FUNC_LL
223+ #define ELIDE_FUNC_LL
224+ #define FUNC_LL (...)
225+ #endif
226+ FUNC_LL (FUNC_SIGN_LL, " sign_LL" , signl, vlSign)
227+ FUNC_LL(FUNC_LL_LAST, NULL , NULL , NULL )
228+ #ifdef ELIDE_FUNC_LL
229+ #undef ELIDE_FUNC_LL
230+ #undef FUNC_LL
231+ #endif
0 commit comments