Sample

Dorn/cuda/114

Human rating uses the original dataset scale.

DatasetDorn
Human2.01
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
1.1Δ 2.5
Scalabrino0.6950–1; higher is more readable
75.6Δ 72.0
Dorn0.40–1; higher is more readable
32.3Δ 28.7
Mi0.1370–1; higher is more readable
14.2Δ 10.6
LLOC31Logical lines; fewer is more readable
9.6Δ 6.0
DeepSeek V4 Pro2.330–20; mean of three runs
1.3Δ 2.4
GPT-6.1 Sol90–20; mean of three runs
6.4Δ 2.8
BTTF0.2880–1; higher is more readable
14.5Δ 10.9
Human2.011–5; original rating
3.6

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.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.

Score0.695

Feature contributions

FeatureValueContribution
(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.

Score0.137
Score31
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.