aboutsummaryrefslogtreecommitdiff
path: root/contrib/bit/vartest.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bit/vartest.c')
-rw-r--r--contrib/bit/vartest.c322
1 files changed, 166 insertions, 156 deletions
diff --git a/contrib/bit/vartest.c b/contrib/bit/vartest.c
index f07f5c5b833..7725f6bbd30 100644
--- a/contrib/bit/vartest.c
+++ b/contrib/bit/vartest.c
@@ -2,173 +2,183 @@
#include "varbit.h"
#include <stdio.h>
-void print_details (unsigned char *s);
+void print_details(unsigned char *s);
+
+const int numb = 8;
-const int numb = 8;
/*
const char *b[] = { "B0010", "B11011011", "B0001", "X3F12", "X27", "B",
- "X11", "B100111"};
+ "X11", "B100111"};
int atttypmod[] = {-1, -1, -1,-1,-1,-1,-1,-1 };
*/
-const char *b[] = { "B0010", "B11011011", "B10001", "X3D12", "X27", "B",
- "X11", "B100111"};
-int atttypmod[] = { 7, 9, 6, 18, 11, 6, -1, -1 };
+const char *b[] = {"B0010", "B11011011", "B10001", "X3D12", "X27", "B",
+"X11", "B100111"};
+int atttypmod[] = {7, 9, 6, 18, 11, 6, -1, -1};
-void print_details (unsigned char *s)
+void
+print_details(unsigned char *s)
{
- int i;
- printf ("Length in bytes : %d\n",VARSIZE(s));
- printf ("Length of bitstring: %d\n",VARBITLEN(s));
- for (i=8; i<VARSIZE(s); i++)
- printf ("%X%X ",s[i]>>4,s[i]&0xF);
- printf("\n");
+ int i;
+
+ printf("Length in bytes : %d\n", VARSIZE(s));
+ printf("Length of bitstring: %d\n", VARBITLEN(s));
+ for (i = 8; i < VARSIZE(s); i++)
+ printf("%X%X ", s[i] >> 4, s[i] & 0xF);
+ printf("\n");
}
int
-main ()
+main()
{
- int i, j;
- char *s[numb];
-
- for (i=0; i<numb; i++) {
- printf ("Input: %s\n",b[i]);
- s[i] = zpbitin(b[i], 0, atttypmod[i]);
- //print_details(s[i]);
- printf ("%s = %s\n",zpbitout(s[i]),zpbitsout(s[i]));
- }
-
- printf ("\nCOMPARISONS:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s <=> %s = %d\n",zpbitsout(s[i]),zpbitsout(s[j]),
- bitcmp(s[i],s[j]));
-
- printf ("\nCONCATENATION:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s || %s = %s\n",zpbitsout(s[i]),zpbitsout(s[j]),
- zpbitsout(bitcat(s[i],s[j])));
-
- printf("\nSUBSTR:\n");
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),1,8,
- zpbitsout(bitsubstr(s[3],1,8)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),9,8,
- zpbitsout(bitsubstr(s[3],9,8)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),1,9,
- zpbitsout(bitsubstr(s[3],1,9)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),3,5,
- zpbitsout(bitsubstr(s[3],3,5)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),3,9,
- zpbitsout(bitsubstr(s[3],3,9)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),3,17,
- zpbitsout(bitsubstr(s[3],3,17)));
- printf ("\nLOGICAL AND:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s & %s = %s\n",zpbitsout(s[i]),zpbitsout(s[j]),
- zpbitsout(bitand(s[i],s[j])));
-
- printf ("\nLOGICAL OR:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s | %s = %s\n",zpbitsout(s[i]),zpbitsout(s[j]),
- zpbitsout(bitor(s[i],s[j])));
-
- printf ("\nLOGICAL XOR:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s ^ %s = %s\n",zpbitsout(s[i]),zpbitsout(s[j]),
- zpbitsout(bitxor(s[i],s[j])));
-
- printf ("\nLOGICAL NOT:\n");
- for (i=0; i<numb; i++)
- printf("~%s = %s\n",zpbitsout(s[i]),zpbitsout(bitnot(s[i])));
-
-
- printf ("\nSHIFT LEFT:\n");
- for (i=0; i<numb; i++) {
- printf("%s\n",zpbitsout(s[i]));
- for (j=0; j<=VARBITLEN(s[i]); j++)
- printf("\t%3d\t%s\n",j,zpbitsout(bitshiftleft(s[i],j)));
- }
-
- printf ("\nSHIFT RIGHT:\n");
- for (i=0; i<numb; i++) {
- printf("%s\n",zpbitsout(s[i]));
- for (j=0; j<=VARBITLEN(s[i]); j++)
- printf("\t%3d\t%s\n",j,zpbitsout(bitshiftright(s[i],j)));
- }
-
- printf ("\n\n ********** VARYING **********\n");
- for (i=0; i<numb; i++) {
- printf ("Input: %s\n",b[i]);
- s[i] = varbitin(b[i], 0, atttypmod[i]);
- /*print_details(s);*/
- printf ("%s\n",zpbitout(s[i]));
- printf ("%s\n",zpbitsout(s[i]));
- }
-
- printf ("\nCOMPARISONS:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s <=> %s = %d\n",zpbitsout(s[i]),zpbitsout(s[j]),
- bitcmp(s[i],s[j]));
-
- printf ("\nCONCATENATION:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s || %s = %s\n",zpbitsout(s[i]),zpbitsout(s[j]),
- zpbitsout(bitcat(s[i],s[j])));
-
- printf("\nSUBSTR:\n");
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),1,8,
- zpbitsout(bitsubstr(s[3],1,8)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),9,8,
- zpbitsout(bitsubstr(s[3],9,8)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),1,9,
- zpbitsout(bitsubstr(s[3],1,9)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),3,5,
- zpbitsout(bitsubstr(s[3],3,5)));
- printf("%s (%d,%d) => %s\n",zpbitsout(s[3]),3,9,
- zpbitsout(bitsubstr(s[3],3,9)));
- printf("%s (%d,%d) => %s (%s)\n",zpbitsout(s[3]),3,17,
- zpbitsout(bitsubstr(s[3],3,17)),zpbitsout(bitsubstr(s[3],3,17)));
- printf ("\nLOGICAL AND:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s & %s = %s\n",zpbitsout(s[i]),zpbitsout(s[j]),
- zpbitsout(bitand(s[i],s[j])));
-
- printf ("\nLOGICAL OR:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s | %s = %s\n",zpbitsout(s[i]),zpbitsout(s[j]),
- zpbitsout(bitor(s[i],s[j])));
-
- printf ("\nLOGICAL XOR:\n");
- for (i=0; i<numb; i++)
- for (j=i+1; j<numb; j++)
- printf("%s ^ %s = %s\n",zpbitsout(s[i]),zpbitsout(s[j]),
- zpbitsout(bitxor(s[i],s[j])));
-
- printf ("\nLOGICAL NOT:\n");
- for (i=0; i<numb; i++)
- printf("~%s = %s\n",zpbitsout(s[i]),zpbitsout(bitnot(s[i])));
-
-
- printf ("\nSHIFT LEFT:\n");
- for (i=0; i<numb; i++) {
- printf("%s\n",zpbitsout(s[i]));
- for (j=0; j<=VARBITLEN(s[i]); j++)
- printf("\t%3d\t%s\n",j,zpbitsout(bitshiftleft(s[i],j)));
- }
-
- printf ("\nSHIFT RIGHT:\n");
- for (i=0; i<numb; i++) {
- printf("%s\n",zpbitsout(s[i]));
- for (j=0; j<=VARBITLEN(s[i]); j++)
- printf("\t%3d\t%s\n",j,zpbitsout(bitshiftright(s[i],j)));
- }
+ int i,
+ j;
+ char *s[numb];
+
+ for (i = 0; i < numb; i++)
+ {
+ printf("Input: %s\n", b[i]);
+ s[i] = zpbitin(b[i], 0, atttypmod[i]);
+ //print_details(s[i]);
+ printf("%s = %s\n", zpbitout(s[i]), zpbitsout(s[i]));
+ }
+
+ printf("\nCOMPARISONS:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s <=> %s = %d\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ bitcmp(s[i], s[j]));
+
+ printf("\nCONCATENATION:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s || %s = %s\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ zpbitsout(bitcat(s[i], s[j])));
+
+ printf("\nSUBSTR:\n");
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 1, 8,
+ zpbitsout(bitsubstr(s[3], 1, 8)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 9, 8,
+ zpbitsout(bitsubstr(s[3], 9, 8)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 1, 9,
+ zpbitsout(bitsubstr(s[3], 1, 9)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 3, 5,
+ zpbitsout(bitsubstr(s[3], 3, 5)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 3, 9,
+ zpbitsout(bitsubstr(s[3], 3, 9)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 3, 17,
+ zpbitsout(bitsubstr(s[3], 3, 17)));
+ printf("\nLOGICAL AND:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s & %s = %s\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ zpbitsout(bitand(s[i], s[j])));
+
+ printf("\nLOGICAL OR:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s | %s = %s\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ zpbitsout(bitor(s[i], s[j])));
+
+ printf("\nLOGICAL XOR:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s ^ %s = %s\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ zpbitsout(bitxor(s[i], s[j])));
+
+ printf("\nLOGICAL NOT:\n");
+ for (i = 0; i < numb; i++)
+ printf("~%s = %s\n", zpbitsout(s[i]), zpbitsout(bitnot(s[i])));
+
+
+ printf("\nSHIFT LEFT:\n");
+ for (i = 0; i < numb; i++)
+ {
+ printf("%s\n", zpbitsout(s[i]));
+ for (j = 0; j <= VARBITLEN(s[i]); j++)
+ printf("\t%3d\t%s\n", j, zpbitsout(bitshiftleft(s[i], j)));
+ }
+
+ printf("\nSHIFT RIGHT:\n");
+ for (i = 0; i < numb; i++)
+ {
+ printf("%s\n", zpbitsout(s[i]));
+ for (j = 0; j <= VARBITLEN(s[i]); j++)
+ printf("\t%3d\t%s\n", j, zpbitsout(bitshiftright(s[i], j)));
+ }
+
+ printf("\n\n ********** VARYING **********\n");
+ for (i = 0; i < numb; i++)
+ {
+ printf("Input: %s\n", b[i]);
+ s[i] = varbitin(b[i], 0, atttypmod[i]);
+ /* print_details(s); */
+ printf("%s\n", zpbitout(s[i]));
+ printf("%s\n", zpbitsout(s[i]));
+ }
+
+ printf("\nCOMPARISONS:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s <=> %s = %d\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ bitcmp(s[i], s[j]));
+
+ printf("\nCONCATENATION:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s || %s = %s\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ zpbitsout(bitcat(s[i], s[j])));
+
+ printf("\nSUBSTR:\n");
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 1, 8,
+ zpbitsout(bitsubstr(s[3], 1, 8)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 9, 8,
+ zpbitsout(bitsubstr(s[3], 9, 8)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 1, 9,
+ zpbitsout(bitsubstr(s[3], 1, 9)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 3, 5,
+ zpbitsout(bitsubstr(s[3], 3, 5)));
+ printf("%s (%d,%d) => %s\n", zpbitsout(s[3]), 3, 9,
+ zpbitsout(bitsubstr(s[3], 3, 9)));
+ printf("%s (%d,%d) => %s (%s)\n", zpbitsout(s[3]), 3, 17,
+ zpbitsout(bitsubstr(s[3], 3, 17)), zpbitsout(bitsubstr(s[3], 3, 17)));
+ printf("\nLOGICAL AND:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s & %s = %s\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ zpbitsout(bitand(s[i], s[j])));
+
+ printf("\nLOGICAL OR:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s | %s = %s\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ zpbitsout(bitor(s[i], s[j])));
+
+ printf("\nLOGICAL XOR:\n");
+ for (i = 0; i < numb; i++)
+ for (j = i + 1; j < numb; j++)
+ printf("%s ^ %s = %s\n", zpbitsout(s[i]), zpbitsout(s[j]),
+ zpbitsout(bitxor(s[i], s[j])));
+
+ printf("\nLOGICAL NOT:\n");
+ for (i = 0; i < numb; i++)
+ printf("~%s = %s\n", zpbitsout(s[i]), zpbitsout(bitnot(s[i])));
+
+
+ printf("\nSHIFT LEFT:\n");
+ for (i = 0; i < numb; i++)
+ {
+ printf("%s\n", zpbitsout(s[i]));
+ for (j = 0; j <= VARBITLEN(s[i]); j++)
+ printf("\t%3d\t%s\n", j, zpbitsout(bitshiftleft(s[i], j)));
+ }
+
+ printf("\nSHIFT RIGHT:\n");
+ for (i = 0; i < numb; i++)
+ {
+ printf("%s\n", zpbitsout(s[i]));
+ for (j = 0; j <= VARBITLEN(s[i]); j++)
+ printf("\t%3d\t%s\n", j, zpbitsout(bitshiftright(s[i], j)));
+ }
}