Sample

Dorn/cuda/53

Human rating uses the original dataset scale.

DatasetDorn
Human2.64
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
1.7Δ 14.2
Scalabrino0.0690–1; higher is more readable
3.9Δ 12.0
Dorn0.3960–1; higher is more readable
32.0Δ 16.2
Mi0.2120–1; higher is more readable
21.2Δ 5.3
LLOC29Logical lines; fewer is more readable
13.5Δ 2.4
DeepSeek V4 Pro100–20; mean of three runs
40.9Δ 25.1
GPT-6.1 Sol12.330–20; mean of three runs
24.4Δ 8.5
BTTF0.4760–1; higher is more readable
38.7Δ 22.8
Human2.641–5; original rating
15.9

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.3445.006−113.685
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.4.826−7.239

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

Score0.069

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.106.98+0.922
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.106.941−0.864
Indentation frequencyHow rapidly indentation changes from line to line.44+0.785
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.44−0.589
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.907+0.288
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.124−0.265

Intercept 0.07 + feature contributions = -0.423 (log-odds).
Score = sigmoid(-0.423) = 0.396.

Score0.212
Score29
Run 1

The code follows a clear, repetitive structure typical of MD5 round implementations, which aids recognition for domain experts. Macro calls are consistent and each line contains one action. The round comments (/* Round 3 */) improve navigation. However, readability suffers from opaque macro/parameter names like MD5GG, MD5HH, and hex constants—intent is unclear without external context. Parameter ordering (d,a,b,c vs a,b,c,d) shifts between macro types, disrupting flow. The commented-out lines introduce ambiguity about whether they are placeholders, debug remnants, or future work. The closing brace and stray comment 'go byebye!' add casual tone and structural confusion. Overall, it is maintainable for someone versed in MD5 internals but less approachable for general code review.

Run 2

This code is nearly unreadable due to deeply cryptic naming conventions and unclear intent. While the structure follows a sequential round-based pattern with section comments, the variable names (a, b, c, d, b0-b15, MD5S22, etc.) are opaque without domain knowledge. Nesting is flat but the macro calls contain 7+ arguments each, making lines dense. Code length is verbose, though each line represents one operation. The parameters shift rotationally (a,b,c,d then d,a,b,c then c,d,a,b then b,c,d,a) which obscures reading flow. Comments are sparse and informal ('go byebye!'). The commented-out lines and misplaced comment about 'initial a check' create confusion. Constants like 0xc33707d6 lack explanation. The second function MD5_Reverse starts with a long parameter list spanning multiple lines, further reducing clarity. Without deep MD5 algorithm expertise, tracking the state transformation across lines is extremely difficult.

Run 3

The code shows organized MD5 round operations with numbered comments and clear section headers, which aids navigation. However, several factors reduce readability: comments are terse and rely on domain-specific knowledge; the function signature in MD5_Reverse is very long with 20 parameters spanning multiple lines without clear grouping; parameter names are cryptic (b0-b15, a,b,c,d); the commented-out code and informal comments like 'go byebye!' introduce ambiguity. The nesting is flat and each macro call occupies one line, which is good, but the repetitive macro calls lack explanatory context about the algorithm's purpose. Reading flow is interrupted by commented code and informal language. Overall, the structure is consistent but overly dependent on MD5-specific knowledge without sufficient explanatory comments or abstraction.

Run 1

Code Structure: Round comments and grouped state initialization provide logical organization, but the excerpt starts and ends mid-function and includes deferred, commented-out operations. Nesting: The visible code is flat and straightforward. Clarity of intent: MD5 macro names and step numbers identify the algorithm, but terse variables, unexplained hexadecimal constants, and the vague 'Reverses the MD5' comment obscure the exact purpose. Code length: Explicitly unrolled steps may be appropriate for optimized cryptographic code, but repetition and a long parameter list make scanning harder. Action granularity: Each line contains one macro invocation, assignment, or subtraction, giving consistent visual units, although macro internals are hidden. Reading flow: Sequential numbering and round separators support natural progression; excessive blank lines, uneven alignment, informal comments, and deferred steps interrupt it.

Run 2

Code Structure: Round labels and separate reverse function provide logical organization, but the excerpt starts and ends mid-function, limiting context. Nesting: Flat statements are easy to follow, with no deeply nested control flow. Clarity of intent: MD5 names and step numbers identify the algorithm, but opaque macros, short variable names, hexadecimal constants, and the vague reversal comment obscure details. Code length: Repeated calls may be appropriate for an unrolled algorithm, but the long parameter list and commented-out operations add visual bulk. Action granularity: Each line contains one macro call or assignment, making individual steps easy to locate. Reading flow: Consistent call patterns and numbered steps support sequential reading, while deferred operations, informal comments, and uneven whitespace interrupt it.

Run 3

Code Structure: Round labels and separation of forward operations from MD5_Reverse provide logical organization, but the excerpt is incomplete and includes deferred, commented-out steps. Nesting: Flat statements with no visible nested control flow are easy to scan. Clarity of intent: MD5 macro names and numbered steps identify the algorithm, but terse variables, unexplained constants, unavailable macro definitions, and the vague reversal comment obscure details. Code length: Repetitive unrolled operations may be appropriate for optimized hashing, though the long parameter list and excess blank lines reduce concision. Action granularity: Each visible statement performs one operation, although macros may hide additional actions. Reading flow: Consistent argument ordering and sequential step numbers support predictable reading; informal comments, mixed comment styles, and references to an unseen initial check interrupt that flow.