#ifndef COSMOPOLITAN_DSP_CORE_TWIXT8_H_
#define COSMOPOLITAN_DSP_CORE_TWIXT8_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_

/**
 * 8-bit linear interpolation kernel.
 */
static inline pureconst artificial unsigned char twixt8(unsigned char al,
                                                        unsigned char bl,
                                                        unsigned char p) {
  short bx;
  bx = bl;
  bx -= al;
  bx *= p;
  bx >>= 8;
  bx += al;
  al = bx;
  return al;
}

COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_DSP_CORE_TWIXT8_H_ */
