int16 __ext_viterbiSig11a_brick_decode_fast(char* intInput, int len1, uchar* bit, int len2) { static const int state_size = 64; static const int input_size = 48; // always 48 soft-values vub trellis[state_size / 16 * input_size]; uint output = 0; Viterbi_sig11(trellis, (char *)intInput, (char *)(bit)); *((uint *)bit) >>= 6; // remove the prefix 6 zeros return 0; }
FORCE_INLINE int16 __ext_viterbiSig11a_brick_decode_fast(num8 * intInput, int len1, unsigned char* bit, int len2) { static const int state_size = 64; static const int input_size = 48; // always 48 soft-values #if defined(__GNUC__) && !defined(__ARM_NEON__) __m128i trellis[state_size / 16 * input_size]; #else vub trellis[state_size / 16 * input_size]; #endif unsigned int output = 0; Viterbi_sig11(trellis, intInput, (num8 *)(bit)); *((unum32 *)bit) >>= 6; // remove the prefix 6 zeros return 0; }