You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Have questions about stdlib? Need help fixing a bug, figuring out what to do next, or just looking for feedback? Join our weekly office hours to connect with project maintainers, stay updated on the latest project news, and chat with other community members. This is a great opportunity to ask questions, share ideas, and engage directly with the stdlib team.
Should the byte order of the returned Uint32Array view be:
Host-OS dependent:view[0] is whichever word (high or low) comes first in memory on the current platform (little-endian vs big-endian),
or
Definitive:view[0] is always documented as HIGH (or always LOW)?
This affects how examples in the documentation should be written.
varUint64Array=require('@stdlib/array/uint64');varreinterpret=require('./../lib');// Define a 64-bit unsigned integer array:varx=newUint64Array([1,2,3,4,5,6,7,8]);// returns <Uint64Array>// Reinterpret as a `uint32` array:varview=reinterpret(x,0);// returns <Uint32Array>// Set view elements:view[0]=0;view[1]=0;// Get the first element of the 64-bit unsigned integer array:varu=x.get(0);// returns <Uint64>[ 0n ]console.log(u.toString());
This particular example is endianness-safe; setting both words to 0 zeroes the element no matter which index is high vs. low. But it doesn't actually demonstrate the indexing convention, and any example that sets a specific non-zero value (e.g., "set only the high word") would need to know which index means what.
varUint64Array=require('@stdlib/array/uint64');varreinterpret=require('./../lib');// Define a 64-bit unsigned integer array:varx=newUint64Array([1,2,3,4,5,6,7,8]);// returns <Uint64Array>// Reinterpret as a `uint32` array:varview=reinterpret(x,0);// returns <Uint32Array>// Set view elements:view[0]=0;view[1]=0;// Get the first element of the 64-bit unsigned integer array:varu=x.get(0);// e.g., returns <Uint64>[ 0n ]
These notes are likely imperfect, especially when it comes to spelling/function/package names
Meeting Purpose
To align on technical direction and unblock contributors.
Key Takeaways
NAN APIs will use separate out and count arrays, not structs, for better performance. This is blocked by the in-progress Int64Array PR and Node.js binding updates.
New contributors should focus on C ND-array wrappers for packages like blast-extended-base and stats, as this work is unblocked.
Athan will prioritize reviewing pending Level 3 BLAS PRs (e.g., strided-gemm-tr) after GSOC ends this week.
Follow-up PRs are the standard process for applying new best practices (e.g., benchmark structure, Int64Array views) to previously merged code.
Topics
NAN API Design
Problem:stats-strided APIs need to return heterogeneous types (e.g., float64 sum, int64 count).
Rejected Solution: Structs
Rationale: Creates non-contiguous data, hindering performance for subsequent operations.
Precedent: Structs are reserved for complex results objects (e.g., Z-test) that match user expectations.
Activity
DivitJain26 commentedon Aug 18, 2026
strided/base/reinterpret-uint64stdlib#14219Should the byte order of the returned
Uint32Arrayview be:view[0]is whichever word (high or low) comes first in memory on the current platform (little-endian vs big-endian),or
view[0]is always documented as HIGH (or always LOW)?This affects how examples in the documentation should be written.
This particular example is endianness-safe; setting both words to
0zeroes the element no matter which index is high vs. low. But it doesn't actually demonstrate the indexing convention, and any example that sets a specific non-zero value (e.g., "set only the high word") would need to know which index means what.0PrashantYadav0 commentedon Aug 18, 2026
Discussion on
Initial inspiration :
@stdlib/stats/strided/dztest— stdlib_stats_ztest_one_sample_float64_results@stdlib/stats/strided/dztest2— stdlib_stats_ztest_two_sample_float64_results@stdlib/stats/strided/sztest— stdlib_stats_ztest_one_sample_float32_results@stdlib/stats/strided/sztest2— stdlib_stats_ztest_two_sample_float32_resultsProject Idea:
nannsum/results/ ├── struct-factory/ - Layer 1: raw binary struct schema (dtype-parameterised) ├── factory/ - Layer 2: user-facing constructor factory (validates dtype, adds API) ├── float32/ - Layer 3a: pre-baked float32 constructor (shortcut for factory('float32')) ├── float64/ - Layer 3b: pre-baked float64 constructor (shortcut for factory('float64')) ├── to-json/ - Utility: serialize a results object to a plain JSON object └── to-string/ - Utility: serialize a results object to a human-readable stringExample for struct-factory:
Example for factory:
Example for
float32:kgryte commentedon Aug 18, 2026
kgryte commentedon Aug 18, 2026
batpigandme commentedon Aug 18, 2026
AI-Generated Summary
Caution
These notes are likely imperfect, especially when it comes to spelling/function/package names
Meeting Purpose
To align on technical direction and unblock contributors.
Key Takeaways
outandcountarrays, not structs, for better performance. This is blocked by the in-progressInt64ArrayPR and Node.js binding updates.blast-extended-baseandstats, as this work is unblocked.strided-gemm-tr) after GSOC ends this week.Int64Arrayviews) to previously merged code.Topics
NAN API Design
stats-stridedAPIs need to return heterogeneous types (e.g.,float64sum,int64count).d_nan_sum(..., out, offset_out, count, offset_count)Int64ArraySupport: Requires merging the in-progress PR by Nicole.Int32ArrayandInt64Arrayarguments.intMacro: The JS runtime needs a way to link to the CCBLAS_INTmacro.BLAS & SIMD Performance
strided-gemm-tr) are not on NPM.gemm-trgemm-tr, using the existinggemmmodule as a reference.Contributor Workflow & Best Practices
blast-extended-baseandstats.Int64Arrayviews toblastpackage (Siddharam).benchmark.native.jswithbenchmark.js(Ujjwal).dmask_mean).dmask_mean,dnanmask_mean).NaNConstant in C:0.0 / 0.0.Full transcript
Full office hours transcript