/* basics.h
- * Copyright (C) 2008, Rodrigo Gonzalez & Francisco Claude, all rights reserved.
+ * Copyright (C) 2005, Rodrigo Gonzalez, all rights reserved.
*
* Some preliminary stuff
*
#ifndef _BASICS_H
#define _BASICS_H
+#include <sys/types.h>
+#include <sys/resource.h>
+#include <sys/times.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <iostream>
#include <iostream>
using namespace std;
#include <cstdlib>
/** number of bits in a uint */
+#undef W
#define W 32
/** W-1 */
+#undef Wminusone
#define Wminusone 31
/** 2W*/
+#undef WW
#define WW 64
/** number of bits per uchar */
#define bitclean(e,p) ((e)[(p)/W] &= ~(1<<((p)%W)))
/** uints required to represent e integers of n bits each */
-#define uint_len(e,n) (((e)*(n))/W+(((e)*(n))%W > 0))
+//#define uint_len(e,n) (((e)*(n))/W+(((e)*(n))%W > 0))
+inline uint uint_len(uint e, uint n) {
+ return ((unsigned long long)e*n/W+((unsigned long long)e*n%W>0));
+}
/** Retrieve a given index from array A where every value uses len bits
* @param A Array