Sample
Dorn/cuda/114
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 1.1Δ 2.5 |
| Scalabrino | 0.695 | 0–1; higher is more readable | 75.6Δ 72.0 |
| Dorn | 0.4 | 0–1; higher is more readable | 32.3Δ 28.7 |
| Mi | 0.137 | 0–1; higher is more readable | 14.2Δ 10.6 |
| LLOC | 31 | Logical lines; fewer is more readable | 9.6Δ 6.0 |
| DeepSeek V4 Pro | 2.33 | 0–20; mean of three runs | 1.3Δ 2.4 |
| GPT-6.1 Sol | 9 | 0–20; mean of three runs | 6.4Δ 2.8 |
| BTTF | 0.288 | 0–1; higher is more readable | 14.5Δ 10.9 |
| Human | 2.01 | 1–5; original rating | 3.6 |
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. | 3599.622 | −118.788 |
| 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.266 | −7.899 |
Intercept 8.87 + feature contributions = -97.817 (log-odds).
Score = sigmoid(-97.817) = 0.
| Score | 0.695 |
|---|
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. | 110.941 | −1.034 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 110.902 | +0.985 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 48 | +0.923 |
| 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.938 | +0.288 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.116 | −0.189 |
Intercept 0.07 + feature contributions = -0.407 (log-odds).
Score = sigmoid(-0.407) = 0.4.
| Score | 0.137 |
|---|
| Score | 31 |
|---|
Run 1
This code is extremely difficult to read due to severe structural issues. The macro-based kernel generation with 16+ parameters per function call creates massive line lengths and repetition. The SHA transformation and password loading functions take 16 separate b0-b15 parameters, making each call span multiple lines with poor visual organization. The intent is obscured by cryptic naming (b0-b15, p0-p15) and unexplained magic numbers (0x80, 8 << 24, 8192). Multiple actions are packed into single macro expansions, and the nesting from macro definitions obscures the actual execution flow. The reading flow is severely compromised as parameters are scattered across multiple lines without clear visual grouping. The code appears to be an optimized GPU kernel, likely intentionally unrolled for performance, but this optimization comes at a severe readability cost. Without understanding the macro definitions and the specific SHA-1/SSHA algorithm details, the code is nearly incomprehensible.
Run 2
This code is extremely difficult to read due to multiple severe issues. The massive macro-based kernel generation obscures all logic, with repetitive 16-variable parameter lists creating extreme visual noise. Functions like LoadPasswordAtPosition and SetCharacterAtPosition take 17+ parameters, making intent unclear and error-prone. The nested macro expansion patterns (CUDA_SSHA_KERNEL_CREATE repeated 16 times) create tangled, non-obvious code generation. Deep nesting is present through macro definitions within macros. Reading flow is completely disrupted by long line continuations and backslash-heavy formatting. While each line performs roughly one action, the actions themselves are incomprehensible due to parameter overload. Even the straightforward CUDA memory copy section suffers from inconsistent indentation and variable naming. There is no abstraction or logical organization visible - just raw parameter passing. This code requires extensive domain knowledge and manual expansion to understand, scoring very low on all readability criteria.
Run 3
The code suffers from severe readability issues across all criteria. Structure is tangled due to macro-generated code with backslash continuations, making logical organization unclear. Nesting is moderate but obscured by macro expansion. Intent is heavily obscured by repetitive 16-variable parameter lists (p0-p15, b0-b15) that lack semantic meaning. Code length is unnecessarily verbose, repeating the same groups of variables dozens of times. Action granularity is poor—multiple operations like setting length bits and bit-shifting are crammed into single lines. Reading flow is disorganized, jumping between macro invocations and manually unrolled loops. The function signatures span many lines with dozens of parameters, making it impossible to follow without deep domain knowledge. While CUDA kernel code often uses such patterns for performance, the readability is extremely low. Only the host copy function at the bottom is somewhat clear, but it's not enough to improve the overall score.
Run 1
Code Structure: The hashing sequence, kernel instantiations, and data-copy function form recognizable sections, but the incomplete macro context and unmatched surrounding braces obscure organization. Nesting: Visible nesting is shallow, though macro expansion hides the full control structure. Clarity of intent: Descriptive operation names convey password loading, salting, hashing, and copying, but terse variables, magic numbers, and a misleading host-copy comment reduce clarity. Code length: Repeated argument lists and sixteen explicit kernel instantiations create substantial visual repetition. Action granularity: Most statements perform one operation, which helps, although very large argument lists make individual actions difficult to scan. Reading flow: The hashing operations follow a logical order, but inconsistent indentation, continuation backslashes, token pasting, and stale commented-out debugging code interrupt the flow.
Run 2
Code Structure: The hashing sequence, kernel generation, and data-copy function form recognizable sections, but the incomplete macro context and unmatched surrounding braces hinder comprehension. Nesting: The visible loop is shallow, although macro expansion obscures the full control structure. Clarity of intent: Descriptive calls suggest password loading, salting, hashing, and checking; numbered variables, magic constants, token pasting, and a misleading host-copy comment reduce clarity. Code length: Repeated argument lists and sixteen kernel declarations make the snippet verbose. Action granularity: Most statements perform one action, but long calls span several lines and overwhelm the reader. Reading flow: The processing sequence is logical, yet inconsistent indentation, macro continuation backslashes, and a stale commented-out debug statement interrupt it.
Run 3
Code Structure: Kernel generation and constant-memory initialization are separated, but the incomplete macro context and unmatched-looking closing braces obscure organization. Nesting: The visible loop is shallow, though surrounding nesting cannot be assessed from this fragment. Clarity of intent: Descriptive helper names suggest password loading, salt application, hashing, and checking; numbered variables, magic constants, and token-pasted macros require specialist knowledge. The comment describing copying to the host contradicts cudaMemcpyToSymbol calls. Code length: Repeated argument lists and 16 kernel-generation invocations create substantial visual repetition. Action granularity: Statements generally perform one operation each, although long macro calls contain many parameters. Reading flow: The hashing sequence is logical, but backslash continuations, inconsistent indentation, lengthy lines, and a stale commented-out debug statement interrupt scanning.