Skip to content

Latest commit

 

History

History
157 lines (98 loc) · 4.41 KB

File metadata and controls

157 lines (98 loc) · 4.41 KB

countIfs

Perform element-wise evaluation of one or more input arrays according to provided predicate functions and count the number of elements for which all predicates respectively return true.

Usage

var countIfs = require( '@stdlib/array/base/count-ifs' );

countIfs( x0, predicate0[, x1, predicate1[, x2, predicate2[, ...args]]] )

Performs element-wise evaluation of one or more input arrays according to provided predicate functions and counts the number of elements for which all predicates respectively return true.

function predicate0( value ) {
    return ( value > 0 );
}

function predicate1( value ) {
    return ( value < 3 );
}

var x0 = [ 0, 1, 0, 1, 2 ];
var x1 = [ 2, 3, 1, 2, 5 ];

var out = countIfs( x0, predicate0, x1, predicate1 );
// returns 1

The function has the following parameters:

  • x0: first input array.
  • predicate0: first predicate function.
  • x1: second input array (optional).
  • predicate1: second predicate function (optional).
  • x2: third input array (optional).
  • predicate2: third predicate function (optional).
  • args: additional input arrays and corresponding predicate functions (optional).

Each predicate function is provided three arguments:

  • value: current array element.
  • index: current array element index.
  • arr: the corresponding input array.

Notes

  • The function assumes that all input arrays have the same length.
  • The function supports array-like objects supporting the accessor protocol (e.g., Complex128Array, Complex64Array, etc).

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var isPositiveInteger = require( '@stdlib/assert/is-positive-integer' ).isPrimitive;
var isNegativeInteger = require( '@stdlib/assert/is-negative-integer' ).isPrimitive;
var naryFunction = require( '@stdlib/utils/nary-function' );
var countIfs = require( '@stdlib/array/base/count-ifs' );

var x = discreteUniform( 10, -5, 5, {
    'dtype': 'int32'
});
console.log( x );

var y = discreteUniform( 10, -5, 5, {
    'dtype': 'int32'
});
console.log( y );

var out = countIfs( x, naryFunction( isPositiveInteger, 1 ), y, naryFunction( isNegativeInteger, 1 ) );
console.log( out );