object

# `mi_metric(Stroud)`

- `Stroud` - Halstead metric coefficient for computing the time required to program.

Computes the maintainability index metric based on the Cyclomatic Complexity, Halstead Volume, and lines of code metrics for an entity.

Availability:
`logtalk_load(code_metrics(loader))`
Author: Paulo Moura
Version: 1:0:0
Date: 2026-03-14
Compilation flags:
`static, context_switching_calls`
Imports:
`public` code_metrics_utilities
`public` code_metric
Uses:
cc_metric
halstead_metric(Stroud)
lines_metric
Remarks:

> - Formula: The original equation is used: `MI = 171 - 5.2 * ln(V) - 0.23 * C - 16.2 * ln(L)`. V is the Halstead volume, C is the Cyclomatic Complexity, and L is the number of code lines.

> - Entity score: Represented as the compound term `mi(MI)`.

Inherited public predicates:
all/0 all/1 all_score/1 check_option/1 check_options/1 default_option/1 default_options/1 directory/1 directory/2 directory_score/2 entity/1 entity_score/2 file/1 file/2 file_score/2 format_entity_score//2 library/1 library/2 library_score/2 option/2 option/3 rdirectory/1 rdirectory/2 rdirectory_score/2 rlibrary/1 rlibrary/2 rlibrary_score/2 valid_option/1 valid_options/1

## Public predicates

(no local declarations; see entity ancestors if any)

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

(no local declarations; see entity ancestors if any)

## Operators

(none)