#ifndef FLAC__PRIVATE__FIXED_H
#define FLAC__PRIVATE__FIXED_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "private/cpu.h"
#include "private/float.h"
#include "FLAC/format.h"
#ifndef FLAC__INTEGER_ONLY_LIBRARY
uint32_t FLAC__fixed_compute_best_predictor(
const FLAC__int32 data[],
uint32_t data_len,
float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
uint32_t FLAC__fixed_compute_best_predictor_wide(
const FLAC__int32 data[],
uint32_t data_len,
float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
uint32_t FLAC__fixed_compute_best_predictor_limit_residual(
const FLAC__int32 data[],
uint32_t data_len,
float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
uint32_t FLAC__fixed_compute_best_predictor_limit_residual_33bit(
const FLAC__int64 data[],
uint32_t data_len,
float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
# ifndef FLAC__NO_ASM
#if (defined FLAC__CPU_IA32 || defined FLAC__CPU_X86_64) && FLAC__HAS_X86INTRIN
# ifdef FLAC__SSE2_SUPPORTED
uint32_t FLAC__fixed_compute_best_predictor_intrin_sse2(
const FLAC__int32 data[],
uint32_t data_len,
float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
uint32_t FLAC__fixed_compute_best_predictor_wide_intrin_sse2(
const FLAC__int32 data[],
uint32_t data_len,
float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
# endif
# ifdef FLAC__SSSE3_SUPPORTED
uint32_t FLAC__fixed_compute_best_predictor_intrin_ssse3(
const FLAC__int32 data[],
uint32_t data_len,
float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
uint32_t FLAC__fixed_compute_best_predictor_wide_intrin_ssse3(
const FLAC__int32 data[],
uint32_t data_len,
float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
# endif
#endif
# endif
#else
uint32_t FLAC__fixed_compute_best_predictor(
const FLAC__int32 data[],
uint32_t data_len,
FLAC__fixedpoint residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
uint32_t FLAC__fixed_compute_best_predictor_wide(
const FLAC__int32 data[],
uint32_t data_len,
FLAC__fixedpoint residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
uint32_t FLAC__fixed_compute_best_predictor_limit_residual(
const FLAC__int32 data[],
uint32_t data_len,
FLAC__fixedpoint residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
uint32_t FLAC__fixed_compute_best_predictor_limit_residual_33bit(
const FLAC__int64 data[],
uint32_t data_len,
FLAC__fixedpoint residual_bits_per_sample[FLAC__MAX_FIXED_ORDER + 1]);
#endif
void FLAC__fixed_compute_residual(const FLAC__int32 data[],
uint32_t data_len,
uint32_t order,
FLAC__int32 residual[]);
void FLAC__fixed_compute_residual_wide(const FLAC__int32 data[],
uint32_t data_len,
uint32_t order,
FLAC__int32 residual[]);
void FLAC__fixed_compute_residual_wide_33bit(const FLAC__int64 data[],
uint32_t data_len,
uint32_t order,
FLAC__int32 residual[]);
void FLAC__fixed_restore_signal(const FLAC__int32 residual[],
uint32_t data_len,
uint32_t order,
FLAC__int32 data[]);
void FLAC__fixed_restore_signal_wide(const FLAC__int32 residual[],
uint32_t data_len,
uint32_t order,
FLAC__int32 data[]);
void FLAC__fixed_restore_signal_wide_33bit(const FLAC__int32 residual[],
uint32_t data_len,
uint32_t order,
FLAC__int64 data[]);
#endif