diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h index 90bcf832f27ddebc3f30f95f0e26c7cb7da86794..f96e350e521ff6d57b3b0646e5d9b43a2de77618 100644 --- a/source/texk/web2c/luatexdir/luatex_svnversion.h +++ b/source/texk/web2c/luatexdir/luatex_svnversion.h @@ -1,4 +1,4 @@ #ifndef luatex_svn_revision_h #define luatex_svn_revision_h -#define luatex_svn_revision 7614 +#define luatex_svn_revision 7615 #endif diff --git a/source/texk/web2c/mplibdir/ChangeLog b/source/texk/web2c/mplibdir/ChangeLog index 1bce2fdae0d1913d60c2d07ee8f5450259ed3143..eed13ad1bb212686f38a1c2f3131e3cfbe714afc 100644 --- a/source/texk/web2c/mplibdir/ChangeLog +++ b/source/texk/web2c/mplibdir/ChangeLog @@ -1,3 +1,8 @@ +2024-03-18 Luigi Scarso <luigi.scarso@gmail.com> + * Fixed a bug in n_arg for double and binary mode, + where -0.0 was different form 0.0. + Work in progress for the interval mode. + 2024-02-16 Luigi Scarso <luigi.scarso@gmail.com> * Updated manual. MetaPost 2.1 diff --git a/source/texk/web2c/mplibdir/mp.w b/source/texk/web2c/mplibdir/mp.w index 25e9143f2872fcecc66d63aa8072b1db05978879..8466b391c6e0d8c0e3978532450f94f2e3d81fd8 100644 --- a/source/texk/web2c/mplibdir/mp.w +++ b/source/texk/web2c/mplibdir/mp.w @@ -71,12 +71,12 @@ undergoes any modifications, so that it will be clear which version of @^extensions to \MP@> @^system dependencies@> -@d default_banner "This is MetaPost, Version 2.10" /* printed when \MP\ starts */ +@d default_banner "This is MetaPost, Version 2.11" /* printed when \MP\ starts */ @d true 1 @d false 0 @<Metapost version header@>= -#define metapost_version "2.10" +#define metapost_version "2.11" @ The external library header for \MP\ is |mplib.h|. It contains a few typedefs and the header defintions for the externally used diff --git a/source/texk/web2c/mplibdir/mpmathbinary.w b/source/texk/web2c/mplibdir/mpmathbinary.w index 4ac2946411583a490dc8789c1ab507e1a63ae47f..1c12ffb14ad8ef361e79fe80f31d4103f6d3e75e 100644 --- a/source/texk/web2c/mplibdir/mpmathbinary.w +++ b/source/texk/web2c/mplibdir/mpmathbinary.w @@ -149,7 +149,7 @@ static double precision_bits_to_digits (mpfr_prec_t i); @d mpfr_negative_p(a) (mpfr_sgn((a))<0) @d mpfr_positive_p(a) (mpfr_sgn((a))>0) -@d checkZero(dec) if (mpfr_zero_p(dec) && mpfr_negative_p(dec)) { +@d checkZero(dec) if (mpfr_zero_p(dec)) { mpfr_set_zero(dec,1); } diff --git a/source/texk/web2c/mplibdir/mpmathdouble.w b/source/texk/web2c/mplibdir/mpmathdouble.w index cb14969365f799484ceae633740d8abb22b7fcd2..8f51439c26de33c8061ac2b4cd49594d83e24fd1 100644 --- a/source/texk/web2c/mplibdir/mpmathdouble.w +++ b/source/texk/web2c/mplibdir/mpmathdouble.w @@ -1172,6 +1172,11 @@ void mp_double_n_arg (MP mp, mp_number *ret, mp_number x_orig, mp_number y_orig) @<Handle undefined arg@>; } else { ret->type = mp_angle_type; + /* Consistency with the other numbersystems */ + if (x_orig.data.dval == -0.0) + x_orig.data.dval = 0.0; + if (y_orig.data.dval == -0.0) + y_orig.data.dval = 0.0; ret->data.dval = atan2 (y_orig.data.dval, x_orig.data.dval) * (180.0 / PI) * angle_multiplier; if (ret->data.dval == -0.0) ret->data.dval = 0.0; diff --git a/source/texk/web2c/mplibdir/mpmathinterval.w b/source/texk/web2c/mplibdir/mpmathinterval.w index aa1d90d43daa89863fb9e39b17d3c3e3d775a602..813627565dc166663b45fbca77f2f7a57622b8c4 100644 --- a/source/texk/web2c/mplibdir/mpmathinterval.w +++ b/source/texk/web2c/mplibdir/mpmathinterval.w @@ -1879,8 +1879,8 @@ void mp_interval_n_arg (MP mp, mp_number *ret, mp_number x_orig, mp_number y_ori ret->type = mp_angle_type; mpfi_set_si(oneeighty_angle, 180 * angle_multiplier); mpfi_div(oneeighty_angle, oneeighty_angle, PI_mpfi_t); - checkZero((mpfi_ptr)y_orig.data.num); - checkZero((mpfi_ptr)x_orig.data.num); + /*checkZero((mpfi_ptr)y_orig.data.num);*/ + /*checkZero((mpfi_ptr)x_orig.data.num);*/ mpfi_atan2(atan2val, y_orig.data.num, x_orig.data.num); mpfi_mul(ret->data.num, atan2val, oneeighty_angle); checkZero((mpfi_ptr)ret->data.num);