59 template <
typename StringType,
typename CacheTag>
82 const uint2 range) {
return string; }
93 template <
typename StorageIterator, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T, u
int32 CACHE_SIZE>
112 loader.load(
string.base(),
129 loader.load(
string.base(),
146 template <
typename InfixCoordType,
typename StorageIterator, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T, u
int32 CACHE_SIZE>
167 loader.load(
string.m_string +
string.range().x,
184 loader.load(
string.m_string +
string.range().x,
201 template <
typename InfixCoordType,
typename StorageIterator, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T, u
int32 CACHE_SIZE>
222 loader.load(
string.m_string.base() +
string.range().x,
239 loader.load(
string.m_string.base() +
string.range().x,
254 template <
typename T, u
int32 CACHE_SIZE>
260 static const uint32 CACHE_ITEMS = CACHE_BYTES /
sizeof(T);
271 string_type
load(
const input_string_type&
string)
279 for (
uint32 i = 0; i < L; ++i)
280 cache[i] =
string[i];
282 return string_type( L, cache );
293 const input_string_type&
string,
297 if (range.y - range.x > CACHE_ITEMS)
300 for (
uint32 i = range.x; i < range.y; ++i)
301 cache[i - range.x] =
string[i];
303 return string_type(
string.size(), cache - range.x );
306 T cache[CACHE_ITEMS];
315 template <
typename T, u
int32 CACHE_SIZE>
321 static const uint32 CACHE_ITEMS = CACHE_BYTES /
sizeof(T);
332 string_type
load(
const input_string_type&
string)
338 return string_type( L,
string.base() );
340 for (
uint32 i = 0; i < L; ++i)
341 cache[i] =
string[i];
343 return string_type( L, cache );
354 const input_string_type&
string,
358 if (range.y - range.x > CACHE_ITEMS)
359 return string_type(
string.size(),
string.base() );
361 for (
uint32 i = range.x; i < range.y; ++i)
362 cache[i - range.x] =
string[i];
364 return string_type(
string.size(), cache - range.x );
367 T cache[CACHE_ITEMS];