switch(n&3) {
case 0: return kernel_cosl(y[0],y[1]);
case 1: return -kernel_sinl(y[0],y[1],1);
case 2: return -kernel_cosl(y[0],y[1]);
default:
return kernel_sinl(y[0],y[1],1);
switch(n&3) {
case 0: return kernel_cosl(y[0],y[1]);
case 1: return -kernel_sinl(y[0],y[1],1);
case 2: return -kernel_cosl(y[0],y[1]);
default:
return kernel_sinl(y[0],y[1],1);