RWalib C Array Library User Guide > Relational Operations > alibNe
  

alibNe
Applies the != operator element-wise to scalar or array arguments. Like most of the relational operations, this routine returns a Boolean array of 0's and 1's. alibCount and alibFind can be used to count and retrieve the indices of the true values (the 1's). Often a Boolean array is combined with another as input to one of the logical array operations, which in turn produces another Boolean array. The PV-WAVE API for this routine is the operator NE.
Prototypes
void alibNeb( wvlong m, wvlong n, UCHAR *p, UCHAR *q, UCHAR *r )
void alibNes( wvlong m, wvlong n, short *p, short *q, UCHAR *r )
void alibNei( wvlong m, wvlong n, int *p, int *q, UCHAR *r )
void alibNel( wvlong m, wvlong n, wvlong *p, wvlong *q, UCHAR *r )
void alibNef( wvlong m, wvlong n, float *p, float *q, UCHAR *r )
void alibNed( wvlong m, wvlong n, double *p, double *q, UCHAR *r )
void alibNec( wvlong m, wvlong n, COMPLEX *p, COMPLEX *q, UCHAR *r )
void alibNez( wvlong m, wvlong n, DCOMPLEX *p, DCOMPLEX *q, UCHAR *r )
Parameters
m — (Input) The number of elements in the first array operand. A value of 0 indicates that the first operand is a scalar.
n — (Input) The number of elements in the second array operand. A value of 0 indicates that the second operand is a scalar. If both operands are arrays then n must equal m.
*p — (Input) The pointer to the first operand.
*q — (Input) The pointer to the second operand.
*r — (Input/Output) The destination array. On return, array r contains the the result of applying != to the two operands, element-wise. For UCHAR inputs this operation can be done in-place, i.e., r can equal p or q.
Example
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "alib.h"
void main() {
   /* make up some data for the examples */
   UCHAR *b;
   UCHAR b0[6]={2,0,1,0,2,0}, b1[6]={1,0,1,2,1,0};
   /* make output arrays */
   b = (UCHAR*)malloc(6*sizeof(UCHAR));
   printf( "\n\n show arrays b0 and b1" );
      alibinit( NULL, NULL, NULL, NULL );
      alibPrintArrayb( 1, 1, 1, 6, b0, NULL );
      alibPrintArrayb( 1, 1, 1, 6, b1, NULL );
   printf( "\n\n show where b0 does not equal b1[1]" );
      alibNeb( 6, 0, b0, &b1[1], b );
      alibPrintArrayb( 1, 1, 1, 6, b, NULL );
   printf( "\n\n show where b1 does not equal b0[2]" );
      alibNeb( 0, 6, &b0[2], b1, b );
      alibPrintArrayb( 1, 1, 1, 6, b, NULL );
   printf( "\n\n show where b1 does not equal b0" );
      alibNeb( 6, 6, b0, b1, b );
      alibPrintArrayb( 1, 1, 1, 6, b, NULL );
}
 
Output:
 
 show arrays b0 and b1
 
   2   0   1   0   2   0
 
   1   0   1   2   1   0
 
 show where b0 does not equal b1[1]
 
   1   0   1   0   1   0
 
 show where b1 does not equal b0[2]
 
   0   1   0   1   0   1
 
 show where b1 does not equal b0
 
   1   0   0   1   1   0

Version 2017.1
Copyright © 2019, Rogue Wave Software, Inc. All Rights Reserved.