Sample

Dorn/cuda/91

Human rating uses the original dataset scale.

DatasetDorn
Human3.5
Lines10

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.1090–1; higher is more readable
74.1Δ 10.3
Scalabrino0.7180–1; higher is more readable
79.1Δ 15.3
Dorn0.4110–1; higher is more readable
32.9Δ 30.9
Mi0.7530–1; higher is more readable
93.0Δ 29.2
LLOC5Logical lines; fewer is more readable
78.0Δ 14.2
DeepSeek V4 Pro15.670–20; mean of three runs
82.6Δ 18.8
GPT-6.1 Sol180–20; mean of three runs
93.5Δ 29.7
BTTF0.5980–1; higher is more readable
72.7Δ 8.9
Human3.51–5; original rating
63.8

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.233.833−7.716
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.4.839−7.259
Source linesThe number of non-empty source lines.10+4

Intercept 8.87 + feature contributions = -2.105 (log-odds).
Score = sigmoid(-2.105) = 0.109.

Score0.718

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.11+0.647
Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names.75.909+0.45
Indentation frequencyHow rapidly indentation changes from line to line.10−0.391
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.9.727−0.274
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.123−0.249
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.10+0.191

Intercept 0.07 + feature contributions = -0.361 (log-odds).
Score = sigmoid(-0.361) = 0.411.

Score0.753
Score5
Run 1

The code is concise and readable, with clear method names that express intent well. It uses flat structure with no nested logic, maintains one action per line, and follows a natural reading flow. The only minor issues are the lack of defensive handling for invalid layer indices (relying solely on assert, which is stripped in release builds) and the absence of surrounding context for the initial closing brace. Overall, the methods are straightforward getters with minimal complexity, but the assert-only validation slightly reduces robustness without affecting immediate readability.

Run 2

The code is mostly clear and concise, with simple one-action-per-line getter methods. However, it starts with a stray closing brace, suggesting it's an incomplete snippet. The methods have clear names and intents. There is some minor nesting in the assert condition but it's acceptable. The reading flow is natural, though the absence of surrounding class context hurts overall readability. The code is short and not overly complex, but the incomplete opening prevents a higher score.

Run 3

The code is highly readable. It follows a clear, consistent structure with two simple getter methods. Each method has a single, well-defined purpose, and the logic is flat with minimal nesting. The assertion in the second method clearly communicates a precondition, improving clarity. The code is concise, with one action per line, and the reading flow is natural, moving from method name to parameter validation to return statement. Minor potential issues are the use of assert for validation (which may be disabled in release builds) and the dependency on the Length() method's naming convention, but these do not significantly hinder readability.

Run 1

Code Structure: Two logically separated getters are clearly organized, although the leading closing brace lacks context. Nesting: Both methods are flat and easy to follow. Clarity of intent: Descriptive method names, const qualifiers, and the bounds assertion make their purposes clear, though the names are somewhat awkward. Code length: The implementation is concise without unnecessary statements. Action granularity: Each line performs a single action. Reading flow: Consistent formatting and spacing support natural reading; only the unexplained initial brace interrupts the flow.

Run 2

Code Structure: Two clearly separated getter methods provide logical organization, though the leading unmatched brace lacks context. Nesting: Flat method bodies are easy to follow. Clarity of intent: Descriptive method names, const qualifiers, and the layer bounds assertion make the purpose clear, although the names are slightly awkward. Code length: Both methods are concise with no unnecessary logic. Action granularity: Each statement occupies its own line. Reading flow: Consistent formatting and straightforward assertion-then-return sequencing support natural reading.

Run 3

Code Structure: Two logically separated getters are well organized, though the leading unmatched closing brace makes the snippet appear incomplete. Nesting: Flat methods with no nested control flow. Clarity of intent: Descriptive method names clearly identify the returned network properties, and the assertion makes the valid layer range explicit. Code length: Concise, with no unnecessary implementation details. Action granularity: Each statement performs one action on its own line. Reading flow: Consistent formatting and straightforward assertion-then-return logic make the code easy to follow; the initial stray brace slightly interrupts that flow.