Sample
int-5848ab3191b3-I13
Lower every eligible classic and enhanced for loop to a while loop
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.782 | 0–1; higher is more readable |
| Dorn | 0.355 | 0–1; higher is more readable |
| Mi | 0.6 | 0–1; higher is more readable |
| LLOC | 41 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 16.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs |
| BTTF | 0.579 | 0–1; higher is more readable |
Views
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. | 3526.302 | −116.368 |
| Source linesThe number of non-empty source lines. | 119 | +47.6 |
| 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.122 | −7.683 |
Intercept 8.87 + feature contributions = -67.581 (log-odds).
Score = sigmoid(-67.581) = 0.
| Score | 0.782 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 119 | −3.177 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 87 | +2.272 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 86 | −1.553 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 118.881 | +1.252 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 95.042 | +0.729 |
| 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. | 99.983 | −0.57 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.058 | +0.378 |
Intercept 0.07 + feature contributions = -0.598 (log-odds).
Score = sigmoid(-0.598) = 0.355.
| Score | 0.6 |
|---|
| Score | 41 |
|---|
Run 1
The code is well-structured, with clear separation of constants, helper methods, and a complex algorithm. Nesting is minimal, and each method has a single, focused purpose. Comments effectively explain non-obvious logic, especially in `bigToDouble`. Action granularity is mostly one action per line, though a few lines combine multiple operations (e.g., `bits |= x.signum() & SIGN_MASK;`). Reading flow is natural, with methods ordered logically from simple utilities to the complex conversion method. The only minor issues are the length of `bigToDouble` (which is necessary for its correctness) and the use of bitwise operations that require domain knowledge. Overall, readability is high for mathematically oriented code.
Run 2
The code is well-structured, with clear sections for constants, helper methods, and the main conversion routine. Nesting is minimal, with guard clauses and early returns contributing to a flat, readable flow. Intent is generally clear, especially in methods like isFinite, isNormal, and ensureNonNegative, while well-commented complex logic (bigToDouble, scaleNormalize) explains non-obvious bit manipulation. Code length is concise for its purpose, though bigToDouble is inherently long. Action granularity is mostly one action per line, with only minor multi-action lines (e.g., combined assignment and bitwise operations). Reading flow is logical: constants first, then simple helpers, then the complex core. Some domain-specific constants (e.g., ONE_BITS) could benefit from a brief comment, and a few lines bundle operations that could be split for clarity.
Run 3
The code is well-structured with clear sections for constants, helper methods, and core logic. It uses descriptive naming and reasonable comments explaining non-obvious algorithms. The nesting is mostly flat, with only a few simple conditionals. Intent is generally clear, especially in methods like `isFinite` and `ensureNonNegative`. The `bigToDouble` method is somewhat complex and lengthy but includes good explanatory comments. Most lines perform a single action, though some bit manipulation operations are dense. Reading flow is natural, with helper methods before their use. Minor deductions for the complexity of `bigToDouble` and some dense one-line bit manipulations that could benefit from being split into smaller steps for clarity.
Run 1
Code Structure: Well-organized utility class with focused methods and named constants; placing ONE_BITS with the other constants would improve consistency. Nesting: Minimal nesting, with early returns keeping the main conversion logic flat. Clarity of intent: Descriptive method names and detailed comments explain complex floating-point operations, though abbreviated variables and dense bitwise rounding expressions require specialist knowledge. Code length: Appropriately concise implementation; lengthy comments are mostly justified by the numerical subtleties. Action granularity: Statements generally perform one action per line, with only a few expressions combining several operations. Reading flow: Consistent formatting and sequential calculation stages make the code easy to follow, although the densely grouped imports and occasional imprecise terminology, such as the finite-value check's 'not a normal value' message, slightly reduce clarity.
Run 2
Code Structure: Well-organized utility class with named constants and focused methods, though ONE_BITS is separated from related constants. Nesting: Shallow conditionals and early returns keep control flow simple. Clarity of intent: Descriptive method names and detailed comments explain complex floating-point operations; abbreviated variables and dense rounding expressions require domain knowledge. Code length: Implementation is concise, with lengthy comments largely justified by the mathematical complexity. Action granularity: Most lines perform one operation, although some bitwise and boolean expressions combine several conceptual steps. Reading flow: Methods generally progress naturally from validation through calculation to return. Minor distractions include tightly packed imports, the potentially confusing 'not a normal value' validation message, and comments whose terminology does not always align precisely with the code.
Run 3
Code Structure: Well-organized utility class with named constants and focused methods; ONE_BITS would fit more naturally alongside the other constants. Nesting: Minimal nesting, with early returns keeping the main conversion method relatively flat. Clarity of intent: Descriptive method names and detailed comments explain the IEEE-754 operations and rounding, although abbreviated variables and dense bitwise expressions require specialist knowledge. Code length: Mostly concise; the longer bigToDouble method and its extensive comments are justified by the algorithm's complexity. Action granularity: Generally one operation per line, with only a few compound expressions combining several logical checks. Reading flow: Natural progression from constants to helpers and conversion logic, supported by explanatory comments. Minor formatting inconsistencies and a potentially confusing validation message ('not a normal value' for a finiteness check) slightly reduce readability.