File: git_issue_265.cpp

package info (click to toggle)
boost1.90 1.90.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 593,120 kB
  • sloc: cpp: 4,190,908; xml: 196,648; python: 34,618; ansic: 23,145; asm: 5,468; sh: 3,774; makefile: 1,161; perl: 1,020; sql: 728; ruby: 676; yacc: 478; java: 77; lisp: 24; csh: 6
file content (27 lines) | stat: -rw-r--r-- 861 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
///////////////////////////////////////////////////////////////////////////////
//  Copyright 2020 John Maddock. Distributed under the Boost
//  Software License, Version 1.0. (See accompanying file
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

#include <boost/multiprecision/mpfr.hpp>
#include <boost/math/special_functions/next.hpp>
#include "test.hpp"

using namespace boost::multiprecision;

int main()
{
   mpfr_float_50 half = 0.5;
   mpfr_float_50 under_half = boost::math::float_prior(half);
   BOOST_CHECK_NE(half, under_half);
   int e1, e2;
   mpfr_float_50 norm1, norm2;
   norm1 = frexp(half, &e1);
   norm2 = frexp(under_half, &e2);
   BOOST_CHECK_EQUAL(norm1, half);
   BOOST_CHECK_EQUAL(e1, 0);
   BOOST_CHECK_GT(1, norm2);
   BOOST_CHECK_LE(0.5, norm2);
   BOOST_CHECK_EQUAL(e2, -1);
   return boost::report_errors();
}