Sample

Dorn/cuda/20

Human rating uses the original dataset scale.

DatasetDorn
Human2.29
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
17.5Δ 9.7
Scalabrino0.4720–1; higher is more readable
37.2Δ 29.4
Dorn0.2970–1; higher is more readable
23.1Δ 15.3
Mi0.0360–1; higher is more readable
5.6Δ 2.2
LLOC28Logical lines; fewer is more readable
15.2Δ 7.4
DeepSeek V4 Pro8.330–20; mean of three runs
31.2Δ 23.4
GPT-6.1 Sol130–20; mean of three runs
30.6Δ 22.8
BTTF0.3890–1; higher is more readable
22.8Δ 15.0
Human2.291–5; original rating
7.8

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.1795.695−59.258
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.891−7.336

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

Score0.472

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.136.941−2.135
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.136.98+1.406
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.50−0.734
Indentation frequencyHow rapidly indentation changes from line to line.35+0.473
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.36−0.405
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.913+0.288
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.079+0.175

Intercept 0.07 + feature contributions = -0.862 (log-odds).
Score = sigmoid(-0.862) = 0.297.

Score0.036
Score28
Run 1

The code has a clear high-level flow (pad, transform, convolve, crop) but suffers from poor formatting and organization. Indentation is inconsistent, with some lines not indented at all despite being inside loops or conditionals, breaking visual structure. The if statement checking for NULL padded data is misleadingly placed after use, which obscures intent. Many lines are commented out with fprintf_verbose calls, adding noise rather than clarity. There are multiple actions and function calls on single lines, and error-checking macros like cutilSafeCall and cufftSafeCall are intermixed with logic, making the core steps harder to follow. The reading flow is disjointed due to abrupt line breaks and inconsistent spacing. While variable names are descriptive and the overall purpose is understandable to someone familiar with GPU convolution, the presentation significantly reduces readability.

Run 2

The code is difficult to read due to inconsistent indentation, commented-out debug statements, and mixed action granularity. The main loop structure is identifiable, but lines like 'd_Data = (*d_data) + slice * data_slice_size;' combine pointer arithmetic and assignment. Several lines (cutilSafeCall, padKernel, cufftSafeCall) are multiple actions or function calls without consistent spacing. Nesting is shallow, which is good, but the flow is interrupted by inline comments, debug checks, and inconsistent capitalization. Some variable names are clear, but comments do not consistently explain intent. Overall, the code requires effort to parse and would benefit from systematic formatting and removal of stale comments.

Run 3

The code has several readability issues. The structure is somewhat organized but suffers from inconsistent indentation, commented-out debug lines scattered throughout, and mixed brace styles. Nesting is minimal (one main loop), which is positive, but the loop body contains many operations with no visual separation between logical steps. Intent is partially obscured by cryptic function names like 'padDataClampToBorder' and 'modulateAndNormalize' without clear documentation. The code length is reasonable but contains multiple unnecessary commented-out fprintf statements and redundant synchronize calls. Action granularity is mixed - some lines perform multiple operations (pointer arithmetic with multiple additions), while others are properly separated. Reading flow is disrupted by inconsistent spacing, alignment, and the presence of commented debug code that breaks visual continuity.

Run 1

Code Structure: The slice-processing loop is logically divided into pointer setup, padding, convolution, and cropping, followed by cleanup. Nesting: Shallow nesting makes control flow easy to follow. Clarity of intent: Stage comments and descriptive function names communicate the purpose, but dense argument lists and unexplained synchronization calls require domain knowledge. Code length: The implementation is reasonably concise, though commented-out logging and obsolete FIXME code add clutter. Action granularity: Most lines perform one action, but the inline null check and logging statement compress control flow. Reading flow: Processing stages follow a natural sequence, but inconsistent indentation, spacing, brace placement, and scattered debugging remnants interrupt scanning.

Run 2

Code Structure: The slice loop follows logical padding, convolution, and cropping stages, with cleanup afterward, but inconsistent formatting and commented-out debugging clutter the organization. Nesting: Shallow nesting—one loop and a simple conditional—makes control flow easy to follow. Clarity of intent: Stage comments and descriptive function names communicate the FFT convolution pipeline, although abbreviated variables and long positional argument lists require domain knowledge. Code length: The active code is reasonably concise, but obsolete logging and a commented FIXME add unnecessary length. Action granularity: Most lines perform one operation; the inline conditional logging statement slightly reduces consistency. Reading flow: Processing order is natural, but irregular indentation, inconsistent spacing, and scattered synchronization calls interrupt visual flow.

Run 3

Code Structure: The slice loop follows logical stages—pointer setup, padding, convolution, and cropping—with cleanup afterward. Nesting: Shallow nesting keeps control flow easy to follow. Clarity of intent: Stage comments and descriptive function names explain the overall purpose, but dense argument lists, abbreviated dimensions, and unexplained synchronization calls obscure details. Code length: The implementation is reasonably concise, though commented-out diagnostics and an obsolete FIXME add clutter. Action granularity: Most lines perform one action; the inline conditional logging statement is a minor exception. Reading flow: The processing sequence is natural, but inconsistent indentation, spacing, brace placement, and scattered debugging remnants interrupt scanning.