Sample
Dorn/cuda/38
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 0.6Δ 0.6 |
| Scalabrino | 0.266 | 0–1; higher is more readable | 18.2Δ 17.1 |
| Dorn | 0.024 | 0–1; higher is more readable | 3.3Δ 2.2 |
| Mi | 0.017 | 0–1; higher is more readable | 4.2Δ 3.1 |
| LLOC | 1 | Logical lines; fewer is more readable | 97.9Δ 96.8 |
| DeepSeek V4 Pro | 3.67 | 0–20; mean of three runs | 6.1Δ 5.0 |
| GPT-6.1 Sol | 10.33 | 0–20; mean of three runs | 12.0Δ 10.9 |
| BTTF | 0.144 | 0–1; higher is more readable | 3.1Δ 1.9 |
| Human | 1.71 | 1–5; original rating | 1.1 |
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. | 4030.145 | −132.995 |
| 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.159 | −7.739 |
Intercept 8.87 + feature contributions = -111.864 (log-odds).
Score = sigmoid(-111.864) = 0.
| Score | 0.266 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 145 | −2.476 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 48 | +0.923 |
| 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. | 51 | −0.769 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 48 | −0.681 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 49.863 | +0.287 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.124 | −0.263 |
Intercept 0.07 + feature contributions = -3.714 (log-odds).
Score = sigmoid(-3.714) = 0.024.
| Score | 0.017 |
|---|
| Score | 1 |
|---|
Run 1
This code is extremely difficult to read. The entire kernel is defined within a macro, resulting in zero indentation and no visual separation between logical sections. Lines are excessively long, packing multiple statements and operations together. Variable names like b0-b15, a-e are cryptic and provide no semantic meaning. The macro parameter 'length' obscures the kernel's purpose. Control flow (if/else, loops) is present but visually lost due to the flat, unindented structure. Action granularity is poor; multiple actions appear on single lines (e.g., 'a = reverse(a);b = reverse(b);...'). The reading flow is completely unnatural, forcing the reader to parse dense, unformatted blocks of code with no whitespace or comments to guide understanding. While some operations are logically grouped, the lack of formatting, descriptive names, and separation makes this code nearly unreadable.
Run 2
The code is extremely difficult to read due to a massive macro defining an entire CUDA kernel with backslash continuations. It has no meaningful indentation, deeply repetitive variable lists, and long single-line statements combining multiple operations. The granularity is poor, with several actions packed into single lines, and the intent is obscured by verbose parameter passing and hardcoded indexing arithmetic. While CUDA kernels handle many registers manually, this implementation sacrifices clarity entirely. The structure is linear but tangled, with minimal whitespace or comments. The reading flow is unnatural because readers must mentally parse macro expansion and repeated similar-looking parameter lists. Only basic variable names like 'password_index' and 'CurrentStep' are somewhat understandable, but most logic is cryptic. Overall it is functionally dense but practically unreadable without significant effort.
Run 3
This code is extremely difficult to read due to its macro-based generation approach, which obscures structure and intent. The entire kernel is defined within a multi-line macro, making it hard to identify boundaries, debug, or understand the control flow. The code lacks meaningful abstraction—most operations are raw bit manipulations and register assignments with cryptic variable names (b0-b15, a-e). Nesting is not the primary issue; rather, the dense, unformatted blocks and repetitive, low-level operations reduce clarity. Action granularity is poor, with multiple actions crammed into single lines and long, unbroken expressions. There is no logical separation of concerns, and the reading flow is disorganized, jumping between shared memory setup, index calculation, hashing, and output without structure. While some names like 'SHA_TRANSFORM' and 'LoadMD5RegistersFromGlobalMemory' hint at intent, the overall code is overly verbose and hard to follow, resembling generated or heavily optimized kernel code rather than maintainable source.
Run 1
Code Structure: Initialization, chain processing, and output are logically ordered, but a large macro obscures boundaries. Nesting: Mostly shallow, with a single loop and simple conditionals. Clarity of intent: Kernel and parameter names suggest SHA1 chain generation, but cryptic register names, unexplained bit manipulation, and MD5-named helpers require domain knowledge. Code length: Reasonable for the task, although repeated register lists and long expressions add visual bulk. Action granularity: Most lines perform one action, but five reversal assignments share one line, and declarations are crowded. Reading flow: Execution proceeds naturally from setup to processing to storage, but macro continuation markers, inconsistent spacing, poorly indented else contents, and absent explanatory comments interrupt readability.
Run 2
Code Structure: The kernel follows a logical setup, load, hash/reduce loop, and output sequence, but a large macro obscures function boundaries and organization. Nesting: Shallow nesting and an early return make control flow manageable. Clarity of intent: Descriptive kernel and parameter names help, but cryptic register names, unexplained bit manipulation, and MD5-named helpers within SHA1 code require specialized knowledge. Code length: Reasonably compact for its purpose, though repeated register lists and lengthy indexing expressions add visual clutter. Action granularity: Most lines perform one action, but five reversal assignments share a single line, and declarations are densely packed. Reading flow: Execution order is natural, but macro continuation characters, long lines, inconsistent spacing, and poor indentation in the final else block interrupt scanning.
Run 3
Code Structure: Initialization, bounds checking, chain iteration, and output handling are logically ordered, but wrapping the entire kernel in a macro obscures structure. Nesting: Shallow nesting and an early return keep control flow manageable. Clarity of intent: Descriptive kernel and helper names convey SHA1 chain generation, but terse register names, MD5-named helpers, and unexplained bit manipulation hinder understanding. Code length: Reasonably compact for the task, though repeated register lists and verbose constants create visual clutter. Action granularity: Most lines perform one action, but five reversal assignments share one line, and declarations group many variables. Reading flow: Execution follows a natural sequence, but macro continuation characters, long lines, inconsistent spacing, poor else-block indentation, and absent explanatory comments interrupt readability.