logo资料库

VSIPL verion1.4.pdf

第1页 / 共546页
第2页 / 共546页
第3页 / 共546页
第4页 / 共546页
第5页 / 共546页
第6页 / 共546页
第7页 / 共546页
第8页 / 共546页
资料共546页,剩余部分请下载后查看
VSIPL
1. Introduction
1.1. Scope
1.2. Platform Requirements
1.3. Functionality
1.4. Conformance
1.5. VSIPL Objects
1.6. Other Features of the Specification
1.7. Basic VSIPL Concepts
1.7.1. General Library Design Principles
1.7.2. Memory Management
1.7.2.1. Terminology
1.7.2.2. Object Memory Allocation
1.7.2.3. Data Memory Allocation
1.7.3. Structure of a VSIPL application
2. Summary of VSIPL Types
2.1. Type - Introduction
2.2. Scalar
2.2.1. Real Scalar
2.2.2. Complex Scalar
2.2.3. Boolean
2.2.4. Index
2.2.5. Offset, Stride, Length
2.3. Random Number Generator
2.4. Block Object
2.5. Vector View
2.5.1. Real Vector View Object
2.5.2. Complex Vector View
2.6. Matrix View
2.6.1. Real Matrix View Object
2.6.2. Complex Matrix View Object
2.7. Tensor View
2.7.1. Real Tensor View Object
2.7.2. Complex Tensor View Object
2.8. Signal Processing
2.8.1. FFT
2.8.2. Filtering
2.8.3. Convolution
2.8.4. Correlation
2.8.5. Histogram
2.9. Linear Algebra
2.9.1. Solvers
2.9.1.1. LU
2.9.1.2. Cholesky
2.9.1.3. QR
2.9.1.4. SVD
3. Support Functions
3.1. Introduction
3.1.1. Library Initialization and Finalization
3.1.2. Object Creation and Destruction
3.1.2.1. Block Object Manipulation
3.1.2.2. View Object Manipulation
3.1.3. Complex Blocks and Views
3.1.4. Real Views of Real or Imaginary Parts of Complex Views
3.1.5. Examples
3.2. Initialization/Finalization Operations
3.2.1. vsip_init - Initialize the library
3.2.2. vsip_finalize - Terminate the library
3.3. Array and Block Object Functions
3.3.1. vsip_dblockadmit_p
3.3.2. vsip_blockbind_p
3.3.3. vsip_cblockbind_p
3.3.4. vsip_dblockcreate_p
3.3.5. vsip_dblockdestroy_p
3.3.6. vsip_blockfind_p
3.3.7. vsip_cblockfind_p
3.3.8. vsip_blockrebind_p
3.3.9. vsip_cblockrebind_p
3.3.10. vsip_blockrelease_p
3.3.11. vsip_cblockrelease_p
3.3.12. vsip_complete
3.3.13. vsip_cstorage_p
3.4. Vector View Object Functions
3.4.1. vsip_dvalldestroy_p
3.4.2. vsip_dvbind_p
3.4.3. vsip_dvcloneview_p
3.4.4. vsip_dvcreate_p
3.4.5. vsip_dvdestroy_p
3.4.6. vsip_dvget_p
3.4.7. vsip_dvgetattrib_p
3.4.8. vsip_dvgetblock_p
3.4.9. vsip_dvgetlength_p
3.4.10. vsip_dvgetoffset_p
3.4.11. vsip_dvgetstride_p
3.4.12. vsip_vimagview_p
3.4.13. vsip_dvput_p
3.4.14. vsip_dvputattrib_p
3.4.15. vsip_dvputlength_p
3.4.16. vsip_dvputoffset_p
3.4.17. vsip_dvputstride_p
3.4.18. vsip_vrealview_p
3.4.19. vsip_dvsubview_p
3.5. Matrix View Object Functions
3.5.1. vsip_dmalldestroy_p
3.5.2. vsip_dmbind_p
3.5.3. vsip_dmcloneview_p
3.5.4. vsip_dmcolview_p
3.5.5. vsip_dmcreate_p
3.5.6. vsip_dmdestroy_p
3.5.7. vsip_dmdiagview_p
3.5.8. vsip_dmget_p
3.5.9. vsip_dmgetattrib_p
3.5.10. vsip_dmgetblock_p
3.5.11. vsip_dmgetcollength_p
3.5.12. vsip_dmgetcolstride_p
3.5.13. vsip_dmgetoffset_p
3.5.14. vsip_dmgetrowlength_p
3.5.15. vsip_dmgetrowstride_p
3.5.16. vsip_mimagview_p
3.5.17. vsip_dmput_p
3.5.18. vsip_dmputattrib_p
3.5.19. vsip_dmputcollength_p
3.5.20. vsip_dmputcolstride_p
3.5.21. vsip_dmputoffset_p
3.5.22. vsip_dmputrowlength_p
3.5.23. vsip_dmputrowstride_p
3.5.24. vsip_mrealview_p
3.5.25. vsip_dmrowview_p
3.5.26. vsip_dmsubview_p
3.5.27. vsip_dmtransview_p
3.6. Tensor View Object Functions
3.6.1. vsip_dtalldestroy_p
3.6.2. vsip_dtbind_p
3.6.3. vsip_dtcloneview_p
3.6.4. vsip_dtcreate_p
3.6.5. vsip_dtdestroy_p
3.6.6. vsip_dtget_p
3.6.7. vsip_dtgetattrib_p
3.6.8. vsip_dtgetblock_p
3.6.9. vsip_dtgetoffset_p
3.6.10. vsip_dtgetxlength_p
3.6.11. vsip_dtgetxstride_p
3.6.12. vsip_dtgetylength_p
3.6.13. vsip_dtgetystride_p
3.6.14. vsip_dtgetzlength_p
3.6.15. vsip_dtgetzstride_p
3.6.16. vsip_timagview_p
3.6.17. vsip_dtmatrixview_p
3.6.18. vsip_dtput_p
3.6.19. vsip_dtputattrib_p
3.6.20. vsip_dtputoffset_p
3.6.21. vsip_dtputxlength_p
3.6.22. vsip_dtputxstride_p
3.6.23. vsip_dtputylength_p
3.6.24. vsip_dtputystride_p
3.6.25. vsip_dtputzlength_p
3.6.26. vsip_dtputzstride_p
3.6.27. vsip_trealview_p
3.6.28. vsip_dtsubview_p
3.6.29. vsip_dttransview_p
3.6.30. vsip_dtvectview_p
4. Scalar Functions
4.1. Introduction To Scalar Functions
4.1.1. Domain And Range Errors
4.1.2. Notes To Implementors
4.1.3. Real Scalar Functions
4.1.4. Complex Scalar Functions
4.2. Real Scalar Functions
4.2.1. vsip_acos_p
4.2.2. vsip_asin_p
4.2.3. vsip_atan_p
4.2.4. vsip_atan2_p
4.2.5. vsip_ceil_p
4.2.6. vsip_cos_p
4.2.7. vsip_cosh_p
4.2.8. vsip_exp_p
4.2.9. vsip_exp10_p
4.2.10. vsip_floor_p
4.2.11. vsip_fmod_p
4.2.12. vsip_hypot_p
4.2.13. vsip_log_p
4.2.14. vsip_log10_p
4.2.15. vsip_mag_p
4.2.16. vsip_max_p
4.2.17. vsip_min_p
4.2.18. vsip_pow_p
4.2.19. vsip_rsqrt_p
4.2.20. vsip_sin_p
4.2.21. vsip_sinh_p
4.2.22. vsip_sqrt_p
4.2.23. vsip_tan_p
4.2.24. vsip_tanh_p
4.3. Complex Scalar Functions
4.3.1. vsip_arg_p
4.3.2. vsip_cadd_p
4.3.3. vsip_cdiv_p
4.3.4. vsip_cexp_p
4.3.5. vsip_cjmul_p
4.3.6. vsip_clog_p
4.3.7. vsip_cmag_p
4.3.8. vsip_cmagsq_p
4.3.9. vsip_cmplx_p
4.3.10. vsip_cmul_p
4.3.11. vsip_cneg_p
4.3.12. vsip_conj_p
4.3.13. vsip_crecip_p
4.3.14. vsip_csqrt_p
4.3.15. vsip_csub_p
4.3.16. vsip_imag_p
4.3.17. vsip_polar_p
4.3.18. vsip_real_p
4.3.19. vsip_rect_p
4.4. Index Scalar Functions
4.4.1. vsip_matindex
4.4.2. vsip_mcolindex
4.4.3. vsip_mrowindex
4.4.4. vsip_tenindex
4.4.5. vsip_txindex
4.4.6. vsip_tyindex
4.4.7. vsip_tzindex
5. Random Number Generation
5.1. Introduction
5.1.1. Random Numbers
5.1.2. VSIPL Random Number Generator Functions
5.1.3. Sample Implementation
5.2. Random Number Functions
5.2.1. vsip_randcreate
5.2.2. vsip_randdestroy
5.2.3. vsip_dsrandu_p
5.2.4. vsip_dsrandn_p
6. Vector & Elementwise Operations
6.1. Introduction
6.1.1. Name Space
6.1.2. Root Names
6.1.3. In-Place Functionality
6.1.4. Example Programs
6.2. Elementary Math Functions
6.2.1. vsip_sacos_p
6.2.2. vsip_sasin_p
6.2.3. vsip_satan_p
6.2.4. vsip_satan2_p
6.2.5. vsip_scos_p
6.2.6. vsip_scosh_p
6.2.7. vsip_dsexp_p
6.2.8. vsip_sexp10_p
6.2.9. vsip_dslog_p
6.2.10. vsip_slog10_p
6.2.11. vsip_ssin_p
6.2.12. vsip_ssinh_p
6.2.13. vsip_dssqrt_p
6.2.14. vsip_stan_p
6.2.15. vsip_stanh_p
6.3. Unary Operations
6.3.1. vsip_sarg_p
6.3.2. vsip_sceil_p_p
6.3.3. vsip_csconj_p
6.3.4. vsip_dscumsum_p
6.3.5. vsip_seuler_p
6.3.6. vsip_sfloor_p_p
6.3.7. vsip_dsmag_p
6.3.8. vsip_scmagsq_p
6.3.9. vsip_dsmeanval_p
6.3.10. vsip_dsmeansqval_p
6.3.11. vsip_dvmodulate_p
6.3.12. vsip_dsneg_p
6.3.13. vsip_dsrecip_p
6.3.14. vsip_sround_p_p
6.3.15. vsip_dsrsqrt_p
6.3.16. vsip_dssq_p
6.3.17. vsip_dssumval_p
6.3.18. vsip_dssumsqval_p
6.4. Binary Operations
6.4.1. vsip_dsadd_p
6.4.2. vsip_dssadd_p
6.4.3. vsip_dsdiv_p
6.4.4. vsip_dssdiv_p
6.4.5. vsip_dssdiv_p
6.4.6. vsip_dsexpoavg_p
6.4.7. vsip_shypot_p
6.4.8. vsip_ssjmul_p
6.4.9. vsip_dsmul_p
6.4.10. vsip_dssmul_p
6.4.11. vsip_dvdmmul_p
6.4.12. vsip_dssub_p
6.4.13. vsip_dsssub_p
6.5. Ternary Operations
6.5.1. vsip_dvam_p
6.5.2. vsip_dvma_p
6.5.3. vsip_dvmsa_p
6.5.4. vsip_dvmsb_p
6.5.5. vsip_dvsam_p
6.5.6. vsip_dvsbm_p
6.5.7. vsip_dvsma_p
6.5.8. vsip_dvsmsa_p
6.6. Logical Operations
6.6.1. vsip_salltrue_bl
6.6.2. vsip_sanytrue_bl
6.6.3. vsip_dsleq_p
6.6.4. vsip_dssleq_p
6.6.5. vsip_dslge_p
6.6.6. vsip_dsslge_p
6.6.7. vsip_dslgt_p
6.6.8. vsip_dsslgt_p
6.6.9. vsip_dslle_p
6.6.10. vsip_dsslle_p
6.6.11. vsip_dsllt_p
6.6.12. vsip_dssllt_p
6.6.13. vsip_dslne_p
6.6.14. vsip_dsslne_p
6.7. Selection Operations
6.7.1. vsip_sclip_p
6.7.2. vsip_dvfirst_p
6.7.3. vsip_sinvclip_p
6.7.4. vsip_sindexbool_p
6.7.5. vsip_smax_p
6.7.6. vsip_smaxmg_p
6.7.7. vsip_scmaxmgsq_p
6.7.8. vsip_scmaxmgsqval_p
6.7.9. vsip_smaxmgval_p
6.7.10. vsip_smaxval_p
6.7.11. vsip_smin_p
6.7.12. vsip_sminmg_p
6.7.13. vsip_scminmgsq_p
6.7.14. vsip_scminmgsqval_p
6.7.15. vsip_sminmgval_p
6.7.16. vsip_sminval_p
6.8. Bitwise and Boolean Logical Operations
6.8.1. vsip_sand_p
6.8.2. vsip_snot_p
6.8.3. vsip_sor_p
6.8.4. vsip_sxor_p
6.9. Element Generation and Copy
6.9.1. vsip_dscopy_p_p
6.9.2. vsip_dscopyto_user_p
6.9.3. vsip_dscopyfrom_user_p
6.9.4. vsip_dsfill_p
6.9.5. vsip_vramp_p
6.10. Manipulation Operations
6.10.1. vsip_scmplx_p
6.10.2. vsip_dsgather_p
6.10.3. vsip_dtgather_p
6.10.4. vsip_simag_p
6.10.5. vsip_spolar_p
6.10.6. vsip_sreal_p
6.10.7. vsip_srect_p
6.10.8. vsip_dsscatter_p
6.10.9. vsip_dtscatter_p
6.10.10. vsip_dsswap_p
6.11. User-Specified By Element Functions
6.11.1. vsip_sbinary_p
6.11.2. vsip_smary_p
6.11.3. vsip_snary_p
6.11.4. vsip_sserialmary_p
6.11.5. vsip_sunary_p
7. Signal Processing Functions
7.1. Introduction
7.1.1. FFT Routines
7.1.1.1. Introduction
7.1.1.2. 1D FFT
7.1.1.3. Multiple 1D FFT
7.1.1.4. 2D FFT
7.1.1.5. 3D FFT
7.1.1.6. FFT Object Utility Routines
7.1.1.7. Summary of VSIPL FFT Routines
7.1.1.8. References
7.1.2. Window Routines
7.1.2.1. Introduction
7.1.2.2. Window Routines
7.1.2.3. References
7.1.3. Filter Routines
7.1.3.1. Introduction
7.1.3.2. Filter Routines
7.1.3.3. References
7.1.4. Convolution/Correlation Routines
7.1.4.1. Introduction
7.1.4.2. 1D Convolution Routines
7.1.4.3. 2D Convolution Routines
7.1.4.4. 1D Correlation Routines
7.1.4.5. 2D Correlation Routines
7.1.4.6. References
7.1.5. Miscellaneous Routines
7.1.5.1. Introduction
7.1.5.2. Miscellaneous Routines
7.1.5.3. References
7.2. FFT Functions
7.2.1. vsip_ccfftx_f
7.2.2. vsip_crfftop_f
7.2.3. vsip_rcfftop_f
7.2.4. vsip_dfftx_create_f
7.2.5. vsip_fft_setwindow_f
7.2.6. vsip_ccfftmx_f
7.2.7. vsip_crfftmop_f
7.2.8. vsip_rcfftmop_f
7.2.9. vsip_dfftmx_create_f
7.2.10. vsip_fftm_setwindow_f
7.2.11. vsip_ccfft2dx_f
7.2.12. vsip_crfft2dop_f
7.2.13. vsip_rcfft2dop_f
7.2.14. vsip_dfft2dx_create_f
7.2.15. vsip_ccfft3dx_f
7.2.16. vsip_crfft3dop_f
7.2.17. vsip_rcfft3dop_f
7.2.18. vsip_dfft3dx_create_f
7.2.19. vsip_dfftn_destroy_f
7.2.20. vsip_fftn_getattr_f
7.3. Convolution/Correlation Functions
7.3.1. vsip_dconv1d_create_f
7.3.2. vsip_dconv1d_destroy_f
7.3.3. vsip_dconv1d_getattr_f
7.3.4. vsip_dconvolve1d_f
7.3.5. vsip_dconv2d_create_f
7.3.6. vsip_dconv2d_destroy_f
7.3.7. vsip_dconv2d_getattr_f
7.3.8. vsip_convolve2d_f
7.3.9. vsip_dcorr1d_create_f
7.3.10. vsip_dcorr1d_destroy_f
7.3.11. vsip_dcorr1d_getattr_f
7.3.12. vsip_dcorrelate_f
7.3.13. vsip_dcorr2d_create_f
7.3.14. vsip_dcorr2d_destroy_f
7.3.15. vsip_dcorr2d_getattr_f
7.3.16. vsip_dcorrelate2d_f
7.4. Window Functions
7.4.1. vsip_vcreate_blackman_f
7.4.2. vsip_vcreate_cheby_f
7.4.3. vsip_vcreate_hanning_f
7.4.4. vsip_vcreate_kaiser_f
7.5. Filter Functions
7.5.1. vsip_dfir_create_f
7.5.2. vsip_dfir_destroy_f
7.5.3. vsip_dfirflt_f
7.5.4. vsip_dfir_getattr_f
7.5.5. vsip_dfir_reset_f
7.5.6. vsip_diir_create_f
7.5.7. vsip_diir_destroy_f
7.5.8. vsip_diirflt_f
7.5.9. vsip_diir_getattr_f
7.5.10. vsip_diir_reset_f
7.6. Miscellaneous Signal Processing Functions
7.6.1. vsip_shisto_p
7.6.2. vsip_dsfreqswap_f
8. Linear Algebra Functions
8.1. Introduction
8.2. Matrix and Vector Operations
8.2.1. vsip_cmherm_p
8.2.2. vsip_cvjdot_p
8.2.3. vsip_dgemp_p
8.2.4. vsip_dgems_p
8.2.5. vsip_dskron_p
8.2.6. vsip_dmprod3_p
8.2.7. vsip_dmprod4_p
8.2.8. vsip_dmprod_p
8.2.9. vsip_dmprodh_p
8.2.10. vsip_dmprodj_p
8.2.11. vsip_dmprodt_p
8.2.12. vsip_dmvprod3_p
8.2.13. vsip_dmvprod4_p
8.2.14. vsip_dmvprod_p
8.2.15. vsip_dmtrans_p
8.2.16. vsip_dvdot_p
8.2.17. vsip_dvmprod_p
8.2.18. vsip_dvouter_p
8.3. Special Linear System Solvers
8.3.1. vsip_dcovsol_p
8.3.2. vsip_dllsqsol_p
8.3.3. vsip_dtoepsol_p
8.4. General Square Linear System Solver
8.4.1. vsip_dlud_p
8.4.2. vsip_dlud_create_p
8.4.3. vsip_dlud_destroy_p
8.4.4. vsip_dlud_getattr_p
8.4.5. vsip_dludsol_p
8.5. Symmetric Positive Definite Linear System Solver
8.5.1. vsip_dchold_p
8.5.2. vsip_dchold_create_p
8.5.3. vsip_dchold_destroy_p
8.5.4. vsip_dchold_getattr_p
8.5.5. vsip_dcholsol_p
8.6. Over-determined Linear System Solver
8.6.1. vsip_dqrd_p
8.6.2. vsip_dqrd_create_p
8.6.3. vsip_dqrd_destroy_p
8.6.4. vsip_dqrd_getattr_p
8.6.5. vsip_dqrdprodq_p
8.6.6. vsip_dqrdsolr_p
8.6.7. vsip_dqrsol_p
8.7. Singular Value Decomposition
8.7.1. vsip_dsvd_p
8.7.2. vsip_dsvd_create_p
8.7.3. vsip_dsvd_destroy_p
8.7.4. vsip_dsvdprodu_p
8.7.5. vsip_dsvdprodv_p
8.7.6. vsip_dsvdmatu_p
8.7.7. vsip_dsvdmatv_p
9. Interpolation
9.1. Introduction
9.2. Interpolation Fundamentals
9.3. Interpolation Type Definitions
9.4. Interpolation Functions
9.4.1. vsip_spline_create_p
9.4.2. vsip_spline_destroy_p
9.4.3. vsip_vinterp_spline_p
9.4.4. vsip_minterp_spline_p
9.4.5. vsip_vinterp_linear_p
9.4.6. vsip_minterp_linear_p
9.4.7. vsip_vinterp_nearest_p
9.4.8. vsip_minterp_nearest_p
10. Permutation Functions
10.1. Introduction
10.1.1. Permute Fundamentals
10.1.1.1. Functionality
10.1.2. Type Definitions for Permute
10.2. Permutation Functions
10.2.1. vsip_dmpermute_create_p
10.2.2. vsip_permute_init
10.2.3. vsip_permute_destroy
10.2.4. vsip_dmpermute_p
10.2.5. vsip_dmpermute_once_p
11. Sort Functions
11.1. Introduction
11.1.1. Sort Fundamentals
11.1.1.1. Select Sort
11.1.2. Type Definitions for Sort
11.2. Sort
11.2.1. vsip_vsortip_p
12. Implementation Dependent Input and Output
12.1. Introduction
12.1.1. Methodology
12.1.2. Functionality and Naming
12.2. I/O Functionality
12.2.1. Signal Processing Prototypes
12.2.1.1. FFT objects
12.2.1.2. Multiple FFT objects
12.2.1.3. Two Dimensional FFT objects
12.2.1.4. Three Dimensional FFT objects
12.2.1.5. One Dimensional Convolution
12.2.1.6. Two Dimensional Convolution
12.2.1.7. One Dimensional Correlation
12.2.1.8. Two Dimensional Correlation
12.2.1.9. FIR Filter Object
12.2.1.10. IIR Filter Object
12.2.2. Linear Algebra Prototypes
12.2.2.1. LUD Object I/O
12.2.2.2. Cholesky Object I/O
12.2.2.3. QRD Object I/O
12.2.2.4. SVD Object I/O
12.2.3. vsip_d_export_p
12.2.4. vsip_d_find_p
12.2.5. vsip_d_import_p
12.2.6. vsip_d_size_p
12.3. Examples
13. Notes to Implementers
13.1. Incomplete Type Definitions
13.2. Checking for Object Validity
Appendix A. Glossary
Appendix B. Specification Changes
Publication date: 2013-02-07 VSIPL Version 1.4 OMG Document Number: formal/12-12-01 Normative reference: http://www.omg.org/spec/VSIPL
© 2005 by Georgia Tech Research Corporation © 2012 by Mentor Graphics © 2012 by Object Management Group 1. Use of specification - terms, conditions & notices The material in this document details an Object Management Group specification in accordance with the terms, conditions and notices set forth below. This document does not represent a commitment to implement any portion of this specification in any company's products. The information contained in this document is subject to change without notice. 2. Licenses The companies listed above have granted to the Object Management Group, Inc. (OMG) a nonexclusive, royalty-free, paid up, worldwide license to copy and distribute this document and to modify this document and distribute copies of the modified version. Each of the copyright holders listed above has agreed that no person shall be deemed to have infringed the copyright in the included material of any such copyright holder by reason of having used the specification set forth herein or having conformed any computer software to the specification. Subject to all of the terms and conditions below, the owners of the copyright in this specification hereby grant you a fully-paid up, non-exclusive, nontransferable, perpetual, worldwide license (without the right to sublicense), to use this specification to create and distribute software and special purpose specifications that are based upon this specification, and to use, copy, and distribute this specification as provided under the Copyright Act; provided that: (1) both the copyright notice identified above and this permission notice appear on any copies of this specification; (2) the use of the specifications is for informational purposes and will not be copied or posted on any network computer or broadcast in any media and will not be otherwise resold or transferred for commercial purposes; and (3) no modifications are made to this specification. This limited permission automatically terminates without notice if you breach any of these terms or conditions. Upon termination, you will destroy immediately any copies of the specifications in your possession or control. 3. Patents The attention of adopters is directed to the possibility that compliance with or adoption of OMG specifications may require use of an invention covered by patent rights. OMG shall not be responsible for identifying patents for which a license may be required by any OMG specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. OMG specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents. 4. General use restrictions Any unauthorized use of this specification may violate copyright laws, trademark laws, and communications regulations and statutes. This document contains information which is protected by copyright. All Rights Reserved. No part of this work covered by copyright herein may be reproduced or used in any form or by any means -- graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems -- without permission of the copyright owner. 5. Disclamer of warranty WHILE THIS PUBLICATION IS BELIEVED TO BE ACCURATE, IT IS PROVIDED "AS IS" AND MAY CONTAIN ERRORS OR MISPRINTS. THE OBJECT MANAGEMENT GROUP AND THE COMPANIES LISTED ABOVE MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS PUBLICATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF MERCHANTABILITY OR WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE.
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
3.2.2. vsip_finalize - Terminate the library .................................................... 29 3.3. Array and Block Object Functions .......................................................................... 29 3.3.1. vsip_dblockadmit_p .................................................................................. 30 3.3.2. vsip_blockbind_p ...................................................................................... 31 3.3.3. vsip_cblockbind_p .................................................................................... 32 3.3.4. vsip_dblockcreate_p .................................................................................. 34 3.3.5. vsip_dblockdestroy_p ................................................................................ 35 3.3.6. vsip_blockfind_p ...................................................................................... 36 3.3.7. vsip_cblockfind_p ..................................................................................... 36 3.3.8. vsip_blockrebind_p ................................................................................... 37 3.3.9. vsip_cblockrebind_p .................................................................................. 39 3.3.10. vsip_blockrelease_p ................................................................................. 40 3.3.11. vsip_cblockrelease_p ............................................................................... 41 3.3.12. vsip_complete ......................................................................................... 44 3.3.13. vsip_cstorage_p ...................................................................................... 45 3.4. Vector View Object Functions ............................................................................... 46 3.4.1. vsip_dvalldestroy_p .................................................................................. 47 3.4.2. vsip_dvbind_p ......................................................................................... 48 3.4.3. vsip_dvcloneview_p .................................................................................. 49 3.4.4. vsip_dvcreate_p ....................................................................................... 50 3.4.5. vsip_dvdestroy_p ..................................................................................... 51 3.4.6. vsip_dvget_p ........................................................................................... 52 3.4.7. vsip_dvgetattrib_p .................................................................................... 53 3.4.8. vsip_dvgetblock_p .................................................................................... 54 3.4.9. vsip_dvgetlength_p ................................................................................... 54 3.4.10. vsip_dvgetoffset_p .................................................................................. 55 3.4.11. vsip_dvgetstride_p .................................................................................. 56 3.4.12. vsip_vimagview_p ................................................................................... 56 3.4.13. vsip_dvput_p ......................................................................................... 58 3.4.14. vsip_dvputattrib_p .................................................................................. 58 3.4.15. vsip_dvputlength_p ................................................................................. 60 3.4.16. vsip_dvputoffset_p .................................................................................. 61 3.4.17. vsip_dvputstride_p .................................................................................. 61 3.4.18. vsip_vrealview_p .................................................................................... 62 3.4.19. vsip_dvsubview_p ................................................................................... 63 3.5. Matrix View Object Functions ............................................................................... 65 3.5.1. vsip_dmalldestroy_p ................................................................................. 66 3.5.2. vsip_dmbind_p ........................................................................................ 67 3.5.3. vsip_dmcloneview_p ................................................................................. 68 3.5.4. vsip_dmcolview_p .................................................................................... 69 3.5.5. vsip_dmcreate_p ...................................................................................... 70 3.5.6. vsip_dmdestroy_p ..................................................................................... 71 3.5.7. vsip_dmdiagview_p .................................................................................. 72 3.5.8. vsip_dmget_p .......................................................................................... 73 3.5.9. vsip_dmgetattrib_p ................................................................................... 74 3.5.10. vsip_dmgetblock_p ................................................................................. 75 3.5.11. vsip_dmgetcollength_p ............................................................................ 75 3.5.12. vsip_dmgetcolstride_p ............................................................................. 76 3.5.13. vsip_dmgetoffset_p ................................................................................. 77 3.5.14. vsip_dmgetrowlength_p ........................................................................... 77 3.5.15. vsip_dmgetrowstride_p ............................................................................ 78 3.5.16. vsip_mimagview_p .................................................................................. 79 3.5.17. vsip_dmput_p ........................................................................................ 80 3.5.18. vsip_dmputattrib_p ................................................................................. 81 ii VSIPL 1.4
3.5.19. vsip_dmputcollength_p ............................................................................ 82 3.5.20. vsip_dmputcolstride_p ............................................................................. 83 3.5.21. vsip_dmputoffset_p ................................................................................. 83 3.5.22. vsip_dmputrowlength_p ........................................................................... 84 3.5.23. vsip_dmputrowstride_p ............................................................................ 85 3.5.24. vsip_mrealview_p ................................................................................... 86 3.5.25. vsip_dmrowview_p ................................................................................. 87 3.5.26. vsip_dmsubview_p .................................................................................. 88 3.5.27. vsip_dmtransview_p ................................................................................ 89 3.6. Tensor View Object Functions ............................................................................... 90 3.6.1. vsip_dtalldestroy_p ................................................................................... 91 3.6.2. vsip_dtbind_p .......................................................................................... 92 3.6.3. vsip_dtcloneview_p .................................................................................. 94 3.6.4. vsip_dtcreate_p ........................................................................................ 94 3.6.5. vsip_dtdestroy_p ...................................................................................... 96 3.6.6. vsip_dtget_p ............................................................................................ 97 3.6.7. vsip_dtgetattrib_p ..................................................................................... 98 3.6.8. vsip_dtgetblock_p ..................................................................................... 99 3.6.9. vsip_dtgetoffset_p .................................................................................... 99 3.6.10. vsip_dtgetxlength_p ............................................................................... 100 3.6.11. vsip_dtgetxstride_p ................................................................................ 101 3.6.12. vsip_dtgetylength_p ............................................................................... 101 3.6.13. vsip_dtgetystride_p ................................................................................ 102 3.6.14. vsip_dtgetzlength_p ............................................................................... 102 3.6.15. vsip_dtgetzstride_p ................................................................................ 103 3.6.16. vsip_timagview_p .................................................................................. 104 3.6.17. vsip_dtmatrixview_p .............................................................................. 105 3.6.18. vsip_dtput_p ........................................................................................ 106 3.6.19. vsip_dtputattrib_p ................................................................................. 107 3.6.20. vsip_dtputoffset_p ................................................................................. 108 3.6.21. vsip_dtputxlength_p .............................................................................. 109 3.6.22. vsip_dtputxstride_p ............................................................................... 110 3.6.23. vsip_dtputylength_p .............................................................................. 110 3.6.24. vsip_dtputystride_p ............................................................................... 111 3.6.25. vsip_dtputzlength_p ............................................................................... 112 3.6.26. vsip_dtputzstride_p ................................................................................ 113 3.6.27. vsip_trealview_p ................................................................................... 113 3.6.28. vsip_dtsubview_p .................................................................................. 115 3.6.29. vsip_dttransview_p ................................................................................ 116 3.6.30. vsip_dtvectview_p ................................................................................. 117 4. Scalar Functions ........................................................................................................... 119 4.1. Introduction To Scalar Functions .......................................................................... 119 4.1.1. Domain And Range Errors ........................................................................ 119 4.1.2. Notes To Implementors ............................................................................ 119 4.1.3. Real Scalar Functions .............................................................................. 120 4.1.4. Complex Scalar Functions ........................................................................ 120 4.2. Real Scalar Functions ......................................................................................... 121 4.2.1. vsip_acos_p ........................................................................................... 122 4.2.2. vsip_asin_p ............................................................................................ 122 4.2.3. vsip_atan_p ............................................................................................ 123 4.2.4. vsip_atan2_p .......................................................................................... 124 4.2.5. vsip_ceil_p ............................................................................................ 125 4.2.6. vsip_cos_p ............................................................................................. 125 4.2.7. vsip_cosh_p ........................................................................................... 126 VSIPL 1.4 iii
4.2.8. vsip_exp_p ............................................................................................ 126 4.2.9. vsip_exp10_p ......................................................................................... 127 4.2.10. vsip_floor_p ......................................................................................... 127 4.2.11. vsip_fmod_p ......................................................................................... 128 4.2.12. vsip_hypot_p ........................................................................................ 129 4.2.13. vsip_log_p ........................................................................................... 129 4.2.14. vsip_log10_p ........................................................................................ 130 4.2.15. vsip_mag_p .......................................................................................... 130 4.2.16. vsip_max_p .......................................................................................... 131 4.2.17. vsip_min_p .......................................................................................... 132 4.2.18. vsip_pow_p .......................................................................................... 132 4.2.19. vsip_rsqrt_p .......................................................................................... 133 4.2.20. vsip_sin_p ............................................................................................ 133 4.2.21. vsip_sinh_p .......................................................................................... 134 4.2.22. vsip_sqrt_p ........................................................................................... 134 4.2.23. vsip_tan_p ............................................................................................ 135 4.2.24. vsip_tanh_p .......................................................................................... 136 4.3. Complex Scalar Functions ................................................................................... 136 4.3.1. vsip_arg_p ............................................................................................. 137 4.3.2. vsip_cadd_p ........................................................................................... 138 4.3.3. vsip_cdiv_p ............................................................................................ 139 4.3.4. vsip_cexp_p ........................................................................................... 140 4.3.5. vsip_cjmul_p .......................................................................................... 140 4.3.6. vsip_clog_p ............................................................................................ 141 4.3.7. vsip_cmag_p .......................................................................................... 142 4.3.8. vsip_cmagsq_p ....................................................................................... 143 4.3.9. vsip_cmplx_p ......................................................................................... 143 4.3.10. vsip_cmul_p ......................................................................................... 144 4.3.11. vsip_cneg_p ......................................................................................... 145 4.3.12. vsip_conj_p .......................................................................................... 146 4.3.13. vsip_crecip_p ....................................................................................... 146 4.3.14. vsip_csqrt_p ......................................................................................... 147 4.3.15. vsip_csub_p .......................................................................................... 148 4.3.16. vsip_imag_p ......................................................................................... 149 4.3.17. vsip_polar_p ......................................................................................... 149 4.3.18. vsip_real_p ........................................................................................... 150 4.3.19. vsip_rect_p ........................................................................................... 151 4.4. Index Scalar Functions ....................................................................................... 152 4.4.1. vsip_matindex ......................................................................................... 152 4.4.2. vsip_mcolindex ....................................................................................... 153 4.4.3. vsip_mrowindex ...................................................................................... 153 4.4.4. vsip_tenindex ......................................................................................... 154 4.4.5. vsip_txindex ........................................................................................... 154 4.4.6. vsip_tyindex ........................................................................................... 155 4.4.7. vsip_tzindex ........................................................................................... 156 5. Random Number Generation .......................................................................................... 157 5.1. Introduction ...................................................................................................... 157 5.1.1. Random Numbers .................................................................................... 157 5.1.2. VSIPL Random Number Generator Functions .............................................. 157 5.1.3. Sample Implementation ............................................................................ 159 5.2. Random Number Functions ................................................................................. 162 5.2.1. vsip_randcreate ....................................................................................... 162 5.2.2. vsip_randdestroy ..................................................................................... 164 5.2.3. vsip_dsrandu_p ...................................................................................... 164 iv VSIPL 1.4
分享到:
收藏