Consider the following C program.
$ cat roundtrip.c
#include <arb.h>
int main() {
arb_t a;
arb_init(a);
arb_load_str(a, "2bb573849d73 -2c 800031b 365d");
arb_printn(a, 1024, ARB_STR_MORE);
arb_set_str(a, arb_get_str(a, 1024, ARB_STR_MORE), 1024);
arb_printn(a, 1024, ARB_STR_MORE);
}
When run (with Arb 2.22.1 from conda-forge) it prints:
[+/- 3.65e+4197][+/- 3.66e+4197]
I understand that arb_get_str() can introduce imprecision and I also understand that I should probably use arb_dump_str to serialize an arb_t; but shouldn't arb_set_str() preserve the radius?