f = (Math.abs(s[0]) - shift) * (d_sign(c_b48, s[0]) + shift/s[0]); g = e[0]; r = compute_rot(f, g, sinr, cosr, 0, first); f = cosr[0] * s[0] + sinr[0] * e[0]; e[0] = cosr[0] * e[0] - sinr[0] * s[0]; s[1] = cosr[0] * s[1]; r = compute_rot(f, g, sinl, cosl, 0, first); first = 0; s[0] = r; e[1] = cosl[0] * e[1]; r = compute_rot(f, g, sinr, cosr, 1, first); e[0] = r; f = cosr[1] * s[1] + sinr[1] * e[1]; s[2] = cosr[1] * s[2]; r = compute_rot(f, g, sinl, cosl, 1, first); s[1] = r; f = cosl[1] * e[1] + sinl[1] * s[2];