Sample
int-7ca92c2bc86c-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.835 | 0–1; higher is more readable |
| Dorn | 0.345 | 0–1; higher is more readable |
| Mi | 0.619 | 0–1; higher is more readable |
| LLOC | 41 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 8 | 0–20; mean of three runs |
| GPT-6.1 Sol | 11.67 | 0–20; mean of three runs |
| BTTF | 0.285 | 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. | 3512.688 | −115.919 |
| 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.124 | −7.686 |
Intercept 8.87 + feature contributions = -67.135 (log-odds).
Score = sigmoid(-67.135) = 0.
| Score | 0.835 |
|---|
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.108 | +0.73 |
| 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.063 | +0.332 |
Intercept 0.07 + feature contributions = -0.643 (log-odds).
Score = sigmoid(-0.643) = 0.345.
| Score | 0.619 |
|---|
| Score | 41 |
|---|
Run 1
The code is highly obfuscated due to single-letter method and variable names (a, b, c, d, e, f, h, i, j, k, l, m, n, o, p), making it very difficult to understand intent at a glance. The structure is logical at a high level, but the lack of descriptive identifiers destroys clarity and reading flow. Nesting is mostly flat, which is good, but action granularity suffers in the complex e(BigInteger) method where bitwise operations are chained densely. The overall length is overly verbose due to comments that try to compensate for unclear naming, but with better names the code could be much shorter and self-documenting. The central algorithm in method e is especially hard to follow due to terse variables. This appears to be a deliberately minified version, which severely impacts readability despite being functionally correct. The score reflects moderate structure but critical failings in naming clarity and expressiveness.
Run 2
The code is structurally organized with clear sections for constants and helper methods, but readability is severely hampered by cryptic single-letter method and variable names (e.g., 'a', 'b', 'c', 'd', 'e', 'f'). This obscures intent and forces the reader to infer purpose from context. Nesting is generally shallow, and action granularity is mostly reasonable, with one operation per line in key sections. However, the dense bit-manipulation logic in method 'e' is hard to follow despite comments, due to unclear naming and complex shifts. The reading flow is disrupted by the need to constantly map abstract names to their actual roles. While comments explain some algorithms, the lack of meaningful identifiers makes the code feel more like obfuscated or minified code than maintainable source.
Run 3
The code has severe readability issues due to obfuscated naming. Methods are named a(), b(), c(), etc., and parameters use single letters like a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p. This makes the intent completely ambiguous without deep analysis. The structure is otherwise organized and the comments are excellent, explaining complex bit manipulations and rounding logic. However, the naming completely undermines clarity of intent and reading flow. Nesting is reasonable, and code length is appropriate for the complex operations, but the lack of meaningful identifiers makes it read like decompiled code. Action granularity is mostly fine. The comments partially compensate, but the code remains very hard to follow because you cannot map the explanation to the obfuscated variable names naturally.
Run 1
Code Structure: Constants and focused utility methods provide logical organization, though ONE_BITS is separated from related constants. Nesting: Mostly flat, with simple conditionals and early returns. Clarity of intent: Descriptive constants and detailed numerical comments help, but single-letter method and variable names severely obscure purpose. Several comments reference descriptive identifiers absent from the code, forcing readers to reconstruct their mappings. Code length: The implementation is reasonably concise; lengthy comments explain genuinely complex bit manipulation rather than unnecessary code. Action granularity: Most lines perform one action, although compound bitwise and rounding expressions require careful parsing. Reading flow: Consistent formatting and small methods support navigation, but opaque names, dense arithmetic, and mismatched comment terminology repeatedly interrupt comprehension.
Run 2
Code Structure: Constants and focused utility methods provide logical organization, although ONE_BITS is separated from related constants. Nesting: Mostly flat, with simple conditionals and early returns. Clarity of intent: Descriptive constants and detailed comments help, but single-letter method and variable names obscure purpose, especially in the BigInteger conversion. Comments reference meaningful variable names absent from the code, increasing interpretation effort. Code length: Implementation is reasonably concise; lengthy comments are justified by complex floating-point rounding logic. Action granularity: Statements generally perform one action per line, although bitwise expressions combine several conceptual operations. Reading flow: Consistent formatting and sequential conversion steps support reading, but cryptic identifiers and comment-to-code mismatches repeatedly interrupt comprehension.
Run 3
Code Structure: Constants and focused utility methods provide logical organization, though ONE_BITS appears after the methods. Nesting: Shallow conditionals and early returns keep complexity manageable. Clarity of intent: Descriptive constants and detailed comments explain floating-point operations, but single-letter method and variable names severely obscure purpose; some comments reference descriptive names absent from the code. Code length: The implementation is reasonably concise, with lengthy comments justified by intricate rounding logic. Action granularity: Most lines perform one operation, although compound bitwise expressions require careful interpretation. Reading flow: Consistent formatting and sequential computation help, but opaque identifiers, dense bit manipulation, and comments disconnected from actual variable names force frequent mental reconstruction.