IN NO EVENT SHALL THE OBJECT MANAGEMENT GROUP OR ANY OF THE COMPANIES LISTED
ABOVE BE LIABLE FOR ERRORS CONTAINED HEREIN OR FOR DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING LOSS OF PROFITS,
REVENUE, DATA OR USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN CONNECTION
WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS MATERIAL, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES
The entire risk as to the quality and performance of software developed using this specification is borne by you. This
disclaimer of warranty constitutes an essential part of the license granted to you to use this specification.
6. Restricted rights legend
Use, duplication or disclosure by the U.S. Government is subject to the restrictions set forth in subparagraph (c) (1) (ii)
of The Rights in Technical Data and Computer Software Clause at DFARS 252.227-7013 or in subparagraph (c)(1)
and (2) of the Commercial Computer Software - Restricted Rights clauses at 48 C.F.R. 52.227-19 or as specified in 48
C.F.R. 227-7202-2 of the DoD F.A.R. Supplement and its successors, or as specified in 48 C.F.R. 12.212 of the Federal
Acquisition Regulations and its successors, as applicable. The specification copyright owners are as indicated above
and may be contacted through the Object Management Group, 109 Highland Avenue, Needham, MA 02494, U.S.A.
7. Trademarks
MDA®, Model Driven Architecture®, UML®, UML Cube logo®, OMG Logo®, CORBA® and XMI® are registered
trademarks of the Object Management Group, Inc., and Object Management Group™, OMG™ , Unified Modeling
Language™, Model Driven Architecture Logo™, Model Driven Architecture Diagram™, CORBA logos™, XMI
Logo™, CWM™, CWM Logo™, IIOP™ , IMM™, MOF™ , OMG Interface Definition Language (IDL)™ , and
OMG Systems Modeling Language (OMG SysML)™ are trademarks of the Object Management Group. All other
products or company names mentioned are used for identification purposes only, and may be trademarks of their
respective owners.
8. Compliance
The copyright holders listed above acknowledge that the Object Management Group (acting itself or through its
designees) is and shall at all times be the sole entity that may authorize developers, suppliers and sellers of computer
software to use certification marks, trademarks or other special designations to indicate compliance with these
materials.
Software developed under the terms of this license may claim compliance or conformance with this specification if
and only if the software compliance is of a nature fully matching the applicable compliance points as stated in the
specification. Software developed only partially matching the applicable compliance points may claim only that the
software was based on this specification, but may not claim compliance or conformance with this specification. In
the event that testing suites are implemented or approved by Object Management Group, Inc., software developed
using this specification may claim compliance or conformance with the specification only if the software satisfactorily
completes the testing suites.
Preface ............................................................................................................................. xi
1. About the Object Management Group ........................................................................ xi
1.1. OMG ......................................................................................................... xi
1.2. OMG Specifications ..................................................................................... xi
2. Typographical Conventions ..................................................................................... xii
3. Issues .................................................................................................................. xii
4. Acknowledgment ................................................................................................... xii
1. Introduction .................................................................................................................... 1
1.1. Scope .................................................................................................................. 1
1.2. Platform Requirements ........................................................................................... 1
1.3. Functionality ........................................................................................................ 1
1.4. Conformance ........................................................................................................ 2
1.5. VSIPL Objects ..................................................................................................... 2
1.6. Other Features of the Specification .......................................................................... 2
1.7. Basic VSIPL Concepts ........................................................................................... 2
1.7.1. General Library Design Principles ................................................................. 2
1.7.2. Memory Management .................................................................................. 3
1.7.3. Structure of a VSIPL application ................................................................... 5
2. Summary of VSIPL Types ................................................................................................ 7
2.1. Type - Introduction ............................................................................................... 7
2.2. Scalar .................................................................................................................. 9
2.2.1. Real Scalar ................................................................................................ 9
2.2.2. Complex Scalar ........................................................................................ 10
2.2.3. Boolean ................................................................................................... 10
2.2.4. Index ...................................................................................................... 10
2.2.5. Offset, Stride, Length ................................................................................ 11
2.3. Random Number Generator ................................................................................... 11
2.4. Block Object ...................................................................................................... 11
2.5. Vector View ....................................................................................................... 12
2.5.1. Real Vector View Object ........................................................................... 12
2.5.2. Complex Vector View ............................................................................... 14
2.6. Matrix View ....................................................................................................... 15
2.6.1. Real Matrix View Object ........................................................................... 15
2.6.2. Complex Matrix View Object ..................................................................... 16
2.7. Tensor View ....................................................................................................... 16
2.7.1. Real Tensor View Object ........................................................................... 17
2.7.2. Complex Tensor View Object ..................................................................... 18
2.8. Signal Processing ................................................................................................ 19
2.8.1. FFT ........................................................................................................ 19
2.8.2. Filtering .................................................................................................. 20
2.8.3. Convolution ............................................................................................. 21
2.8.4. Correlation ............................................................................................... 21
2.8.5. Histogram ................................................................................................ 22
2.9. Linear Algebra .................................................................................................... 22
2.9.1. Solvers .................................................................................................... 23
3. Support Functions .......................................................................................................... 25
3.1. Introduction ........................................................................................................ 25
3.1.1. Library Initialization and Finalization ........................................................... 25
3.1.2. Object Creation and Destruction .................................................................. 25
3.1.3. Complex Blocks and Views ........................................................................ 26
3.1.4. Real Views of Real or Imaginary Parts of Complex Views ............................... 27
3.1.5. Examples ................................................................................................. 27
3.2. Initialization/Finalization Operations ....................................................................... 27
3.2.1. vsip_init - Initialize the library .............................................................. 28
VSIPL 1.4
i