MCPcopy Create free account
hub / github.com/FareedKhan-dev/ai-long-task / _get_cached_diversity

Method _get_cached_diversity

data/database.py:2073–2109  ·  view source on GitHub ↗

Get diversity score for a program using cache and reference set Args: program: The program to calculate diversity for Returns: Diversity score (cached or newly computed)

(self, program: Program)

Source from the content-addressed store, hash-verified

2071 return diversity
2072
2073 def _get_cached_diversity(self, program: Program) -> float:
2074 """
2075 Get diversity score for a program using cache and reference set
2076
2077 Args:
2078 program: The program to calculate diversity for
2079
2080 Returns:
2081 Diversity score (cached or newly computed)
2082 """
2083 code_hash = hash(program.code)
2084
2085 # Check cache first
2086 if code_hash in self.diversity_cache:
2087 return self.diversity_cache[code_hash]["value"]
2088
2089 # Update reference set if needed
2090 if (
2091 not self.diversity_reference_set
2092 or len(self.diversity_reference_set) < self.diversity_reference_size
2093 ):
2094 self._update_diversity_reference_set()
2095
2096 # Compute diversity against reference set
2097 diversity_scores = []
2098 for ref_code in self.diversity_reference_set:
2099 if ref_code != program.code: # Don't compare with itself
2100 diversity_scores.append(self._fast_code_diversity(program.code, ref_code))
2101
2102 diversity = (
2103 sum(diversity_scores) / max(1, len(diversity_scores)) if diversity_scores else 0.0
2104 )
2105
2106 # Cache the result with LRU eviction
2107 self._cache_diversity_value(code_hash, diversity)
2108
2109 return diversity
2110
2111 def _update_diversity_reference_set(self) -> None:
2112 """Update the reference set for diversity calculation"""

Callers 1

Calls 3

_fast_code_diversityMethod · 0.95

Tested by

no test coverage detected