// Copyright 2010 The Code Cavern

void bda_and_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=y&z;
    xp[i]=x;}
return;}

void bda_xor_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=y^z;
    xp[i]=x;}
return;}

void bda_or_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=y|z;
    xp[i]=x;}
return;}

void bda_nand_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=~(y&z);
    xp[i]=x;}
return;}

void bda_nxor_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=~(y^z);
    xp[i]=x;}
return;}

void bda_nor_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=~(y|z);
    xp[i]=x;}
return;}

void bda_andn_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=y&(~z);
    xp[i]=x;}
return;}

// NOTE This function is the same as bda_nxor_n
void bda_xorn_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=y^(~z);
    xp[i]=x;}
return;}

void bda_orn_n(bda_ptr xp,bda_srcptr yp,bda_srcptr zp,bda_len n)
{bda_len i;bda_digit x,y,z;

for(i=0;i<n;i++)
   {y=yp[i];
    z=zp[i];
    x=y|(~z);
    xp[i]=x;}
return;}

