Sample

Dorn/cuda/108

Human rating uses the original dataset scale.

DatasetDorn
Human1.64
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
0.3Δ 0.0
Scalabrino0.3050–1; higher is more readable
22.1Δ 21.8
Dorn0.4260–1; higher is more readable
34.8Δ 34.5
Mi0.0790–1; higher is more readable
10.3Δ 10.0
LLOC28Logical lines; fewer is more readable
15.2Δ 14.9
DeepSeek V4 Pro4.330–20; mean of three runs
8.4Δ 8.1
GPT-6.1 Sol80–20; mean of three runs
3.2Δ 2.9
BTTF0.1810–1; higher is more readable
5.3Δ 5.0
Human1.641–5; original rating
0.3

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.4271.586−140.962
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.17−7.755

Intercept 8.87 + feature contributions = -119.848 (log-odds).
Score = sigmoid(-119.848) = 0.

Score0.305

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.104.941+0.889
Indentation frequencyHow rapidly indentation changes from line to line.47+0.889
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.104.961−0.781
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.47−0.658
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.887+0.287
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.12−0.227

Intercept 0.07 + feature contributions = -0.3 (log-odds).
Score = sigmoid(-0.3) = 0.426.

Score0.079
Score28
Run 1

The first block is extremely unreadable due to its macro-based structure: 32+ variables declared on single lines, heavy use of backslash line continuations, and deeply nested control flow. Variables with near-identical names (p0–p15, b0–b15) make intent unclear. Multiple actions occur on single lines (e.g., function calls with 15+ arguments), violating action granularity principles. Indentation is inconsistent, and the while/for/if nesting makes flow hard to follow. The second function is slightly better—clearer purpose, reasonable line breaks, and a descriptive name—but still suffers from magic numbers (8192, 32, 16) and unexplained parameters. Overall, the code assumes deep familiarity with the domain and CUDA; it provides almost no self-documentation, making it difficult for a new reader to maintain or verify. It could be drastically improved by breaking macros into real functions, using arrays or structs instead of dozens of scalar variables, adding comments explaining the hashing pipeline, and reducing line length.

Run 2

This code is extremely difficult to read and maintain. The primary function is a massive macro with deeply nested logic, excessive variable declarations (16 of each type), and poor indentation. It performs multiple actions per line with complex parameter passing, making it nearly impossible to trace the flow. The macro combines password generation, hashing, salt loading, and hash checking in one monolithic block. Variable names like b0-b15 provide no semantic meaning. The while/for loop nesting with multiple macro calls creates tangled logic. The second function is slightly better but still has inconsistent spacing and unclear parameter names. The code lacks meaningful comments explaining the cryptography logic. Reading flow is disjointed, jumping between macro definitions and function calls with unclear boundaries. The excessive use of backslash continuations in the macro compounds readability issues. Overall, this demonstrates poor structure, excessive nesting, ambiguous intent, and poor granularity - making it nearly unreadable without significant effort to understand the CUDA-specific implementation details.

Run 3

The code is largely unreadable due to excessive line lengths, repetitive variable declarations, and deeply intertwined logic. It uses massive parameter lists (16 separate b0-b15 and p0-p15 variables) and long macro invocations, making the action granularity muddy — multiple complex operations are packed into each line. The structure is tangled: macros and CUDA-specific directives obscure the flow, and the overall intent is not immediately clear. Nesting is shallow but the sprawling horizontal density and lack of whitespace or decomposition harm readability. The second function is slightly clearer but still uses unsafe CUDA macros without error handling context. Overall, the code requires heavy mental parsing to understand, even for domain experts in CUDA/hashing.

Run 1

Code Structure: Setup, password iteration, hashing, and data transfer are recognizable, but the incomplete macro context and large parameter lists obscure organization. Nesting: Only two loop levels are present, though inconsistent indentation makes their boundaries harder to follow. Clarity of intent: Descriptive helper names communicate the hashing workflow, but terse variables, macro token concatenation, unexplained constants, and a misleading host-transfer comment reduce clarity. Code length: The overall snippet is moderate, but repeated lists of sixteen scalar arguments and excessive blank lines add visual bulk. Action granularity: Most statements perform one action, which helps readability; grouped declarations and multiline calls remain dense. Reading flow: The operational sequence is logical, but macro continuation backslashes, uneven spacing, inconsistent capitalization, and a stale commented-out debug statement interrupt scanning.

Run 2

Code Structure: Initialization, password iteration, hashing, and data transfer form recognizable stages, but the incomplete macro opening and repetitive argument lists obscure organization. Nesting: Only two loop levels, though inconsistent indentation makes their boundaries harder to follow. Clarity of intent: Descriptive helper names convey the hashing workflow, but terse variables, macro token pasting, unexplained constants, and a misleading host-copy comment reduce clarity. Code length: Repeated lists of sixteen variables and arguments make the snippet unnecessarily verbose to read. Action granularity: Most statements perform one action, although declarations pack many variables onto single lines. Reading flow: The execution sequence is logical, but macro continuation backslashes, uneven formatting, excessive blank lines, and a stale commented-out debug statement interrupt natural reading.

Run 3

Code Structure: Setup, hashing, and data transfer are logically grouped, but the incomplete macro opening and large argument lists obscure organization. Nesting: Only two loop levels, though inconsistent indentation makes their boundaries harder to follow. Clarity of intent: Descriptive helper names communicate the hashing workflow, but terse variables, token-pasted macros, magic numbers, and a misleading host-copy comment reduce clarity. Code length: Repeated lists of sixteen variables and excessive blank lines add visual bulk. Action granularity: Most statements perform one action, but grouped declarations and extensive parameter lists are dense. Reading flow: The setup-to-processing sequence is sensible, yet macro continuation backslashes, mixed whitespace, uneven alignment, and a stale commented debug statement interrupt reading.