int main() { int i; vsip_vview_bl *blA; vsip_vview_bl *blB; vsip_vview_bl *andBl; vsip_scalar_bl vsip_false = 0; vsip_scalar_bl vsip_true = !vsip_false; vsip_init((void *)0); blA = vsip_vcreate_bl(L, VSIP_MEM_NONE); blB = vsip_vcreate_bl(L, VSIP_MEM_NONE); andBl = vsip_vcreate_bl(L, VSIP_MEM_NONE); /* Make up some data */ vsip_vput_bl(blA,0,vsip_false); vsip_vput_bl(blB,0,vsip_false); vsip_vput_bl(blA,1,vsip_false); vsip_vput_bl(blB,1,vsip_true); vsip_vput_bl(blA,2,vsip_true); vsip_vput_bl(blB,2,vsip_false); vsip_vput_bl(blA,3,vsip_true); vsip_vput_bl(blB,3,vsip_true); /* do a boolean AND of A with B */ vsip_vand_bl(blA,blB,andBl); /* print the results */ printf(" A B => A and B\n"); for(i = 0; i<L; i++) { printf("%5s %5s %5s \n", vsip_vget_bl(blA,i) ? "True ":"False", vsip_vget_bl(blB,i) ? "True ":"False", vsip_vget_bl(andBl,i) ? "True ":"False"); } /* recover allocated memory */ vsip_blockdestroy_bl(vsip_vdestroy_bl(blA)); vsip_blockdestroy_bl(vsip_vdestroy_bl(blB)); vsip_blockdestroy_bl(vsip_vdestroy_bl(andBl)); vsip_finalize((void *)0); return 0; }
void VU_vprintm_bl( vsip_vview_bl *X) { vsip_length L = vsip_vgetlength_bl(X); vsip_index vi; vsip_scalar_bl x; printf("[\n"); for(vi=0; vi<L; vi++){ x=vsip_vget_bl(X,vi); x = (x == VSIP_FALSE) ? 0 : 1; printf("%1d %s",x,";"); } printf("];\n"); return; }