From ff57ee39d887754d9c0739df0e21ab5c8f53574e Mon Sep 17 00:00:00 2001 From: schodet Date: Sat, 26 Feb 2005 20:51:24 +0000 Subject: Ajout de sqrt. --- n/asserv/src/dsp_check2.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'n') diff --git a/n/asserv/src/dsp_check2.c b/n/asserv/src/dsp_check2.c index 92f2be0..260013a 100644 --- a/n/asserv/src/dsp_check2.c +++ b/n/asserv/src/dsp_check2.c @@ -23,6 +23,7 @@ * * }}} */ #include +#include /* +AutoDec */ /* -AutoDec */ @@ -69,6 +70,22 @@ check_div_f824 (int d, int v, int r) printf (" | %08x %08x %08x\n", d, v, r); } +void +check_sqrt (unsigned int s, unsigned int r) +{ + double ds = (double) s / (1 << 8); + unsigned int m = sqrt (ds) * (1 << 8); + m &= ~0xf; + if (m == r) + printf ("pass sqrt (%u) = %u", s, r); + else + { + printf ("fail sqrt (%u) = %u (%u)", s, r, m); + failled = 1; + } + printf (" | %08x %08x %08x\n", s, r, m); +} + int peek (void) { @@ -126,6 +143,19 @@ main (void) else if (!feof (stdin)) incomplete++; } + else if (c == 's') + { + if (get ('s', &a) && get ('r', &r1)) + { + check_sqrt (a, r1); + } + else if (!feof (stdin)) + incomplete++; + } + else if (c == 0) + ; + else + printf ("unexpected character '%c'\n", c); } if (incomplete) printf ("%d incomplete tests\n", incomplete); -- cgit v1.2.3