pub struct LocomoModel {
pub tokens_per_line: f64,
pub input_per_line: f64,
pub complexity_weight: f64,
pub base_iterations: f64,
pub iteration_weight: f64,
pub input_price_per_m: f64,
pub output_price_per_m: f64,
pub tokens_per_second: f64,
pub minutes_per_line: f64,
}Expand description
LOCOMO — estimates cost/time to regenerate code with an LLM.
Per scc’s LOCOMO model: density = complexity / code_lines cFactor = 1 + √density × complexity_weight iFactor = base_iterations + √density × iteration_weight outputTokens = code × tokens_per_line × iFactor inputTokens = code × input_per_line × cFactor × iFactor cost = input_tokens/1M × input_price + output_tokens/1M × output_price generation_seconds = output_tokens / tokens_per_second review_hours = code × minutes_per_line / 60
Fields§
§tokens_per_line: f64§input_per_line: f64§complexity_weight: f64§base_iterations: f64§iteration_weight: f64§input_price_per_m: f64§output_price_per_m: f64§tokens_per_second: f64§minutes_per_line: f64Human review time: minutes per line of code.
Trait Implementations§
Source§impl Default for LocomoModel
impl Default for LocomoModel
Source§impl EstimationModel for LocomoModel
impl EstimationModel for LocomoModel
Source§fn estimate_effort(&self, metrics: &CodeMetrics) -> f64
fn estimate_effort(&self, metrics: &CodeMetrics) -> f64
Effort = human review hours as person-months (160 hrs/month).
Source§fn estimate_schedule(&self, _effort_months: f64, metrics: &CodeMetrics) -> f64
fn estimate_schedule(&self, _effort_months: f64, metrics: &CodeMetrics) -> f64
Schedule = LLM generation time in months.
Source§fn estimate_cost(
&self,
_effort_months: f64,
metrics: &CodeMetrics,
_cost_config: &CostConfig,
) -> f64
fn estimate_cost( &self, _effort_months: f64, metrics: &CodeMetrics, _cost_config: &CostConfig, ) -> f64
Cost = LLM API cost (overrides salary-based default).
Auto Trait Implementations§
impl Freeze for LocomoModel
impl RefUnwindSafe for LocomoModel
impl Send for LocomoModel
impl Sync for LocomoModel
impl Unpin for LocomoModel
impl UnsafeUnpin for LocomoModel
impl UnwindSafe for LocomoModel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more