📄 readme.txt
字号:
IXLibs-AV Release 2.3
Release Notes
September 2002
_____________________________________________________________________
Introduction to Release 2.3
_____________________________________________________________________
IXLibs-AV release 2.3 includes several performance enahancements,
and accommodates the PowerPC 744x and 745x series. The vindex,
vscatter, and vgather functions have been adjusted to improve
overall performance.
Also, the bit reverse function used within the vfft, vifft, and
vrfft functions has been significantly enhanced. The bit reversal
function itself is approximately four times faster. For small
FFTs, the bit reverse operation is a small portion of the overall
FFT size. For complex FFTs of length 1K, the vfft function shows
about a 20% improvement. For larger FFTs, the improvement is more
dramatic, owing to the fact that the older bit reversal algorithm
was not cache efficient. In-place FFTs of length 32K and 64K
show improvements of 30% and 50%. The library shows similar
improvements for vifft and vrfft. The _dif versions of the
FFT function are not affected, since these do not employ the
bit reversal function.
NEW FUNCTIONS
The library includes new FFT functions that combine the FFT
with computation of magnitude squared computation. These
new functions (vfftmag2, vrfftmag2 and their variants) are
useful when applications must look for signals based on
peaks or spectral patterns. When magnitude squared computation
is required, these functions offer improved performance over
calling the FFT and mag2 functions for the following reasons:
First, extraneous loads and stores are not needed. The
magintude squared is computed while the resulting FFT
data is still in vector registers. This is particularly
beneficial when the FFT size is L1 cache constrained.
Second, the resulting real value is computed before
bit reversal. Bit reverse re-ordering is therefore
performed on half as many values, further improving
performance.
Finally, because the result is always real, half as
many store operations are required.
Additional new functions extend the fftmag2 functions
by computing the log (base 2) of the magnitude squared,
again while the data are located within vector registers.
These functions use the AltiVec log base 2 estimate
instruction, which is somewhat coarse, but fast and
accurate enough for many applications. Applications
can convert to a decibel estimate by multiplying
by the constant log10(2).
CORRECTIONS
Release 2.3 includes the following corrections:
#512: use of vterm causes link errors. A problem in the
structuring of the library sometimes caused duplicate vterm
symbols when vterm was called from an application.
#506: vfloathiq function generates vupgrade error: this
function incorrectly attempted to modify the type of the
output vector if it was already complex.
#493: Dolph-Chebyshev window incorrect: this function
generated correct results only for some input lengths. The
function has been rewritten and verified for lengths other
than 2**n.
#489: Documentation lacks description of Cholesky matrix
decomposition function.
_____________________________________________________________________
Introduction to Release 2.1
_____________________________________________________________________
IXLibs-AV release 2.1 extends the vector capabilities of
the library with the following new functions:
vintegrate computes the cumulative sum of all elements in
a vector.
vcmpxx, where xx is eq, ne, gt, ge, lt, or le compares two
vectors. The usual rules of real and complex arithmetic
apply. The result is a vector containing 0 for
corresponding entries where the condition is true, and
0xffff_ffff (a floating point NAN) for entries where
the condition is false.
vindex, vindexz: these functions scan the real part of a vector,
producing an index vector. The index vector contains
byte offsets into the original vector for those entries
having a nonzero value. (vindexz produces an index list
for entries having a zero value.)
vscatter, vgather: these functions use the index vector to
extract (gather) or deposit (scatter) elements from
one vector into another.
vlog2est, vexp2est: These functions estimate the base two log
or exponent of a vector. The estimate is performed using
AltiVec instructions.
Several functions within IXLibs-AV 2.1 have been updated to support
unaligned vectors. Unaligned vectors can arise from the use of functions
like vsubimage and vnewm. See the section entitled "Unaligned Vectors"
in the manual for more information.
In addition to these changes, IXLibs-AV 2.1 includes two corrections:
#443: The timing program, vtime, has been adjusted to provide more accurate
results. Due to compiler optimization, the start time recorded by the
program actually included some set-up time for each function timed.
This resulted in reporting execution times for functions that was slightly
longer than the time required to execute the functions.
#430: matrix FFT and inverse FFT functions, when performed in place, for
matrices having 32 or more columns, performed bit reversal of each row
incorrectly.
_____________________________________________________________________
Introduction to Release 2.0
_____________________________________________________________________
Release 2.0 is an enhanced version of release 1.21. This release
includes matrix functions, some new vector functions, some performance
enhancements over the prior release, and some corrections.
Release 2.0 also includes a version of the library compiled with
the -mlongcall option. Target machine configurations having more
than 32 megabytes can link with the librarty libixlibavlong.a in
order to use the -mlongcall version of IXLibs-AV functions.
IXLibs-AV release 2.0 has been tested on the Motorola 7400 and
7410 processors. Although this release has not been tested on
the 7450, prior releases have been tested, and this release includes
no modifications which preclude use on the 7450.
IXLibs-AV has been tested with Wind River's VxWorks Tornado 2.0
and Tornado 2.1 products.
The use of IXLibs-AV is documented in the User's Manual, which is
included on this CD in PDF format. Basically, you just include
ixlibsav.h and link with the library libixlibav.a.
We look forward to growing IXLibs-AV in future releases and expanding
the functions it provides. Please contact Ixthos if there are any
functions you would like to see added. We consider IXLibs-AV your
libraries and are dedicated to making it serve your needs.
IXLibs-AV is operating system independent. However, the library
includes provisions for running from within multiple tasks under
vxWorks. Contact your BSP provider for details.
_____________________________________________________________________
New Capabilities
_____________________________________________________________________
1) Release 2.0 includes matrix functions. Over 110 matrix functions
are defined.
2) Real FFT and inverse FFT: These functions take advantage of
higher performance algorithms applicable when the input to an
FFT (or output from an inverse FFT) is real data.
3) vfloatxx functions convert from fixed point to floating point
without incorporating cache invalidation (in contrast with the
vinxx functions). This makes vfloatxx functions suitable for
use under Linux. vfloatxx functions are also faster when the
input data is known to be cache coherent.
4) New vector functions: vdecimate, vgenrandz, vectorinitlx,
vsqrtinv.
_____________________________________________________________________
Performance Enhancements
_____________________________________________________________________
1) Complex division and reciprocal computation performance has been
improved.
2) Square root computation has been improved. Also, the use of the
square root inverse function (vsqrtinv) has been introduced.
Multiplying by the 1/sqrt(x) is faster than dividing by sqrt(x).
3) Functions relying on the square root, such as rectangular to polar
coordination, and absolute value of a complex input, benefit from
the improved performance of the sqrt function.
4) Non-decimating FIR filter performance is greatly improved.
5) Decimating FIR filter performance for a decimation factor of 2 and
32 or fewer taps is significantly faster.
_____________________________________________________________________
Installation
_____________________________________________________________________
The installation program on the CD will install the IXLibs-AV library,
its include files, examples, executables, and documentation into the
the directory you specify. The default directory is "\ixthos". The
installation program will add IXLibs-AV specific files to the bin,
examples, lib, include, and docs subdirectories.
_____________________________________________________________________
Corrections Incorporated into Release 2.0
_____________________________________________________________________
1) All C-Callable functions are EABI compliant. Functions that
use vector registers 20 through 31 save and restore these
registers, allowing use of IXLibs-AV functions with compiler
generated code supporting AltiVec enahancements.
2) Real FIR insists on complex output vector (#376): A fir created
with real taps, when applied to a real input vector, produces a
real output vector. The FIR functions incorrectly require the
output vector to be complex. The resulting value is numerically
correct. This has been corrected in release 2.0.
3) "version" entry point conflict (#386): Ixlibs-av includes a
version function, which displays the version of the library as
well as the processor. This is referenced in the documentation,
and used in some of the distributed binaries. The entry point
name (version) conflicts with an entry point in vxworks. In
release 2.0, the entry point is ixlibs_version. The documentation
has been updated to reflect this new entry point name.
4) In-place, mixed mode division (#390): When using in-place division,
vdiv (a, b, a), where b is a real vector and a contains complex data,
the divide function incorrectly uses only the real part of a as an
input. b must be real and a must be complex for this condition to
occur; if both a and b are complex this is not a problem. This
has been corrected in release 2.0.
_____________________________________________________________________
Anomalies
_____________________________________________________________________
1) IEEE 754 conformance. IXLibs-AV is written to maximize performance.
This means that certain features, such as strict Java compliance, and
proper rounding of quotients and square roots to the 23rd bit of
precision, are not performed in all cases. Information regarding
the precision and test methods of the various functions can be
obtained from Ixthos.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -