Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions deps/checksums/highway_1_4_0_tar_gz/sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e72241ac9524bb653ae52ced768b508045d4438726a303f10181a38f764a453c
45 changes: 45 additions & 0 deletions deps/test/highway/test_install.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/**
* @license Apache-2.0
*
* Copyright (c) 2026 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#include "hwy/highway.h"

HWY_BEFORE_NAMESPACE();

namespace hwy {
namespace HWY_NAMESPACE {

int test_install( void ) {
#if HWY_HAVE_FLOAT64
using T = double;
#else
using T = float;
#endif
const ScalableTag<T> tag;
const auto value = Set( tag, static_cast<T>( 1.0 ) );

return ( GetLane( value ) == static_cast<T>( 1.0 ) ) ? 0 : 1;
}

} // namespace HWY_NAMESPACE
} // namespace hwy

HWY_AFTER_NAMESPACE();

int main( void ) {
return hwy::HWY_NAMESPACE::test_install();
}
23 changes: 23 additions & 0 deletions deps/test/highway/test_runtime.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/**
* @license Apache-2.0
*
* Copyright (c) 2026 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#include "hwy/targets.h"

int main( void ) {
return hwy::SupportedAndGeneratedTargets().empty() ? 1 : 0;
}
3 changes: 3 additions & 0 deletions docs/contributing/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ The following external libraries can be automatically downloaded and compiled fr

- [Boost][boost]: portable C++ libraries
- [Cephes][cephes]: C/C++ special functions math library
- [Highway][highway]: performance-portable SIMD library
- [OpenBLAS][openblas]: optimized BLAS library
- [Electron][electron]: framework for cross-platform desktop applications
- [Emscripten][emscripten]: LLVM to JavaScript compiler
Expand Down Expand Up @@ -406,6 +407,8 @@ For contribution guidelines, see the [contributing guide][stdlib-contributing].

[cephes]: http://www.moshier.net/#Cephes

[highway]: https://github.com/google/highway

[openblas]: https://github.com/xianyi/OpenBLAS

[electron]: https://www.electronjs.org/
Expand Down
14 changes: 14 additions & 0 deletions docs/links/database.json
Original file line number Diff line number Diff line change
Expand Up @@ -8274,6 +8274,20 @@
"linter"
]
},
"https://github.com/google/highway": {
"id": "highway",
"description": "Highway is a C++ library for performance-portable SIMD with runtime dispatch.",
"short_url": "",
"keywords": [
"highway",
"simd",
"vectorization",
"intrinsics",
"c++",
"runtime",
"dispatch"
]
},
"https://github.com/gotwarlost/istanbul": {
"id": "istanbul",
"description": "Istanbul is a JavaScript code coverage tool.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"license": "LICENSE",
"notice": "NOTICE",
"makefile": "Makefile",
"cmakelists": "CMakeLists.txt",
"description": "DESCRIPTION",
"require": "REQUIRE",
"authors": "AUTHORS",
Expand Down
17 changes: 17 additions & 0 deletions lib/node_modules/@stdlib/_tools/lint/filenames/test/test.lint.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,22 @@ tape( 'the function requires `Makefile` to be spelled exactly', function test( t
t.end();
});

tape( 'the function requires `CMakeLists.txt` to be spelled exactly', function test( t ) {
var values;
var names;

values = [
'cmakelists.txt',
'CMAKELISTS.txt',
'CMakeLists.cmake'
];

names = lint( values );

t.strictEqual( names.length, values.length, 'returns error messages' );
t.end();
});

tape( 'the function requires `LICENSE` to be spelled exactly', function test( t ) {
var values;
var names;
Expand Down Expand Up @@ -150,6 +166,7 @@ tape( 'the function returns an empty array if all filenames are valid', function
'data.data.txt',
'README.md',
'Makefile',
'CMakeLists.txt',
'DESCRIPTION',
'LICENSE',
'CITATION.cff'
Expand Down
52 changes: 42 additions & 10 deletions lib/node_modules/@stdlib/blas/ext/base/dsumpw/binding.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
# Target name should match the add-on export name:
'addon_target_name%': 'addon',

# SIMD backend:
'simd%': '',

# Set variables based on the host OS:
'conditions': [
[
Expand All @@ -53,9 +56,6 @@
# The target name should match the add-on export name:
'target_name': '<(addon_target_name)',

# Define dependencies:
'dependencies': [],

# Define directories which contain relevant include headers:
'include_dirs': [
# Local include directory:
Expand Down Expand Up @@ -95,17 +95,49 @@
'-std=c99',
],

# C++ specific compiler flags:
'cflags_cpp': [
# Specify the C++ standard to which a program is expected to conform:
'-std=c++11',
],

# Linker flags:
'ldflags': [],

# Apply conditions based on the host OS:
# Apply conditions based on the SIMD backend and host OS:
'conditions': [
[
'simd=="highway"',
{
'include_dirs': [
'<@(highway_include_dirs)',
],
'defines': [
'<@(highway_defines)',
],
'link_settings': {
'libraries': [
'<@(highway_libraries)',
],
},

# C++ specific compiler flags:
'cflags_cc': [
'-std=c++17',
'-ffp-contract=off',
'-fvisibility=hidden',
],
'xcode_settings': {
'CLANG_CXX_LANGUAGE_STANDARD': 'c++17',
'OTHER_CPLUSPLUSFLAGS': [
'$(inherited)',
'-ffp-contract=off',
'-fvisibility=hidden',
],
},
'msvs_settings': {
'VCCLCompilerTool': {
'AdditionalOptions': [
'/std:c++17',
],
},
},
},
], # end condition (simd=="highway")
[
'OS=="mac"',
{
Expand Down
34 changes: 30 additions & 4 deletions lib/node_modules/@stdlib/blas/ext/base/dsumpw/include.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,20 @@
{
# Define variables to be used throughout the configuration for all targets:
'variables': {
'variables': {
# SIMD backend:
'simd%': '',

# Path to a configured Highway build:
'highway_dir%': '',
},

# Source directory:
'src_dir': './src',

# Include directories:
'include_dirs': [
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).include; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{\'simd\':\'<(simd)\'},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).include; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
],

# Add-on destination directory:
Expand All @@ -37,17 +45,35 @@
# Source files:
'src_files': [
'<(src_dir)/addon.c',
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).src; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{\'simd\':\'<(simd)\'},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).src; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
],

# Library dependencies:
'libraries': [
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).libraries; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{\'simd\':\'<(simd)\'},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).libraries; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
],

# Library directories:
'library_dirs': [
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).libpath; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{\'simd\':\'<(simd)\'},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).libpath; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
],

# Highway runtime settings:
'conditions': [
[
'simd=="highway"',
{
'highway_include_dirs': [
'<!@(node -e "var arr = require(\'<(highway_dir)/highway.json\').include; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
],
'highway_defines': [
'<!@(node -e "var arr = require(\'<(highway_dir)/highway.json\').defines; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
],
'highway_libraries': [
'<!@(node -e "var arr = require(\'<(highway_dir)/highway.json\').libraries; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
],
},
], # end condition (simd=="highway")
], # end conditions
}, # end variables
}
48 changes: 47 additions & 1 deletion lib/node_modules/@stdlib/blas/ext/base/dsumpw/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"options": {
"task": "build",
"wasm": false
"wasm": false,
"simd": ""
},
"fields": [
{
Expand Down Expand Up @@ -29,6 +30,7 @@
{
"task": "build",
"wasm": false,
"simd": "",
"src": [
"./src/main.c"
],
Expand All @@ -47,9 +49,33 @@
"@stdlib/napi/create-double"
]
},
{
"task": "build",
"wasm": false,
"simd": "highway",
"src": [
"./src/simd/dsumpw_highway.cpp"
],
"include": [
"./include",
"./src/simd"
],
"libraries": [],
"libpath": [],
"dependencies": [
"@stdlib/napi/export",
"@stdlib/napi/argv",
"@stdlib/napi/argv-int64",
"@stdlib/napi/argv-strided-float64array",
"@stdlib/strided/base/stride2offset",
"@stdlib/blas/base/shared",
"@stdlib/napi/create-double"
]
},
{
"task": "benchmark",
"wasm": false,
"simd": "",
"src": [
"./src/main.c"
],
Expand All @@ -66,6 +92,7 @@
{
"task": "examples",
"wasm": false,
"simd": "",
"src": [
"./src/main.c"
],
Expand All @@ -82,6 +109,7 @@
{
"task": "build",
"wasm": true,
"simd": "",
"src": [
"./src/main.c"
],
Expand All @@ -94,6 +122,24 @@
"@stdlib/strided/base/stride2offset",
"@stdlib/blas/base/shared"
]
},
{
"task": "build",
"wasm": true,
"simd": "highway",
"src": [
"./src/simd/dsumpw_highway.cpp"
],
"include": [
"./include",
"./src/simd"
],
"libraries": [],
"libpath": [],
"dependencies": [
"@stdlib/strided/base/stride2offset",
"@stdlib/blas/base/shared"
]
}
]
}
Loading