http://benji3up2kxewkqfcq7buxk2xd6zwy3zggnurkrm3l4cvwy2iipvyyad.onion/mirrors/gmpdoc/Low_002dlevel-Functions.html
Function: void mpn_sec_sqr (mp_limb_t * rp , const mp_limb_t * ap , mp_size_t an , mp_limb_t * tp ) ¶ Function: mp_size_t mpn_sec_sqr_itch (mp_size_t an ) ¶ Set R to A^2 , where A = { ap , an }, and R =
{ rp , 2 an }. It is required that an > 0 . No overlapping between R and the input operands is allowed.