#include<stdio.h>
#include<stdlib.h>
#define FNAMEV "pro32.v.pbm"
#define FNAMEP "pro32.p45.pbm"
#define FNAMEH "pro32.h.pbm"
#define FNAMEM "pro32.m45.pbm"
#define FNAMEW "vec.txt"
main (){
int i, j, p, q, sum[64], b[32][64], vec1[16], vec2[16], vec3[16], vec4[16];
char s[256];
FILE *fp;
fp=fopen(FNAMEV,"r");
if(fp==NULL){
printf("Can not open file ");
exit(1);
}
for(i=0; i<3; i++){
fgets(s, 256, fp);
}
for(j=0;j<64;j++){
for(i=0;i<32;i++){
fscanf(fp,"%d", &b[i][j]);
}
}
for(j=0;j<4;j++){
for(i=0;i<4;i++){
vec1[i+j*4]=0;
for(p=0;p<16;p++){
for(q=0;q<8;q++){
vec1[i+j*4]=vec1[i+j*4]+b[8*i+q][16*j+p];
}
}
}
}
fclose(fp);
fp=fopen(FNAMEP,"r");
if(fp==NULL){
printf("Can not open file ");
exit(1);
}
for(i=0; i<3; i++){
fgets(s, 256, fp);
}
for(j=0;j<64;j++){
for(i=0;i<32;i++){
fscanf(fp,"%d", &b[i][j]);
}
}
for(j=0;j<4;j++){
for(i=0;i<4;i++){
vec2[i+j*4]=0;
for(p=0;p<16;p++){
for(q=0;q<8;q++){
vec2[i+j*4]=vec2[i+j*4]+b[8*i+q][16*j+p];
}
}
}
}
fclose(fp);
fp=fopen(FNAMEH,"r");
if(fp==NULL){
printf("Can not open file ");
exit(1);
}
for(i=0; i<3; i++){
fgets(s, 256, fp);
}
for(j=0;j<64;j++){
for(i=0;i<32;i++){
fscanf(fp,"%d", &b[i][j]);
}
}
for(j=0;j<4;j++){
for(i=0;i<4;i++){
vec3[i+j*4]=0;
for(p=0;p<16;p++){
for(q=0;q<8;q++){
vec3[i+j*4]=vec3[i+j*4]+b[8*i+q][16*j+p];
}
}
}
}
fclose(fp);
fp=fopen(FNAMEM,"r");
if(fp==NULL){
printf("Can not open file ");
exit(1);
}
for(i=0; i<3; i++){
fgets(s, 256, fp);
}
for(j=0;j<64;j++){
for(i=0;i<32;i++){
fscanf(fp,"%d", &b[i][j]);
}
}
for(j=0;j<4;j++){
for(i=0;i<4;i++){
vec4[i+j*4]=0;
for(p=0;p<16;p++){
for(q=0;q<8;q++){
vec4[i+j*4]=vec4[i+j*4]+b[8*i+q][16*j+p];
}
}
}
}
fclose(fp);
fp=fopen("vec3.txt","w");
if(fp==NULL){
printf("Can not open file ");
exit(1);
}
for(j=0;j<4;j++){
for(i=0;i<4;i++){
fprintf(fp,"%d ",vec3[i+j]);
}
}
fp=fopen("vec1.txt","w");
if(fp==NULL){
printf("Can not open file ");
exit(1);
}
for(j=0;j<4;j++){
for(i=0;i<4;i++){
fprintf(fp,"%d ",vec1[i+4*j]);
}
}
fp=fopen(FNAMEW,"w");
if(fp==NULL){
printf("Can not open file ");
exit(1);
}
for(i=0;i<16;i++){
sum[i]=vec1[i];
sum[i+16]=vec2[i];
sum[i+32]=vec3[i];
sum[i+48]=vec4[i];
}
for (i=0;i<64;i++){
fprintf(fp, "%d ", sum[i]);
}
fclose(fp);
}