Sample
Dorn/cuda/113
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 17.8Δ 5.6 |
| Scalabrino | 0.081 | 0–1; higher is more readable | 4.7Δ 18.7 |
| Dorn | 0.494 | 0–1; higher is more readable | 42.9Δ 19.5 |
| Mi | 0.452 | 0–1; higher is more readable | 44.6Δ 21.2 |
| LLOC | 34 | Logical lines; fewer is more readable | 5.4Δ 18.0 |
| DeepSeek V4 Pro | 8.67 | 0–20; mean of three runs | 32.7Δ 9.3 |
| GPT-6.1 Sol | 12.33 | 0–20; mean of three runs | 24.4Δ 1.0 |
| BTTF | 0.3 | 0–1; higher is more readable | 15.6Δ 7.8 |
| Human | 2.86 | 1–5; original rating | 23.4 |
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. | 1778.556 | −58.692 |
| Source linesThe number of non-empty source lines. | 50 | +20 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5.016 | −7.524 |
Intercept 8.87 + feature contributions = -37.346 (log-odds).
Score = sigmoid(-37.346) = 0.
| Score | 0.081 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 48 | −0.663 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 80.392 | +0.493 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 46.446 | +0.239 |
| 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. | 81.961 | +0.194 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.102 | −0.053 |
Intercept 0.07 + feature contributions = -0.025 (log-odds).
Score = sigmoid(-0.025) = 0.494.
| Score | 0.452 |
|---|
| Score | 34 |
|---|
Run 1
This code is difficult to read due to highly repetitive, vectorized operations with cryptic variable names like regP, regH0.w, regE1.z, and regSubScore. The structure is linear but lacks abstraction—each vector component is processed manually, creating long stretches of near-identical code. Nesting is minimal, which is good, but clarity of intent suffers because the algorithm’s purpose (likely Smith-Waterman or similar DP scoring) is not evident without domain knowledge. Action granularity is mostly one operation per line, but the heavy use of inline comments does not compensate for ambiguous naming. The reading flow is disrupted by frequent register component access and saturation arithmetic, making it hard to follow the data dependencies. Overall, the code is maintainable only by someone deeply familiar with the specific CUDA/GPU optimization context.
Run 2
The code is difficult to read due to heavy use of cryptic variable names (regP, regH0.w, regE1.z, regSubScore.x, etc.) and minimal explanatory context. While it follows a repetitive pattern that somewhat aids predictability, the lack of meaningful naming makes intent unclear. Nesting is flat, which is positive, and each line generally contains one action, but the overall structure is fragmented with dense vector component manipulations. Comments exist but are terse and do not clarify the algorithm's purpose. The code is concise but not self-documenting; the reader must infer meaning from context, which is challenging without domain knowledge. Action granularity is adequate, but reading flow is interrupted by frequent register saves and updates that are hard to follow. Overall, the code is maintainable only by someone intimately familiar with the specific GPU algorithm and register layout.
Run 3
The code uses repetitive blocks that suggest vectorized operations but suffers from unclear naming (e.g., regH0, regE0, regF, regT), mixed variable purposes, and heavy reliance on comments to explain low-level register manipulation. Structure is sequential and somewhat logical, but repetition harms readability and maintainability. Nesting is flat, which is good, and each line generally performs one action. However, the flow is disorganized due to the interleaving of score lookup, H/E/F updates, and scalar/vector component handling. The comments help, but the symbols remain ambiguous without external context.
Run 1
Code Structure: Repeated computation blocks are logically grouped, but lack abstractions that distinguish shared operations. Nesting: Completely flat, making execution order easy to follow. Clarity of intent: Segment comments provide context, but terse register names and comments referencing vecH/vecShift rather than actual variables obscure meaning. Code length: Substantial repetition increases length and maintenance burden, although it may reflect intentional GPU loop unrolling. Action granularity: Each line performs one assignment or update, which supports readability. Reading flow: Sequential segment progression and blank-line grouping are helpful, but inconsistent spacing, repetitive comments, and dependencies on overwritten temporary registers require careful tracking.
Run 2
Code Structure: Repeated update blocks are logically grouped, but duplication obscures the underlying algorithm. Nesting: Completely flat, with no nested control flow, making individual operations easy to follow. Clarity of intent: Comments identify update stages, but terse register names, unexplained algorithmic relationships, and references to vecShift rather than regF make the overall purpose less clear. Code length: The snippet is straightforward but repetitive; unrolled operations increase reading effort, even if appropriate for GPU performance. Action granularity: Each statement performs one assignment or update, with no compound statements on a line. Reading flow: Consistent operation ordering and segment markers support sequential reading, while uneven whitespace and repeated low-level state changes make tracking dependencies harder.
Run 3
Code Structure: Repeated update blocks are logically grouped, but duplication and inconsistent spacing weaken organization. Nesting: The code is entirely flat, making individual operations easy to follow. Clarity of intent: Comments identify vector segments and some updates, but abbreviated register names and unexplained algorithmic dependencies require domain knowledge; references to vecShift do not directly match the variable names. Code length: The repeated component-wise calculations make the snippet lengthy, although this may reflect intentional GPU loop unrolling. Action granularity: Each statement performs one assignment or update, with no compound statements obscuring execution. Reading flow: The consistent calculation sequence supports linear reading, but tracking changing register values across nearly identical blocks is mentally demanding.