factor: add code to test isqrt() correctness
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
dd3a395053
commit
ad5394d591
@ -203,6 +203,23 @@ static NOINLINE void factorize(wide_t N)
|
|||||||
int factor_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
int factor_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||||
int factor_main(int argc UNUSED_PARAM, char **argv)
|
int factor_main(int argc UNUSED_PARAM, char **argv)
|
||||||
{
|
{
|
||||||
|
#if 0 /* test isqrt() correctness */
|
||||||
|
wide_t n = argv[1] ? bb_strtoull(argv[1], NULL, 0) : time(NULL);
|
||||||
|
for (;;) {
|
||||||
|
half_t h;
|
||||||
|
if (--n == 0)
|
||||||
|
--n;
|
||||||
|
h = isqrt(n);
|
||||||
|
if (!(n & 0xff))
|
||||||
|
printf("isqrt(%llx)=%"HALF_FMT"x\n", n, h);
|
||||||
|
if ((wide_t)h * h > n)
|
||||||
|
return 1;
|
||||||
|
h++;
|
||||||
|
if (h != 0 && (wide_t)h * h <= n)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//// coreutils has undocumented option ---debug (three dashes)
|
//// coreutils has undocumented option ---debug (three dashes)
|
||||||
//getopt32(argv, "");
|
//getopt32(argv, "");
|
||||||
//argv += optind;
|
//argv += optind;
|
||||||
|
Loading…
Reference in New Issue
Block a user