Function does not complete

Shmagi Kavtaradze kavtaradze.s at gmail.com
Thu Apr 7 20:04:35 CEST 2016


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;

}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.monetdb.org/pipermail/users-list/attachments/20160407/2d8cd8b1/attachment.html>


More information about the users-list mailing list