tatami_chunked
Helpers to create custom chunked tatami matrices
Loading...
Searching...
No Matches
ChunkDimensionStats.hpp
Go to the documentation of this file.
1#ifndef TATAMI_CHUNKED_CHUNK_DIMENSION_STATS_HPP
2#define TATAMI_CHUNKED_CHUNK_DIMENSION_STATS_HPP
3
4#include "sanisizer/sanisizer.hpp"
5
11namespace tatami_chunked {
12
23template<typename Index_>
24Index_ integer_ceil(Index_ left, Index_ right) {
25 if (right) {
26 return left / right + (left % right > 0); // avoids overflow.
27 } else {
28 return 0;
29 }
30}
31
41template<typename Index_>
82
91template<typename Index_>
92Index_ get_chunk_length(const ChunkDimensionStats<Index_>& stats, Index_ i) {
93 return (i + 1 == stats.num_chunks ? stats.last_chunk_length : stats.chunk_length);
94}
95
96}
97
98#endif
Methods to handle chunked tatami matrices.
Definition ChunkDimensionStats.hpp:11
Index_ get_chunk_length(const ChunkDimensionStats< Index_ > &stats, Index_ i)
Definition ChunkDimensionStats.hpp:92
Index_ integer_ceil(Index_ left, Index_ right)
Definition ChunkDimensionStats.hpp:24
Statistics for regular chunks along a dimension.
Definition ChunkDimensionStats.hpp:42
Index_ chunk_length
Definition ChunkDimensionStats.hpp:68
ChunkDimensionStats(Index_ dimension_extent, Index_ chunk_length)
Definition ChunkDimensionStats.hpp:47
ChunkDimensionStats()
Definition ChunkDimensionStats.hpp:57
Index_ num_chunks
Definition ChunkDimensionStats.hpp:73
Index_ dimension_extent
Definition ChunkDimensionStats.hpp:62
Index_ last_chunk_length
Definition ChunkDimensionStats.hpp:80