|
realroot_doc 0.1.1
|
#include <contfrac.hpp>
Definition at line 33 of file contfrac.hpp.
| Kioustelidis_bound_1 | ( | ) | [inline] |
| long foo | ( | IT | first, |
| IT | last | ||
| ) | [inline] |
Definition at line 56 of file contfrac.hpp.
References mmx::abs(), assert, mmx::meta::bitsize(), mmx::max(), and mmx::sign().
Referenced by Kioustelidis_bound_1::lower(), and Kioustelidis_bound_1::upper().
{
typedef typename std::iterator_traits<IT>::difference_type size_type;
size_type deg = std::distance( first, last);
assert( deg > 0 );
int s = sign( *(last-1));
long lan = bitsize( *(last-1));
bool first_time = true;
long maxpow = 0;
int i = 1;
for ( IT it = (last-2); it != first-1; --it, ++i) {
if ( s * sign( *it) < 0) {
long p = bitsize( abs( *it)) - lan - 1;
long q = p / i;
if ( first_time ) {
first_time = false;
maxpow = q + 2;
} else {
maxpow = std::max( maxpow, q + 2);
}
}
}
return maxpow;
}
| long lower | ( | const upoldse< NT > & | p | ) | [inline] |
Definition at line 50 of file contfrac.hpp.
References Kioustelidis_bound_1::foo().
{
return -foo( p.rbegin(), p.rend());
}
| long upper | ( | const upoldse< NT > & | p | ) | [inline] |
Definition at line 43 of file contfrac.hpp.
References Kioustelidis_bound_1::foo().
Referenced by mmx::CF_positive().
{
return foo( p.begin(), p.end());
// return foo( begin( p), end( p));
}