mirror of
https://github.com/vale981/arb
synced 2025-03-06 01:41:39 -05:00
improve test code for arb_div and make nan -> nan when dividing
This commit is contained in:
parent
150363ad9e
commit
3c1bd52286
2 changed files with 37 additions and 1 deletions
|
@ -33,7 +33,10 @@ arb_div_arf(arb_t z, const arb_t x, const arf_t y, long prec)
|
|||
|
||||
if (arf_is_zero(y))
|
||||
{
|
||||
arb_zero_pm_inf(z);
|
||||
if (arf_is_nan(arb_midref(x)))
|
||||
arb_indeterminate(z);
|
||||
else
|
||||
arb_zero_pm_inf(z);
|
||||
}
|
||||
else if (arb_is_exact(x))
|
||||
{
|
||||
|
|
|
@ -167,6 +167,39 @@ int main()
|
|||
fmpq_clear(z);
|
||||
}
|
||||
|
||||
/* test special values */
|
||||
for (iter = 0; iter < 100000; iter++)
|
||||
{
|
||||
arb_t a, b, c, d;
|
||||
|
||||
arb_init(a);
|
||||
arb_init(b);
|
||||
arb_init(c);
|
||||
arb_init(d);
|
||||
|
||||
arb_randtest_special(a, state, 1 + n_randint(state, 200), 1 + n_randint(state, 100));
|
||||
arb_randtest_special(b, state, 1 + n_randint(state, 200), 1 + n_randint(state, 100));
|
||||
arb_randtest_special(c, state, 1 + n_randint(state, 200), 1 + n_randint(state, 100));
|
||||
|
||||
arb_div(c, a, b, 2 + n_randint(state, 200));
|
||||
arb_mul(d, c, b, 2 + n_randint(state, 200));
|
||||
|
||||
if (!arb_contains(d, a))
|
||||
{
|
||||
printf("FAIL: containment\n\n");
|
||||
printf("a = "); arb_printd(a, 15); printf("\n\n");
|
||||
printf("b = "); arb_printd(b, 15); printf("\n\n");
|
||||
printf("c = "); arb_printd(c, 15); printf("\n\n");
|
||||
printf("d = "); arb_printd(d, 15); printf("\n\n");
|
||||
abort();
|
||||
}
|
||||
|
||||
arb_clear(a);
|
||||
arb_clear(b);
|
||||
arb_clear(c);
|
||||
arb_clear(d);
|
||||
}
|
||||
|
||||
flint_randclear(state);
|
||||
flint_cleanup();
|
||||
printf("PASS\n");
|
||||
|
|
Loading…
Add table
Reference in a new issue