#include "util_salib.h" #include float maax(float a, float b) { return ( a > b )? a : b; } int wurzel(int n) { return ( zwei_hoch( log2(n)/2 ) ); } // TRUE <=> n ist Zweierpotenz unsigned int ist2pot(unsigned int n) { unsigned int nn = n; while ( n > 1) { n = n >> 1; if (n*2 != nn) return 0; nn = n; } return 1; } unsigned int log2(unsigned int n) { int p=0; while( n > 1 ) { n = n>>1; p++; } return p; } /*liefert p = 2^n fuer n>=0, sonst 0*/ int zwei_hoch(int n) { int p=1; if (n < 0) return 0; while(n > 0) { p *=2; n--; } return p; } /* liefert a^b */ float potenz(float a, int b) { if ( b = 0 ) return 1; for (int i=1; i 0) ? (offset + 1) : 0; } // liefert eine Kopie von argv //char ** CopyArgs(int argc , char **argv) //{ // int i; // char ** newargv = (char **)(new (char *)[argc+1]); // for( i=0; i<= argc; i++) // { // newargv[i] = new char[ strlen(argv[i]) +1 ]; // strcpy(newargv[i],argv[i]); // } // return newargv; //} /* Echt schade, dass wir diese Funktion aber auch ueberhaupt nicht brauchen :-)*/ unsigned int mod(int i,int m) { return ( ( 0 <= i%m )? i%m : m+i%m ); }