Sample
Dorn/cuda/20
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 17.5Δ 9.7 |
| Scalabrino | 0.472 | 0–1; higher is more readable | 37.2Δ 29.4 |
| Dorn | 0.297 | 0–1; higher is more readable | 23.1Δ 15.3 |
| Mi | 0.036 | 0–1; higher is more readable | 5.6Δ 2.2 |
| LLOC | 28 | Logical lines; fewer is more readable | 15.2Δ 7.4 |
| DeepSeek V4 Pro | 8.33 | 0–20; mean of three runs | 31.2Δ 23.4 |
| GPT-6.1 Sol | 13 | 0–20; mean of three runs | 30.6Δ 22.8 |
| BTTF | 0.389 | 0–1; higher is more readable | 22.8Δ 15.0 |
| Human | 2.29 | 1–5; original rating | 7.8 |
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. | 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.
| Score | 0.472 |
|---|
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. | 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.
| Score | 0.036 |
|---|
| Score | 28 |
|---|
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.