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

stillwater-sc / universal / 23216480936
85%
master: 84%

Build:
Build:
LAST BUILD BRANCH: feat/issue-1061-online-muldiv
DEFAULT BRANCH: master
Ran 17 Mar 2026 09:36PM UTC
Jobs 1
Files 627
Run time 1min
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

17 Mar 2026 09:08PM UTC coverage: 84.112% (-0.03%) from 84.144%
23216480936

push

github

web-flow
feat(blas): implement data file translation between type sets (#588)

* feat(blas): implement data file translation between type sets

Add translator that reads data files with a source type registry,
converts values through double intermediate, and writes with a
target type registry.

New files:
- translator.hpp: translate<SrcTypes, DstTypes>() function,
  type_map with make_mapping<Src, Dst>(), find_mapping()
- translation.cpp: test suite for identity, widening (float->double),
  narrowing (double->float), unmapped type, and multi-dataset

The translator enables converting data files between client type
sets (e.g., NVIDIA TF32 -> AMD BF16) without requiring both clients
to share the same type configurations.

Resolves #584

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(blas): replace double intermediate with direct type conversion

The translator was converting all values through double, which would
truncate dd (~32 digits) and qd (~64 digits) to ~15 digits.

Replace with a nested dispatch that reads source tokens as strings,
parses as SrcT, and converts directly to DstT via static_cast. This
uses each type's native conversion operators which preserve multi-
component values for dd/qd.

The blocktriple<> type is the ideal intermediate for types that
support it (cfloat, posit, fixpnt), but dd/qd do not yet implement
blocktriple conversion. Once they do, the translator can leverage
blocktriple<max(src_fbits, dst_fbits), REP> for lossless conversion.
For now, direct SrcT -> DstT conversion is correct and preserves
precision through the types' own assignment operators.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(blas): address CodeRabbit review on translator

1. Buffer output per dataset: write to ostringstream first, commit
   to output only on success. Failed source or destination dispatch
   skips the dataset without corrupting the output file.

2. Add bounds checks: nrParams > 16 from input returns false;
   dstN... (continued)

173 of 216 new or added lines in 2 files covered. (80.09%)

8 existing lines in 3 files now uncovered.

44015 of 52329 relevant lines covered (84.11%)

6021782.65 hits per line

Uncovered Changes

Lines Coverage ∆ File
34
71.9
linalg/data/translation.cpp
9
90.53
include/sw/blas/serialization/translator.hpp

Coverage Regressions

Lines Coverage ∆ File
5
50.45
-4.5% include/sw/universal/verification/posit_test_suite_randoms.hpp
2
89.8
-0.57% include/sw/universal/number/posito/posito_impl.hpp
1
81.25
-0.22% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 23216480936.1 17 Mar 2026 09:36PM UTC 627
84.11
GitHub Action Run
Source Files on build 23216480936
  • Tree
  • List 627
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23216480936
  • 98a50a69 on github
  • Prev Build on main (#23212981572)
  • Next Build on main (#23218775201)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc