73int main(
int argc,
char** argv )
85 typedef SB::Fraction Fraction;
86 typedef std::back_insert_iterator< Fraction > OutputIterator;
90 long double epsilon = 1e-14;
91 long double number0 = strtold( argv[ 1 ], 0 );
92 long double number = number0;
93 ASSERT( number >= 0.0 );
95 OutputIterator itback = std::back_inserter( f );
99 long double int_part = floorl( number );
101 *itback++ = std::make_pair( u, i++ );
105 std::cout <<
"z = " << f.p() <<
" / " << f.q()
106 <<
" =~ " << std::setprecision( 16 ) << approx << std::endl;
108 if ( ( (number0 - epsilon ) < approx )
109 && ( approx < (number0 + epsilon ) ) )
break;
110 number = 1.0 / number;
112 std::cout <<
"z = " << f.p() <<
" / " << f.q() << std::endl;