Skip to content

chore: clean-up - #14338

Merged
kgryte merged 3 commits into
developfrom
philipp/drift-stats-base-dists-frechet-2026-08-17
Aug 17, 2026
Merged

kgryte merged 3 commits into
developfrom
philipp/drift-stats-base-dists-frechet-2026-08-17

Conversation

@Planeshifter

Copy link
Copy Markdown
Member

Description

What is the purpose of this pull request?

This pull request normalizes three metadata/documentation inconsistencies in @stdlib/stats/base/dists/frechet where individual packages had drifted from the pattern shared by the rest of the namespace. No observable behavior, signatures, or test expectations change.

Namespace summary. stats/base/dists/frechet has 14 members (cdf, ctor, entropy, kurtosis, logcdf, logpdf, mean, median, mode, pdf, quantile, skewness, stdev, variance). Structural features (file tree, package.json/manifest.json shape, README section skeleton, test/benchmark/example naming) and semantic features (public signatures, return kind, validation prologue, error construction, JSDoc shape, dependencies) were extracted per package and compared at a 75% majority threshold (⌈14 × 0.75⌉ = 11). Features with a clear majority include the C-backed file layout, package.json structure, the distribution-level keywords cluster, and JSDoc shape within each of the two sub-templates. Features without a clear majority — the value-function vs. property-function split (factory.js, extra fixtures), @returns types, per-function dependencies, and per-function example counts — were excluded from drift analysis as semantically justified.

Three outliers cleared structural, semantic, and cross-reference validation:

pdf

pdf/package.json carried only frechet from the distribution-level keyword cluster, dropping weibull, inverse, extreme, and value. Fréchet is the inverse Weibull / Type-II extreme value distribution, so these are distribution-level descriptors, not function-specific ones: weibull/inverse/extreme appear in 13/14 members and value in 12/14. Restored the canonical frechet, weibull, inverse, extreme, value run.

quantile

quantile/package.json already carried weibull, inverse, and extreme but omitted value, splitting the "extreme value" descriptor that the sibling majority keeps intact (12/14). Added value after extreme.

logpdf

The outer JSDoc description in logpdf/lib/factory.js read "logarithm of the probability density function (PDF)", dropping "natural". The package's own lib/main.js and the file's inner private-function JSDoc both say "natural logarithm", the implementation uses ln, and 4/5 value-function siblings carry "natural" in their factory descriptions. Restored "natural" to match.

Related Issues

Does this pull request have any related issues?

None.

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request?

Corrections are grouped one commit per package for a per-package audit trail. Validation: each candidate passed a three-part review — a semantic review (intentional deviation vs. unintentional drift), a cross-reference review (no test, example, benchmark, or doctest pins the changed strings; keywords is never imported and the JSDoc text appears only in source/type/header files), and a structural review confirming the majority pattern is the one that should apply. Deliberately excluded: ctor (a pure-JS distribution class that legitimately lacks C infrastructure, manifest.json, and the ## C APIs section — a different package kind, not drift); the value-function/property-function sub-template differences; and mean/README.md, whose linked, qualified prose ([expected value][mean], α > 0) is used consistently throughout that README and is a stylistic choice rather than a mechanical one-line deviation.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance.

This PR was prepared with Claude Code: it extracted structural and semantic features across the frechet namespace, identified the majority pattern per feature, flagged the three deviating packages, and drafted the metadata/documentation corrections. Each correction was validated against the sibling majority and checked to ensure no tests or examples depend on the changed strings. A human should review before merge.



🤖 Generated with Claude Code

https://claude.ai/code/session_01L6FX3YNHq4yikJPVcoQDra


Generated by Claude Code

claude added 3 commits August 17, 2026 00:28
…s/frechet/logpdf`

The outer JSDoc leading description in `lib/factory.js` read "logarithm of
the probability density function (PDF)", dropping the word "natural". The
package's own `lib/main.js` description and the file's inner private-function
JSDoc both say "natural logarithm", and the implementation uses `ln`, so
"natural logarithm" is the accurate term. Restored "natural" to match, in
line with the value-function siblings whose factory descriptions carry it
(4/5).
…/frechet/pdf`

Added the distribution-level keywords `weibull`, `inverse`, `extreme`, and
`value` to `package.json`. Fréchet is the inverse Weibull / Type-II extreme
value distribution, so these descriptors apply to `pdf` as to its siblings.
Restores the canonical `frechet, weibull, inverse, extreme, value` keyword
run shared by the sibling majority (`weibull`/`inverse`/`extreme`: 13/14;
`value`: 12/14).
…et/quantile`

Added the `value` keyword to `package.json`, completing the "extreme value"
descriptor pair carried by the sibling majority (12/14). The package already
carried `weibull`, `inverse`, and `extreme`; only `value` was missing.
@stdlib-bot stdlib-bot added the Statistics Issue or pull request related to statistical functionality. label Aug 17, 2026
@stdlib-bot

Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
stats/base/dists/frechet/logpdf $\\color{green}326/326$
$\\color{green}+100.00\\%$
$\\color{green}27/27$
$\\color{green}+100.00\\%$
$\\color{green}4/4$
$\\color{green}+100.00\\%$
$\\color{green}326/326$
$\\color{green}+100.00\\%$
stats/base/dists/frechet/pdf $\\color{green}316/316$
$\\color{green}+100.00\\%$
$\\color{green}23/23$
$\\color{green}+100.00\\%$
$\\color{green}4/4$
$\\color{green}+100.00\\%$
$\\color{green}316/316$
$\\color{green}+100.00\\%$
stats/base/dists/frechet/quantile $\\color{green}300/300$
$\\color{green}+100.00\\%$
$\\color{green}27/27$
$\\color{green}+100.00\\%$
$\\color{green}4/4$
$\\color{green}+100.00\\%$
$\\color{green}300/300$
$\\color{green}+100.00\\%$

The above coverage report was generated for the changes in this PR.

@kgryte
kgryte marked this pull request as ready for review August 17, 2026 01:05
@kgryte
kgryte requested a review from a team August 17, 2026 01:05
@stdlib-bot stdlib-bot added the Needs Review A pull request which needs code review. label Aug 17, 2026
@kgryte kgryte changed the title chore: add missing keywords and correct a JSDoc description in @stdlib/stats/base/dists/frechet chore: clean-up Aug 17, 2026
@kgryte
kgryte merged commit 6e22696 into develop Aug 17, 2026
50 checks passed
@kgryte
kgryte deleted the philipp/drift-stats-base-dists-frechet-2026-08-17 branch August 17, 2026 01:07
@stdlib-bot stdlib-bot removed the Needs Review A pull request which needs code review. label Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Statistics Issue or pull request related to statistical functionality.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants