# HG changeset patch # User Markus Mützel # Date 1645868072 -3600 # Node ID 230c1c39744bb2d0fa21db73c55a2c44d1afd48b # Parent 1fcb3359f6a4a1b71347ec8b8022ecdc76bbb781# Parent d041ca628d99b6fc83557d39b22dc8ed0cc26363 maint: Merge stable to default. diff -r 1fcb3359f6a4 -r 230c1c39744b libinterp/corefcn/mappers.cc --- a/libinterp/corefcn/mappers.cc Fri Feb 25 16:22:32 2022 -0800 +++ b/libinterp/corefcn/mappers.cc Sat Feb 26 10:34:32 2022 +0100 @@ -1787,8 +1787,14 @@ /* %!assert (log1p ([0, 2*eps, -2*eps]), [0, 2*eps, -2*eps], 1e-29) -%!assert (log1p (single ([0, 2*eps, -2*eps])), +%!assert (log1p (single ([0, 2*eps, -2*eps])), ... %! single ([0, 2*eps, -2*eps]), 1e-29) +## Compare to result from Wolfram Alpha rounded to 16 significant digits +%!assert <*62094> (log1p (0.1i), ... +%! 0.004975165426584041 + 0.09966865249116203i, eps (0.2)) +%!assert <*62094> (log1p (single (0.1i)), ... +%! single (0.004975165426584041 + 0.09966865249116203i), ... +%! eps (single (0.2))) %!error log1p () %!error log1p (1, 2) diff -r 1fcb3359f6a4 -r 230c1c39744b liboctave/numeric/lo-specfun.cc --- a/liboctave/numeric/lo-specfun.cc Fri Feb 25 16:22:32 2022 -0800 +++ b/liboctave/numeric/lo-specfun.cc Sat Feb 26 10:34:32 2022 +0100 @@ -1965,7 +1965,7 @@ { double u = 2*r + r*r + i*i; retval = Complex (log1p (u / (1+std::sqrt (u+1))), - atan2 (1 + r, i)); + atan2 (i, 1 + r)); } else retval = std::log (Complex (1) + x); @@ -1984,7 +1984,7 @@ { float u = 2*r + r*r + i*i; retval = FloatComplex (log1p (u / (1+std::sqrt (u+1))), - atan2 (1 + r, i)); + atan2 (i, 1 + r)); } else retval = std::log (FloatComplex (1) + x);