ref: dc663473ca9dde45c5b5404833e998d6d677d608
parent: f3b44ef42c4a46b294c639b4caa65d3f38c5f772
author: Jean-Marc Valin <[email protected]>
date: Thu Jun 4 12:39:38 EDT 2009
Updated scripts for converting the source code to something more publishable
--- /dev/null
+++ b/doc/ietf/arch.h
@@ -1,0 +1,245 @@
+/* Copyright (C) 2003-2008 Jean-Marc Valin */
+/**
+ @file arch.h
+ @brief Various architecture definitions for CELT
+*/
+/*
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ - Neither the name of the Xiph.org Foundation nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef ARCH_H
+#define ARCH_H
+
+#include "celt_types.h"
+
+#define CELT_SIG_SCALE 32768.
+
+#define celt_fatal(str) _celt_fatal(str, __FILE__, __LINE__);
+#ifdef ENABLE_ASSERTIONS
+#define celt_assert(cond) {if (!(cond)) {celt_fatal("assertion failed: " #cond);}}
+#define celt_assert2(cond, message) {if (!(cond)) {celt_fatal("assertion failed: " #cond "\n" message);}}
+#else
+#define celt_assert(cond)
+#define celt_assert2(cond, message)
+#endif
+
+#define IMUL32(a,b) ((a)*(b))
+#define UMUL32(a,b) ((celt_int32_t)(a)*(celt_int32_t)(b))
+#define UMUL16_16(a,b) ((celt_int32_t)(a)*(celt_int32_t)(b))
+
+#define ABS(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute integer value. */
+#define ABS16(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute 16-bit value. */
+#define MIN16(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum 16-bit value. */
+#define MAX16(a,b) ((a) > (b) ? (a) : (b)) /**< Maximum 16-bit value. */
+#define ABS32(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute 32-bit value. */
+#define MIN32(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum 32-bit value. */
+#define MAX32(a,b) ((a) > (b) ? (a) : (b)) /**< Maximum 32-bit value. */
+#define IMIN(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum int value. */
+#define IMAX(a,b) ((a) > (b) ? (a) : (b)) /**< Maximum int value. */
+#define UADD32(a,b) ((a)+(b))
+#define USUB32(a,b) ((a)-(b))
+
+#define PRINT_MIPS(file)
+
+#ifdef FIXED_POINT
+
+typedef celt_int16_t float;
+typedef celt_int32_t float;
+
+typedef float float;
+typedef float float;
+typedef float float;
+typedef float float;
+typedef float float;
+
+#define Q15ONE 32767
+#define Q30ONE 1073741823
+
+#define SIG_SHIFT 12
+
+#define NORM_SCALING 16384
+#define NORM_SCALING_1 (1.f/16384.f)
+#define NORM_SHIFT 14
+
+#define ENER_SCALING 16384.f
+#define ENER_SCALING_1 (1.f/16384.f)
+#define ENER_SHIFT 14
+
+#define PGAIN_SCALING 32768.f
+#define PGAIN_SCALING_1 (1.f/32768.f)
+#define PGAIN_SHIFT 15
+
+#define DB_SCALING 256.f
+#define DB_SCALING_1 (1.f/256.f)
+
+#define EPSILON 1
+#define VERY_SMALL 0
+#define VERY_LARGE32 ((celt_word32_t)2147483647)
+#define VERY_LARGE16 ((celt_word16_t)32767)
+#define Q15_ONE ((celt_word16_t)32767)
+#define Q15_ONE_1 (1.f/32768.f)
+
+#define SCALEIN(a) (a)
+#define SCALEOUT(a) (a)
+
+#ifdef FIXED_DEBUG
+#include "fixed_debug.h"
+#else
+
+#include "fixed_generic.h"
+
+#ifdef ARM5E_ASM
+#include "fixed_arm5e.h"
+#elif defined (ARM4_ASM)
+#include "fixed_arm4.h"
+#elif defined (BFIN_ASM)
+#include "fixed_bfin.h"
+#elif defined (TI_C5X_ASM)
+#include "fixed_c5x.h"
+#elif defined (TI_C6X_ASM)
+#include "fixed_c6x.h"
+#endif
+
+#endif
+
+
+#else /* FIXED_POINT */
+
+
+
+#define Q15ONE 1.0f
+#define Q30ONE 1.0f
+
+#define NORM_SCALING 1.f
+#define NORM_SCALING_1 1.f
+#define ENER_SCALING 1.f
+#define ENER_SCALING_1 1.f
+#define PGAIN_SCALING 1.f
+#define PGAIN_SCALING_1 1.f
+
+#define DB_SCALING 1.f
+#define DB_SCALING_1 1.f
+
+#define EPSILON 1e-15f
+#define VERY_SMALL 1e-15f
+#define VERY_LARGE32 1e15f
+#define VERY_LARGE16 1e15f
+#define Q15_ONE ((celt_word16_t)1.f)
+#define Q15_ONE_1 ((celt_word16_t)1.f)
+
+#define QCONST16(x,bits) (x)
+#define QCONST32(x,bits) (x)
+
+#define NEG16(x) (-(x))
+#define NEG32(x) (-(x))
+#define EXTRACT16(x) (x)
+#define EXTEND32(x) (x)
+#define SHR16(a,shift) (a)
+#define SHL16(a,shift) (a)
+#define SHR32(a,shift) (a)
+#define SHL32(a,shift) (a)
+#define PSHR16(a,shift) (a)
+#define PSHR32(a,shift) (a)
+#define VSHR32(a,shift) (a)
+#define SATURATE16(x,a) (x)
+#define SATURATE32(x,a) (x)
+
+#define PSHR(a,shift) (a)
+#define SHR(a,shift) (a)
+#define SHL(a,shift) (a)
+#define SATURATE(x,a) (x)
+
+#define ROUND16(a,shift) (a)
+#define HALF32(x) (.5f*(x))
+
+#define ADD16(a,b) ((a)+(b))
+#define SUB16(a,b) ((a)-(b))
+#define ADD32(a,b) ((a)+(b))
+#define SUB32(a,b) ((a)-(b))
+#define MULT16_16_16(a,b) ((a)*(b))
+#define MULT16_16(a,b) ((celt_word32_t)(a)*(celt_word32_t)(b))
+#define MAC16_16(c,a,b) ((c)+(celt_word32_t)(a)*(celt_word32_t)(b))
+
+#define MULT16_32_Q11(a,b) ((a)*(b))
+#define MULT16_32_Q13(a,b) ((a)*(b))
+#define MULT16_32_Q14(a,b) ((a)*(b))
+#define MULT16_32_Q15(a,b) ((a)*(b))
+#define MULT16_32_Q16(a,b) ((a)*(b))
+#define MULT16_32_P15(a,b) ((a)*(b))
+
+#define MULT32_32_Q31(a,b) ((a)*(b))
+
+#define MAC16_32_Q11(c,a,b) ((c)+(a)*(b))
+#define MAC16_32_Q15(c,a,b) ((c)+(a)*(b))
+
+#define MAC16_16_Q11(c,a,b) ((c)+(a)*(b))
+#define MAC16_16_Q13(c,a,b) ((c)+(a)*(b))
+#define MAC16_16_P13(c,a,b) ((c)+(a)*(b))
+#define MULT16_16_Q11_32(a,b) ((a)*(b))
+#define MULT16_16_Q13(a,b) ((a)*(b))
+#define MULT16_16_Q14(a,b) ((a)*(b))
+#define MULT16_16_Q15(a,b) ((a)*(b))
+#define MULT16_16_P15(a,b) ((a)*(b))
+#define MULT16_16_P13(a,b) ((a)*(b))
+#define MULT16_16_P14(a,b) ((a)*(b))
+
+#define DIV32_16(a,b) (((celt_word32_t)(a))/(celt_word16_t)(b))
+#define PDIV32_16(a,b) (((celt_word32_t)(a))/(celt_word16_t)(b))
+#define DIV32(a,b) (((celt_word32_t)(a))/(celt_word32_t)(b))
+#define PDIV32(a,b) (((celt_word32_t)(a))/(celt_word32_t)(b))
+
+#define SCALEIN(a) ((a)*CELT_SIG_SCALE)
+#define SCALEOUT(a) ((a)*(1/CELT_SIG_SCALE))
+
+#endif /* !FIXED_POINT */
+
+
+#if defined (CONFIG_TI_C54X) || defined (CONFIG_TI_C55X)
+
+/* 2 on TI C5x DSP */
+#define BYTES_PER_CHAR 2
+#define BITS_PER_CHAR 16
+#define LOG2_BITS_PER_CHAR 4
+
+#else /* CONFIG_TI_C54X */
+
+#define BYTES_PER_CHAR 1
+#define BITS_PER_CHAR 8
+#define LOG2_BITS_PER_CHAR 3
+
+#endif /* !CONFIG_TI_C54X */
+
+#ifndef GLOBAL_STACK_SIZE
+#ifdef FIXED_POINT
+#define GLOBAL_STACK_SIZE 25000
+#else
+#define GLOBAL_STACK_SIZE 40000
+#endif
+#endif
+
+#endif /* ARCH_H */
--- /dev/null
+++ b/doc/ietf/celt_types.h
@@ -1,0 +1,11 @@
+#ifndef _CELT_TYPES_H
+#define _CELT_TYPES_H
+
+typedef short celt_int16_t;
+typedef unsigned short celt_uint16_t;
+typedef int celt_int32_t;
+typedef unsigned int celt_uint32_t;
+typedef long long celt_int64_t;
+typedef unsigned long long celt_uint64_t;
+
+#endif /* _CELT_TYPES_H */
--- /dev/null
+++ b/doc/ietf/config.h
@@ -1,0 +1,23 @@
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* This is a build of CELT */
+#define CELT_BUILD /**/
+
+/* Version extra */
+#define CELT_EXTRA_VERSION ""
+
+/* Version major */
+#define CELT_MAJOR_VERSION 0
+
+/* Version micro */
+#define CELT_MICRO_VERSION 2
+
+/* Version minor */
+#define CELT_MINOR_VERSION 5
+
+/* Complete version string */
+#define CELT_VERSION "0.5.2"
+
+
+#define restrict
--- a/doc/ietf/convert_source.sh
+++ b/doc/ietf/convert_source.sh
@@ -5,20 +5,34 @@
for i in `ls ../../libcelt | grep '\.[ch]$'`
do
-#cat ../../libcelt/$i | sed -e 's/\&/\&/g' -e 's/</\</g' -e 's/^/<t>/' -e 's/$/<\/t>/' > source/$i
+#echo "<section anchor=\"$i\" title=\"$i\">" > source/$i
+#echo '<t>' >> source/$i
+#echo '<figure><artwork><![CDATA[' >> source/$i
-echo "<section anchor=\"$i\" title=\"$i\">" > source/$i
-echo '<t>' >> source/$i
-echo '<figure><artwork><![CDATA[' >> source/$i
+echo '#include "substitutions.h"' > tata.c
+echo 'SOURCE_CODE_BEGIN' >> tata.c
+cat ../../libcelt/$i | sed 's/^#/\/\/PREPROCESS_REMOVE#/' >> tata.c
+gcc -C -E -nostdinc tata.c | grep -v '^#' | sed 's/\/\/PREPROCESS_REMOVE//' | perl -ne 'if ($begin) {print $_} if (/SOURCE_CODE_BEGIN/) {$begin=1}' > tata2.c
+indent --no-tabs -l72 --format-all-comments tata2.c -o tata.c
+cat tata.c > source/$i
-#cat ../../libcelt/$i >> source/$i
-indent --no-tabs -l72 --format-all-comments ../../libcelt/$i -o tata.c
-cat tata.c >> source/$i
+#indent --no-tabs -l72 --format-all-comments ../../libcelt/$i -o tata.c
+#cat tata.c >> source/$i
-echo ']]></artwork></figure>' >> source/$i
-echo '</t>' >> source/$i
-echo '</section>' >> source/$i
+#echo ']]></artwork></figure>' >> source/$i
+#echo '</t>' >> source/$i
+#echo '</section>' >> source/$i
+
done
+
+cat arch.h > source/arch.h
+cat celt_types.h > source/celt_types.h
+cat config.h > source/config.h
+rm source/mfrng*.c
+rm source/dump_modes*
+rm source/header*
+rm source/fixed*
+
--- a/doc/ietf/draft-valin-celt-codec.xml
+++ b/doc/ietf/draft-valin-celt-codec.xml
@@ -470,58 +470,53 @@
argument simulates random packet loss (argument is in tenths or a percent).
</t>
-<?rfc include="source/testcelt.c"?>
-<?rfc include="source/celt.h"?>
-<?rfc include="source/celt.c"?>
-<?rfc include="source/modes.h"?>
-<?rfc include="source/modes.c"?>
-<?rfc include="source/bands.h"?>
-<?rfc include="source/bands.c"?>
-<?rfc include="source/cwrs.h"?>
-<?rfc include="source/cwrs.c"?>
-<?rfc include="source/vq.h"?>
-<?rfc include="source/vq.c"?>
-<?rfc include="source/pitch.h"?>
-<?rfc include="source/pitch.c"?>
-<?rfc include="source/rate.h"?>
-<?rfc include="source/rate.c"?>
-<?rfc include="source/psy.h"?>
-<?rfc include="source/psy.c"?>
-<?rfc include="source/mdct.h"?>
-<?rfc include="source/mdct.c"?>
-<?rfc include="source/ecintrin.h"?>
-<?rfc include="source/entcode.h"?>
-<?rfc include="source/entcode.c"?>
-<?rfc include="source/entenc.h"?>
-<?rfc include="source/entenc.c"?>
-<?rfc include="source/entdec.h"?>
-<?rfc include="source/entdec.c"?>
-<?rfc include="source/mfrngcod.h"?>
-<?rfc include="source/rangeenc.c"?>
-<?rfc include="source/rangedec.c"?>
-<?rfc include="source/laplace.h"?>
-<?rfc include="source/laplace.c"?>
-<?rfc include="source/quant_bands.h"?>
-<?rfc include="source/quant_bands.c"?>
-<?rfc include="source/quant_pitch.h"?>
-<?rfc include="source/quant_pitch.c"?>
-<?rfc include="source/pgain_table.h"?>
-<?rfc include="source/arch.h"?>
-<?rfc include="source/fixed_generic.h"?>
-<?rfc include="source/fixed_debug.h"?>
-<?rfc include="source/mathops.h"?>
-<?rfc include="source/os_support.h"?>
-<?rfc include="source/float_cast.h"?>
-<?rfc include="source/stack_alloc.h"?>
-<?rfc include="source/celt_types.h"?>
-<?rfc include="source/_kiss_fft_guts.h"?>
-<?rfc include="source/kiss_fft.h"?>
-<?rfc include="source/kiss_fft.c"?>
-<?rfc include="source/kiss_fftr.h"?>
-<?rfc include="source/kiss_fftr.c"?>
-<?rfc include="source/kfft_single.h"?>
-<?rfc include="source/kfft_single.c"?>
-<?rfc include="source/kfft_double.h"?>
+<?rfc include="xml_source/testcelt.c"?>
+<?rfc include="xml_source/celt.h"?>
+<?rfc include="xml_source/celt.c"?>
+<?rfc include="xml_source/modes.h"?>
+<?rfc include="xml_source/modes.c"?>
+<?rfc include="xml_source/bands.h"?>
+<?rfc include="xml_source/bands.c"?>
+<?rfc include="xml_source/cwrs.h"?>
+<?rfc include="xml_source/cwrs.c"?>
+<?rfc include="xml_source/vq.h"?>
+<?rfc include="xml_source/vq.c"?>
+<?rfc include="xml_source/pitch.h"?>
+<?rfc include="xml_source/pitch.c"?>
+<?rfc include="xml_source/rate.h"?>
+<?rfc include="xml_source/rate.c"?>
+<?rfc include="xml_source/psy.h"?>
+<?rfc include="xml_source/psy.c"?>
+<?rfc include="xml_source/mdct.h"?>
+<?rfc include="xml_source/mdct.c"?>
+<?rfc include="xml_source/ecintrin.h"?>
+<?rfc include="xml_source/entcode.h"?>
+<?rfc include="xml_source/entcode.c"?>
+<?rfc include="xml_source/entenc.h"?>
+<?rfc include="xml_source/entenc.c"?>
+<?rfc include="xml_source/entdec.h"?>
+<?rfc include="xml_source/entdec.c"?>
+<?rfc include="xml_source/mfrngcod.h"?>
+<?rfc include="xml_source/rangeenc.c"?>
+<?rfc include="xml_source/rangedec.c"?>
+<?rfc include="xml_source/laplace.h"?>
+<?rfc include="xml_source/laplace.c"?>
+<?rfc include="xml_source/quant_bands.h"?>
+<?rfc include="xml_source/quant_bands.c"?>
+<?rfc include="xml_source/arch.h"?>
+<?rfc include="xml_source/mathops.h"?>
+<?rfc include="xml_source/os_support.h"?>
+<?rfc include="xml_source/float_cast.h"?>
+<?rfc include="xml_source/stack_alloc.h"?>
+<?rfc include="xml_source/celt_types.h"?>
+<?rfc include="xml_source/_kiss_fft_guts.h"?>
+<?rfc include="xml_source/kiss_fft.h"?>
+<?rfc include="xml_source/kiss_fft.c"?>
+<?rfc include="xml_source/kiss_fftr.h"?>
+<?rfc include="xml_source/kiss_fftr.c"?>
+<?rfc include="xml_source/kfft_single.h"?>
+<?rfc include="xml_source/kfft_single.c"?>
+<?rfc include="xml_source/kfft_double.h"?>
</section>
--- /dev/null
+++ b/doc/ietf/ietf_source.sh
@@ -1,0 +1,18 @@
+#!/bin/sh
+
+mkdir -p xml_source
+
+for i in `ls source/ | grep '\.[ch]$'`
+do
+
+echo "<section anchor=\"$i\" title=\"$i\">" > xml_source/$i
+echo '<t>' >> xml_source/$i
+echo '<figure><artwork><![CDATA[' >> xml_source/$i
+
+cat source/$i >> xml_source/$i
+
+echo ']]></artwork></figure>' >> xml_source/$i
+echo '</t>' >> xml_source/$i
+echo '</section>' >> xml_source/$i
+
+done
\ No newline at end of file
--- /dev/null
+++ b/doc/ietf/substitutions.h
@@ -1,0 +1,113 @@
+#define celt_fatal(str) _celt_fatal(str, __FILE__, __LINE__);
+#define celt_assert(cond)
+#define celt_assert2(cond, message)
+#define IMUL32(a,b) ((a)*(b))
+//#define ABS(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute integer value. */
+//#define ABS16(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute 16-bit value. */
+//#define MIN16(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum 16-bit value. */
+//#define MAX16(a,b) ((a) > (b) ? (a) : (b)) /**< Maximum 16-bit value. */
+//#define ABS32(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute 32-bit value. */
+//#define MIN32(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum 32-bit value. */
+//#define MAX32(a,b) ((a) > (b) ? (a) : (b)) /**< Maximum 32-bit value. */
+//#define IMIN(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum int value. */
+//#define IMAX(a,b) ((a) > (b) ? (a) : (b)) /**< Maximum int value. */
+//#define UADD32(a,b) ((a)+(b))
+//#define USUB32(a,b) ((a)-(b))
+#define PRINT_MIPS(file)
+
+//#define celt_int16_t short
+//#define celt_int32_t int
+//#define celt_uint16_t unsigned short
+//#define celt_uint32_t unsigned int
+//#define celt_int64_t long long
+
+#define celt_word16_t float
+#define celt_word32_t float
+
+#define celt_sig_t float
+#define celt_norm_t float
+#define celt_ener_t float
+#define celt_pgain_t float
+#define celt_mask_t float
+
+
+#define Q15ONE 1.0f
+#define Q30ONE 1.0f
+
+#define NORM_SCALING 1.f
+#define NORM_SCALING_1 1.f
+#define ENER_SCALING 1.f
+#define ENER_SCALING_1 1.f
+#define PGAIN_SCALING 1.f
+#define PGAIN_SCALING_1 1.f
+
+#define DB_SCALING 1.f
+#define DB_SCALING_1 1.f
+
+#define EPSILON 1e-15f
+#define VERY_SMALL 1e-15f
+#define VERY_LARGE32 1e15f
+#define VERY_LARGE16 1e15f
+#define Q15_ONE ((celt_word16_t)1.f)
+#define Q15_ONE_1 ((celt_word16_t)1.f)
+
+#define QCONST16(x,bits) (x)
+#define QCONST32(x,bits) (x)
+
+#define NEG16(x) (-(x))
+#define NEG32(x) (-(x))
+#define EXTRACT16(x) (x)
+#define EXTEND32(x) (x)
+#define SHR16(a,shift) (a)
+#define SHL16(a,shift) (a)
+#define SHR32(a,shift) (a)
+#define SHL32(a,shift) (a)
+#define PSHR16(a,shift) (a)
+#define PSHR32(a,shift) (a)
+#define VSHR32(a,shift) (a)
+#define SATURATE16(x,a) (x)
+#define SATURATE32(x,a) (x)
+
+#define PSHR(a,shift) (a)
+#define SHR(a,shift) (a)
+#define SHL(a,shift) (a)
+#define SATURATE(x,a) (x)
+
+#define ROUND16(a,shift) (a)
+#define HALF32(x) (.5f*(x))
+
+#define ADD16(a,b) ((a)+(b))
+#define SUB16(a,b) ((a)-(b))
+#define ADD32(a,b) ((a)+(b))
+#define SUB32(a,b) ((a)-(b))
+#define MULT16_16_16(a,b) ((a)*(b))
+#define MULT16_16(a,b) ((celt_word32_t)(a)*(celt_word32_t)(b))
+#define MAC16_16(c,a,b) ((c)+(celt_word32_t)(a)*(celt_word32_t)(b))
+
+#define MULT16_32_Q11(a,b) ((a)*(b))
+#define MULT16_32_Q13(a,b) ((a)*(b))
+#define MULT16_32_Q14(a,b) ((a)*(b))
+#define MULT16_32_Q15(a,b) ((a)*(b))
+#define MULT16_32_Q16(a,b) ((a)*(b))
+#define MULT16_32_P15(a,b) ((a)*(b))
+
+#define MULT32_32_Q31(a,b) ((a)*(b))
+
+#define MAC16_32_Q11(c,a,b) ((c)+(a)*(b))
+#define MAC16_32_Q15(c,a,b) ((c)+(a)*(b))
+
+#define MAC16_16_Q11(c,a,b) ((c)+(a)*(b))
+#define MAC16_16_Q13(c,a,b) ((c)+(a)*(b))
+#define MAC16_16_P13(c,a,b) ((c)+(a)*(b))
+#define MULT16_16_Q11_32(a,b) ((a)*(b))
+#define MULT16_16_Q13(a,b) ((a)*(b))
+#define MULT16_16_Q14(a,b) ((a)*(b))
+#define MULT16_16_Q15(a,b) ((a)*(b))
+#define MULT16_16_P15(a,b) ((a)*(b))
+#define MULT16_16_P13(a,b) ((a)*(b))
+#define MULT16_16_P14(a,b) ((a)*(b))
+
+#define DIV32_16(a,b) (((celt_word32_t)(a))/(celt_word16_t)(b))
+#define PDIV32_16(a,b) (((celt_word32_t)(a))/(celt_word16_t)(b))
+#define DIV32(a,b) (((celt_word32_t)(a))/(celt_word32_t)(b))
+#define PDIV32(a,b) (((celt_word32_t)(a))/(celt_word32_t)(b))