Question: #include #include #include #include #include #define BENCH _ LOOPS 1 0 0 0 0 typedef uint 6 4 _ t bigint 2 5 6 [
#include
#include
#include
#include
#include
#define BENCHLOOPS
typedef uintt bigint; for operands
typedef uintt bigint; for multiplication result
const bigint aexp
xabxfdbxdxcbxbdxxdxxcxbxaxc
xbxdxdaxfa;
const bigint bexp
xfxxdaxedxeaxbxfxeexbee,xcaxdfaxaea
cxdxfxebbxca;
SageMath Code a
Update the sum here
const bigint addexp ;
SageMath Code a
Update the difference here
const bigint subexp ;
const bigint mulexp
xeaaxfbaxcffxcedxfafxfebaxbdd
xbefa
xbaxedbfxbcaxexbabxbeexfcd
xeaeb
xfbcxxfecaxccxcaacxxdf
xcefcd
xcdexedxecea,xbdxccdcfexfcexfbc
x;
Print bit number Helper
void bigintprintconst bigint a
int i;
printf;
fori ; i ; i
printfx"PRIxai;
printfx"PRIxai;
print bit number Helper
void bigintprintconst bigint a
int i;
printf;
fori ; i ; i
printfx"PRIxai;
printf
;
fori ; i ; i
printfx"PRIxai;
printf
;
fori ; i ; i
printfx"PRIxai;
printf
;
fori ; i ; i
printfx"PRIxai;
printfx"PRIxai;
r a b
void addbigint r const bigint a const bigint b
int i;
uintt carry ;
Write b here
r a b
void subbigint r const bigint a const bigint b
int i;
uintt borrow ;
Write b here
r a b using schoolbook method
void schoolbookmulbigint r const bigint a const bigint b
int i j;
Initialize r with s
memsetr;
Write b here
r a b using comba method
void combamulbigint r const bigint a const bigint b
int i j;
Write c here
r a b using Karatsuba method
void karatsubamulbigint r const bigint a const bigint b
int i j;
initialize arrays
uintt ma;
uintt mb;
uintt z;
uintt z;
uintt z;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
