comparison libinterp/corefcn/mappers.cc @ 15487:ecf5be238b4a

provide signbit mapper for real values * mappers.cc (Fsignbit): New function and tests. * ov-base.cc (octave_base_value::get_umap_name): Include signbit in the list. * ov-base.h (octave_base_value::unary_mapper_t): Include umap_xsignbit in the list. * ov-float.cc (octave_float_scalar::map): Handle xsignbit. * ov-scalar.cc (octave_scalar::map): Handle xsignbit. * ov-re-mat.cc (octave_matrix::map): Handle xsignbit. * ov-flt-re-mat.cc (octave_float_matrix::map): Handle xsignbit. * lo-mappers.h (xsignbit): New template function. * arith.txi: Document signbit.
author John W. Eaton <jwe@octave.org>
date Thu, 04 Oct 2012 09:48:07 -0400
parents 2fc554ffbc28
children 481417a57a2d
comparison
equal deleted inserted replaced
15486:afc002de3ade 15487:ecf5be238b4a
1778 1778
1779 %!error sign () 1779 %!error sign ()
1780 %!error sign (1, 2) 1780 %!error sign (1, 2)
1781 */ 1781 */
1782 1782
1783 DEFUNX ("signbit", Fsignbit, args, ,
1784 "-*- texinfo -*-\n\
1785 @deftypefn {Mapping Function} {} signbit (@var{x})\n\
1786 Return a nonzero value if the value of @var{x} has its sign bit set.\n\
1787 \n\
1788 This is not the same as @code{x < 0.0}, because IEEE 754 floating point\n\
1789 allows zero to be signed. The comparison @code{-0.0 < 0.0} is false,\n\
1790 but @code{signbit (-0.0)} will return a nonzero value.\n\
1791 @end deftypefn")
1792 {
1793 octave_value retval;
1794 if (args.length () == 1)
1795 retval = args(0).xsignbit ();
1796 else
1797 print_usage ();
1798
1799 return retval;
1800 }
1801
1802 /*
1803 %!assert (signbit (1) == 0)
1804 %!assert (signbit (-2) != 0)
1805 %!assert (signbit (0) == 0)
1806 %!assert (signbit (-0) != 0)
1807
1808 %!assert (signbit (single (1)) == 0)
1809 %!assert (signbit (single (-2)) != 0)
1810 %!assert (signbit (single (0)) == 0)
1811 %!assert (signbit (single (-0)) != 0)
1812
1813 %!error sign ()
1814 %!error sign (1, 2)
1815 */
1816
1783 DEFUN (sin, args, , 1817 DEFUN (sin, args, ,
1784 "-*- texinfo -*-\n\ 1818 "-*- texinfo -*-\n\
1785 @deftypefn {Mapping Function} {} sin (@var{x})\n\ 1819 @deftypefn {Mapping Function} {} sin (@var{x})\n\
1786 Compute the sine for each element of @var{x} in radians.\n\ 1820 Compute the sine for each element of @var{x} in radians.\n\
1787 @seealso{asin, sind, sinh}\n\ 1821 @seealso{asin, sind, sinh}\n\