Question: printf ( { ) ; for ( i = 0 ; i < 8 ; i + + ) printf ( 0

printf("{");
for(i =0; i <8; i++)
printf("0x%09"PRIx64",",a[i]);
printf("
");
for(i =8; i <16; i++)
printf("0x%09"PRIx64",",a[i]);
printf("
");
for(i =16; i <24; i++)
printf("0x%09"PRIx64",",a[i]);
printf("
");
for(i =24; i <31; i++)
printf("0x%09"PRIx64",",a[i]);
printf("0x%09"PRIx64"}",a[i]);
}
// r = a + b
void add256(bigint256 r, const bigint256 a, const bigint256 b){
int i;
uint8_t carry =0;
// Write 1b here
}
// r = a - b
void sub256(bigint256 r, const bigint256 a, const bigint256 b){
int i;
uint8_t borrow =0;
// Write 2b here
}
// r = a * b using schoolbook method
void schoolbook_mul256(bigint512 r, const bigint256 a, const bigint256 b){
int i, j;
// Initialize r with 0s
memset(r,0,256);
// Write 3b here
}
// r = a * b using comba method
void comba_mul256(bigint512 r, const bigint256 a, const bigint256 b){
int i, j;
// Write 3c here
}
// r = a * b using Karatsuba method
void karatsuba_mul256(bigint512 r, const bigint256 a, const bigint256 b){
int i, j;
//initialize arrays
uint64_t ma[8];
uint64_t mb[8];
uint64_t z0[16]={0};
uint64_t z1[16]={0};
uint64_t z2[16]={0};
// Write 3d here
// Compute ma, mb
// Compute z0, z1, z2
// Perform subtraction z1= z1- z0- z2
// Implement final addition and put the result in r
}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!