Sample
Dorn/cuda/5
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 42.6Δ 23.4 |
| Scalabrino | 0.485 | 0–1; higher is more readable | 39.9Δ 26.1 |
| Dorn | 0.628 | 0–1; higher is more readable | 54.9Δ 11.1 |
| Mi | 0.51 | 0–1; higher is more readable | 52.6Δ 13.4 |
| LLOC | 20 | Logical lines; fewer is more readable | 32.5Δ 33.6 |
| DeepSeek V4 Pro | 14.67 | 0–20; mean of three runs | 74.1Δ 8.1 |
| GPT-6.1 Sol | 15 | 0–20; mean of three runs | 52.8Δ 13.2 |
| BTTF | 0.409 | 0–1; higher is more readable | 25.3Δ 40.7 |
| Human | 3.53 | 1–5; original rating | 66.0 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (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. | 834.459 | −27.537 |
| Source linesThe number of non-empty source lines. | 30 | +12 |
| 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.733 | −7.1 |
Intercept 8.87 + feature contributions = -13.767 (log-odds).
Score = sigmoid(-13.767) = 0.
| Score | 0.485 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 82.258 | +0.523 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.078 | +0.186 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 25 | −0.153 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 18 | −0.115 |
| 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. | 85 | +0.065 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 31 | −0.061 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 29.826 | +0.007 |
Intercept 0.07 + feature contributions = 0.522 (log-odds).
Score = sigmoid(0.522) = 0.628.
| Score | 0.51 |
|---|
| Score | 20 |
|---|
Run 1
The code demonstrates good structure with clear separation of concerns: a main function handling setup and a dedicated runTest function for test execution. Variable declarations are grouped logically at the start of runTest with descriptive names and default values, making intent clear. Code length is reasonable, though the single-line if statement containing two function calls slightly reduces readability. Nesting is minimal and flat. Action granularity is mostly one action per line. Reading flow is natural, with a clear progression from setup to execution to cleanup. The comment blocks effectively delineate sections. Minor improvements could include breaking the if statement into multiple lines for better action granularity and distinguishing variable declarations from defaults. Overall, the code is easily comprehensible and well-organized for its purpose.
Run 2
The code demonstrates moderate readability. Structure is logical with clear separation between main setup and test execution. Nesting is flat, which is positive. Intent is mostly clear - variables are descriptively named and the function purpose is documented. However, there are several issues: variable declarations are stacked without consistent grouping by purpose (device settings, mode flags, memory options all mixed together), the action granularity varies (multiple related bool declarations on separate lines when grouping would improve scanability), and reading flow is disrupted by the long comment dashes. The code is concise but could benefit from struct usage for related settings. Minor improvements like grouping related flags or using an options struct would improve clarity. The function signature is clean and the boolean defaults are explicit, which aids understanding.
Run 3
The code is moderately readable. Structure is clear with logical function separation and a comment header for runTest, but the parameter list and variable declarations are dense. Nesting is flat, which is good. Clarity of intent is adequate: variable names like 'htod', 'dtoh', and 'wc' are cryptic without context. Code length is reasonable but the long list of boolean flags suggests possible consolidation. Action granularity is mostly one action per line, though the shrQAFinishExit call packs multiple operations. Reading flow is natural for C code but suffers from the verbose mock-up of flags and modes. Overall, the code is understandable but could be improved with better naming, documentation of flags, and perhaps grouping related parameters into structs.
Run 1
Code Structure: Logging, test execution, cleanup, and argument defaults appear in logical order, though the snippet begins mid-function and ends before runTest's behavior is shown. Nesting: The visible code is flat and easy to scan. Clarity of intent: Comments, function names, and constants convey the overall purpose, but abbreviations such as htod, dtoh, dtod, and wc require domain knowledge. Code length: The snippet is concise, although numerous individual default declarations add some repetition. Action granularity: Each statement performs a single main action; the conditional exit status remains understandable within the function call. Reading flow: Execution proceeds naturally into test configuration, but inconsistent spacing, oversized separator comments, and uneven grouping of related variables slightly reduce readability.
Run 2
Code Structure: Logging, test execution, and argument defaults are logically grouped, but the excerpt begins mid-function and ends before runTest's behavior is shown. Nesting: The visible code is flat and easy to scan. Clarity of intent: Comments and names such as startDevice, DEFAULT_INCREMENT, and PAGEABLE communicate purpose, while htod, dtoh, dtod, and wc require domain knowledge. Code length: The excerpt is concise, though the long list of initializations is somewhat repetitive. Action granularity: Each statement generally performs one action; the inline pass/fail expression is compact and understandable. Reading flow: Execution proceeds naturally from setup to testing and completion, then into configuration defaults. Inconsistent spacing, mixed naming styles, and a prominent separator comment slightly reduce visual consistency.
Run 3
Code Structure: Logging, test execution, completion, and argument defaults are logically grouped, though the excerpt begins mid-function and ends before runTest's implementation. Nesting: The visible code is flat and easy to scan. Clarity of intent: Comments and function names explain the overall purpose, but abbreviations such as htod, dtoh, dtod, and wc require domain knowledge. Code length: The snippet is concise, although the long sequence of local declarations offers little functional context. Action granularity: Each statement occupies its own line, making individual actions clear. Reading flow: Execution proceeds naturally into test setup, but inconsistent spacing, oversized comment separators, and the incomplete function boundaries slightly interrupt readability.