When I run the own written function it runs and does no exit. I was waiting for 5-6 hours, checked dstats, no disk writes, only 1 core works and no memory usage. It is like stuck and can not exit. It happens when I use function separately for each variable, without callingm for example: while( *a ){ countA += *a & 1; *a >>= 1; } while( *b ){ countB += *b & 1; *b >>= 1; } while( c ){ countC += c & 1; c >>= 1; } but when I call functions like this monetdb works fine: int countSetBits1(unsigned int n){ unsigned int count = 0; while(n){ count += n & 1; n >>= 1; } return count; } countA = countSetBits1(*a); countB = countSetBits1(*b); countC = countSetBits1(c); I am not strong in C or monetdb internals, but in Netbeans both codes work well. The entire code : str UDFbitanddec(flt *ret, lng *a, lng *b) { int c = 0; int countA = 0; int countB = 0; int countC = 0; int maxCount = 0; unsigned int iA = *a; unsigned int iB = *b; c = iA & iB; while( iA ){ countA += iA & 1; iA >>= 1; } while( iB ){ countB += iB & 1; iB >>= 1; } while( c ){ countC += c & 1; c >>= 1; } if (countA >= countB) { maxCount = countA; } else { maxCount = countB; } *ret = (float)countC /maxCount; return MAL_SUCCEED; }