Skip to content

Commit 72bf083

Browse files
authored
refactor: update benchmarks and test fixtures in math/base/special/ahavercosf
PR-URL: #3118 Ref: fc38ed8 Private-ref: stdlib-js/todo#2298 Reviewed-by: Athan Reines <[email protected]> Signed-off-by: Gunj Joshi <[email protected]>
1 parent 163a3e7 commit 72bf083

File tree

17 files changed

+124
-77
lines changed

17 files changed

+124
-77
lines changed

lib/node_modules/@stdlib/math/base/special/ahavercosf/benchmark/benchmark.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @license Apache-2.0
33
*
4-
* Copyright (c) 2018 The Stdlib Authors.
4+
* Copyright (c) 2024 The Stdlib Authors.
55
*
66
* Licensed under the Apache License, Version 2.0 (the "License");
77
* you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var randu = require( '@stdlib/random/array/uniform' );
2525
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2626
var pkg = require( './../package.json' ).name;
2727
var ahavercosf = require( './../lib' );
@@ -34,10 +34,11 @@ bench( pkg, function benchmark( b ) {
3434
var y;
3535
var i;
3636

37+
x = randu( 100, 0.0, 1.0 );
38+
3739
b.tic();
3840
for ( i = 0; i < b.iterations; i++ ) {
39-
x = randu();
40-
y = ahavercosf( x );
41+
y = ahavercosf( x[ i % x.length ] );
4142
if ( isnanf( y ) ) {
4243
b.fail( 'should not return NaN' );
4344
}

lib/node_modules/@stdlib/math/base/special/ahavercosf/benchmark/benchmark.native.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var randu = require( '@stdlib/random/array/uniform' );
2626
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2727
var tryRequire = require( '@stdlib/utils/try-require' );
2828
var pkg = require( './../package.json' ).name;
@@ -43,10 +43,11 @@ bench( pkg+'::native', opts, function benchmark( b ) {
4343
var y;
4444
var i;
4545

46+
x = randu( 100, 0.0, 1.0 );
47+
4648
b.tic();
4749
for ( i = 0; i < b.iterations; i++ ) {
48-
x = randu();
49-
y = ahavercosf( x );
50+
y = ahavercosf( x[ i % x.length ] );
5051
if ( isnanf( y ) ) {
5152
b.fail( 'should not return NaN' );
5253
}

lib/node_modules/@stdlib/math/base/special/ahavercosf/benchmark/c/Makefile

Lines changed: 60 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#/
22
# @license Apache-2.0
33
#
4-
# Copyright (c) 2018 The Stdlib Authors.
4+
# Copyright (c) 2024 The Stdlib Authors.
55
#
66
# Licensed under the Apache License, Version 2.0 (the "License");
77
# you may not use this file except in compliance with the License.
@@ -16,14 +16,15 @@
1616
# limitations under the License.
1717
#/
1818

19-
2019
# VARIABLES #
2120

2221
ifndef VERBOSE
2322
QUIET := @
23+
else
24+
QUIET :=
2425
endif
2526

26-
# Determine the OS:
27+
# Determine the OS ([1][1], [2][2]).
2728
#
2829
# [1]: https://en.wikipedia.org/wiki/Uname#Examples
2930
# [2]: http://stackoverflow.com/a/27776822/2225624
@@ -36,6 +37,10 @@ ifneq (, $(findstring MSYS,$(OS)))
3637
else
3738
ifneq (, $(findstring CYGWIN,$(OS)))
3839
OS := WINNT
40+
else
41+
ifneq (, $(findstring Windows_NT,$(OS)))
42+
OS := WINNT
43+
endif
3944
endif
4045
endif
4146
endif
@@ -54,7 +59,7 @@ CFLAGS ?= \
5459
-Wall \
5560
-pedantic
5661

57-
# Determine whether to generate [position independent code][1]:
62+
# Determine whether to generate position independent code ([1][1], [2][2]).
5863
#
5964
# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options
6065
# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option
@@ -64,43 +69,77 @@ else
6469
fPIC ?= -fPIC
6570
endif
6671

72+
# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`):
73+
INCLUDE ?=
74+
75+
# List of source files:
76+
SOURCE_FILES ?=
77+
78+
# List of libraries (e.g., `-lopenblas -lpthread`):
79+
LIBRARIES ?=
80+
81+
# List of library paths (e.g., `-L /foo/bar -L /beep/boop`):
82+
LIBPATH ?=
83+
6784
# List of C targets:
6885
c_targets := benchmark.out
6986

7087

71-
# TARGETS #
88+
# RULES #
7289

73-
# Default target.
90+
#/
91+
# Compiles source files.
7492
#
75-
# This target is the default target.
76-
93+
# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`)
94+
# @param {string} [CFLAGS] - C compiler options
95+
# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
96+
# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`)
97+
# @param {string} [SOURCE_FILES] - list of source files
98+
# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`)
99+
# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`)
100+
#
101+
# @example
102+
# make
103+
#
104+
# @example
105+
# make all
106+
#/
77107
all: $(c_targets)
78108

79109
.PHONY: all
80110

81-
82-
# Compile C source.
111+
#/
112+
# Compiles C source files.
83113
#
84-
# This target compiles C source files.
85-
114+
# @private
115+
# @param {string} CC - C compiler (e.g., `gcc`)
116+
# @param {string} CFLAGS - C compiler options
117+
# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
118+
# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`)
119+
# @param {string} SOURCE_FILES - list of source files
120+
# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`)
121+
# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`)
122+
#/
86123
$(c_targets): %.out: %.c
87-
$(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $< -lm
88-
124+
$(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES)
89125

90-
# Run a benchmark.
126+
#/
127+
# Runs compiled benchmarks.
91128
#
92-
# This target runs a benchmark.
93-
129+
# @example
130+
# make run
131+
#/
94132
run: $(c_targets)
95133
$(QUIET) ./$<
96134

97135
.PHONY: run
98136

99-
100-
# Perform clean-up.
137+
#/
138+
# Removes generated files.
101139
#
102-
# This target removes generated files.
103-
140+
# @example
141+
# make clean
142+
#/
104143
clean:
105144
$(QUIET) -rm -f *.o *.out
106145

lib/node_modules/@stdlib/math/base/special/ahavercosf/benchmark/c/benchmark.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @license Apache-2.0
33
*
4-
* Copyright (c) 2018 The Stdlib Authors.
4+
* Copyright (c) 2024 The Stdlib Authors.
55
*
66
* Licensed under the Apache License, Version 2.0 (the "License");
77
* you may not use this file except in compliance with the License.
@@ -90,15 +90,18 @@ static float rand_float( void ) {
9090
*/
9191
static double benchmark( void ) {
9292
double elapsed;
93-
float x;
94-
float y;
93+
float x[ 100 ];
9594
double t;
95+
float y;
9696
int i;
9797

98+
for ( i = 0; i < 100; i++ ) {
99+
x[ i ] = rand_float();
100+
}
101+
98102
t = tic();
99103
for ( i = 0; i < ITERATIONS; i++ ) {
100-
x = rand_float();
101-
y = 2.0f * acosf( sqrtf( x ) );
104+
y = 2.0f * acosf( sqrtf( x[ i % 100 ] ) );
102105
if ( y != y ) {
103106
printf( "should not return NaN\n" );
104107
break;

lib/node_modules/@stdlib/math/base/special/ahavercosf/benchmark/c/native/benchmark.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,18 @@ static float rand_float( void ) {
9191
*/
9292
static double benchmark( void ) {
9393
double elapsed;
94-
float x;
95-
float y;
94+
float x[ 100 ];
9695
double t;
96+
float y;
9797
int i;
9898

99+
for ( i = 0; i < 100; i++ ) {
100+
x[ i ] = rand_float();
101+
}
102+
99103
t = tic();
100104
for ( i = 0; i < ITERATIONS; i++ ) {
101-
x = rand_float();
102-
y = stdlib_base_ahavercosf( x );
105+
y = stdlib_base_ahavercosf( x[ i % 100 ] );
103106
if ( y != y ) {
104107
printf( "should not return NaN\n" );
105108
break;

lib/node_modules/@stdlib/math/base/special/ahavercosf/docs/repl.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
{{alias}}( x )
3-
Computes the inverse half-value versed cosine of a
4-
single-precision floating-point number.
3+
Computes the inverse half-value versed cosine of a single-
4+
precision floating-point number.
55

66
The inverse half-value versed cosine is defined as `2*acos(sqrt(x))`.
77

lib/node_modules/@stdlib/math/base/special/ahavercosf/docs/types/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* @license Apache-2.0
33
*
4-
* Copyright (c) 2019 The Stdlib Authors.
4+
* Copyright (c) 2024 The Stdlib Authors.
55
*
66
* Licensed under the Apache License, Version 2.0 (the "License");
77
* you may not use this file except in compliance with the License.

lib/node_modules/@stdlib/math/base/special/ahavercosf/docs/types/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* @license Apache-2.0
33
*
4-
* Copyright (c) 2019 The Stdlib Authors.
4+
* Copyright (c) 2024 The Stdlib Authors.
55
*
66
* Licensed under the Apache License, Version 2.0 (the "License");
77
* you may not use this file except in compliance with the License.

lib/node_modules/@stdlib/math/base/special/ahavercosf/include/stdlib/math/base/special/ahavercosf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ extern "C" {
2727
#endif
2828

2929
/**
30-
* Compute the inverse half-value versed cosine of a single-precision floating-point number.
30+
* Computes the inverse half-value versed cosine of a single-precision floating-point number.
3131
*/
3232
float stdlib_base_ahavercosf( const float x );
3333

lib/node_modules/@stdlib/math/base/special/ahavercosf/lib/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @license Apache-2.0
33
*
4-
* Copyright (c) 2018 The Stdlib Authors.
4+
* Copyright (c) 2024 The Stdlib Authors.
55
*
66
* Licensed under the Apache License, Version 2.0 (the "License");
77
* you may not use this file except in compliance with the License.

0 commit comments

Comments
 (0)