• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sm00thix / ikpls
94%

Build:
DEFAULT BRANCH: main
Repo Added 04 Jan 2026 05:00AM UTC
Files 13
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
  • main
  • dev
  • optimize-q-dispatch
  • optimize-r-rotation
  • sklearn-conformant-wrapper
  • sklearn-fit-transform
  • support-python-3.10

16 Jul 2026 07:52PM UTC coverage: 94.449%. Remained the same
29529704838

push

github

web-flow
Optimize Q loading for the 2<=M<K branch (6.1.2) (#51)

## Summary

Micro-optimizes the improved Y-loadings `Q` update in the `2 <= M < K` branch of the
shared Improved Kernel PLS inner loop (`ikpls._impl.pls_steps`, used by
`ikpls.numpy.PLS` and `ikpls.fast_cross_validation.numpy.PLS`). Performance-only up to
a ~1-ULP floating-point reassociation; NumPy backend only.

```diff
- q = q * np.sqrt(eig_vals[-1]) / tTt
+ q = q * (np.sqrt(eig_vals[-1]) / tTt_val)

Folding the two scalar factors before the single array multiply — reusing the Python
float tTt_val (already materialized for the score-norm stability guard) and
precomputing sqrt(eig_vals[-1]) / tTt_val — turns two array ufuncs (a multiply and
a divide by the (1, 1) array tTt) into one array multiply, and drops the
(1, 1)-array broadcast.

Motivation

For small M this update is dominated by per-call NumPy dispatch, not arithmetic. Under
the previous form the improved element-wise Q was measurably slower in-fit than the
original matmul (rᵀ XᵀY)ᵀ / tTt at small M — the original's BLAS matmul stays
cache/branch-warm alongside the surrounding fit while the element-wise dispatch does not.
The reassociation roughly halves the dispatch and removes that regression.

1242 of 1315 relevant lines covered (94.45%)

11.86 hits per line

Relevant lines Covered
Build:
Build:
1315 RELEVANT LINES 1242 COVERED LINES
11.86 HITS PER LINE
Source Files on main
  • Tree
  • List 13
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
29529704838 main Optimize Q loading for the 2<=M<K branch (6.1.2) (#51) ## Summary Micro-optimizes the improved Y-loadings `Q` update in the `2 <= M < K` branch of the shared Improved Kernel PLS inner loop (`ikpls._impl.pls_steps`, used by `ikpls.numpy.PLS` ... push 16 Jul 2026 07:52PM UTC web-flow github
94.45
29293361446 main Optimize R rotation for the first two components (6.1.1) (#50) Step 3 of the shared Improved Kernel PLS inner loop now special-cases the first two components -- r_1 = w_1 (copy) and r_2 = w_2 - (p_1^T w_2) r_1 (a vectorized rank-1 update) -- usin... push 13 Jul 2026 11:33PM UTC web-flow github
94.45
28934299777 main sklearn PLS.fit_transform returns (X-scores, Y-scores); parameter constraints & type hints (6.1.0) (#49) * IKPLS 6.1.0: sklearn PLS.fit_transform returns (X-scores, Y-scores) ikpls.sklearn.PLS previously inherited TransformerMixin.fit_transform,... push 08 Jul 2026 10:02AM UTC web-flow github
94.43
28820311672 main Support python 3.10 (#48) * IKPLS 6.0.1: Python 3.10 support and typeguard-safe integer annotations Lower the minimum supported Python from 3.11 to 3.10 (requires-python = ">=3.10, <3.15"), add a 3.10 classifier, and add Python 3.10 to both CI t... push 06 Jul 2026 08:15PM UTC web-flow github
94.32
28707813976 main IKPLS 6.0.0: scikit-learn-conformant PLS wrapper, backend-named modules, ddof=0 default (#47) * IKPLS 6.0.0: scikit-learn-conformant PLS wrapper, backend-named modules, ddof=0 default This is a breaking major release. It adds a fully scikit-lear... push 04 Jul 2026 01:32PM UTC web-flow github
94.32
28470969820 main IKPLS 5.0.0 — JAX fast cross-validation, vmap, and uv migration (breaking) (#46) * Add JAX fast cross-validation and vmap CV; remove differentiable flag (5.0.0) BREAKING: Remove the `differentiable` constructor parameter from the JAX PLS classes... push 30 Jun 2026 08:02PM UTC web-flow github
93.53
21570824530 main Version bump to allow ReadTheDocs to include the JAX implementations in the stable release. push 01 Feb 2026 09:46PM UTC sm00thix github
93.24
21224650743 main Vectorized inner loop for computation of r in NumPy implementations (#45) push 21 Jan 2026 08:29PM UTC web-flow github
93.24
20752531430 main Make JAX an optional dependency. Allow direct import of submodules. (#44) push 06 Jan 2026 03:11PM UTC web-flow github
93.26
20715274919 main Added transform, fit_transform, and inverse_transform for NumPy and JAX implementations (#43) Added transform, fit_transform, and inverse_transform for NumPy and JAX implementations. Also updated documentation and type hints. Added typeguard to t... push 05 Jan 2026 12:42PM UTC web-flow github
93.21
See All Builds (25)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc