[git commit] factor: add code to test isqrt() correctness
Denys Vlasenko
vda.linux at googlemail.com
Mon Apr 10 11:53:57 UTC 2017
commit: https://git.busybox.net/busybox/commit/?id=ad5394d591896fc1d025efff2fa6c8c580fb67e9
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
coreutils/factor.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/coreutils/factor.c b/coreutils/factor.c
index 4a13181..7400174 100644
--- a/coreutils/factor.c
+++ b/coreutils/factor.c
@@ -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 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)
//getopt32(argv, "");
//argv += optind;
More information about the busybox-cvs
mailing list