use chunk alignment; new fill factor API
This commit is contained in:
parent
b028408150
commit
69dd960558
|
@ -285,6 +285,13 @@ sparsemap_idx_t sparsemap_get_starting_offset(sparsemap_t *map);
|
||||||
*/
|
*/
|
||||||
sparsemap_idx_t sparsemap_get_ending_offset(sparsemap_t *map);
|
sparsemap_idx_t sparsemap_get_ending_offset(sparsemap_t *map);
|
||||||
|
|
||||||
|
/** @brief Returns the percent of bits set in the map.
|
||||||
|
*
|
||||||
|
* @param[in] map The sparsemap reference.
|
||||||
|
* @returns the percent of bits set.
|
||||||
|
*/
|
||||||
|
double sparsemap_fill_factor(sparsemap_t *map);
|
||||||
|
|
||||||
/** @brief Provides a method for a callback function to examine every bit set in
|
/** @brief Provides a method for a callback function to examine every bit set in
|
||||||
* the index.
|
* the index.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1183,7 +1183,7 @@ sparsemap_set(sparsemap_t *map, sparsemap_idx_t idx, bool value)
|
||||||
__sm_append_data(map, &buf[0], sizeof(buf));
|
__sm_append_data(map, &buf[0], sizeof(buf));
|
||||||
|
|
||||||
uint8_t *p = __sm_get_chunk_data(map, 0);
|
uint8_t *p = __sm_get_chunk_data(map, 0);
|
||||||
*(sm_idx_t *)p = __sm_get_vector_aligned_offset(idx); // TODO: vector or chunk aligned?
|
*(sm_idx_t *)p = __sm_get_chunk_aligned_offset(idx); // TODO: vector or chunk aligned?
|
||||||
|
|
||||||
__sm_set_chunk_count(map, 1);
|
__sm_set_chunk_count(map, 1);
|
||||||
|
|
||||||
|
@ -1384,6 +1384,14 @@ sparsemap_get_ending_offset(sparsemap_t *map)
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double
|
||||||
|
sparsemap_fill_factor(sparsemap_t *map)
|
||||||
|
{
|
||||||
|
size_t rank = sparsemap_rank(map, 0, SPARSEMAP_IDX_MAX, true);
|
||||||
|
sparsemap_idx_t end = sparsemap_get_ending_offset(map);
|
||||||
|
return (double)rank / (double)end * 100.0;
|
||||||
|
}
|
||||||
|
|
||||||
void *
|
void *
|
||||||
sparsemap_get_data(sparsemap_t *map)
|
sparsemap_get_data(sparsemap_t *map)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue