asceticism.cpp: In instantiation of 'void karatsuba(int*, int*, int*, int*, int) [with int n = 1]':
asceticism.cpp:72:16: recursively required from 'void karatsuba(int*, int*, int*, int*, int) [with int n = 65536]'
asceticism.cpp:72:16: required from 'void karatsuba(int*, int*, int*, int*, int) [with int n = 131072]'
asceticism.cpp:101:49: required from here
asceticism.cpp:72:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
72 | karatsuba<n/2>(a, a+n/2, ans, b, rem);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp:77:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
77 | karatsuba<n/2>(a, a+n/2, ans+n, b, rem - n/2);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp:82:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
82 | karatsuba<n/2>(a, a+n/2, b, tmp, rem - n/2);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp: In instantiation of 'void karatsuba(int*, int*, int*, int*, int) [with int n = 0]':
asceticism.cpp:72:16: recursively required from 'void karatsuba(int*, int*, int*, int*, int) [with int n = 65536]'
asceticism.cpp:72:16: required from 'void karatsuba(int*, int*, int*, int*, int) [with int n = 131072]'
asceticism.cpp:101:49: required from here
asceticism.cpp:72:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
72 | karatsuba<n/2>(a, a+n/2, ans, b, rem);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp:77:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
77 | karatsuba<n/2>(a, a+n/2, ans+n, b, rem - n/2);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp:82:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
82 | karatsuba<n/2>(a, a+n/2, b, tmp, rem - n/2);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~