projects
/
SXSI
/
libbp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Silence a printf warning for %lu on 32bits archs.
[SXSI/libbp.git]
/
bp-darray.h
diff --git
a/bp-darray.h
b/bp-darray.h
index
4224dba
..
e46834f
100644
(file)
--- a/
bp-darray.h
+++ b/
bp-darray.h
@@
-37,17
+37,22
@@
darray * bp_darray_construct(int n, pb *buf,int opt);
void bp_darray_free(darray *da);
int bp_darray_select(darray *da, int i,int f);
void bp_darray_free(darray *da);
int bp_darray_select(darray *da, int i,int f);
-static int bp_darray_rank(darray *da, int i)
+
+static inline int bp_darray_rank(darray *da, int i)
{
int r,j,i_rr, i_rrr;
{
int r,j,i_rr, i_rrr;
+ int offset;
pb *p;
pb *p;
+ byte *buff;
i_rr = i >> logRR;
i_rrr = i >> logRRR;
r = da->rl[i>>logR] + da->rm[i_rr];
j = (i_rrr) & (RR/RRR-1);
i_rr = i >> logRR;
i_rrr = i >> logRRR;
r = da->rl[i>>logR] + da->rm[i_rr];
j = (i_rrr) & (RR/RRR-1);
+ offset = i_rr << (logRR-logRRR);
+ buff = &(da->rs[offset-1]);
while (j > 0) {
while (j > 0) {
- r +=
da->rs[((i_rr)<<(logRR-logRRR))+j-1
];
+ r +=
buff[j
];
j--;
}
j--;
}