Currently many people have the following mental model for memory access cost: T + \log(M) (log memory costs). But in reality it looks more like this:
def _compute_estimate_time_complexity(self, params):
"""Computes time complexity in estimate mode and converts to bit complexity.
Computes time complexity (in estimate mode) for given parameter set and converts to bit complexity
and adds memory access costs if set.
"""
temp_time_complexity = self._compute_time_complexity(params)
if self.bit_complexities:
temp_basic_operation_cost = self.problem.to_bitcomplexity_time(
temp_time_complexity)
if self._memory_access != 0:
temp_memory_access_cost = temp_time_complexity
temp_memory_access_cost += self.memory_access_cost(
self.memory_complexity())
temp_time_complexity = log2(int(2 ** temp_basic_operation_cost)
+ int(2 ** temp_memory_access_cost))
else:
temp_time_complexity = temp_basic_operation_cost
return temp_time_complexity
Currently many people have the following mental model for memory access cost:
T + \log(M)(log memory costs). But in reality it looks more like this: