calculator Module#
Optimized calculator classes with caching for epidemiological computations.
This module provides cached calculator implementations that improve performance for repeated calculations and provide consistent interfaces.
Classes#
- class episia.core.calculator.CacheStrategy(value)[source]#
Bases:
EnumCaching strategies for calculators.
- LRU = 'lru'#
- MANUAL = 'manual'#
- NONE = 'none'#
- class episia.core.calculator.CalculationStats(call_count=0, cache_hits=0, total_time=0.0, last_call_time=0.0)[source]#
Bases:
objectStatistics about calculation performance.
- __init__(call_count=0, cache_hits=0, total_time=0.0, last_call_time=0.0)#
- class episia.core.calculator.BaseCalculator(cache_strategy=CacheStrategy.LRU)[source]#
Bases:
objectBase class for all calculators with built-in caching and statistics.
Features: - Automatic caching of results - Performance statistics - Input validation hooks - Consistent error handling
- Parameters:
cache_strategy (CacheStrategy)
- __init__(cache_strategy=CacheStrategy.LRU)[source]#
- Parameters:
cache_strategy (CacheStrategy)
- class episia.core.calculator.EpidemiologicalCalculator(cache_strategy=CacheStrategy.LRU)[source]#
Bases:
BaseCalculatorCalculator for common epidemiological computations.
Provides cached implementations of frequently used calculations.
- Parameters:
cache_strategy (CacheStrategy)
- __init__(cache_strategy=CacheStrategy.LRU)[source]#
- Parameters:
cache_strategy (CacheStrategy)
- confidence_interval_proportion(p, n, confidence=0.95)[source]#
Calculate confidence interval for proportion.
- population_attributable_fraction(rr, p_exposed)[source]#
Calculate population attributable fraction.
- class episia.core.calculator.MatrixCalculator(cache_strategy=CacheStrategy.LRU)[source]#
Bases:
BaseCalculatorCalculator for matrix operations used in epidemiological models.
- Parameters:
cache_strategy (CacheStrategy)
- __init__(cache_strategy=CacheStrategy.LRU)[source]#
- Parameters:
cache_strategy (CacheStrategy)
Functions#
Singleton Instances#
- episia.core.calculator.epi_calculator = EpidemiologicalCalculator()#
Calculator for common epidemiological computations.
Provides cached implementations of frequently used calculations.
- episia.core.calculator.matrix_calculator = MatrixCalculator()#
Calculator for matrix operations used in epidemiological models.
Examples#
Basic usage of epidemiological calculator:
from episia.core.calculator import epi_calculator
# Calculate risk ratio with automatic caching
rr = epi_calculator.risk_ratio(a=40, b=10, c=20, d=30)
# View performance statistics
print(f"Cache hit rate: {epi_calculator.stats.cache_hit_rate:.1f}%")
Using cached function decorator:
from episia.core.calculator import cached_function
@cached_function(maxsize=100)
def expensive_computation(x, y):
# Expensive calculation here
return x ** y