C/C++ Compiler Language Extensions
The C programming language does not include a basic type for fractional
data, and rather than introduce a non-standard type, Analog Devices
defines
fract16
types and provides sets of basic intrinsic functions which perform the
required operations. These look like library function calls, but are spe-
cially recognized by the compilers, which generate short sequences or
single instructions, exploiting any specialized features, which may be avail-
able on the architecture. An important aspect of this is that the compiler
optimizer is not inhibited in any way by the use of these intrinsics.
Because of the varying nature of the architectures the basic intrinsic func-
tions just discussed cannot be standardized across all the architectures.
However, a set of standard functions for manipulating fractional data has
been defined by the ITU (International Telecommunications Union) and
ETSI (European Telecommunications Standards Institute).
Referred to as the ETSI Standard Functions, these have been very widely
used to implement Telecommunications packages such as GSM, EFR and
AMR Vocoders, and have become a de-facto industry standard. These
functions have been implemented on ADSP-219x DSPs.
The ETSI standard is aimed at DSP processors with 16-bit inputs, satu-
rated arithmetic and 32-bit accumulators.
Calling ETSI Library Functions
To use an ETSI function, call the function by name and give the appropri-
ate arguments. The names and arguments for each function appear on the
function's reference page. The names and arguments for each function
appear in the section
Like other functions you use, ETSI functions should be declared. Declara-
tions are supplied in the header file
included in any source files where ETSI functions are called. The function
names are C function names. If you call C run-time library functions from
an assembly language program, you must use the assembly version of the
1-108
and
in terms of appropriately-sized integer data
fract32
"ETSI Header File" on page
VisualDSP++ 3.5 C/C++ Compiler and Library Manual
1-111.
ETSI_fract_arith.h
for ADSP-219x DSPs
, which must be
Need help?
Do you have a question about the VISUALDSP++ 3.5 and is the answer not in the manual?
Questions and answers