-
-
Notifications
You must be signed in to change notification settings - Fork 805
/
Copy pathrepl.txt
120 lines (91 loc) · 3.53 KB
/
repl.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
{{alias}}( N, x, strideX, mask, strideMask )
Computes the maximum value of a double-precision floating-point strided
array according to a mask, ignoring `NaN` values.
The `N` and `stride` parameters determine which elements are accessed at
runtime.
Indexing is relative to the first index. To introduce offsets, use a typed
array views.
If a `mask` array element is `0`, the corresponding element in `x` is
considered valid and included in computation.
If a `mask` array element is `1`, the corresponding element in `x` is
considered invalid/missing and excluded from computation.
If `N <= 0`, the function returns `NaN`.
Parameters
----------
N: integer
Number of indexed elements.
x: Float64Array
Input array.
strideX: integer
Index increment for `x`.
mask: Uint8Array
Mask array.
strideMask: integer
Index increment for `mask`.
Returns
-------
out: number
Maximum value.
Examples
--------
// Standard Usage:
> var x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 4.0, 2.0, NaN ] );
> var mask = new {{alias:@stdlib/array/uint8}}( [ 0, 0, 1, 0, 0 ] );
> {{alias}}( x.length, x, 1, mask, 1 )
2.0
// Using `N` and `stride` parameters:
> x = new {{alias:@stdlib/array/float64}}( [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0, 4.0 ] );
> mask = new {{alias:@stdlib/array/uint8}}( [ 0, 0, 0, 0, 0, 0, 1 ] );
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
> {{alias}}( N, x, 2, mask, 2 )
2.0
// Using view offsets:
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0, 4.0 ] );
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
> var mask0 = new {{alias:@stdlib/array/uint8}}( [ 0, 0, 0, 0, 0, 0, 1 ] );
> var mask1 = new {{alias:@stdlib/array/uint8}}( mask0.buffer, mask0.BYTES_PER_ELEMENT*1 );
> N = {{alias:@stdlib/math/base/special/floor}}( x0.length / 2 );
> {{alias}}( N, x1, 2, mask1, 2 )
2.0
{{alias}}.ndarray( N, x, strideX, offsetX, mask, strideMask, offsetMask )
Computes the maximum value of a double-precision floating-point strided
array according to a mask, ignoring `NaN` values and using alternative
indexing semantics.
While typed array views mandate a view offset based on the underlying
buffer, the `offset` parameter supports indexing semantics based on a
starting index.
Parameters
----------
N: integer
Number of indexed elements.
x: Float64Array
Input array.
strideX: integer
Index increment for `x`.
offsetX: integer
Starting index for `x`.
mask: Uint8Array
Mask array.
strideMask: integer
Index increment for `mask`.
offsetMask: integer
Starting index for `mask`.
Returns
-------
out: number
Maximum value.
Examples
--------
// Standard Usage:
> var x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 2.0, 4.0, NaN ] );
> var mask = new {{alias:@stdlib/array/uint8}}( [ 0, 0, 0, 1, 0 ] );
> {{alias}}.ndarray( x.length, x, 1, 0, mask, 1, 0 )
2.0
// Using offset parameter:
> x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0, 4.0 ] );
> mask = new {{alias:@stdlib/array/uint8}}( [ 0, 0, 0, 0, 0, 0, 1 ] );
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
> {{alias}}.ndarray( N, x, 2, 1, mask, 2, 1 )
2.0
See Also
--------