Reduced number of allocated limbs after calling mpz_remove
    Albin Ahlbäck 
    albin.ahlback at gmail.com
       
    Thu May 16 14:38:28 CEST 2024
    
    
  
Hello,
Standing at the following commit:
changeset:   18465:7ecb3b2beea1
tag:         tip
user:        Niels Möller <nisse at lysator.liu.se>
date:        Sun Feb 18 20:20:57 2024 +0100
summary:     mini-gmp: Fix bug in gcdext canonicalization, and 
strengthen related tests.
I have noticed that `mpz_remove` may reduce the number of allocated 
limbs after a call.
I haven't looked into this too much, but I suppose it is due to the 
variable `x` being initialized in the routine, whose limbs I believe are 
allocated in `mpz_tdiv_q`, is then being swapped with `dest`.
It is stated in the documentation that "mpz_t and mpq_t variables never 
reduce their allocated space.", which is sort of true given that `x` and 
`dest` are only being swapped, but that requires the user to know what 
the internals are doing.
Is this the expected behavior? Have I overlooked something perhaps? 
Please let me know if you need more information.
Best,
Albin
    
    
More information about the gmp-bugs
mailing list