I had a problem with square root algorithm, the problem is that the
comparing algorithm is not working properly. Here goes a reproduction
of the problem:
uint128 bigger = {0,0,0xCAD6D7,0xB033FAA3}
uint128 less = {0,0,0xC897D7, 0xCDC49861}
IF_LT_GOTO(bigger, less, error);
error: printf("Error: bigger number must be bigger than the less
number."); return 0;
It seems that the algorithm is comparing numbers from the end of vector,
so if
0xB033FAA3 < CDC49861 it goes straight to the error block. Toomas,
please fix the code.
Cheers,
Vladimir