Adelsbach/VSIPL
Core Programming Reference Guide
DD-00016-015
Core

This manual is preliminary and incomplete.
While our Core implementation implements all functions given in the standard we are still working on completing this documentation.

Please refer to the VSIPL standard for a complete function reference of the Core profile until we have completed work on this documentation.

Contents

0.1 About this Guide
0.1.1 Legal Information
0.1.2 Feedback and Contact
0.2 Overview
0.2.1 Introduction
0.2.2 Link Libraries
0.3 General Functions
0.3.1 vsip_cstorage_p - Complex storage type
1 Support Functions
1.1 Initialization Functions
1.1.1 vsip_init - Initialize
1.1.2 vsip_finalize - Finalize
1.2 Block Support Functions
1.2.1 vsip_dblockcreate_p - Create a block
1.2.2 vsip_blockbind_p - Create a block using existing data
1.2.3 vsip_cblockbind_p - Create a block using existing data (complex)
1.2.4 vsip_blockrebind_p - Rebind existing block
1.2.5 vsip_cblockrebind_p - Rebind existing block (complex)
1.2.6 vsip_dblockadmit_p - Admit block data
1.2.7 vsip_blockfind_p - Get user data
1.2.8 vsip_cblockfind_p - Get user data (complex)
1.2.9 vsip_blockrelease_p - Release a block
1.2.10 vsip_cblockrelease_p - Release a block (complex)
1.2.11 vsip_dblockdestroy_p - Destroy a block
1.3 Vector View Support Functions
1.3.1 vsip_dvcreate_p - Create a Vector View
1.3.2 vsip_dvbind_p - Bind a Vector View to a Data Block
1.3.3 vsip_dvcloneview_p - Clone a Vector View
1.3.4 vsip_dvget_p - Get an Element from a Vector View
1.3.5 vsip_dvput_p - Set an Element in a Vector View
1.3.6 vsip_dvsubview_p - Create a Subview of a Vector View
1.3.7 vsip_vrealview_p - Get the Real Part View of a Complex Vector View
1.3.8 vsip_vimagview_p - Get the Imaginary Part View of a Complex Vector View
1.3.9 vsip_dvgetattrib_p - Get the Attributes of a Vector View
1.3.10 vsip_dvputattrib_p - Set the Attributes of a Vector View
1.3.11 vsip_dvgetblock_p - Get the Data Block of a Vector View
1.3.12 vsip_dvgetlength_p - Get the Length of a Vector View
1.3.13 vsip_dvputlength_p - Set the Length of a Vector View
1.3.14 vsip_dvgetstride_p - Get the Stride of a Vector View
1.3.15 vsip_dvputstride_p - Set the Stride of a Vector View
1.3.16 vsip_dvgetoffset_p - Get the Offset of a Vector View
1.3.17 vsip_dvputoffset_p - Set the Offset of a Vector View
1.3.18 vsip_dvdestroy_p - Destroy a Vector View
1.3.19 vsip_dvalldestroy_p - Destroy a Vector View and Its Data Block
1.4 Matrix View Support Functions
1.4.1 vsip_dmcreate_p - Create a Matrix View
1.4.2 vsip_dmbind_p - Bind a Matrix View to a Block
1.4.3 vsip_dmcloneview_p - Clone a Matrix View
1.4.4 vsip_dmget_p - Get Matrix Element
1.4.5 vsip_dmput_p - Set Matrix Element
1.4.6 vsip_dmsubview_p - Create a Submatrix View
1.4.7 vsip_dmtransview_p - Create a Transposed Matrix View
1.4.8 vsip_dmrowview_p - Create a Row Vector View of a Matrix
1.4.9 vsip_dmcolview_p - Create a Column Vector View of a Matrix
1.4.10 vsip_dmdiagview_p - Create a Diagonal Vector View of a Matrix
1.4.11 vsip_mrealview_p - Create a Real Part Matrix View
1.4.12 vsip_mimagview_p - Create an Imaginary Part Matrix View
1.4.13 vsip_dmgetattrib_p - Get Matrix Attributes
1.4.14 vsip_dmputattrib_p - Set Matrix Attributes
1.4.15 vsip_dmgetblock_p - Get the Data Block from a Matrix View
1.4.16 vsip_dmgetcollength_p - Get Number of Columns in a Matrix View
1.4.17 vsip_dmputcollength_p - Set Number of Columns in a Matrix View
1.4.18 vsip_dmgetrowlength_p - Get Number of Rows in a Matrix View
1.4.19 vsip_dmputrowlength_p - Set Number of Rows in a Matrix View
1.4.20 vsip_dmgetcolstride_p - Get Column Stride of a Matrix View
1.4.21 vsip_dmputcolstride_p - Set Column Stride of a Matrix View
1.4.22 vsip_dmgetrowstride_p - Get Row Stride of a Matrix View
1.4.23 vsip_dmputrowstride_p - Set Row Stride of a Matrix View
1.4.24 vsip_dmgetoffset_p - Get Matrix View Offset
1.4.25 vsip_dmputoffset_p - Set Matrix View Offset
1.4.26 vsip_dmdestroy_p - Destroy a Matrix View
1.4.27 vsip_dmalldestroy_p - Destroy Matrix View and its Data Block
2 Scalar Functions
2.1 Real Scalar Functions
2.2 Complex Scalar Functions
2.2.1 vsip_real_p - Complex Real part
2.2.2 vsip_imag_p - Complex Imaginary part
2.2.3 vsip_cmplx_p - Create complex number
2.2.4 vsip_CMPLX_p - Create a Complex Scalar and Store in a Pointer
2.3 Index Scalar Functions
3 Random Number Generation
3.1 Random Number Functions
3.1.1 vsip_randcreate - Create a Random Number Generator State
3.1.2 vsip_randdestroy - Destroy a Random Number Generator State
3.1.3 vsip_dvrandu_p - Generate Uniformly Distributed Random Numbers in a Vector View
3.1.4 vsip_dvrandn_p - Fill Vector with Normally Distributed Random Numbers
4 Vector and Elementwise Operations
4.1 Copy Functions
4.1.1 vsip_dvcopy_p_p - Copy Vector Views
4.1.2 vsip_dmcopy_p - Copy Matrix Views
4.2 Vector General
4.2.1 vsip_dvmul_p - Element-wise Multiplication of Two Vector Views
4.2.2 vsip_vdiv_p - Element-wise Division of Two Vector Views
4.2.3 vsip_dvadd_p - Element-wise Addition of Two Vector Views
4.2.4 vsip_dvsub_p - Element-wise Subtraction of Two Vector Views
4.2.5 vsip_dsvmul_p - Multiply a Scalar by a Vector View
4.2.6 vsip_svdiv_p - Divide a Scalar by a Vector View
4.2.7 vsip_svadd_p - Add a Scalar to a Vector View
4.2.8 vsip_dvneg_p - Negate Elements of a Vector View
4.2.9 vsip_dvmag_p - Compute Magnitude of Elements of a Vector View
4.3 Vector Real
4.3.1 vsip_vminval_p - Find the Minimum Value in a Vector View
4.3.2 vsip_vmaxval_p - Find the Maximum Value in a Vector View
4.3.3 vsip_vsumval_p - Compute the Sum of Elements in a Vector View
4.3.4 vsip_vsumsqval_p - Compute the Sum of Squares of Elements in a Vector View
4.3.5 vsip_vsq_p - Square Elements of a Vector View
4.3.6 vsip_vrecip_p - Compute Reciprocal of Elements of a Vector View
4.3.7 vsip_vmin_p - Element-wise Minimum of Two Vector Views
4.3.8 vsip_vmax_p - Element-wise Maximum of Two Vector Views
4.3.9 vsip_vsin_p - Element-wise Sine of a Vector View
4.3.10 vsip_vcos_p - Element-wise Cosine of a Vector View
4.3.11 vsip_vtan_p - Element-wise Tangent of a Vector View
4.3.12 vsip_vatan_p - Element-wise Arctangent of a Vector View
4.3.13 vsip_vexp_p - Element-wise Exponential of a Vector View
4.3.14 vsip_vlog_p - Element-wise Natural Logarithm of a Vector View
4.3.15 vsip_vlog10_p - Element-wise Base-10 Logarithm of a Vector View
4.3.16 vsip_vsqrt_p - Element-wise Square Root of a Vector View
4.3.17 vsip_vatan2_p - Element-wise Arctangent of Two Vector Views
4.3.18 vsip_vfill_p - Fill a Vector View with a Scalar Value
4.3.19 vsip_vramp_p - Fill a Vector View with a Ramp
4.4 Vector Complex
4.4.1 vsip_cvjmul_p - Element-wise Complex Conjugate Multiplication of Two Complex Vector Views
4.4.2 vsip_rcvmul_p - Element-wise Real-Complex Multiplication
4.4.3 vsip_rscvmul_p - Element-wise Scalar-Complex Multiplication
4.4.4 vsip_cvconj_p - Element-wise Complex Conjugate of a Complex Vector View
4.4.5 vsip_cvmag_p - Compute Magnitude of Complex Vector View
4.4.6 vsip_vcmagsq_p - Element-wise Magnitude Squared of a Complex Vector View
4.5 Boolean
4.5.1 vsip_vnot_p - Boolean Vector Logical NOT
4.5.2 vsip_vand_p - Boolean Vector Logical AND
4.5.3 vsip_vor_p - Boolean Vector Logical OR
4.5.4 vsip_vxor_p - Boolean Vector Logical XOR
4.5.5 vsip_valltrue_p - Check if All Elements in Boolean Vector are True
4.5.6 vsip_vanytrue_p - Check if Any Element in Boolean Vector is True
4.5.7 vsip_vindexbool - Find Indices of True Elements in Boolean Vector
4.6 Manipulation Operations
4.6.1 vsip_vreal_p - Extract Real Part of a Complex Vector View
4.6.2 vsip_vimag_p - Extract Imaginary Part of a Complex Vector View
4.6.3 vsip_vcmplx_p - Create a Complex Vector View from Real and Imaginary Parts
4.6.4 vsip_dvgather_p - Gather Elements from a Vector
4.6.5 vsip_dvscatter_p - Scatter Elements to a Vector
4.6.6 vsip_dvswap_p - Swap Elements Between two Vectors
4.6.7 vsip_vrect_p - Convert Cartesian Coordinates to Complex Numbers
4.6.8 vsip_vpolar_p - Convert Polar Coordinates to Cartesian
5 Signal Processing Functions
5.1 FFT Functions
5.1.1 vsip_ddfftop_create_p - Create FFT Objects (Out-of-Place)
5.1.2 vsip_ccfftip_create_p - Create FFT Object (In-Place)
5.1.3 vsip_fft_destroy_p - Destroy an FFT Object
5.1.4 vsip_fft_getattr_p - Get FFT Object Attributes
5.1.5 vsip_ddfftop_p - Perform FFT Operations (Out-of-Place)
5.1.6 vsip_ccfftip_p - Perform FFT Operations (In-Place)
5.1.7 vsip_ddffmop_create_p - Create Multiple-FFT Objects (Out-of-Place)
5.1.8 vsip_ccffmip_create_p - Create Multilpe-FFT Object (In-Place)
5.1.9 vsip_fftm_destroy_p - Destroy a Multiple-FFT Object
5.1.10 vsip_fftm_getattr_p - Get Multple-FFT Object Attributes
5.1.11 vsip_ddffmop_p - Perform Multiple-FFT Operations (Out-of-Place)
5.1.12 vsip_ccffmip_p - Perform Multiple-FFT Operations (In-Place)
5.2 Convolution and Correlation Functions
5.2.1 vsip_dconv1d_create_p - Create 1D Convolution Object
5.2.2 vsip_dconv1d_destroy_p - Destroy 1D Convolution Object
5.2.3 vsip_dconv1d_getattr_p - Get 1D Convolution Object Attributes
5.2.4 vsip_dconvolve1d_p - Perform 1D Convolution
5.2.5 vsip_dcorr1d_create_p - Create 1D Correlation Object
5.2.6 vsip_dcorr1d_destroy_p - Destroy 1D Correlation Object
5.2.7 vsip_dcorr1d_getattr_p - Get 1D Correlation Object Attributes
5.2.8 vsip_dcorrelate1d_p - Compute 1D Correlation
5.3 Window Functions
5.3.1 vsip_vcreate_blackman_p - Create a Blackman Window Vector
5.3.2 vsip_vcreate_kaiser_p - Create a Kaiser Window Vector
5.3.3 vsip_vcreate_cheby_p - Create a Chebyshev Window Vector
5.3.4 vsip_vcreate_hanning_p - Create a Hanning Window Vector
5.4 FIR
5.4.1 vsip_dfir_create_p - Create a FIR Filter
5.4.2 vsip_dfir_reset_p - Reset a FIR Filter
5.4.3 vsip_dfir_getattr_p - Get Attributes of a FIR Filter
5.4.4 vsip_dfirflt_p - Apply a FIR Filter to a Vector View
5.4.5 vsip_dfir_destroy_p - Destroy a FIR Filter
5.5 Miscellaneous Signal Processing Functions
5.5.1 vsip_vhisto_p - Compute Histogram of a Vector View
6 Linear Algebra Functions
6.1 Matrix and Vector Operations
6.1.1 vsip_dvdot_p - Compute the Dot Product of Two Vector Views
6.1.2 vsip_cvjdot_p - Compute the Conjugate Dot Product of Two Complex Vector Views
6.1.3 vsip_dvouter_p - Outer Product of Two Vectors
6.1.4 vsip_dmtrans_p - Matrix Transposition
6.1.5 vsip_cmherm_p - Matrix Hermitian
6.1.6 vsip_dgemp_p - General Matrix Product
6.1.7 vsip_dgems_p - General Matrix Scaling and Addition
6.1.8 vsip_dvmprod_p - Vector-Matrix Product
6.1.9 vsip_dmvprod_p - Matrix-Vector Product
6.1.10 vsip_dmprod_p - Matrix-Matrix Product
6.1.11 vsip_dmprodt_p - Matrix-Matrix Product with Transposition
6.1.12 vsip_cmprodh_p - Complex Matrix Product with Hermitian Transpose
6.1.13 vsip_cmprodj_p - Complex Matrix Product with Conjugate
6.2 Special Linear Solvers
6.2.1 vsip_dtoepsol_p - Solve a Toeplitz System of Equations
6.2.2 vsip_dcovsol_p - Solve a Covariance System of Equations
6.2.3 vsip_dllsqsol_p - Solve Linear Least Squares Problem
6.3 General Linear Square System Solver
6.3.1 vsip_dlud_create_p - Create LU Decomposition Object
6.3.2 vsip_dlud_destroy_p - Destroy LU Decomposition Object
6.3.3 vsip_dlud_getattr_p - Get LU Decomposition Attributes
6.3.4 vsip_dlud_p - Perform LU Decomposition
6.3.5 vsip_dlusol_p - Solve Linear System Using LU Decomposition
6.4 Symmetric Positive Definite Linear System Solver
6.4.1 vsip_dchold_create_p - Create Cholesky Decomposition Object
6.4.2 vsip_dchold_destroy_p - Destroy Cholesky Decomposition Object
6.4.3 vsip_dchold_getattr_p - Get Cholesky Decomposition Attributes
6.4.4 vsip_dchold_p - Perform Cholesky Decomposition
6.4.5 vsip_dcholsol_p - Solve Linear Systems Using Cholesky Decomposition
6.5 Over-determined Linear System Solver
6.5.1 vsip_dqrd_create_p - Create QR Decomposition Object
6.5.2 vsip_dqrd_destroy_p - Destroy QR Decomposition Object
6.5.3 vsip_dqrd_getattr_p - Get QR Decomposition Attributes
6.5.4 vsip_dqrd_p - Perform QR Decomposition
6.5.5 vsip_dqrsol_p - Solve Linear Systems Using QR Decomposition
6.5.6 vsip_dqrdsolr_p - Solve Linear Systems with Modified R Matrix
6.5.7 vsip_dqrdprodq_p - Multiply by Q Matrix from QR Decomposition
0.1 About this Guide
0.1.1 Legal Information
0.1.2 Feedback and Contact
0.2 Overview
0.2.1 Introduction
0.2.2 Link Libraries
0.3 General Functions
0.3.1 vsip_cstorage_p - Complex storage type