csipl/brief [3.1d]csipl rscmadd split p. . . . . . . . . . . . . . . . . . . . . . . .38 csipl dvdiv...

119
CSIPL Quick Reference Guide CSIPL/Brief [3.1D] Release 3.1D May 2013

Upload: others

Post on 19-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

CSIPLQuick Reference Guide

CSIPL/Brief [3.1D]

Release 3.1DMay 2013

Page 2: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Contents

1 Introduction 1

1.1 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Symbols and Flags . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3 Vector Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.4 Matrix Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.5 Complex Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.6 Function Names . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.7 Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.8 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.9 Errors and Restrictions . . . . . . . . . . . . . . . . . . . . . . . 4

2 Getting the Best Performance 5

2.1 Version Information . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Memory Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 Vector/Matrix Format . . . . . . . . . . . . . . . . . . . . . . . . 5

2.4 Error Checking and Debugging . . . . . . . . . . . . . . . . . . . 6

2.5 Support Functions . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.6 Scalar Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.7 Random Number Generation . . . . . . . . . . . . . . . . . . . . 7

2.8 Vector and Elementwise Operations . . . . . . . . . . . . . . . . 7

2.9 Signal Processing Functions . . . . . . . . . . . . . . . . . . . . . 7

2.10 FFT Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.11 FIR Filter, Convolution and Correlation Functions . . . . . . . . 9

2.12 Linear Algebra Functions . . . . . . . . . . . . . . . . . . . . . . 9

2.13 Matrix and Vector Operations . . . . . . . . . . . . . . . . . . . . 9

2.14 LU Decomposition, Cholesky and QRD Functions . . . . . . . . . 9

2.15 Special Linear System Solvers . . . . . . . . . . . . . . . . . . . . 10

2.16 Controlling the Number of Threads . . . . . . . . . . . . . . . . . 10

3 Support Functions 11

3.1 Initilialisation and Finalisation . . . . . . . . . . . . . . . . . . . 11

csipl init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

csipl finalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2 Sundry Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

csipl complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

CSIPL/Brief [3.1D] NASoftware i

Page 3: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl cstorage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Scalar Functions 12

4.1 Real Scalar Functions . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl acos P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl asin P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl atan P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl atan2 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl ceil P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl cos P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl cosh P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl exp P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

csipl floor P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl log P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl log10 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl mag P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl pow P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl sin P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl sinh P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl sqrt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl tan P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

csipl tanh P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.2 Complex Scalar Functions . . . . . . . . . . . . . . . . . . . . . . 14

csipl arg P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

csipl cadd P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

csipl rcadd P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

csipl cdiv P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

csipl crdiv P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

csipl cexp P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

csipl cjmul P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

csipl cmag P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

csipl cmagsq P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

csipl cmplx P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

csipl cmul P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

csipl rcmul P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

csipl cneg P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

csipl conj P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

csipl crecip P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

CSIPL/Brief [3.1D] NASoftware ii

Page 4: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl csqrt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

csipl csub P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl rcsub P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl crsub P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl imag P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl polar P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl real P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl rect P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.3 Index Scalar Functions . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl matindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl mcolindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

csipl mrowindex . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5 Random Number Generation 18

5.1 Random Number Functions . . . . . . . . . . . . . . . . . . . . . 18

csipl randcreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

csipl randdestroy . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

csipl randu P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

csipl crandu P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

csipl vrandu P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

csipl cvrandu inter P . . . . . . . . . . . . . . . . . . . . . . . . 19

csipl cvrandu split P . . . . . . . . . . . . . . . . . . . . . . . . 19

csipl randn P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

csipl crandn P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

csipl vrandn P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

csipl cvrandn inter P . . . . . . . . . . . . . . . . . . . . . . . . 20

csipl cvrandn split P . . . . . . . . . . . . . . . . . . . . . . . . 20

6 Vector And Elementwise Operations 21

6.1 Elementary Mathematical Functions . . . . . . . . . . . . . . . . 21

csipl vacos P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

csipl macos P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

csipl vasin P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

csipl masin P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

csipl vatan P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

csipl matan P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

csipl vatan2 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

csipl matan2 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

csipl vcos P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

CSIPL/Brief [3.1D] NASoftware iii

Page 5: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl mcos P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

csipl vcosh P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

csipl mcosh P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

csipl vexp P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

csipl cvexp inter P . . . . . . . . . . . . . . . . . . . . . . . . . 23

csipl cvexp split P . . . . . . . . . . . . . . . . . . . . . . . . . . 23

csipl mexp P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

csipl cmexp inter P . . . . . . . . . . . . . . . . . . . . . . . . . 23

csipl cmexp split P . . . . . . . . . . . . . . . . . . . . . . . . . 23

csipl vexp10 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

csipl mexp10 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

csipl vfloor P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

csipl vlog P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

csipl cvlog inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 24

csipl cvlog split P . . . . . . . . . . . . . . . . . . . . . . . . . . 24

csipl mlog P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

csipl cmlog inter P . . . . . . . . . . . . . . . . . . . . . . . . . 24

csipl cmlog split P . . . . . . . . . . . . . . . . . . . . . . . . . . 24

csipl vlog10 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

csipl mlog10 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

csipl vsin P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

csipl msin P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

csipl vsinh P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

csipl msinh P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

csipl vsqrt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

csipl cvsqrt inter P . . . . . . . . . . . . . . . . . . . . . . . . . 25

csipl cvsqrt split P . . . . . . . . . . . . . . . . . . . . . . . . . 26

csipl msqrt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

csipl cmsqrt inter P . . . . . . . . . . . . . . . . . . . . . . . . . 26

csipl cmsqrt split P . . . . . . . . . . . . . . . . . . . . . . . . . 26

csipl mtan P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

csipl mtanh P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6.2 Unary Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 26

csipl varg P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

csipl marg P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

csipl vceil P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

csipl cvconj inter P . . . . . . . . . . . . . . . . . . . . . . . . . 27

csipl cvconj split P . . . . . . . . . . . . . . . . . . . . . . . . . 27

CSIPL/Brief [3.1D] NASoftware iv

Page 6: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl cmconj inter P . . . . . . . . . . . . . . . . . . . . . . . . . 27

csipl cmconj split P . . . . . . . . . . . . . . . . . . . . . . . . . 27

csipl vcumsum P . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

csipl cvcumsum inter P . . . . . . . . . . . . . . . . . . . . . . . 28

csipl cvcumsum split P . . . . . . . . . . . . . . . . . . . . . . . 28

csipl mcumsum P . . . . . . . . . . . . . . . . . . . . . . . . . . 28

csipl cmcumsum inter P . . . . . . . . . . . . . . . . . . . . . . 28

csipl cmcumsum split P . . . . . . . . . . . . . . . . . . . . . . . 28

csipl veuler P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

csipl meuler P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

csipl vmag P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

csipl cvmag inter P . . . . . . . . . . . . . . . . . . . . . . . . . 29

csipl cvmag split P . . . . . . . . . . . . . . . . . . . . . . . . . 29

csipl mmag P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

csipl cmmag P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

csipl cmmag split P . . . . . . . . . . . . . . . . . . . . . . . . . 29

csipl vcmagsq inter P . . . . . . . . . . . . . . . . . . . . . . . . 30

csipl vcmagsq split P . . . . . . . . . . . . . . . . . . . . . . . . 30

csipl mcmagsq P . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

csipl vmeanval P . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

csipl cvmeanval inter P . . . . . . . . . . . . . . . . . . . . . . . 30

csipl cvmeanval split P . . . . . . . . . . . . . . . . . . . . . . . 30

csipl mmeanval P . . . . . . . . . . . . . . . . . . . . . . . . . . 30

csipl cmmeanval inter P . . . . . . . . . . . . . . . . . . . . . . 30

csipl cmmeanval split P . . . . . . . . . . . . . . . . . . . . . . . 30

csipl vmeansqval P . . . . . . . . . . . . . . . . . . . . . . . . . 31

csipl cvmeansqval inter P . . . . . . . . . . . . . . . . . . . . . . 31

csipl cvmeansqval split P . . . . . . . . . . . . . . . . . . . . . . 31

csipl mmeansqval P . . . . . . . . . . . . . . . . . . . . . . . . . 31

csipl cmmeansqval inter P . . . . . . . . . . . . . . . . . . . . . 31

csipl cmmeansqval split P . . . . . . . . . . . . . . . . . . . . . 31

csipl vmodulate P . . . . . . . . . . . . . . . . . . . . . . . . . . 31

csipl cvmodulate inter P . . . . . . . . . . . . . . . . . . . . . . 31

csipl cvmodulate split P . . . . . . . . . . . . . . . . . . . . . . 32

csipl vneg P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

csipl cvneg inter P . . . . . . . . . . . . . . . . . . . . . . . . . 32

csipl cvneg split P . . . . . . . . . . . . . . . . . . . . . . . . . . 32

csipl mneg P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

CSIPL/Brief [3.1D] NASoftware v

Page 7: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl cmneg inter P . . . . . . . . . . . . . . . . . . . . . . . . . 32

csipl cmneg split P . . . . . . . . . . . . . . . . . . . . . . . . . 32

csipl vrecip P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

csipl cvrecip inter P . . . . . . . . . . . . . . . . . . . . . . . . . 33

csipl cvrecip split P . . . . . . . . . . . . . . . . . . . . . . . . . 33

csipl mrecip P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

csipl cmrecip inter P . . . . . . . . . . . . . . . . . . . . . . . . 33

csipl cmrecip split P . . . . . . . . . . . . . . . . . . . . . . . . 33

csipl vrsqrt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

csipl mrsqrt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

csipl vsq P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

csipl msq P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

csipl cvsumval inter P . . . . . . . . . . . . . . . . . . . . . . . . 34

csipl cvsumval split P . . . . . . . . . . . . . . . . . . . . . . . . 34

csipl msumval P . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

csipl cmsumval inter P . . . . . . . . . . . . . . . . . . . . . . . 34

csipl cmsumval split P . . . . . . . . . . . . . . . . . . . . . . . 34

csipl msumsqval P . . . . . . . . . . . . . . . . . . . . . . . . . . 35

6.3 Binary Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 35

csipl vadd P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

csipl cvadd inter P . . . . . . . . . . . . . . . . . . . . . . . . . 35

csipl cvadd split P . . . . . . . . . . . . . . . . . . . . . . . . . . 35

csipl madd P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

csipl cmadd inter P . . . . . . . . . . . . . . . . . . . . . . . . . 35

csipl cmadd split P . . . . . . . . . . . . . . . . . . . . . . . . . 36

csipl rcvadd P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

csipl rcvadd split P . . . . . . . . . . . . . . . . . . . . . . . . . 36

csipl rcmadd inter P . . . . . . . . . . . . . . . . . . . . . . . . 36

csipl rcmadd split P . . . . . . . . . . . . . . . . . . . . . . . . . 36

csipl svadd P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

csipl csvadd inter P . . . . . . . . . . . . . . . . . . . . . . . . . 37

csipl csvadd split P . . . . . . . . . . . . . . . . . . . . . . . . . 37

csipl smadd P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

csipl csmadd inter P . . . . . . . . . . . . . . . . . . . . . . . . 37

csipl csmadd split P . . . . . . . . . . . . . . . . . . . . . . . . . 37

csipl rscvadd inter P . . . . . . . . . . . . . . . . . . . . . . . . 38

csipl rscvadd split P . . . . . . . . . . . . . . . . . . . . . . . . . 38

csipl rscmadd inter P . . . . . . . . . . . . . . . . . . . . . . . . 38

CSIPL/Brief [3.1D] NASoftware vi

Page 8: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl rscmadd split P . . . . . . . . . . . . . . . . . . . . . . . . 38

csipl Dvdiv P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

csipl Dvdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . . 38

csipl Dvdiv split P . . . . . . . . . . . . . . . . . . . . . . . . . 39

csipl mdiv P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

csipl cmdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . . 39

csipl cmdiv split P . . . . . . . . . . . . . . . . . . . . . . . . . 39

csipl rcvdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . . 39

csipl rcvdiv split P . . . . . . . . . . . . . . . . . . . . . . . . . 39

csipl rcmdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . . 40

csipl rcmdiv split P . . . . . . . . . . . . . . . . . . . . . . . . . 40

csipl crmdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . . 40

csipl crmdiv split P . . . . . . . . . . . . . . . . . . . . . . . . . 40

csipl rscmsub inter P . . . . . . . . . . . . . . . . . . . . . . . . 40

csipl rscmsub split P . . . . . . . . . . . . . . . . . . . . . . . . 40

csipl vsdiv P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

csipl cvrsdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . . 41

csipl cvrsdiv split P . . . . . . . . . . . . . . . . . . . . . . . . . 41

csipl msdiv P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

csipl cmrsdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . 41

csipl cmrsdiv split P . . . . . . . . . . . . . . . . . . . . . . . . 41

csipl vexpoavg P . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

csipl cvexpoavg inter P . . . . . . . . . . . . . . . . . . . . . . . 42

csipl cvexpoavg split P . . . . . . . . . . . . . . . . . . . . . . . 42

csipl mexpoavg P . . . . . . . . . . . . . . . . . . . . . . . . . . 42

csipl cmexpoavg inter P . . . . . . . . . . . . . . . . . . . . . . 42

csipl cmexpoavg split P . . . . . . . . . . . . . . . . . . . . . . . 42

csipl vhypot P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

csipl mhypot P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

csipl cvjmul inter P . . . . . . . . . . . . . . . . . . . . . . . . . 43

csipl cvjmul split P . . . . . . . . . . . . . . . . . . . . . . . . . 43

csipl cmjmul inter P . . . . . . . . . . . . . . . . . . . . . . . . 43

csipl cmjmul split P . . . . . . . . . . . . . . . . . . . . . . . . . 43

csipl Dvmul P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

csipl cvmul inter P . . . . . . . . . . . . . . . . . . . . . . . . . 44

csipl cvmul split P . . . . . . . . . . . . . . . . . . . . . . . . . 44

csipl mmul P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

csipl cmmul inter P . . . . . . . . . . . . . . . . . . . . . . . . . 44

CSIPL/Brief [3.1D] NASoftware vii

Page 9: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl cmmul split P . . . . . . . . . . . . . . . . . . . . . . . . . 45

csipl rcvmul inter P . . . . . . . . . . . . . . . . . . . . . . . . . 45

csipl rcvmul split P . . . . . . . . . . . . . . . . . . . . . . . . . 45

csipl rcmmul inter P . . . . . . . . . . . . . . . . . . . . . . . . 45

csipl rcmmul split P . . . . . . . . . . . . . . . . . . . . . . . . . 45

csipl rscvmul inter P . . . . . . . . . . . . . . . . . . . . . . . . 45

csipl rscvmul split P . . . . . . . . . . . . . . . . . . . . . . . . 46

csipl csvmul inter P . . . . . . . . . . . . . . . . . . . . . . . . . 46

csipl csvmul split P . . . . . . . . . . . . . . . . . . . . . . . . . 46

csipl smmul P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

csipl csmmul inter P . . . . . . . . . . . . . . . . . . . . . . . . 46

csipl csmmul split P . . . . . . . . . . . . . . . . . . . . . . . . . 46

csipl rscmmul inter P . . . . . . . . . . . . . . . . . . . . . . . . 47

csipl rscmmul split P . . . . . . . . . . . . . . . . . . . . . . . . 47

csipl vmmul P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

csipl cvmmul inter P . . . . . . . . . . . . . . . . . . . . . . . . 47

csipl cvmmul split P . . . . . . . . . . . . . . . . . . . . . . . . 47

csipl rvcmmul inter P . . . . . . . . . . . . . . . . . . . . . . . . 48

csipl rvcmmul split P . . . . . . . . . . . . . . . . . . . . . . . . 48

csipl vsub P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

csipl cvsub inter P . . . . . . . . . . . . . . . . . . . . . . . . . 48

csipl cvsub split P . . . . . . . . . . . . . . . . . . . . . . . . . . 48

csipl msub P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

csipl cmsub inter P . . . . . . . . . . . . . . . . . . . . . . . . . 49

csipl cmsub split P . . . . . . . . . . . . . . . . . . . . . . . . . 49

csipl crmsub inter P . . . . . . . . . . . . . . . . . . . . . . . . . 49

csipl crmsub split P . . . . . . . . . . . . . . . . . . . . . . . . . 49

csipl rcvsub inter P . . . . . . . . . . . . . . . . . . . . . . . . . 50

csipl rcvsub split P . . . . . . . . . . . . . . . . . . . . . . . . . 50

csipl rcmsub inter P . . . . . . . . . . . . . . . . . . . . . . . . . 50

csipl rcmsub split P . . . . . . . . . . . . . . . . . . . . . . . . . 50

csipl crvsub inter P . . . . . . . . . . . . . . . . . . . . . . . . . 50

csipl crvsub split P . . . . . . . . . . . . . . . . . . . . . . . . . 50

csipl svsub P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

csipl csvsub inter P . . . . . . . . . . . . . . . . . . . . . . . . . 51

csipl csvsub split P . . . . . . . . . . . . . . . . . . . . . . . . . 51

csipl smsub P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

csipl csmsub inter P . . . . . . . . . . . . . . . . . . . . . . . . . 51

CSIPL/Brief [3.1D] NASoftware viii

Page 10: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl csmsub split P . . . . . . . . . . . . . . . . . . . . . . . . . 51

csipl smdiv P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

csipl csmdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . . 52

csipl csmdiv split P . . . . . . . . . . . . . . . . . . . . . . . . . 52

csipl rscvdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . . 52

csipl rscvdiv split P . . . . . . . . . . . . . . . . . . . . . . . . . 52

csipl rscvsub inter P . . . . . . . . . . . . . . . . . . . . . . . . 52

csipl rscvsub split P . . . . . . . . . . . . . . . . . . . . . . . . . 53

csipl rscmdiv inter P . . . . . . . . . . . . . . . . . . . . . . . . 53

csipl rscmdiv split P . . . . . . . . . . . . . . . . . . . . . . . . 53

6.4 Ternary Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 53

csipl vam P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

csipl cvam inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 53

csipl cvam split P . . . . . . . . . . . . . . . . . . . . . . . . . . 54

csipl vmsa P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

csipl cvmsa inter P . . . . . . . . . . . . . . . . . . . . . . . . . 54

csipl cvmsa split P . . . . . . . . . . . . . . . . . . . . . . . . . 54

csipl vmsb P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

csipl cvmsb inter P . . . . . . . . . . . . . . . . . . . . . . . . . 55

csipl cvmsb split P . . . . . . . . . . . . . . . . . . . . . . . . . 55

csipl vsam P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

csipl cvsam inter P . . . . . . . . . . . . . . . . . . . . . . . . . 55

csipl cvsam split P . . . . . . . . . . . . . . . . . . . . . . . . . 55

csipl vsbm P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

csipl cvsbm inter P . . . . . . . . . . . . . . . . . . . . . . . . . 56

csipl cvsbm split P . . . . . . . . . . . . . . . . . . . . . . . . . 56

csipl vsma P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

csipl cvsma inter P . . . . . . . . . . . . . . . . . . . . . . . . . 56

csipl cvsma split P . . . . . . . . . . . . . . . . . . . . . . . . . 57

csipl vsmsa P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

csipl cvsmsa inter P . . . . . . . . . . . . . . . . . . . . . . . . . 57

csipl cvsmsa split P . . . . . . . . . . . . . . . . . . . . . . . . . 57

6.5 Logical Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 57

csipl valltrue bl . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

csipl malltrue bl . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

csipl vanytrue bl . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

csipl manytrue bl . . . . . . . . . . . . . . . . . . . . . . . . . . 58

csipl vleq P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

CSIPL/Brief [3.1D] NASoftware ix

Page 11: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl cvleq inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 58

csipl cvleq split P . . . . . . . . . . . . . . . . . . . . . . . . . . 58

csipl mleq P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

csipl cmleq inter P . . . . . . . . . . . . . . . . . . . . . . . . . 58

csipl cmleq split P . . . . . . . . . . . . . . . . . . . . . . . . . . 59

csipl vlge P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

csipl mlge P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

csipl vlgt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

csipl mlgt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

csipl vlle P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

csipl mlle P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

csipl vllt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

csipl mllt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

csipl vlne P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

csipl cvlne inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 60

csipl cvlne split P . . . . . . . . . . . . . . . . . . . . . . . . . . 60

csipl mlne P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

csipl cmlne inter P . . . . . . . . . . . . . . . . . . . . . . . . . 61

csipl cmlne split P . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.6 Selection Operations . . . . . . . . . . . . . . . . . . . . . . . . . 61

csipl vclip P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

csipl vinvclip P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

csipl vindexbool . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

csipl vmax P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

csipl vmaxmg P . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

csipl vcmaxmgsq inter P . . . . . . . . . . . . . . . . . . . . . . 62

csipl vcmaxmgsq split P . . . . . . . . . . . . . . . . . . . . . . 62

csipl vcmaxmgsqval inter P . . . . . . . . . . . . . . . . . . . . . 62

csipl vcmaxmgsqval split P . . . . . . . . . . . . . . . . . . . . . 63

csipl vmaxmgval P . . . . . . . . . . . . . . . . . . . . . . . . . . 63

csipl vmaxval P . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

csipl vmin P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

csipl vminmg P . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

csipl vcminmgsq inter P . . . . . . . . . . . . . . . . . . . . . . 63

csipl vcminmgsq split P . . . . . . . . . . . . . . . . . . . . . . . 64

csipl vcminmgsqval inter P . . . . . . . . . . . . . . . . . . . . . 64

csipl vcminmgsqval split P . . . . . . . . . . . . . . . . . . . . . 64

csipl vminmgval P . . . . . . . . . . . . . . . . . . . . . . . . . . 64

CSIPL/Brief [3.1D] NASoftware x

Page 12: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl vminval P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6.7 Bitwise and Boolean Logical Operators . . . . . . . . . . . . . . . 64

csipl vand P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

csipl mand P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

csipl vnot P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

csipl mnot P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

csipl vor P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

csipl mor P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

csipl mxor P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.8 Element Generation and Copy . . . . . . . . . . . . . . . . . . . 65

csipl vcopy P P . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

csipl cvcopy inter P P . . . . . . . . . . . . . . . . . . . . . . . 66

csipl cvcopy split P P . . . . . . . . . . . . . . . . . . . . . . . 66

csipl mcopy P P . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

csipl cmcopy inter P P . . . . . . . . . . . . . . . . . . . . . . . 67

csipl cmcopy split P P . . . . . . . . . . . . . . . . . . . . . . . 67

csipl vfill P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

csipl cvfill inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 67

csipl cvfill split P . . . . . . . . . . . . . . . . . . . . . . . . . . 68

csipl mfill P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

csipl cmfill inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 68

csipl cmfill split P . . . . . . . . . . . . . . . . . . . . . . . . . . 68

csipl vramp P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

6.9 Manipulation Operations . . . . . . . . . . . . . . . . . . . . . . 68

csipl vcmplx inter P . . . . . . . . . . . . . . . . . . . . . . . . . 68

csipl vcmplx split P . . . . . . . . . . . . . . . . . . . . . . . . . 69

csipl mcmplx P . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

csipl vgather P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

csipl cvgather inter P . . . . . . . . . . . . . . . . . . . . . . . . 69

csipl cvgather split P . . . . . . . . . . . . . . . . . . . . . . . . 69

csipl mgather P . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

csipl cmgather inter P . . . . . . . . . . . . . . . . . . . . . . . 70

csipl cmgather split P . . . . . . . . . . . . . . . . . . . . . . . . 70

csipl vimag inter P . . . . . . . . . . . . . . . . . . . . . . . . . 70

csipl vimag split P . . . . . . . . . . . . . . . . . . . . . . . . . 70

csipl mimag P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

csipl vpolar inter P . . . . . . . . . . . . . . . . . . . . . . . . . 71

csipl vpolar split P . . . . . . . . . . . . . . . . . . . . . . . . . 71

CSIPL/Brief [3.1D] NASoftware xi

Page 13: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl mpolar P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

csipl vreal inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 71

csipl vreal split P . . . . . . . . . . . . . . . . . . . . . . . . . . 71

csipl mreal P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

csipl vrect inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 72

csipl vrect split P . . . . . . . . . . . . . . . . . . . . . . . . . . 72

csipl mrect P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

csipl vscatter P . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

csipl cvscatter inter P . . . . . . . . . . . . . . . . . . . . . . . . 72

csipl cvscatter split P . . . . . . . . . . . . . . . . . . . . . . . . 73

csipl mscatter P . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

csipl cmscatter inter P . . . . . . . . . . . . . . . . . . . . . . . 73

csipl cmscatter split P . . . . . . . . . . . . . . . . . . . . . . . 73

csipl cvswap inter P . . . . . . . . . . . . . . . . . . . . . . . . . 73

csipl cvswap split P . . . . . . . . . . . . . . . . . . . . . . . . . 74

csipl mswap P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

csipl cmswap inter P . . . . . . . . . . . . . . . . . . . . . . . . 74

csipl cmswap split P . . . . . . . . . . . . . . . . . . . . . . . . 74

7 Signal Processing Functions 75

7.1 FFT Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

csipl ccfftip create P . . . . . . . . . . . . . . . . . . . . . . . . 75

csipl ccfftop create P . . . . . . . . . . . . . . . . . . . . . . . . 75

csipl crfftop create P . . . . . . . . . . . . . . . . . . . . . . . . 75

csipl rcfftop create P . . . . . . . . . . . . . . . . . . . . . . . . 75

csipl ccfftip inter P . . . . . . . . . . . . . . . . . . . . . . . . . 75

csipl ccfftip split P . . . . . . . . . . . . . . . . . . . . . . . . . 75

csipl ccfftop inter P . . . . . . . . . . . . . . . . . . . . . . . . . 75

csipl ccfftop split P . . . . . . . . . . . . . . . . . . . . . . . . . 76

csipl crfftop inter P . . . . . . . . . . . . . . . . . . . . . . . . . 76

csipl crfftop split P . . . . . . . . . . . . . . . . . . . . . . . . . 76

csipl rcfftop inter P . . . . . . . . . . . . . . . . . . . . . . . . . 76

csipl rcfftop split P . . . . . . . . . . . . . . . . . . . . . . . . . 76

csipl fft destroy P . . . . . . . . . . . . . . . . . . . . . . . . . . 76

csipl fft getattr P . . . . . . . . . . . . . . . . . . . . . . . . . . 76

csipl ccfftmop create P . . . . . . . . . . . . . . . . . . . . . . . 76

csipl ccfftmip create P . . . . . . . . . . . . . . . . . . . . . . . 77

csipl crfftmop create P . . . . . . . . . . . . . . . . . . . . . . . 77

CSIPL/Brief [3.1D] NASoftware xii

Page 14: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl rcfftmop create P . . . . . . . . . . . . . . . . . . . . . . . 77

csipl fftm destroy P . . . . . . . . . . . . . . . . . . . . . . . . . 77

csipl fftm getattr P . . . . . . . . . . . . . . . . . . . . . . . . . 77

csipl ccfftmip inter P . . . . . . . . . . . . . . . . . . . . . . . . 77

csipl ccfftmip split P . . . . . . . . . . . . . . . . . . . . . . . . 77

csipl ccfftmop inter P . . . . . . . . . . . . . . . . . . . . . . . . 77

csipl ccfftmop split P . . . . . . . . . . . . . . . . . . . . . . . . 78

csipl crfftmop inter P . . . . . . . . . . . . . . . . . . . . . . . . 78

csipl crfftmop split P . . . . . . . . . . . . . . . . . . . . . . . . 78

csipl rcfftmop inter P . . . . . . . . . . . . . . . . . . . . . . . . 78

csipl rcfftmop split P . . . . . . . . . . . . . . . . . . . . . . . . 78

csipl ccfft2dop create P . . . . . . . . . . . . . . . . . . . . . . . 78

csipl ccfft2dip create P . . . . . . . . . . . . . . . . . . . . . . . 78

csipl crfft2dop create P . . . . . . . . . . . . . . . . . . . . . . . 78

csipl rcfft2dop create P . . . . . . . . . . . . . . . . . . . . . . . 79

csipl ccfft2dip inter P . . . . . . . . . . . . . . . . . . . . . . . . 79

csipl ccfft2dip split P . . . . . . . . . . . . . . . . . . . . . . . . 79

csipl ccfft2dop inter P . . . . . . . . . . . . . . . . . . . . . . . . 79

csipl ccfft2dop split P . . . . . . . . . . . . . . . . . . . . . . . . 79

csipl crfft2dop inter P . . . . . . . . . . . . . . . . . . . . . . . . 79

csipl crfft2dop split P . . . . . . . . . . . . . . . . . . . . . . . . 79

csipl rcfft2dop inter P . . . . . . . . . . . . . . . . . . . . . . . . 79

csipl rcfft2dop split P . . . . . . . . . . . . . . . . . . . . . . . . 80

csipl fft2d destroy P . . . . . . . . . . . . . . . . . . . . . . . . . 80

csipl fft2d getattr P . . . . . . . . . . . . . . . . . . . . . . . . . 80

7.2 Convolution/Correlation Functions . . . . . . . . . . . . . . . . . 80

csipl conv1d create P . . . . . . . . . . . . . . . . . . . . . . . . 80

csipl conv1d destroy P . . . . . . . . . . . . . . . . . . . . . . . 80

csipl conv1d getattr P . . . . . . . . . . . . . . . . . . . . . . . 80

csipl convolve1d P . . . . . . . . . . . . . . . . . . . . . . . . . . 80

csipl conv2d create P . . . . . . . . . . . . . . . . . . . . . . . . 81

csipl conv2d destroy P . . . . . . . . . . . . . . . . . . . . . . . 81

csipl conv2d getattr P . . . . . . . . . . . . . . . . . . . . . . . 81

csipl convolve2d P . . . . . . . . . . . . . . . . . . . . . . . . . . 81

csipl Dcorr1d create P . . . . . . . . . . . . . . . . . . . . . . . 81

csipl Dcorr1d destroy P . . . . . . . . . . . . . . . . . . . . . . . 81

csipl Dcorr1d getattr P . . . . . . . . . . . . . . . . . . . . . . . 81

csipl correlate1d P . . . . . . . . . . . . . . . . . . . . . . . . . . 82

CSIPL/Brief [3.1D] NASoftware xiii

Page 15: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl ccorrelate1d inter P . . . . . . . . . . . . . . . . . . . . . . 82

csipl ccorrelate1d split P . . . . . . . . . . . . . . . . . . . . . . 82

csipl Dcorr2d create P . . . . . . . . . . . . . . . . . . . . . . . 82

csipl Dcorr2d destroy P . . . . . . . . . . . . . . . . . . . . . . . 82

csipl Dcorr2d getattr P . . . . . . . . . . . . . . . . . . . . . . . 82

csipl correlate2d P . . . . . . . . . . . . . . . . . . . . . . . . . . 83

csipl ccorrelate2d inter P . . . . . . . . . . . . . . . . . . . . . . 83

csipl ccorrelate2d split P . . . . . . . . . . . . . . . . . . . . . . 83

7.3 Window Functions . . . . . . . . . . . . . . . . . . . . . . . . . . 83

csipl vcreate blackman P . . . . . . . . . . . . . . . . . . . . . . 83

csipl vcreate cheby P . . . . . . . . . . . . . . . . . . . . . . . . 83

csipl vcreate hanning P . . . . . . . . . . . . . . . . . . . . . . . 84

csipl vcreate kaiser P . . . . . . . . . . . . . . . . . . . . . . . . 84

7.4 Filter Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

csipl fir create P . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

csipl cfir create inter P . . . . . . . . . . . . . . . . . . . . . . . 84

csipl cfir create split P . . . . . . . . . . . . . . . . . . . . . . . 84

csipl Dfir destroy P . . . . . . . . . . . . . . . . . . . . . . . . . 84

csipl firflt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

csipl cfirflt inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 85

csipl cfirflt split P . . . . . . . . . . . . . . . . . . . . . . . . . . 85

csipl Dfir getattr P . . . . . . . . . . . . . . . . . . . . . . . . . 85

csipl Dfir reset P . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7.5 Miscellaneous Signal Processing Functions . . . . . . . . . . . . . 86

csipl vhisto P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

8 Linear Algebra 87

8.1 Matrix and Vector Operations . . . . . . . . . . . . . . . . . . . . 87

csipl cmherm inter P . . . . . . . . . . . . . . . . . . . . . . . . 87

csipl cmherm split P . . . . . . . . . . . . . . . . . . . . . . . . 87

csipl cvjdot inter P . . . . . . . . . . . . . . . . . . . . . . . . . 87

csipl cvjdot split P . . . . . . . . . . . . . . . . . . . . . . . . . 87

csipl gemp P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

csipl cgemp inter P . . . . . . . . . . . . . . . . . . . . . . . . . 88

csipl cgemp split P . . . . . . . . . . . . . . . . . . . . . . . . . 88

csipl gems P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

csipl cgems inter P . . . . . . . . . . . . . . . . . . . . . . . . . 88

csipl cgems split P . . . . . . . . . . . . . . . . . . . . . . . . . 89

CSIPL/Brief [3.1D] NASoftware xiv

Page 16: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl mprod P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

csipl cmprod inter P . . . . . . . . . . . . . . . . . . . . . . . . 89

csipl cmprod split P . . . . . . . . . . . . . . . . . . . . . . . . . 89

csipl cmprodh inter P . . . . . . . . . . . . . . . . . . . . . . . . 89

csipl cmprodh split P . . . . . . . . . . . . . . . . . . . . . . . . 90

csipl cmprodj inter P . . . . . . . . . . . . . . . . . . . . . . . . 90

csipl cmprodj split P . . . . . . . . . . . . . . . . . . . . . . . . 90

csipl mprodt P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

csipl cmprodt inter P . . . . . . . . . . . . . . . . . . . . . . . . 90

csipl cmprodt split P . . . . . . . . . . . . . . . . . . . . . . . . 91

csipl mvprod P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

csipl cmvprod inter P . . . . . . . . . . . . . . . . . . . . . . . . 91

csipl cmvprod split P . . . . . . . . . . . . . . . . . . . . . . . . 91

csipl mtrans P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

csipl cmtrans inter P . . . . . . . . . . . . . . . . . . . . . . . . 92

csipl cmtrans split P . . . . . . . . . . . . . . . . . . . . . . . . 92

csipl vdot P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

csipl cvdot inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 92

csipl cvdot split P . . . . . . . . . . . . . . . . . . . . . . . . . . 92

csipl vmprod P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

csipl cvmprod inter P . . . . . . . . . . . . . . . . . . . . . . . . 92

csipl cvmprod split P . . . . . . . . . . . . . . . . . . . . . . . . 93

csipl vouter P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

csipl cvouter inter P . . . . . . . . . . . . . . . . . . . . . . . . 93

csipl cvouter split P . . . . . . . . . . . . . . . . . . . . . . . . . 93

csipl vcsummgval inter P . . . . . . . . . . . . . . . . . . . . . . 93

csipl vcsummgval split P . . . . . . . . . . . . . . . . . . . . . . 93

csipl minvlu P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

csipl cminvlu inter P . . . . . . . . . . . . . . . . . . . . . . . . 94

csipl cminvlu split P . . . . . . . . . . . . . . . . . . . . . . . . 94

8.2 Special Linear System Solvers . . . . . . . . . . . . . . . . . . . . 95

csipl covsol P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

csipl ccovsol inter P . . . . . . . . . . . . . . . . . . . . . . . . . 95

csipl ccovsol split P . . . . . . . . . . . . . . . . . . . . . . . . . 95

csipl llsqsol P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

csipl cllsqsol inter P . . . . . . . . . . . . . . . . . . . . . . . . . 95

csipl cllsqsol split P . . . . . . . . . . . . . . . . . . . . . . . . . 95

csipl toepsol P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

CSIPL/Brief [3.1D] NASoftware xv

Page 17: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl ctoepsol inter P . . . . . . . . . . . . . . . . . . . . . . . . 96

csipl ctoepsol split P . . . . . . . . . . . . . . . . . . . . . . . . 96

8.3 General Square Linear System Solver . . . . . . . . . . . . . . . . 96

csipl lud P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

csipl clud inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 96

csipl clud split P . . . . . . . . . . . . . . . . . . . . . . . . . . 96

csipl Dlud create P . . . . . . . . . . . . . . . . . . . . . . . . . 97

csipl Dlud destroy P . . . . . . . . . . . . . . . . . . . . . . . . 97

csipl Dlud getattr P . . . . . . . . . . . . . . . . . . . . . . . . . 97

csipl lusol P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

csipl clusol inter P . . . . . . . . . . . . . . . . . . . . . . . . . 97

csipl clusol split P . . . . . . . . . . . . . . . . . . . . . . . . . . 97

8.4 Symmetric Positive Definite Linear System Solver . . . . . . . . . 97

csipl chold P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

csipl cchold inter P . . . . . . . . . . . . . . . . . . . . . . . . . 98

csipl cchold split P . . . . . . . . . . . . . . . . . . . . . . . . . 98

csipl chold create P . . . . . . . . . . . . . . . . . . . . . . . . . 98

csipl cchold create P . . . . . . . . . . . . . . . . . . . . . . . . 98

csipl Dchold destroy P . . . . . . . . . . . . . . . . . . . . . . . 98

csipl Dchold getattr P . . . . . . . . . . . . . . . . . . . . . . . 98

csipl cholsol P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

csipl ccholsol inter P . . . . . . . . . . . . . . . . . . . . . . . . 98

csipl ccholsol split P . . . . . . . . . . . . . . . . . . . . . . . . 99

8.5 Overdetermined Linear System Solver . . . . . . . . . . . . . . . 99

csipl qrd P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

csipl cqrd inter P . . . . . . . . . . . . . . . . . . . . . . . . . . 99

csipl cqrd split P . . . . . . . . . . . . . . . . . . . . . . . . . . 99

csipl qrd create P . . . . . . . . . . . . . . . . . . . . . . . . . . 99

csipl cqrd create P . . . . . . . . . . . . . . . . . . . . . . . . . 99

csipl Dqrd destroy P . . . . . . . . . . . . . . . . . . . . . . . . 99

csipl Dqrd getattr P . . . . . . . . . . . . . . . . . . . . . . . . 99

csipl qrdprodq P . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

csipl cqrdprodq inter P . . . . . . . . . . . . . . . . . . . . . . . 100

csipl cqrdprodq split P . . . . . . . . . . . . . . . . . . . . . . . 100

csipl qrdsolr P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

csipl cqrdsolr inter P . . . . . . . . . . . . . . . . . . . . . . . . 100

csipl cqrdsolr split P . . . . . . . . . . . . . . . . . . . . . . . . 100

csipl qrsol P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

CSIPL/Brief [3.1D] NASoftware xvi

Page 18: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

csipl cqrsol inter P . . . . . . . . . . . . . . . . . . . . . . . . . 101

csipl cqrsol split P . . . . . . . . . . . . . . . . . . . . . . . . . . 101

CSIPL/Brief [3.1D] NASoftware xvii

Page 19: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 1. Introduction

This document describes the functions available in the CSIPL library of vector,signal processing, and linear algebra routines.

1.1 TypesThe following base types are available:

csipl bool booleancsipl cscalar f complex floating-point scalarcsipl cscalar d complex double precision scalarcsipl index index to a vectorcsipl index mi index (pair of integers) to a matrixcsipl length dimension of a vector or matrixcsipl stride stride or jump of a vector or matrix

If you are using a version of the library that has 64-bit pointers, you must definethe symbol POINTER SIZE 64BIT at compile time: this will ensure that variablesof types csipl length and csipl stride are 64-bit integers.

The library also passes information around in abstract data types. These objectsare opaque structures (implemented as incomplete typedefs) and they can onlybe created, accessed, and destroyed with library functions that reference themvia a pointer. Some are used to describe the data layout in memory; others storeinformation on filters, matrix decompositions, and so on. Some objects have a‘get attribute’ function that allows the user access to the internal values.

1.2 Symbols and FlagsThe following symbolic constants are defined.

CSIPL TRUE

CSIPL FALSE

Other symbols are defined in enumerated types. The valid choices are listed witheach function description.

1.3 Vector VariablesA vector is passed into a function with three parameters:

• a pointer to the start of the data

• an integer for the distance between processed elements (stride); stride = 1(unit stride) means every element of a vector has to be processed, stride = 2means every other element, and so on

CSIPL/Brief [3.1D] NASoftware 1

Page 20: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 1. Introduction

• an integer for the number of elements accessed (length).

Stride and length are measured in number of data elements (not bytes). For acompound type like complex, this means the number of (real,imaginary) pairsand not the number of atomic type elements (floats for example).

When several vectors are passed into a function, each has its own stride, butusually they all share a common length. In the function prototypes, each vectorvariable has two parameters (a data pointer followed by a stride) and the commonprocessed length is usually the last parameter.

When a stride is negative the processing progresses backwards through the dataso a suitable offset must be added to the data pointer. With proper pointerarithmetic the offset is also measured in number of data elements.

1.4 Matrix VariablesMatrices are stored in row-major format. A matrix is passed into a function withfour parameters:

• a pointer to the start of the data

• an integer for the distance between adjacent elements in a column of thematrix (leading dimension); it is denoted by ldM for matrix M; it can beviewed as the number of columns in the 2-dimensional array containing M;

• an integer for the number of rows

• an integer for the number of columns (less than or equal to the leadingdimension).

As with vectors, the leading dimension is measured in number of data elements.

When several matrices are passed into a function, each has its own leading di-mension, but often they all have the same dimensions, or have one dimension incommon. In the function prototypes, each matrix variable has two parameters (adata pointer followed by a leading dimension); the dimension parameters (num-bers of row and columns) are often common for several matrices and are usuallythe last items in the parameter list. The description of each function explainsthe dimensions of the matrices.

1.5 Complex VariablesMost functions that use complex data are available in two versions: one acceptsdata stored in interleaved format and each complex variable is passed as a singleparameter; the other takes data stored in split format and each complex variableis passed via two parameters — one each for the real and imaginary parts.

CSIPL/Brief [3.1D] NASoftware 2

Page 21: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 1. Introduction

1.6 Function NamesFor almost all functions, the suffix indicates the base datatype of the argumentsas follows:

f floatd doublei integerbl booleanvi vector indexmi matrix index.

1.7 HintsThey following mechanisms are provided for the programmer to indicate prefer-ences for optimisation: currently almost all are ignored but they are reservedfor future use. The only exception is the algorithm hint in FIR filters.

• Flags of the enumerated type csipl memory hint specified when allocat-ing or creating some objects.

• Flags of the enumerated type csipl alg hint used to indicate whetheralgorithmic optimisation should minimise execution time, memory use, ormaximise numerical accuracy.

• An indication of how many times an object will be used (filters and FFTshave such a parameter).

1.8 NotationThe following standard mathematical notation is used in the function descrip-tions.

:= assignment operatori square root of −1|x| absolute value of the real number x|z| modulus of the complex number zbxc floor of the real number x (largest integer less than or equal to x)dxe ceiling of the real number x (smallest integer greater than or equal to x)z∗ conjugate of the complex number zMT transpose of the matrix MMH Hermitian (conjugate transpose) of the complex matrix M

Note that in expressions i is always the square root of −1; vectors and matricesare indexed with j and k.

CSIPL/Brief [3.1D] NASoftware 3

Page 22: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 1. Introduction

An elementwise operation on vectors will be written C[j ∗ strideC] := A[j ∗strideA] + B[j ∗ strideB]. Often the range of the index variable is not givenexplicity; in such cases it is clear from the context that it runs over all theelements in the vectors and that the lengths of the vectors must be equal.

An M by N matrix has M rows and N columns.

1.9 Errors and RestrictionsMany functions require that their arguments be conformant. This means thatthe objects passed have compatible attributes: for example, size and shape ofmatrices, lengths of vectors or filter kernels.

If an argument is required to be valid, it means:

• a pointer is not NULL

• a flag is a member of the required enumerated type

• an object has been initialised and not destroyed.

Errors can occur for the following reasons:

1. argument is outside the domain for calculation

2. over/underflow during calculation

3. failure to allocate memory

4. algorithm failure because of inappropriate data (as when a matrix does nothave full rank)

5. arguments are invalid, out of range, or non-conformant.

Only errors of type 5 are regarded as fatal: in this case, the development versionof the library will write a message to stderr and call exit.

Errors of types 3 and 4 are signalled through the return value of the function.A create function will return NULL if the allocation fails; functions with integerreturn codes use zero to indicate success.

The calling program is not alerted to errors of types 1 and 2.

CSIPL/Brief [3.1D] NASoftware 4

Page 23: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 2. Getting the Best Performance

This section is a short guide for programmers using the NAS CSIPL Library. Itcontains explanations of library behaviour, and tips on selecting the right storageoptions for your data to increase performance.

2.1 Version InformationInformation about the version of the NAS CSIPL library you are using can befound in the comments at the top of the include file csipl.h. There is no waythat a program can determine the library version at run-time.

2.2 Memory AlignmentThe efficiency of many operations is improved if data within memory is correctlyaligned on certain word boundaries.

Vectors and matrices can be loaded and stored faster if they are vector aligned.

The following table gives the vector alignment and minimum vector length forfloat data:

Technology Vector AligmentSSE 16AVX 32AltiVec 16

Alignment can be controlled using a function such as memalign. This is a Cfunction that is not in the ANSI standard but is available on many systems. Itis defined in malloc.h on Linux systems.

The following macro redefines malloc so that all memory allocation is optimallyaligned:

#include <malloc.h>

#define malloc(SIZE) memalign(16, SIZE)

Some operating systems (e.g. Apple’s OSX) automatically align all memory to a16-byte boundary so memalign is not needed.

2.3 Vector/Matrix FormatWhen available, vector and matrix calculations are done using single instruction,multiple data (SIMD) instructions to process several elements simultaneously.This imposes a minimum vector length given in the table below:

CSIPL/Brief [3.1D] NASoftware 5

Page 24: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 2. Getting the Best Performance

Technology

minimumVector Length(floats)

SSE 4AVX 8AltiVec 4

For short ints (16 bits) the vector length should be twice that of the float vectorlength. If the vector unit supports doubles (64 bits), then the vector lengthshould be half that of floats.

For best performance all input and output vectors should:

• have a stride of 1

Vectors and matrices can be loaded and stored much quicker when theyare contiguous in memory. The library includes special optimisations fora stride length of 2 (which was added for interleaved complex numbers),but all other non-unit strides will be significantly slower than a stride of 1and, in many cases, almost as slow as unvectorised scalar code. Note that,a stride of −1 will also be significantly slower than a stride of +1.

• be vector aligned

• have length greater than or equal to the vector length

The vector unit works on arrays of the vector length so no speed up isgained by using the library on vectors of length less than this.

• have row (row major matrices) or column (column major matrices) lengthdivisible by the vector length

For a row major matrix: if the row length of a matrix is not divisible bythe vector length then the alignment of the first element of each row willchange for each row/column. For optimal performance the first element ofeach row should be vector aligned.

The same rule applies to columns in column major matrices.

• have a length divisible by the vector length

Any elements at the end of the vector which cannot be dealt with by thevector unit must be dealt with in normal scalar code, which will decreasethe performance. The decrease in performance becomes less important forlonger vectors.

2.4 Error Checking and DebuggingTwo versions of the NAS CSIPL library are provided: a performance version anda development version. The development version of the library (signified by a

CSIPL/Brief [3.1D] NASoftware 6

Page 25: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 2. Getting the Best Performance

‘D’ in the library’s name) contains full error checking and should always be usedwhen developing and debugging applications.

A few library functions return status information: always check the return codeof those that do.

The performance version of the library contains no error checking, and con-sequently runs faster than the development library. The performance libraryshould only be used with applications that have been run successfully with thedevelopment version of the library.

When timing code, the performance version of the library should be used.

Note: the performance version of the library reads in data before it knows howmuch will be used and as a result often reads more data than is needed. Thisis not a problem, except when using memory checkers such as Electric Fencewhich object to this behaviour. The development library only reads in the datait intends to use and so is safe to use with memory checkers.

2.5 Support FunctionsAlways call csip init and csip finalize at the beginning and end of a pro-gram.

Note: For the AltiVec optimized library, calling csip init will put the AltiVecunit into non-Java mode if it is not already. This speeds up most AltiVec in-structions.

2.6 Scalar FunctionsAs the vector unit works on arrays of the vector length, scalar functions in thelibrary are not vectorised.

2.7 Random Number GenerationThe random number generation functions have not been vectorised in the currentversion of the library.

2.8 Vector and Elementwise OperationsAll vector and elementwise operations work optimally on vectors which matchthe conditions given in Section 2.3.

2.9 Signal Processing FunctionsAll signal processing operations work optimally on vectors which match the con-ditions given in Section 2.3.

Most of the signal processing routines are split into three stages:

• a create stage

CSIPL/Brief [3.1D] NASoftware 7

Page 26: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 2. Getting the Best Performance

• a compute stage

• a destroy stage.

The library has been optimised to minimise the time taken to do the computestage, which means as much precomputation as possible is done in the createstage. If you are using the same signal processing routine on many vectors of thesame length, it is far quicker to just create the required signal processing objectonce and reuse it for each computation stage rather than recreating the objecteach time it is needed.

2.10 FFT FunctionsTo get the best performance from an FFT, a vector must have length a multipleof the numbers 2, 4, 8, and 3 only. If a vector length is not a multiple of thesenumbers, a DFT may be done, which is considerably slower than an FFT.

Factors of 3 should be avoided if possible. An FFT will only be done for factorsof 3 if the length also has a factor of 16, otherwise a DFT is done.

When doing large FFT’s, optimal routines have been developed for the lengths:4096, 8192, 16384, 32768, and 65536. These lengths should be much quicker thanlengths of similar magnitude.

In-place FFT’s are normally faster than out-of-place FFT’s.

FFT’s are fastest with a scale factor of 1. However, if you need to use a differentscale factor, it is better to let the FFT routine do the scaling rather than to doit yourself.

The internal FFT routines only work on vector aligned data with a stride of1. If vectors are used which do not match these restrictions an internal copy ofthe vector will be made. This is an important consideration when using largevectors. Also, if complex vectors are not stored split an internal copy will bemade.

The current version of the NAS CSIPL library does not have any special FFTroutines for doing multiple FFT’s, so the time to do n single FFT’s will beapproximately the same as using the multiple FFT routines on a matrix of nrows.

The ntimes parameter to the FFT functions is ignored. The algorithmic hint isonly used in the FFT create function: if the CSIP ALG NOISE hint is used, theFFT create function will take significantly longer. By default, the algorithms areoptimised to minimise execution time.

CSIPL/Brief [3.1D] NASoftware 8

Page 27: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 2. Getting the Best Performance

2.11 FIR Filter, Convolution and Correlation Func-tions

These functions call the FFT functions internally and are therefore subject tothe same restrictions.

Hints are ignored with the exception of the internal calling of the FFT createfunction described in the FFT functions section.

2.12 Linear Algebra FunctionsFor optimal performance the vectors and matrices used with the linear algebrafunctions should match the conditions given in Section 2.3. (See also the sectionsbelow when using complex LU, complex Cholesky, or complex QRD functions).

2.13 Matrix and Vector OperationsMatrix and vector operations should work optimally on row or column majormatrices (row major is the default), however, the restriction exists that all ma-trices passed to a function should be of the same order. For example, usingtwo row major matrices as input to a function and a column major as outputwill be slower than using all row major or all column major. When matricesare passed to NAS CSIPL functions that are not all of the same order, the li-brary will assume they are all row major and treat the column major matricesas strided matrices. (See also the sections below when using LU, Cholesky, orQRD functions).

2.14 LU Decomposition, Cholesky and QRD Func-tions

These functions have three separate stages:

• a create stage

• a compute stage

• a destroy stage.

The library has been optimised to minimise the time taken to do the computestage, which means as much precomputation as possible is done in the createstage. If you are using the linear algebra routine on many matrices of the samesize, it is far quicker to just create the required linear algebra object once andreuse it for each computation stage rather than recreating the object each timeit is needed.

If matrices of different orders or strided matrices are passed to these functions, aninternal copy will be made of the entire matrix before the computation is done.

CSIPL/Brief [3.1D] NASoftware 9

Page 28: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 2. Getting the Best Performance

This is an important consideration when using large matrices. (Note: unalignedmatrices do NOT require internal copying provided they have a stride of one andall matrices used with the functions are of the same order).

When using the QRD functions, it is only necessary to save the Q matrix if usingthe qrdprodq function; the qrsol and qrdsolr do not need the Q matrix.

2.15 Special Linear System SolversThe covsol and llsqsol functions internally use the QRD functions and so havethe same requirements for optimal performance.

The toepsol functions are based on vector operations and so have the samerequirements for optimal performance.

2.16 Controlling the Number of ThreadsThe NAS CSIPL library is multithreaded and will take advantage of multiplecores on the processor invoking it. Utilising multiple threads is automatic:

• The maximum number of threads used is set when csip init is called.

• The maximum number running at any one time is also set at that point.If a threaded routine is called with (say) 4 threads and we have hit thismaximum number running then four of them are shut down before the newfunction is executed.

• The number of threads invoked when a routine is called, is decided by thatroutine by reference to the data (vector or matrix) size specified in the call,to provide the best performance for that call.

It is possible to change the maximum number of threads used.

1. A threaded, and a non-threaded (“serial”) version of the library are pro-vided. If you wish to only ever use one thread in a library call, use theserial version of the library.

2. The maximum number of threads used for a specific function call, and themaximum number kept running at any one time, can be changed by acall to the routine Thread SetParams with arguments num threads andmax num running. This call, if used, must be made before the libraryinitialisation routine csip init is called.

If no call to Thread SetParams is made, the library default values will beutilised.

CSIPL/Brief [3.1D] NASoftware 10

Page 29: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 3. Support Functions

3.1 Initilialisation and Finalisation

Prototype Descriptionintcsipl init(void * ptr);

Provides initialisation, allowing the li-brary to allocate and set a global state,and prepare to support the use ofCSIPL functionality by the user.

intcsipl finalize(void * ptr);

Provides cleanup and releases resourcesused by CSIPL (if the last of a nestedseries of calls), allowing the library toguarantee that any resources allocatedby csipl init are no longer in use af-ter the call is complete.

3.2 Sundry Functions

Prototype Descriptionvoidcsipl complete(void);

Force all deferred CSIPL execution tocomplete.

csipl cmplx memcsipl cstorage(void);

Returns the preferred complex storageformat for the system.

CSIPL/Brief [3.1D] NASoftware 11

Page 30: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 4. Scalar Functions

4.1 Real Scalar Functions

Prototype Descriptionscalar Pcsipl acos P(scalar P A);

Computes the principal radian value in[0, π] of the inverse cosine of a scalar.The following instances are supported:

csipl acos fcsipl acos d

scalar Pcsipl asin P(scalar P A);

Computes the principal radian value in[0, π] of the inverse sine of a scalar.The following instances are supported:

csipl asin fcsipl asin d

scalar Pcsipl atan P(scalar P A);

Computes the principal radian value in[−π/2, π/2] of the inverse tangent of ascalar.The following instances are supported:

csipl atan fcsipl atan d

scalar Pcsipl atan2 P(scalar P A,scalar P B);

Computes the four-quadrant radianvalue in [−π, π] of the inverse tangentof the ratio of two scalars.The following instances are supported:

csipl atan2 fcsipl atan2 d

scalar Pcsipl ceil P(scalar P A);

Computes the ceiling of a scalar.The following instances are supported:

csipl ceil fcsipl ceil d

scalar Pcsipl cos P(scalar P A);

Computes the cosine of a scalar anglein radians.The following instances are supported:

csipl cos fcsipl cos d

scalar Pcsipl cosh P(scalar P A);

Computes the hyperbolic cosine of ascalar.The following instances are supported:

csipl cosh fcsipl cosh d

scalar Pcsipl exp P(scalar P A);

Computes the exponential of a scalar.The following instances are supported:

csipl exp fcsipl exp d

CSIPL/Brief [3.1D] NASoftware 12

Page 31: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 4. Scalar Functions

Prototype Descriptionscalar Pcsipl floor P(scalar P A);

Computes the floor of a scalar.The following instances are supported:

csipl floor fcsipl floor d

scalar Pcsipl log P(scalar P A);

Computes the natural logarithm of ascalar.The following instances are supported:

csipl log fcsipl log d

scalar Pcsipl log10 P(scalar P A);

Computes the base 10 logarithm of ascalar.The following instances are supported:

csipl log10 fcsipl log10 d

scalar Pcsipl mag P(scalar P A);

Computes the magnitude (absolutevalue) of a scalar.The following instances are supported:

csipl mag fcsipl mag d

scalar Pcsipl pow P(scalar P A,scalar P B);

Computes the power function of twoscalars.The following instances are supported:

csipl pow fcsipl pow d

scalar Pcsipl sin P(scalar P A);

Computes the sine of a scalar angle inradians.The following instances are supported:

csipl sin fcsipl sin d

scalar Pcsipl sinh P(scalar P A);

Computes the hyperbolic sine of ascalar.The following instances are supported:

csipl sinh fcsipl sinh d

scalar Pcsipl sqrt P(scalar P A);

Computes the square root of a scalar.The following instances are supported:

csipl sqrt fcsipl sqrt d

scalar Pcsipl tan P(scalar P A);

Computes the tangent of a scalar anglein radians.The following instances are supported:

csipl tan fcsipl tan d

CSIPL/Brief [3.1D] NASoftware 13

Page 32: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 4. Scalar Functions

Prototype Descriptionscalar Pcsipl tanh P(scalar P A);

Computes the hyperbolic tangent of ascalar.The following instances are supported:

csipl tanh fcsipl tanh d

4.2 Complex Scalar Functions

Prototype Descriptionscalar Pcsipl arg P(csipl cscalar P x);

Returns the argument in radians[−π, π] of a complex scalar.The following instances are supported:

csipl arg fcsipl arg d

csipl cscalar Pcsipl cadd P(csipl cscalar P x,csipl cscalar P y);

Computes the complex sum of twoscalars.The following instances are supported:

csipl cadd fcsipl cadd d

csipl cscalar Pcsipl rcadd P(scalar P x,csipl cscalar P y);

Computes the complex sum of twoscalars.The following instances are supported:

csipl rcadd fcsipl rcadd d

csipl cscalar Pcsipl cdiv P(csipl cscalar P x,csipl cscalar P y);

Computes the complex quotient of twoscalars.The following instances are supported:

csipl cdiv fcsipl cdiv d

csipl cscalar Pcsipl crdiv P(csipl cscalar P x,scalar P y);

Computes the complex quotient of twoscalars.The following instances are supported:

csipl crdiv fcsipl crdiv d

csipl cscalar Pcsipl cexp P(csipl cscalar P x);

Computes the complex exponential ofa scalar.The following instances are supported:

csipl cexp fcsipl cexp d

csipl cscalar Pcsipl cjmul P(csipl cscalar P x,csipl cscalar P y);

Computes the product a complex scalarwith the conjugate of a second complexscalar.The following instances are supported:

csipl cjmul fcsipl cjmul d

CSIPL/Brief [3.1D] NASoftware 14

Page 33: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 4. Scalar Functions

Prototype Descriptionscalar Pcsipl cmag P(csipl cscalar P x);

Computes the magnitude of a complexscalar.The following instances are supported:

csipl cmag fcsipl cmag d

scalar Pcsipl cmagsq P(csipl cscalar P x);

Computes the magnitude squared of acomplex scalar.The following instances are supported:

csipl cmagsq fcsipl cmagsq d

csipl cscalar Pcsipl cmplx P(scalar P re,scalar P im);

Form a complex scalar from two realscalars.The following instances are supported:

csipl cmplx fcsipl cmplx d

csipl cscalar Pcsipl cmul P(csipl cscalar P x,csipl cscalar P y);

Computes the complex product of twoscalars.The following instances are supported:

csipl cmul fcsipl cmul d

csipl cscalar Pcsipl rcmul P(scalar P x,csipl cscalar P y);

Computes the complex product of twoscalars.The following instances are supported:

csipl rcmul fcsipl rcmul d

csipl cscalar Pcsipl cneg P(csipl cscalar P x);

Computes the negation of a complexscalar.The following instances are supported:

csipl cneg fcsipl cneg d

csipl cscalar Pcsipl conj P(csipl cscalar P x);

Computes the complex conjugate of ascalar.The following instances are supported:

csipl conj fcsipl conj d

csipl cscalar Pcsipl crecip P(csipl cscalar P x);

Computes the reciprocal of a complexscalar.The following instances are supported:

csipl crecip fcsipl crecip d

csipl cscalar Pcsipl csqrt P(csipl cscalar P x);

Computes the square root a complexscalar.The following instances are supported:

csipl csqrt fcsipl csqrt d

CSIPL/Brief [3.1D] NASoftware 15

Page 34: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 4. Scalar Functions

Prototype Descriptioncsipl cscalar Pcsipl csub P(csipl cscalar P x,csipl cscalar P y);

Computes the complex difference oftwo scalars.The following instances are supported:

csipl csub fcsipl csub d

csipl cscalar Pcsipl rcsub P(scalar P x,csipl cscalar P y);

Computes the complex difference oftwo scalars.The following instances are supported:

csipl rcsub fcsipl rcsub d

csipl cscalar Pcsipl crsub P(csipl cscalar P x,scalar P y);

Computes the complex difference oftwo scalars.The following instances are supported:

csipl crsub fcsipl crsub d

scalar Pcsipl imag P(csipl cscalar P x);

Extract the imaginary part of a com-plex scalar.The following instances are supported:

csipl imag fcsipl imag d

voidcsipl polar P(csipl cscalar P a,scalar P * r,scalar P * t);

Convert a complex scalar from rectan-gular to polar form. The polar dataconsists of a real scalar containing theradius and a corresponding real scalarcontaining the argument (angle) of thecomplex scalar.The following instances are supported:

csipl polar fcsipl polar d

scalar Pcsipl real P(csipl cscalar P x);

Extract the real part of a complexscalar.The following instances are supported:

csipl real fcsipl real d

csipl cscalar Pcsipl rect P(scalar P r,scalar P t);

Convert a pair of real scalars from com-plex polar to complex rectangular form.The following instances are supported:

csipl rect fcsipl rect d

4.3 Index Scalar Functions

Prototype Descriptioncsipl scalar micsipl matindex(csipl index r,csipl index c);

Form a matrix index from two vectorindices.

csipl indexcsipl mcolindex(csipl scalar mi mi);

Returns the column vector index froma matrix index.

CSIPL/Brief [3.1D] NASoftware 16

Page 35: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 4. Scalar Functions

Prototype Descriptioncsipl indexcsipl mrowindex(csipl scalar mi mi);

Returns the row vector index from amatrix index.

CSIPL/Brief [3.1D] NASoftware 17

Page 36: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 5. Random Number Generation

5.1 Random Number Functions

Prototype Descriptioncsipl randstate *csipl randcreate(csipl index seed,csipl index numprocs,csipl index id,csipl rng portable);

Create a random number generatorstate object.

intcsipl randdestroy(csipl randstate * rand);

Destroys (frees the memory used by) arandom number generator state object.Returns zero on success, non-zero onfailure.

scalar Pcsipl randu P(csipl randstate * state);

Generate a uniformly distributed(pseudo-)random number. Floatingpoint values are uniformly distributedover the open interval (0,1). Integerdeviates are uniformly distributed overthe open interval (0, 231 − 1).The following instances are supported:

csipl randu fcsipl randu d

csipl cscalar Pcsipl crandu P(csipl randstate * state);

Generate a uniformly distributed(pseudo-)random number. Floatingpoint values are uniformly distributedover the open interval (0,1). Integerdeviates are uniformly distributed overthe open interval (0, 231 − 1).The following instances are supported:

csipl crandu fcsipl crandu d

voidcsipl vrandu P(csipl randstate * state,scalar P * R,csipl stride strideR,csipl length n);

Generate a uniformly distributed(pseudo-)random number. Floatingpoint values are uniformly distributedover the open interval (0,1). Integerdeviates are uniformly distributed overthe open interval (0, 231 − 1).The following instances are supported:

csipl vrandu fcsipl vrandu d

CSIPL/Brief [3.1D] NASoftware 18

Page 37: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 5. Random Number Generation

Prototype Descriptionvoidcsipl cvrandu inter P(csipl randstate * state,void * R,csipl stride strideR,csipl length n);

Generate a uniformly distributed(pseudo-)random number. Floatingpoint values are uniformly distributedover the open interval (0,1). Integerdeviates are uniformly distributed overthe open interval (0, 231 − 1).The following instances are supported:

csipl cvrandu inter fcsipl cvrandu inter d

voidcsipl cvrandu split P(csipl randstate * state,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Generate a uniformly distributed(pseudo-)random number. Floatingpoint values are uniformly distributedover the open interval (0,1). Integerdeviates are uniformly distributed overthe open interval (0, 231 − 1).The following instances are supported:

csipl cvrandu split fcsipl cvrandu split d

scalar Pcsipl randn P(csipl randstate * state);

Generate an approximately normallydistributed (pseudo-)random deviatehaving mean zero and unit variance:N(0, 1). The random numbers are gen-erated by summing values returned bythe uniform random number generator.The following instances are supported:

csipl randn fcsipl randn d

csipl cscalar Pcsipl crandn P(csipl randstate * state);

Generate an approximately normallydistributed (pseudo-)random deviatehaving mean zero and unit variance:N(0, 1). The random numbers are gen-erated by summing values returned bythe uniform random number generator.The following instances are supported:

csipl crandn fcsipl crandn d

scalar Pcsipl vrandn P(csipl randstate * state);

Generate an approximately normallydistributed (pseudo-)random deviatehaving mean zero and unit variance:N(0, 1). The random numbers are gen-erated by summing values returned bythe uniform random number generator.The following instances are supported:

csipl vrandn fcsipl vrandn d

CSIPL/Brief [3.1D] NASoftware 19

Page 38: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 5. Random Number Generation

Prototype Descriptionvoidcsipl cvrandn inter P(csipl randstate * state,void * R,csipl stride strideR,csipl length n);

Generate an approximately normallydistributed (pseudo-)random deviatehaving mean zero and unit variance:N(0, 1). The random numbers are gen-erated by summing values returned bythe uniform random number generator.The following instances are supported:

csipl cvrandn inter fcsipl cvrandn inter d

voidcsipl cvrandn split P(csipl randstate * state,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Generate an approximately normallydistributed (pseudo-)random deviatehaving mean zero and unit variance:N(0, 1). The random numbers are gen-erated by summing values returned bythe uniform random number generator.The following instances are supported:

csipl cvrandn split fcsipl cvrandn split d

CSIPL/Brief [3.1D] NASoftware 20

Page 39: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

6.1 Elementary Mathematical Functions

Prototype Descriptionvoidcsipl vacos P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the principal radian value in[0, π] of the inverse cosine for each ele-ment of a vector.The following instances are supported:

csipl vacos fcsipl vacos d

voidcsipl macos P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the principal radian value in[0, π] of the inverse cosine for each ele-ment of a matrix.The following instances are supported:

csipl macos fcsipl macos d

voidcsipl vasin P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the principal radian value in[0, π] of the inverse sine for each ele-ment of a vector.The following instances are supported:

csipl vasin fcsipl vasin d

voidcsipl masin P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the principal radian value in[0, π] of the inverse sine for each ele-ment of a matrix.The following instances are supported:

csipl masin fcsipl masin d

voidcsipl vatan P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the principal radian value in[−π/2, π/2] of the inverse tangent foreach element of a vector.The following instances are supported:

csipl vatan fcsipl vatan d

voidcsipl matan P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the principal radian value in[−π/2, π/2] of the inverse tangent foreach element of a matrix.The following instances are supported:

csipl matan fcsipl matan d

CSIPL/Brief [3.1D] NASoftware 21

Page 40: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vatan2 P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the four-quadrant radianvalue in [−π, π] of the inverse tangentof the ratio of the elements of two inputvectors.The following instances are supported:

csipl vatan2 fcsipl vatan2 d

voidcsipl matan2 P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the four-quadrant radianvalue in [−π, π] of the inverse tangentof the ratio of the elements of two inputmatrices.The following instances are supported:

csipl matan2 fcsipl matan2 d

voidcsipl vcos P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the cosine for each elementof a vector. Element angle values arein radians.The following instances are supported:

csipl vcos fcsipl vcos d

voidcsipl mcos P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the cosine for each elementof a matrix. Element angle values arein radians.The following instances are supported:

csipl mcos fcsipl mcos d

voidcsipl vcosh P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the hyperbolic cosine foreach element of a vector.The following instances are supported:

csipl vcosh fcsipl vcosh d

voidcsipl mcosh P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the hyperbolic cosine foreach element of a matrix.The following instances are supported:

csipl mcosh fcsipl mcosh d

voidcsipl vexp P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the exponential functionvalue for each element of a vector.The following instances are supported:

csipl vexp fcsipl vexp d

CSIPL/Brief [3.1D] NASoftware 22

Page 41: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cvexp inter P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Computes the exponential functionvalue for each element of a vector.The following instances are supported:

csipl cvexp inter fcsipl cvexp inter d

voidcsipl cvexp split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the exponential functionvalue for each element of a vector.The following instances are supported:

csipl cvexp split fcsipl cvexp split d

voidcsipl mexp P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the exponential functionvalue for each element of a matrix.The following instances are supported:

csipl mexp fcsipl mexp d

voidcsipl cmexp inter P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Computes the exponential functionvalue for each element of a matrix.The following instances are supported:

csipl cmexp inter fcsipl cmexp inter d

voidcsipl cmexp split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the exponential functionvalue for each element of a matrix.The following instances are supported:

csipl cmexp split fcsipl cmexp split d

voidcsipl vexp10 P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the base 10 exponential foreach element of a vector.The following instances are supported:

csipl vexp10 fcsipl vexp10 d

voidcsipl mexp10 P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the base 10 exponential foreach element of a matrix.The following instances are supported:

csipl mexp10 fcsipl mexp10 d

CSIPL/Brief [3.1D] NASoftware 23

Page 42: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vfloor P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the floor for each element ofa vector.The following instances are supported:

csipl vfloor fcsipl vfloor d

voidcsipl vlog P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the natural logarithm foreach element of a vector.The following instances are supported:

csipl vlog fcsipl vlog d

voidcsipl cvlog inter P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Computes the natural logarithm foreach element of a vector.The following instances are supported:

csipl cvlog inter fcsipl cvlog inter d

voidcsipl cvlog split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the natural logarithm foreach element of a vector.The following instances are supported:

csipl cvlog split fcsipl cvlog split d

voidcsipl mlog P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the natural logarithm foreach element of a matrix.The following instances are supported:

csipl mlog fcsipl mlog d

voidcsipl cmlog inter P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Computes the natural logarithm foreach element of a matrix.The following instances are supported:

csipl cmlog inter fcsipl cmlog inter d

voidcsipl cmlog split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the natural logarithm foreach element of a matrix.The following instances are supported:

csipl cmlog split fcsipl cmlog split d

CSIPL/Brief [3.1D] NASoftware 24

Page 43: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vlog10 P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Compute the base ten logarithm foreach element of a vector.The following instances are supported:

csipl vlog10 fcsipl vlog10 d

voidcsipl mlog10 P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Compute the base ten logarithm foreach element of a matrix.The following instances are supported:

csipl mlog10 fcsipl mlog10 d

voidcsipl vsin P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Compute the sine for each element ofa vector. Element angle values are inradians.The following instances are supported:

csipl vsin fcsipl vsin d

voidcsipl msin P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Compute the sine for each element ofa matrix. Element angle values are inradians.The following instances are supported:

csipl msin fcsipl msin d

voidcsipl vsinh P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the hyperbolic sine for eachelement of a vector.The following instances are supported:

csipl vsinh fcsipl vsinh d

voidcsipl msinh P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the hyperbolic sine for eachelement of a matrix.The following instances are supported:

csipl msinh fcsipl msinh d

voidcsipl vsqrt P(csipl Dvview P * A,csipl stride strideA,csipl Dvview P * R,csipl stride strideR,csipl length n);

Compute the square root for each ele-ment of a vector.The following instances are supported:

csipl vsqrt fcsipl vsqrt d

voidcsipl cvsqrt inter P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Compute the square root for each ele-ment of a vector.The following instances are supported:

csipl cvsqrt inter fcsipl cvsqrt inter d

CSIPL/Brief [3.1D] NASoftware 25

Page 44: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cvsqrt split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Compute the square root for each ele-ment of a vector.The following instances are supported:

csipl cvsqrt split fcsipl cvsqrt split d

voidcsipl msqrt P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Compute the square root for each ele-ment of a matrix.The following instances are supported:

csipl msqrt fcsipl msqrt d

voidcsipl cmsqrt inter P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Compute the square root for each ele-ment of a matrix.The following instances are supported:

csipl cmsqrt inter fcsipl cmsqrt inter d

voidcsipl cmsqrt split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Compute the square root for each ele-ment of a matrix.The following instances are supported:

csipl cmsqrt split fcsipl cmsqrt split d

voidcsipl mtan P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Compute the tangent for each elementof a matrix. Element angle values arein radians.The following instances are supported:

csipl mtan fcsipl mtan d

voidcsipl mtanh P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the hyperbolic tangent foreach element of a matrix.The following instances are supported:

csipl mtanh fcsipl mtanh d

6.2 Unary Operations

CSIPL/Brief [3.1D] NASoftware 26

Page 45: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl varg P(void * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the argument in radians[−π, π] for each element of a complexvector.The following instances are supported:

csipl varg fcsipl varg d

voidcsipl marg P(void * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the argument in radians[−π, π] for each element of a complexmatrix.The following instances are supported:

csipl marg fcsipl marg d

voidcsipl vceil P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the ceiling for each elementof a vector.The following instances are supported:

csipl vceil fcsipl vceil d

voidcsipl cvconj inter P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Compute the conjugate for each ele-ment of a complex vector.The following instances are supported:

csipl cvconj inter fcsipl cvconj inter d

voidcsipl cvconj split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Compute the conjugate for each ele-ment of a complex vector.The following instances are supported:

csipl cvconj split fcsipl cvconj split d

voidcsipl cmconj inter P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Compute the conjugate for each ele-ment of a complex matrix.The following instances are supported:

csipl cmconj inter fcsipl cmconj inter d

voidcsipl cmconj split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Compute the conjugate for each ele-ment of a complex matrix.The following instances are supported:

csipl cmconj split fcsipl cmconj split d

CSIPL/Brief [3.1D] NASoftware 27

Page 46: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vcumsum P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Compute the cumulative sum of the el-ements of a vector.The following instances are supported:

csipl vcumsum fcsipl vcumsum dcsipl vcumsum i

voidcsipl cvcumsum inter P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Compute the cumulative sum of the el-ements of a vector.The following instances are supported:

csipl cvcumsum inter fcsipl cvcumsum inter dcsipl cvcumsum inter i

voidcsipl cvcumsum split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Compute the cumulative sum of the el-ements of a vector.The following instances are supported:

csipl cvcumsum split fcsipl cvcumsum split dcsipl cvcumsum split i

voidcsipl mcumsum P(csipl major dir,scalar P * R,int ldR,csipl length m,csipl length n);

Compute the cumulative sums of theelements in the rows or columns of amatrix.The following instances are supported:

csipl mcumsum fcsipl mcumsum dcsipl mcumsum i

voidcsipl cmcumsum inter P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Compute the cumulative sum of the el-ements of a vector.The following instances are supported:

csipl cmcumsum inter fcsipl cmcumsum inter dcsipl cmcumsum inter i

voidcsipl cmcumsum split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Compute the cumulative sum of the el-ements of a vector.The following instances are supported:

csipl cmcumsum split fcsipl cmcumsum split dcsipl cmcumsum split i

voidcsipl veuler P(scalar P * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Computes the complex numbers corre-sponding to the angle of a unit vectorin the complex plane for each elementof a vector.The following instances are supported:

csipl veuler fcsipl veuler d

CSIPL/Brief [3.1D] NASoftware 28

Page 47: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl meuler P(scalar P * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Computes the complex numbers corre-sponding to the angle of a unit vectorin the complex plane for each elementof a matrix.The following instances are supported:

csipl meuler fcsipl meuler d

voidcsipl vmag P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Compute the magnitude for each ele-ment of a vector.The following instances are supported:

csipl vmag fcsipl vmag dcsipl vmag icsipl vmag si

voidcsipl cvmag inter P(void * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Compute the magnitude for each ele-ment of a vector.The following instances are supported:

csipl cvmag inter fcsipl cvmag inter d

voidcsipl cvmag split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Compute the magnitude for each ele-ment of a vector.The following instances are supported:

csipl cvmag split fcsipl cvmag split d

voidcsipl mmag P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Compute the magnitude for each ele-ment of a matrix.The following instances are supported:

csipl mmag fcsipl mmag d

voidcsipl cmmag P(void * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Compute the magnitude for each ele-ment of a matrix.The following instances are supported:

csipl cmmag inter fcsipl cmmag inter d

voidcsipl cmmag split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Compute the magnitude for each ele-ment of a matrix.The following instances are supported:

csipl cmmag split fcsipl cmmag split d

CSIPL/Brief [3.1D] NASoftware 29

Page 48: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vcmagsq inter P(void * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the square of the magnitudesfor each element of a vector.The following instances are supported:

csipl vcmagsq inter fcsipl vcmagsq inter d

voidcsipl vcmagsq split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the square of the magnitudesfor each element of a vector.The following instances are supported:

csipl vcmagsq split fcsipl vcmagsq split d

voidcsipl mcmagsq P(void * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the square of the magnitudesfor each element of a matrix.The following instances are supported:

csipl mcmagsq fcsipl mcmagsq d

scalar Pcsipl vmeanval P(scalar P * A,csipl stride strideA,csipl length n);

Returns the mean value of the elementsof a vector.The following instances are supported:

csipl vmeanval fcsipl vmeanval d

csipl cscalar Pcsipl cvmeanval inter P(void * A,csipl stride strideA,csipl length n);

Returns the mean value of the elementsof a vector.The following instances are supported:

csipl cvmeanval inter fcsipl cvmeanval inter d

csipl cscalar Pcsipl cvmeanval split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl length n);

Returns the mean value of the elementsof a vector.The following instances are supported:

csipl cvmeanval split fcsipl cvmeanval split d

scalar Pcsipl mmeanval P(scalar P * A,int ldA,csipl length m,csipl length n);

Returns the mean value of the elementsof a matrix.The following instances are supported:

csipl mmeanval fcsipl mmeanval d

csipl cscalar Pcsipl cmmeanval inter P(void * A,int ldA,csipl length m,csipl length n);

Returns the mean value of the elementsof a matrix.The following instances are supported:

csipl cmmeanval inter fcsipl cmmeanval inter d

csipl cscalar Pcsipl cmmeanval split P(scalar P * A re,scalar P * A im,int ldA,csipl length m,csipl length n);

Returns the mean value of the elementsof a matrix.The following instances are supported:

csipl cmmeanval split fcsipl cmmeanval split d

CSIPL/Brief [3.1D] NASoftware 30

Page 49: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionscalar Pcsipl vmeansqval P(scalar P * A,csipl stride strideA,csipl length n);

Returns the mean magnitude squaredvalue of the elements of a vector.The following instances are supported:

csipl vmeansqval fcsipl vmeansqval d

scalar Pcsipl cvmeansqval inter P(void * A,csipl stride strideA,csipl length n);

Returns the mean magnitude squaredvalue of the elements of a vector.The following instances are supported:

csipl cvmeansqval inter fcsipl cvmeansqval inter d

scalar Pcsipl cvmeansqval split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl length n);

Returns the mean magnitude squaredvalue of the elements of a vector.The following instances are supported:

csipl cvmeansqval split fcsipl cvmeansqval split d

scalar Pcsipl mmeansqval P(scalar P * A,int ldA,csipl length m,csipl length n);

Returns the mean magnitude squaredvalue of the elements of a matrix.The following instances are supported:

csipl mmeansqval fcsipl mmeansqval d

scalar Pcsipl cmmeansqval inter P(void * A,int ldA,csipl length m,csipl length n);

Returns the mean magnitude squaredvalue of the elements of a matrix.The following instances are supported:

csipl cmmeansqval inter fcsipl cmmeansqval inter d

scalar Pcsipl cmmeansqval split P(scalar P * A re,scalar P * A im,int ldA,csipl length m,csipl length n);

Returns the mean magnitude squaredvalue of the elements of a matrix.The following instances are supported:

csipl cmmeansqval split fcsipl cmmeansqval split d

scalar Pcsipl vmodulate P(scalar P * A,csipl stride strideA,scalar P nu,scalar P phi,scalar P * R,csipl stride strideR,csipl length n);

Computes the modulation of a real vec-tor by a specified complex frequency.The following instances are supported:

csipl vmodulate fcsipl vmodulate d

scalar Pcsipl cvmodulate inter P(void * A,csipl stride strideA,scalar P nu,scalar P phi,void * R,csipl stride strideR,csipl length n);

Computes the modulation of a real vec-tor by a specified complex frequency.The following instances are supported:

csipl cvmodulate inter fcsipl cvmodulate inter d

CSIPL/Brief [3.1D] NASoftware 31

Page 50: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionscalar Pcsipl cvmodulate split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P nu,scalar P phi,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the modulation of a real vec-tor by a specified complex frequency.The following instances are supported:

csipl cvmodulate split fcsipl cvmodulate split d

voidcsipl vneg P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the negation for each ele-ment of a vector.The following instances are supported:

csipl vneg fcsipl vneg dcsipl vneg icsipl vneg si

voidcsipl cvneg inter P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Computes the negation for each ele-ment of a vector.The following instances are supported:

csipl cvneg inter fcsipl cvneg inter d

voidcsipl cvneg split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the negation for each ele-ment of a vector.The following instances are supported:

csipl cvneg split fcsipl cvneg split d

voidcsipl mneg P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the negation for each ele-ment of a matrix.The following instances are supported:

csipl mneg fcsipl mneg dcsipl mneg i

voidcsipl cmneg inter P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Computes the negation for each ele-ment of a matrix.The following instances are supported:

csipl cmneg inter fcsipl cmneg inter d

voidcsipl cmneg split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the negation for each ele-ment of a matrix.The following instances are supported:

csipl cmneg split fcsipl cmneg split d

CSIPL/Brief [3.1D] NASoftware 32

Page 51: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vrecip P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the reciprocal for each ele-ment of a vector.The following instances are supported:

csipl vrecip fcsipl vrecip d

voidcsipl cvrecip inter P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Computes the reciprocal for each ele-ment of a vector.The following instances are supported:

csipl cvrecip inter fcsipl cvrecip inter d

voidcsipl cvrecip split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the reciprocal for each ele-ment of a vector.The following instances are supported:

csipl cvrecip split fcsipl cvrecip split d

voidcsipl mrecip P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the reciprocal for each ele-ment of a matrix.The following instances are supported:

csipl mrecip fcsipl mrecip d

voidcsipl cmrecip inter P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Computes the reciprocal for each ele-ment of a matrix.The following instances are supported:

csipl cmrecip inter fcsipl cmrecip inter d

voidcsipl cmrecip split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the reciprocal for each ele-ment of a matrix.The following instances are supported:

csipl cmrecip split fcsipl cmrecip split d

voidcsipl vrsqrt P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the reciprocal of the squareroot for each element of a vector.The following instances are supported:

csipl vrsqrt fcsipl vrsqrt d

CSIPL/Brief [3.1D] NASoftware 33

Page 52: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl mrsqrt P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the reciprocal of the squareroot for each element of a matrix.The following instances are supported:

csipl mrsqrt fcsipl mrsqrt d

voidcsipl vsq P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the square for each elementof a vector.The following instances are supported:

csipl vsq fcsipl vsq d

voidcsipl msq P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the square for each elementof a matrix.The following instances are supported:

csipl msq fcsipl msq d

scalar Pcsipl cvsumval inter P(scalar P * A,csipl stride strideA,csipl length n);

Returns the sum of the elements of avector.The following instances are supported:

csipl cvsumval inter fcsipl cvsumval inter dcsipl cvsumval inter i

scalar Pcsipl cvsumval split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl length n);

Returns the sum of the elements of avector.The following instances are supported:

csipl cvsumval split fcsipl cvsumval split dcsipl cvsumval split i

scalar Pcsipl msumval P(scalar P * A,csipl stride strideA,csipl length n);

Returns the sum of the elements of avector.The following instances are supported:

csipl msumval fcsipl msumval dcsipl msumval i

scalar Pcsipl cmsumval inter P(scalar P * A,csipl stride strideA,csipl length n);

Returns the sum of the elements of avector.The following instances are supported:

csipl cmsumval inter fcsipl cmsumval inter dcsipl cmsumval inter i

scalar Pcsipl cmsumval split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl length n);

Returns the sum of the elements of avector.The following instances are supported:

csipl cmsumval split fcsipl cmsumval split dcsipl cmsumval split i

CSIPL/Brief [3.1D] NASoftware 34

Page 53: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionscalar Pcsipl msumsqval P(scalar P * A,int ldA,csipl length m,csipl length n);

Returns the sum of the squares of theelements of a matrix.The following instances are supported:

csipl msumsqval fcsipl msumsqval d

6.3 Binary Operations

Prototype Descriptionvoidcsipl vadd P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the sum, by element, of twovectors.The following instances are supported:

csipl vadd fcsipl vadd dcsipl vadd icsipl vadd si

voidcsipl cvadd inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the sum, by element, of twovectors.The following instances are supported:

csipl cvadd inter fcsipl cvadd inter dcsipl cvadd inter i

voidcsipl cvadd split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the sum, by element, of twovectors.The following instances are supported:

csipl cvadd split fcsipl cvadd split dcsipl cvadd split i

voidcsipl madd P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of twomatrices.The following instances are supported:

csipl madd fcsipl madd dcsipl madd i

voidcsipl cmadd inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of twomatrices.The following instances are supported:

csipl cmadd inter fcsipl cmadd inter d

CSIPL/Brief [3.1D] NASoftware 35

Page 54: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cmadd split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of twomatrices.The following instances are supported:

csipl cmadd split fcsipl cmadd split d

voidcsipl rcvadd P(scalar P * A,csipl stride strideA,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the sum, by element, of twovectors.The following instances are supported:

csipl rcvadd inter fcsipl rcvadd inter d

voidcsipl rcvadd split P(scalar P * A,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the sum, by element, of twovectors.The following instances are supported:

csipl rcvadd split fcsipl rcvadd split d

voidcsipl rcmadd inter P(scalar P * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of twomatrices.The following instances are supported:

csipl rcmadd inter fcsipl rcmadd inter d

voidcsipl rcmadd split P(scalar P * A,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of twomatrices.The following instances are supported:

csipl rcmadd split fcsipl rcmadd split d

CSIPL/Brief [3.1D] NASoftware 36

Page 55: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl svadd P(scalar P a,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the sum, by element, of ascalar and a vector.The following instances are supported:

csipl svadd fcsipl svadd dcsipl svadd icsipl svadd si

voidcsipl csvadd inter P(csipl cscalar P a,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the sum, by element, of ascalar and a vector.The following instances are supported:

csipl csvadd inter fcsipl csvadd inter d

voidcsipl csvadd split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the sum, by element, of ascalar and a vector.The following instances are supported:

csipl csvadd split fcsipl csvadd split d

voidcsipl smadd P(scalar P a,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of ascalar and a matrix.The following instances are supported:

csipl smadd fcsipl smadd dcsipl smadd i

voidcsipl csmadd inter P(csipl cscalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of ascalar and a matrix.The following instances are supported:

csipl csmadd inter fcsipl csmadd inter d

voidcsipl csmadd split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of ascalar and a matrix.The following instances are supported:

csipl csmadd split fcsipl csmadd split d

CSIPL/Brief [3.1D] NASoftware 37

Page 56: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl rscvadd inter P(scalar P a,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the sum, by element, of areal scalar and a complex vector.The following instances are supported:

csipl rscvadd inter fcsipl rscvadd inter d

voidcsipl rscvadd split P(scalar P a,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the sum, by element, of areal scalar and a complex vector.The following instances are supported:

csipl rscvadd split fcsipl rscvadd split d

voidcsipl rscmadd inter P(scalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of areal scalar and a complex matrix.The following instances are supported:

csipl rscmadd inter fcsipl rscmadd inter d

voidcsipl rscmadd split P(scalar P a,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the sum, by element, of areal scalar and a complex matrix.The following instances are supported:

csipl rscmadd split fcsipl rscmadd split d

voidcsipl Dvdiv P(csipl Dvview P * A,csipl stride strideA,csipl Dvview P * B,csipl stride strideB,csipl Dvview P * R,csipl stride strideR,csipl length n);

Computes the quotient, by element, oftwo vectors.The following instances are supported:

csipl vdiv fcsipl vdiv dcsipl svdiv fcsipl svdiv d

voidcsipl Dvdiv inter P(csipl Dvview P * A,csipl stride strideA,csipl Dvview P * B,csipl stride strideB,csipl Dvview P * R,csipl stride strideR,csipl length n);

Computes the quotient, by element, oftwo vectors.The following instances are supported:

csipl crvdiv inter fcsipl crvdiv inter dcsipl cvdiv inter fcsipl cvdiv inter d

CSIPL/Brief [3.1D] NASoftware 38

Page 57: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl Dvdiv split P(csipl Dvview P * A re,csipl Dvview P * A im,csipl stride strideA,csipl Dvview P * B re,csipl Dvview P * B im,csipl stride strideB,csipl Dvview P * R re,csipl Dvview P * R im,csipl stride strideR,csipl length n);

Computes the quotient, by element, oftwo vectors.The following instances are supported:

csipl crvdiv split fcsipl crvdiv split dcsipl cvdiv split fcsipl cvdiv split d

voidcsipl mdiv P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, oftwo matrices.The following instances are supported:

csipl mdiv fcsipl mdiv d

voidcsipl cmdiv inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, oftwo matrices.The following instances are supported:

csipl cmdiv inter fcsipl cmdiv inter d

voidcsipl cmdiv split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, oftwo matrices.The following instances are supported:

csipl cmdiv split fcsipl cmdiv split d

voidcsipl rcvdiv inter P(scalar P a,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the quotient, by element, oftwo vectors.The following instances are supported:

csipl rcvdiv inter fcsipl rcvdiv inter d

voidcsipl rcvdiv split P(scalar P a,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the quotient, by element, oftwo vectors.The following instances are supported:

csipl rcvdiv split fcsipl rcvdiv split d

CSIPL/Brief [3.1D] NASoftware 39

Page 58: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl rcmdiv inter P(scalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, oftwo matrices.The following instances are supported:

csipl rcmdiv inter fcsipl rcmdiv inter d

voidcsipl rcmdiv split P(scalar P a,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, oftwo matrices.The following instances are supported:

csipl rcmdiv split fcsipl rcmdiv split d

voidcsipl crmdiv inter P(void * A,int ldA,scalar P * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, oftwo matrices.The following instances are supported:

csipl crmdiv inter fcsipl crmdiv inter d

voidcsipl crmdiv split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, oftwo matrices.The following instances are supported:

csipl crmdiv split fcsipl crmdiv split d

voidcsipl rscmsub inter P(scalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the difference, by element, ofa real scalar and a complex matrix.The following instances are supported:

csipl rscmsub inter fcsipl rscmsub inter d

voidcsipl rscmsub split P(scalar P a,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the difference, by element, ofa real scalar and a complex matrix.The following instances are supported:

csipl rscmsub split fcsipl rscmsub split d

CSIPL/Brief [3.1D] NASoftware 40

Page 59: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vsdiv P(scalar P * A,csipl stride strideA,scalar P b,scalar P * R,csipl stride strideR,csipl length n);

Computes the quotient, by element, ofa vector and a scalar.The following instances are supported:

csipl vsdiv fcsipl vsdiv d

voidcsipl cvrsdiv inter P(scalar P * A,csipl stride strideA,scalar P b,scalar P * R,csipl stride strideR,csipl length n);

Computes the quotient, by element, ofa vector and a scalar.The following instances are supported:

csipl cvrsdiv inter fcsipl cvrsdiv inter d

voidcsipl cvrsdiv split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P b re,scalar P b im,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the quotient, by element, ofa vector and a scalar.The following instances are supported:

csipl cvrsdiv split fcsipl cvrsdiv split d

voidcsipl msdiv P(scalar P * A,int ldA,scalar P b,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, ofa matrix and a scalar.The following instances are supported:

csipl msdiv fcsipl msdiv d

voidcsipl cmrsdiv inter P(void * A,int ldA,csipl cscalar P b,void * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, ofa matrix and a scalar.The following instances are supported:

csipl cmrsdiv inter fcsipl cmrsdiv inter d

voidcsipl cmrsdiv split P(scalar P * A re,scalar P * A im,int ldA,csipl cscalar P b re,csipl cscalar P b im,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, ofa matrix and a scalar.The following instances are supported:

csipl cmrsdiv split fcsipl cmrsdiv split d

CSIPL/Brief [3.1D] NASoftware 41

Page 60: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vexpoavg P(scalar P a,scalar P * B,csipl stride strideB,scalar P * C,csipl stride strideC,csipl length n);

Computes an exponential weighted av-erage, by element, of two vectors.The following instances are supported:

csipl vexpoavg fcsipl vexpoavg d

voidcsipl cvexpoavg inter P(scalar P a,void * B,csipl stride strideB,void * C,csipl stride strideC,csipl length n);

Computes an exponential weighted av-erage, by element, of two vectors.The following instances are supported:

csipl cvexpoavg inter fcsipl cvexpoavg inter d

voidcsipl cvexpoavg split P(scalar P a,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * C re,scalar P * C im,csipl stride strideC,csipl length n);

Computes an exponential weighted av-erage, by element, of two vectors.The following instances are supported:

csipl cvexpoavg split fcsipl cvexpoavg split d

voidcsipl mexpoavg P(scalar P a,scalar P * B,int ldB,scalar P * C,int ldC,csipl length m,csipl length n);

Computes an exponential weighted av-erage, by element, of two matrices.The following instances are supported:

csipl mexpoavg fcsipl mexpoavg d

voidcsipl cmexpoavg inter P(scalar P a,void * B,int ldB,void * C,int ldC,csipl length m,csipl length n);

Computes an exponential weighted av-erage, by element, of two matrices.The following instances are supported:

csipl cmexpoavg inter fcsipl cmexpoavg inter d

voidcsipl cmexpoavg split P(scalar P a,scalar P * B re,scalar P * B im,int ldB,scalar P * C re,scalar P * C im,int ldC,csipl length m,csipl length n);

Computes an exponential weighted av-erage, by element, of two matrices.The following instances are supported:

csipl cmexpoavg split fcsipl cmexpoavg split d

CSIPL/Brief [3.1D] NASoftware 42

Page 61: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vhypot P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the square root of the sum ofsquares, by element, of two input vec-tors.The following instances are supported:

csipl vhypot fcsipl vhypot d

voidcsipl mhypot P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the square root of the sum ofsquares, by element, of two input ma-trices.The following instances are supported:

csipl mhypot fcsipl mhypot d

voidcsipl cvjmul inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the product of a complexvector with the conjugate of a secondcomplex vector, by element.The following instances are supported:

csipl cvjmul inter fcsipl cvjmul inter d

voidcsipl cvjmul split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product of a complexvector with the conjugate of a secondcomplex vector, by element.The following instances are supported:

csipl cvjmul split fcsipl cvjmul split d

voidcsipl cmjmul inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the product of a complexmatrix with the conjugate of a secondcomplex matrix, by element.The following instances are supported:

csipl cmjmul inter fcsipl cmjmul inter d

voidcsipl cmjmul split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the product of a complexmatrix with the conjugate of a secondcomplex matrix, by element.The following instances are supported:

csipl cmjmul split fcsipl cmjmul split d

CSIPL/Brief [3.1D] NASoftware 43

Page 62: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl Dvmul P(csipl Dvview P * A,csipl stride strideA,csipl Dvview P * B,csipl stride strideB,csipl Dvview P * R,csipl stride strideR,csipl length n);

Computes the product, by element, oftwo vectors.The following instances are supported:

csipl vmul fcsipl vmul dcsipl vmul icsipl vmul sicsipl svmul fcsipl svmul dcsipl svmul icsipl svmul si

voidcsipl cvmul inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the product, by element, oftwo vectors.The following instances are supported:

csipl cvmul inter fcsipl cvmul inter d

voidcsipl cvmul split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product, by element, oftwo vectors.The following instances are supported:

csipl cvmul split fcsipl cvmul split d

voidcsipl mmul P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, oftwo matrices.The following instances are supported:

csipl mmul fcsipl mmul dcsipl mmul i

voidcsipl cmmul inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, oftwo matrices.The following instances are supported:

csipl cmmul inter fcsipl cmmul inter d

CSIPL/Brief [3.1D] NASoftware 44

Page 63: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cmmul split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the product, by element, oftwo matrices.The following instances are supported:

csipl cmmul split fcsipl cmmul split d

voidcsipl rcvmul inter P(scalar P * A,csipl stride strideA,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the product, by element, oftwo vectors.The following instances are supported:

csipl rcvmul inter fcsipl rcvmul inter d

voidcsipl rcvmul split P(scalar P * A,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product, by element, oftwo vectors.The following instances are supported:

csipl rcvmul split fcsipl rcvmul split d

voidcsipl rcmmul inter P(scalar P * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, oftwo matrices.The following instances are supported:

csipl rcmmul inter fcsipl rcmmul inter d

voidcsipl rcmmul split P(scalar P * A,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the product, by element, oftwo matrices.The following instances are supported:

csipl rcmmul split fcsipl rcmmul split d

voidcsipl rscvmul inter P(scalar P a,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the product, by element, ofa real scalar and a complex vector.The following instances are supported:

csipl rscvmul inter fcsipl rscvmul inter d

CSIPL/Brief [3.1D] NASoftware 45

Page 64: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl rscvmul split P(scalar P a,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product, by element, ofa real scalar and a complex vector.The following instances are supported:

csipl rscvmul split fcsipl rscvmul split d

voidcsipl csvmul inter P(csipl cscalar P a,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the product, by element, ofa scalar and a vector.The following instances are supported:

csipl csvmul inter fcsipl csvmul inter d

voidcsipl csvmul split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product, by element, ofa scalar and a vector.The following instances are supported:

csipl csvmul split fcsipl csvmul split d

voidcsipl smmul P(scalar P a,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa scalar and a matrix.The following instances are supported:

csipl smmul fcsipl smmul d

voidcsipl csmmul inter P(csipl cscalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa scalar and a matrix.The following instances are supported:

csipl csmmul inter fcsipl csmmul inter d

voidcsipl csmmul split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa scalar and a matrix.The following instances are supported:

csipl csmmul split fcsipl csmmul split d

CSIPL/Brief [3.1D] NASoftware 46

Page 65: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl rscmmul inter P(scalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa real scalar and a complex matrix.The following instances are supported:

csipl rscmmul inter fcsipl rscmmul inter d

voidcsipl rscmmul split P(scalar P a,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa real scalar and a complex matrix.The following instances are supported:

csipl rscmmul split fcsipl rscmmul split d

voidcsipl vmmul P(scalar P * A,csipl stride strideA,scalar P * B,int ldB,csipl major major,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa vector and the rows or columns of amatrix.The following instances are supported:

csipl vmmul fcsipl vmmul d

voidcsipl cvmmul inter P(void * A,csipl stride strideA,void * B,int ldB,csipl major major,void * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa vector and the rows or columns of amatrix.The following instances are supported:

csipl cvmmul inter fcsipl cvmmul inter d

voidcsipl cvmmul split P(csipl Dvview P * A re,csipl Dvview P * A im,csipl stride strideA,csipl Dmview P * B re,csipl Dmview P * B im,int ldB,csipl major major,csipl Dmview P * R re,csipl Dmview P * R im,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa vector and the rows or columns of amatrix.The following instances are supported:

csipl cvmmul split fcsipl cvmmul split d

CSIPL/Brief [3.1D] NASoftware 47

Page 66: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl rvcmmul inter P(scalar P * A,csipl stride strideA,void * B,int ldB,csipl major major,void * R,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa vector and the rows or columns of amatrix.The following instances are supported:

csipl rvcmmul inter fcsipl rvcmmul inter d

voidcsipl rvcmmul split P(scalar P * A,csipl stride strideA,scalar P * B re,scalar P * B im,int ldB,csipl major major,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the product, by element, ofa vector and the rows or columns of amatrix.The following instances are supported:

csipl rvcmmul split fcsipl rvcmmul split d

voidcsipl vsub P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the difference, by element, oftwo vectors.The following instances are supported:

csipl vsub fcsipl vsub dcsipl vsub icsipl vsub si

voidcsipl cvsub inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the difference, by element, oftwo vectors.The following instances are supported:

csipl cvsub inter fcsipl cvsub inter d

voidcsipl cvsub split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the difference, by element, oftwo vectors.The following instances are supported:

csipl cvsub split fcsipl cvsub split d

CSIPL/Brief [3.1D] NASoftware 48

Page 67: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl msub P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the difference, by element, oftwo matrices.The following instances are supported:

csipl msub fcsipl msub dcsipl msub i

voidcsipl cmsub inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the difference, by element, oftwo matrices.The following instances are supported:

csipl cmsub inter fcsipl cmsub inter d

voidcsipl cmsub split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the difference, by element, oftwo matrices.The following instances are supported:

csipl cmsub split fcsipl cmsub split d

voidcsipl crmsub inter P(void * A,int ldA,scalar P * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the difference, by element, oftwo matrices.The following instances are supported:

csipl crmsub inter fcsipl crmsub inter d

voidcsipl crmsub split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the difference, by element, oftwo matrices.The following instances are supported:

csipl crmsub split fcsipl crmsub split d

CSIPL/Brief [3.1D] NASoftware 49

Page 68: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl rcvsub inter P(scalar P * A,csipl stride strideA,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the difference, by element, oftwo vectors.The following instances are supported:

csipl rcvsub inter fcsipl rcvsub inter d

voidcsipl rcvsub split P(scalar P * A,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the difference, by element, oftwo vectors.The following instances are supported:

csipl rcvsub split fcsipl rcvsub split d

voidcsipl rcmsub inter P(scalar P * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the difference, by element, oftwo matrices.The following instances are supported:

csipl rcmsub inter fcsipl rcmsub inter d

voidcsipl rcmsub split P(scalar P * A,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the difference, by element, oftwo matrices.The following instances are supported:

csipl rcmsub split fcsipl rcmsub split d

voidcsipl crvsub inter P(void * A,csipl stride strideA,scalar P * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the difference, by element, oftwo vectors.The following instances are supported:

csipl crvsub inter fcsipl crvsub inter d

voidcsipl crvsub split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the difference, by element, oftwo vectors.The following instances are supported:

csipl crvsub split fcsipl crvsub split d

CSIPL/Brief [3.1D] NASoftware 50

Page 69: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl svsub P(scalar P a,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the difference, by element, ofa scalar and a vector.The following instances are supported:

csipl svsub fcsipl svsub dcsipl svsub icsipl svsub si

voidcsipl csvsub inter P(csipl cscalar P a,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the difference, by element, ofa scalar and a vector.The following instances are supported:

csipl csvsub inter fcsipl csvsub inter d

voidcsipl csvsub split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the difference, by element, ofa scalar and a vector.The following instances are supported:

csipl csvsub split fcsipl csvsub split d

voidcsipl smsub P(scalar P a,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the difference, by element, ofa scalar and a matrix.The following instances are supported:

csipl smsub fcsipl smsub dcsipl smsub i

voidcsipl csmsub inter P(csipl cscalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the difference, by element, ofa scalar and a matrix.The following instances are supported:

csipl csmsub inter fcsipl csmsub inter d

voidcsipl csmsub split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the difference, by element, ofa scalar and a matrix.The following instances are supported:

csipl csmsub split fcsipl csmsub split d

CSIPL/Brief [3.1D] NASoftware 51

Page 70: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl smdiv P(scalar P a,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, ofa scalar and a matrix.The following instances are supported:

csipl smdiv fcsipl smdiv d

voidcsipl csmdiv inter P(csipl cscalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, ofa scalar and a matrix.The following instances are supported:

csipl csmdiv inter fcsipl csmdiv inter d

voidcsipl csmdiv split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, ofa scalar and a matrix.The following instances are supported:

csipl csmdiv split fcsipl csmdiv split d

voidcsipl rscvdiv inter P(scalar P a,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the quotient, by element, ofa real scalar and a complex vector.The following instances are supported:

csipl rscvdiv inter fcsipl rscvdiv inter d

voidcsipl rscvdiv split P(scalar P a,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the quotient, by element, ofa real scalar and a complex vector.The following instances are supported:

csipl rscvdiv split fcsipl rscvdiv split d

voidcsipl rscvsub inter P(scalar P a,void * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Computes the difference, by element, ofa real scalar and a complex vector.The following instances are supported:

csipl rscvsub inter fcsipl rscvsub inter d

CSIPL/Brief [3.1D] NASoftware 52

Page 71: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl rscvsub split P(scalar P a,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the difference, by element, ofa real scalar and a complex vector.The following instances are supported:

csipl rscvsub split fcsipl rscvsub split d

voidcsipl rscmdiv inter P(scalar P a,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, ofa real scalar and a complex matrix.The following instances are supported:

csipl rscmdiv inter fcsipl rscmdiv inter d

voidcsipl rscmdiv split P(scalar P a,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Computes the quotient, by element, ofa real scalar and a complex matrix.The following instances are supported:

csipl rscmdiv split fcsipl rscmdiv split d

6.4 Ternary Operations

Prototype Descriptionvoidcsipl vam P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * C,csipl stride strideC,scalar P * R,csipl stride strideR,csipl length n);

Computes the sum of two vectors andproduct of a third vector, by element.The following instances are supported:

csipl vam fcsipl vam dcsipl vma fcsipl vma d

voidcsipl cvam inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,void * C,csipl stride strideC,void * R,csipl stride strideR,csipl length n);

Computes the sum of two vectors andproduct of a third vector, by element.The following instances are supported:

csipl cvam inter fcsipl cvam inter dcsipl cvma inter fcsipl cvma inter d

CSIPL/Brief [3.1D] NASoftware 53

Page 72: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cvam split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * C re,scalar P * C im,csipl stride strideC,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the sum of two vectors andproduct of a third vector, by element.The following instances are supported:

csipl cvam split fcsipl cvam split dcsipl cvma split fcsipl cvma split d

voidcsipl vmsa P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P c,scalar P * R,csipl stride strideR,csipl length n);

Computes the product of two vectorsand sum of a scalar, by element.The following instances are supported:

csipl vmsa fcsipl vmsa d

voidcsipl cvmsa inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,csipl cscalar P c,void * R,csipl stride strideR,csipl length n);

Computes the product of two vectorsand sum of a scalar, by element.The following instances are supported:

csipl cvmsa inter fcsipl cvmsa inter d

voidcsipl cvmsa split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,csipl cscalar P c re,csipl cscalar P c im,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product of two vectorsand sum of a scalar, by element.The following instances are supported:

csipl cvmsa split fcsipl cvmsa split d

voidcsipl vmsb P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * C,csipl stride strideC,scalar P * R,csipl stride strideR,csipl length n);

Computes the product of two vectorsand difference of a third vector, by ele-ment.The following instances are supported:

csipl vmsb fcsipl vmsb d

CSIPL/Brief [3.1D] NASoftware 54

Page 73: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cvmsb inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,void * C,csipl stride strideC,void * R,csipl stride strideR,csipl length n);

Computes the product of two vectorsand difference of a third vector, by ele-ment.The following instances are supported:

csipl cvmsb inter fcsipl cvmsb inter d

voidcsipl cvmsb split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * C re,scalar P * C im,csipl stride strideC,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product of two vectorsand difference of a third vector, by ele-ment.The following instances are supported:

csipl cvmsb split fcsipl cvmsb split d

voidcsipl vsam P(scalar P * A,csipl stride strideA,scalar P b,scalar P * C,csipl stride strideC,scalar P * R,csipl stride strideR,csipl length n);

Computes the sum of a vector and ascalar, and product with a second vec-tor, by element.The following instances are supported:

csipl vsam fcsipl vsam d

voidcsipl cvsam inter P(void * A,csipl stride strideA,csipl cscalar P b,void * C,csipl stride strideC,void * R,csipl stride strideR,csipl length n);

Computes the sum of a vector and ascalar, and product with a second vec-tor, by element.The following instances are supported:

csipl cvsam inter fcsipl cvsam inter d

voidcsipl cvsam split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl cscalar P b re,csipl cscalar P b im,scalar P * C re,scalar P * C im,csipl stride strideC,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the sum of a vector and ascalar, and product with a second vec-tor, by element.The following instances are supported:

csipl cvsam split fcsipl cvsam split d

CSIPL/Brief [3.1D] NASoftware 55

Page 74: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vsbm P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * C,csipl stride strideC,scalar P * R,csipl stride strideR,csipl length n);

Computes the difference of two vectors,and product with a third vector, by el-ement.The following instances are supported:

csipl vsbm fcsipl vsbm d

voidcsipl cvsbm inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,void * C,csipl stride strideC,void * R,csipl stride strideR,csipl length n);

Computes the difference of two vectors,and product with a third vector, by el-ement.The following instances are supported:

csipl cvsbm inter fcsipl cvsbm inter d

voidcsipl cvsbm split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * C re,scalar P * C im,csipl stride strideC,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the difference of two vectors,and product with a third vector, by el-ement.The following instances are supported:

csipl cvsbm split fcsipl cvsbm split d

voidcsipl vsma P(scalar P * A,csipl stride strideA,scalar P b,scalar P * C,csipl stride strideC,scalar P * R,csipl stride strideR,csipl length n);

Computes the product of a vector anda scalar, and sum with a second vector,by element.The following instances are supported:

csipl vsma fcsipl vsma d

voidcsipl cvsma inter P(void * A,csipl stride strideA,csipl cscalar P b,void * C,csipl stride strideC,void * R,csipl stride strideR,csipl length n);

Computes the product of a vector anda scalar, and sum with a second vector,by element.The following instances are supported:

csipl cvsma inter fcsipl cvsma inter d

CSIPL/Brief [3.1D] NASoftware 56

Page 75: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cvsma split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl cscalar P b re,csipl cscalar P b im,scalar P * C re,scalar P * C im,csipl stride strideC,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product of a vector anda scalar, and sum with a second vector,by element.The following instances are supported:

csipl cvsma split fcsipl cvsma split d

voidcsipl vsmsa P(scalar P * A,csipl stride strideA,scalar P b,scalar P c,scalar P * R,csipl stride strideR,csipl length n);

Computes the product of a vector anda scalar, and sum with a second scalar,by element.The following instances are supported:

csipl vsmsa fcsipl vsmsa d

voidcsipl cvsmsa inter P(void * A,csipl stride strideA,csipl cscalar P b,csipl cscalar P c,void * R,csipl stride strideR,csipl length n);

Computes the product of a vector anda scalar, and sum with a second scalar,by element.The following instances are supported:

csipl cvsmsa inter fcsipl cvsmsa inter d

voidcsipl cvsmsa split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl cscalar P b re,csipl cscalar P b im,csipl cscalar P c re,csipl cscalar P c im,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Computes the product of a vector anda scalar, and sum with a second scalar,by element.The following instances are supported:

csipl cvsmsa split fcsipl cvsmsa split d

6.5 Logical Operations

Prototype Descriptioncsipl scalar blcsipl valltrue bl(signed int * A,csipl stride strideA,csipl length n);

Returns true if all the elements of a vec-tor are true.

csipl scalar blcsipl malltrue bl(signed int * A,csipl stride strideA,csipl length n);

Returns true if all the elements of a vec-tor are true.

CSIPL/Brief [3.1D] NASoftware 57

Page 76: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptioncsipl scalar blcsipl vanytrue bl(signed int * A,csipl stride strideA,csipl length n);

Returns true if one or more elements ofa vector are true.

csipl scalar blcsipl manytrue bl(signed int * A,csipl stride strideA,csipl length n);

Returns true if one or more elements ofa vector are true.

voidcsipl vleq P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,signed int * R,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘equal’, by element, of two vectors.The following instances are supported:

csipl vleq fcsipl vleq dcsipl vleq i

voidcsipl cvleq inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,signed int * R,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘equal’, by element, of two vectors.The following instances are supported:

csipl cvleq inter fcsipl cvleq inter dcsipl cvleq inter i

voidcsipl cvleq split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,signed int * R re,signed int * R im,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘equal’, by element, of two vectors.The following instances are supported:

csipl cvleq split fcsipl cvleq split dcsipl cvleq split i

voidcsipl mleq P(scalar P * A,int ldA,scalar P * B,int ldB,signed int * R,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparisonof ‘equal’, by element, of two vec-tors/matrices.The following instances are supported:

csipl mleq fcsipl mleq dcsipl mleq i

voidcsipl cmleq inter P(void * A,int ldA,void * B,int ldB,signed int * R,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparisonof ‘equal’, by element, of two vec-tors/matrices.The following instances are supported:

csipl cmleq inter fcsipl cmleq inter dcsipl cmleq inter i

CSIPL/Brief [3.1D] NASoftware 58

Page 77: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cmleq split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,signed int * R re,signed int * R im,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparisonof ‘equal’, by element, of two vec-tors/matrices.The following instances are supported:

csipl cmleq split fcsipl cmleq split dcsipl cmleq split i

voidcsipl vlge P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,signed int * R,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘greater than or equal’, by element, oftwo vectors.The following instances are supported:

csipl vlge fcsipl vlge dcsipl vlge i

voidcsipl mlge P(scalar P * A,int ldA,scalar P * B,int ldB,signed int * R,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparison of‘greater than or equal’, by element, oftwo vectors/matrices.The following instances are supported:

csipl mlge fcsipl mlge dcsipl mlge i

voidcsipl vlgt P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,signed int * R,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘greater than’, by element, of two vec-tors.The following instances are supported:

csipl vlgt fcsipl vlgt dcsipl vlgt i

voidcsipl mlgt P(scalar P * A,int ldA,scalar P * B,int ldB,signed int * R,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparison of‘greater than’, by element, of two vec-tors/matrices.The following instances are supported:

csipl mlgt fcsipl mlgt dcsipl mlgt i

voidcsipl vlle P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,signed int * R,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘less than or equal’, by element, of twovectors.The following instances are supported:

csipl vlle fcsipl vlle dcsipl vlle i

CSIPL/Brief [3.1D] NASoftware 59

Page 78: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl mlle P(scalar P * A,int ldA,scalar P * B,int ldB,signed int * R,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparison of‘less than or equal’, by element, of twovectors/matrices.The following instances are supported:

csipl mlle fcsipl mlle dcsipl mlle i

voidcsipl vllt P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,signed int * R,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘less than’, by element, of two vectors.The following instances are supported:

csipl vllt fcsipl vllt dcsipl vllt i

voidcsipl mllt P(scalar P * A,int ldA,scalar P * B,int ldB,signed int * R,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparison of‘less than’, by element, of two vec-tors/matrices.The following instances are supported:

csipl mllt fcsipl mllt dcsipl mllt i

voidcsipl vlne P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,signed int * R,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘not equal’, by element, of two vectors.The following instances are supported:

csipl vlne fcsipl vlne dcsipl vlne i

voidcsipl cvlne inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,signed int * R,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘not equal’, by element, of two vectors.The following instances are supported:

csipl cvlne inter fcsipl cvlne inter dcsipl cvlne inter i

voidcsipl cvlne split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,signed int * R re,signed int * R im,csipl stride strideR,csipl length n);

Computes the boolean comparison of‘not equal’, by element, of two vectors.The following instances are supported:

csipl cvlne split fcsipl cvlne split dcsipl cvlne split i

CSIPL/Brief [3.1D] NASoftware 60

Page 79: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl mlne P(scalar P * A,int ldA,scalar P * B,int ldB,signed int * R,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparison of‘not equal’, by element, of two vec-tors/matrices.The following instances are supported:

csipl mlne fcsipl mlne dcsipl mlne i

voidcsipl cmlne inter P(void * A,int ldA,void * B,int ldB,signed int * R,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparison of‘not equal’, by element, of two vec-tors/matrices.The following instances are supported:

csipl cmlne inter fcsipl cmlne inter dcsipl cmlne inter i

voidcsipl cmlne split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,signed int * R re,signed int * R im,csipl stride strideR,csipl length m,csipl length n);

Computes the boolean comparison of‘not equal’, by element, of two vec-tors/matrices.The following instances are supported:

csipl cmlne split fcsipl cmlne split dcsipl cmlne split i

6.6 Selection Operations

Prototype Descriptionvoidcsipl vclip P(scalar P * A,csipl stride strideA,scalar P t1,scalar P t2,scalar P c1,scalar P c2,scalar P * R,csipl stride strideR,csipl length n);

Computes the generalised double clip,by element, of two vectors.The following instances are supported:

csipl vclip fcsipl vclip dcsipl vclip icsipl vclip si

voidcsipl vinvclip P(scalar P * A,csipl stride strideA,scalar P t1,scalar P t2,scalar P t3,scalar P c1,scalar P c2,scalar P * R,csipl stride strideR,csipl length n);

Computes the generalised inverteddouble clip, by element, of two vectors.The following instances are supported:

csipl vinvclip fcsipl vinvclip dcsipl vinvclip icsipl vinvclip si

CSIPL/Brief [3.1D] NASoftware 61

Page 80: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionunsigned intcsipl vindexbool(signed int * X,csipl stride strideX,unsigned int * Y,csipl stride strideY,csipl length n);

Computes an index vector of the in-dices of the non-false elements of theboolean vector, and returns the num-ber of non-false elements.

voidcsipl vmax P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the maximum, by element,of two vectors.The following instances are supported:

csipl vmax fcsipl vmax d

voidcsipl vmaxmg P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the maximum magnitude(absolute value), by element, of twovectors.The following instances are supported:

csipl vmaxmg fcsipl vmaxmg d

voidcsipl vcmaxmgsq inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the maximum magnitudesquared, by element, of two complexvectors.The following instances are supported:

csipl vcmaxmgsq inter fcsipl vcmaxmgsq inter d

voidcsipl vcmaxmgsq split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the maximum magnitudesquared, by element, of two complexvectors.The following instances are supported:

csipl vcmaxmgsq split fcsipl vcmaxmgsq split d

scalar Pcsipl vcmaxmgsqval inter P(void * A,csipl stride strideA,csipl index * index,csipl length n);

Returns the index and value of themaximum magnitude squared of the el-ements of a complex vector. The indexis returned by reference as one of thearguments.The following instances are supported:

csipl vcmaxmgsqval inter fcsipl vcmaxmgsqval inter d

CSIPL/Brief [3.1D] NASoftware 62

Page 81: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionscalar Pcsipl vcmaxmgsqval split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl index * index,csipl length n);

Returns the index and value of themaximum magnitude squared of the el-ements of a complex vector. The indexis returned by reference as one of thearguments.The following instances are supported:

csipl vcmaxmgsqval split fcsipl vcmaxmgsqval split d

scalar Pcsipl vmaxmgval P(scalar P * A,csipl stride strideA,csipl index * index,csipl length n);

Returns the index and value of themaximum absolute value of the ele-ments of a vector. The index is re-turned by reference as one of the ar-guments.The following instances are supported:

csipl vmaxmgval fcsipl vmaxmgval d

scalar Pcsipl vmaxval P(scalar P * A,csipl stride strideA,csipl index * index,csipl length n);

Returns the index and value of themaximum value of the elements of avector. The index is returned by ref-erence as one of the arguments.The following instances are supported:

csipl vmaxval fcsipl vmaxval d

voidcsipl vmin P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the minimum, by element, oftwo vectors.The following instances are supported:

csipl vmin fcsipl vmin d

voidcsipl vminmg P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the minimum magnitude(absolute value), by element, of twovectors.The following instances are supported:

csipl vminmg fcsipl vminmg d

voidcsipl vcminmgsq inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the minimum magnitudesquared, by element, of two complexvectors.The following instances are supported:

csipl vcminmgsq inter fcsipl vcminmgsq inter d

CSIPL/Brief [3.1D] NASoftware 63

Page 82: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vcminmgsq split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the minimum magnitudesquared, by element, of two complexvectors.The following instances are supported:

csipl vcminmgsq split fcsipl vcminmgsq split d

scalar Pcsipl vcminmgsqval inter P(void * A,csipl stride strideA,csipl index * index,csipl length n);

Returns the index and value of the min-imum magnitude squared of the ele-ments of a complex vector. The indexis returned by reference as one of thearguments.The following instances are supported:

csipl vcminmgsqval inter fcsipl vcminmgsqval inter d

scalar Pcsipl vcminmgsqval split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl index * index,csipl length n);

Returns the index and value of the min-imum magnitude squared of the ele-ments of a complex vector. The indexis returned by reference as one of thearguments.The following instances are supported:

csipl vcminmgsqval split fcsipl vcminmgsqval split d

scalar Pcsipl vminmgval P(scalar P * A,csipl stride strideA,csipl index * index,csipl length n);

Returns the index and value of the min-imum absolute value of the elements ofa vector. The index is returned by ref-erence as one of the arguments.The following instances are supported:

csipl vminmgval fcsipl vminmgval d

scalar Pcsipl vminval P(scalar P * A,csipl stride strideA,csipl index * index,csipl length n);

Returns the index and value of the min-imum value of the elements of a vector.The index is returned by reference asone of the arguments.The following instances are supported:

csipl vminval fcsipl vminval d

6.7 Bitwise and Boolean Logical Operators

Prototype Descriptionvoidcsipl vand P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the bitwise and, by element,of two vectors.The following instances are supported:

csipl vand icsipl vand sicsipl vand bl

CSIPL/Brief [3.1D] NASoftware 64

Page 83: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl mand P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the bitwise and, by element,of two matrices.The following instances are supported:

csipl mand icsipl mand sicsipl mand bl

voidcsipl vnot P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Computes the bitwise not (one’s com-plement), by element, of two vectors.The following instances are supported:

csipl vnot icsipl vnot sicsipl vnot bl

voidcsipl mnot P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the bitwise not (one’s com-plement), by element, of two matrices.The following instances are supported:

csipl mnot icsipl mnot sicsipl mnot bl

voidcsipl vor P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R,csipl stride strideR,csipl length n);

Computes the bitwise inclusive or, byelement, of two vectors.The following instances are supported:

csipl vor icsipl vor sicsipl vor bl

voidcsipl mor P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the bitwise inclusive or, byelement, of two matrices.The following instances are supported:

csipl mor icsipl mor sicsipl mor bl

voidcsipl mxor P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n);

Computes the bitwise exclusive or, byelement, of two matrices.The following instances are supported:

csipl mxor icsipl mxor sicsipl mxor bl

6.8 Element Generation and Copy

CSIPL/Brief [3.1D] NASoftware 65

Page 84: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vcopy P P(scalar P * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Copy the source vector to the destina-tion vector performing any necessarytype conversion of the standard ANSIC scalar types.The following instances are supported:

csipl vcopy f fcsipl vcopy f dcsipl vcopy f icsipl vcopy f sicsipl vcopy f blcsipl vcopy d fcsipl vcopy d dcsipl vcopy d icsipl vcopy d sicsipl vcopy d blcsipl vcopy i fcsipl vcopy i dcsipl vcopy i icsipl vcopy i sicsipl vcopy i vicsipl vcopy si fcsipl vcopy si dcsipl vcopy si icsipl vcopy si sicsipl vcopy bl fcsipl vcopy bl dcsipl vcopy bl blcsipl vcopy vi icsipl vcopy vi vicsipl vcopy mi mi

voidcsipl cvcopy inter P P(void * A,csipl stride strideA,void * R,csipl stride strideR,csipl length n);

Copy the source vector to the destina-tion vector performing any necessarytype conversion of the standard ANSIC scalar types.The following instances are supported:

csipl cvcopy inter f fcsipl cvcopy inter f dcsipl cvcopy inter d fcsipl cvcopy inter d d

voidcsipl cvcopy split P P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Copy the source vector to the destina-tion vector performing any necessarytype conversion of the standard ANSIC scalar types.The following instances are supported:

csipl cvcopy split f fcsipl cvcopy split f dcsipl cvcopy split d fcsipl cvcopy split d d

CSIPL/Brief [3.1D] NASoftware 66

Page 85: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl mcopy P P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Copy the source matrix to the destina-tion matrix performing any necessarytype conversion of the standard ANSIC scalar types.The following instances are supported:

csipl mcopy f fcsipl mcopy f dcsipl mcopy f icsipl mcopy f sicsipl mcopy f blcsipl mcopy d fcsipl mcopy d dcsipl mcopy d icsipl mcopy d sicsipl mcopy d blcsipl mcopy i fcsipl mcopy i dcsipl mcopy i icsipl mcopy i sicsipl mcopy si fcsipl mcopy si dcsipl mcopy si icsipl mcopy si sicsipl mcopy bl fcsipl mcopy bl dcsipl mcopy bl bl

voidcsipl cmcopy inter P P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Copy the source matrix to the destina-tion matrix performing any necessarytype conversion of the standard ANSIC scalar types.The following instances are supported:

csipl cmcopy inter f fcsipl cmcopy inter f dcsipl cmcopy inter d fcsipl cmcopy inter d d

voidcsipl cmcopy split P P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Copy the source matrix to the destina-tion matrix performing any necessarytype conversion of the standard ANSIC scalar types.The following instances are supported:

csipl cmcopy split f fcsipl cmcopy split f dcsipl cmcopy split d fcsipl cmcopy split d d

voidcsipl vfill P(scalar P a,scalar P * R,csipl stride strideR,csipl length n);

Fill a vector with a constant value.The following instances are supported:

csipl vfill fcsipl vfill dcsipl vfill icsipl vfill si

voidcsipl cvfill inter P(csipl cscalar P a,void * R,csipl stride strideR,csipl length n);

Fill a vector with a constant value.The following instances are supported:

csipl cvfill inter fcsipl cvfill inter d

CSIPL/Brief [3.1D] NASoftware 67

Page 86: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cvfill split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Fill a vector with a constant value.The following instances are supported:

csipl cvfill split fcsipl cvfill split d

voidcsipl mfill P(scalar P a,scalar P * R,int ldR,csipl length m,csipl length n);

Fill a matrix with a constant value.The following instances are supported:

csipl mfill fcsipl mfill dcsipl mfill icsipl mfill si

voidcsipl cmfill inter P(csipl cscalar P a,void * R,int ldR,csipl length m,csipl length n);

Fill a matrix with a constant value.The following instances are supported:

csipl cmfill inter fcsipl cmfill inter d

voidcsipl cmfill split P(csipl cscalar P a re,csipl cscalar P a im,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Fill a matrix with a constant value.The following instances are supported:

csipl cmfill split fcsipl cmfill split d

voidcsipl vramp P(scalar P alpha,scalar P beta,scalar P * R,csipl stride strideR,csipl length n);

Computes a vector ramp by starting atan initial value and incrementing eachsuccessive element by the ramp stepsize.The following instances are supported:

csipl vramp fcsipl vramp dcsipl vramp icsipl vramp si

6.9 Manipulation Operations

Prototype Descriptionvoidcsipl vcmplx inter P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,void * R,csipl stride strideR,csipl length n);

Form a complex vector from two realvectors.The following instances are supported:

csipl vcmplx inter fcsipl vcmplx inter d

CSIPL/Brief [3.1D] NASoftware 68

Page 87: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vcmplx split P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,scalar P * R re,scalar P * R im,csipl stride strideR,csipl length n);

Form a complex vector from two realvectors.The following instances are supported:

csipl vcmplx split fcsipl vcmplx split d

voidcsipl mcmplx P(scalar P * A,int ldA,scalar P * B,int ldB,void * R,int ldR,csipl length m,csipl length n);

Form a complex matrix from two realmatrices.The following instances are supported:

csipl mcmplx fcsipl mcmplx d

voidcsipl vgather P(scalar P * X,csipl stride strideX,unsigned int * I,csipl stride strideI,scalar P * Y,csipl stride strideY,csipl length n);

The gather operation selects elementsof a source vector using indices sup-plied by an index vector. The selectedelements are placed sequentially in anoutput vector so that the output vec-tor and the index vector are indexedthe same.The following instances are supported:

csipl vgather fcsipl vgather dcsipl vgather icsipl vgather si

voidcsipl cvgather inter P(void * X,csipl stride strideX,unsigned int * I,csipl stride strideI,void * Y,csipl stride strideY,csipl length n);

The gather operation selects elementsof a source vector using indices sup-plied by an index vector. The selectedelements are placed sequentially in anoutput vector so that the output vec-tor and the index vector are indexedthe same.The following instances are supported:

csipl cvgather inter fcsipl cvgather inter d

voidcsipl cvgather split P(scalar P * X re,scalar P * X im,csipl stride strideX,unsigned int * I re,unsigned int * I im,csipl stride strideI,scalar P * Y re,scalar P * Y im,csipl stride strideY,csipl length n);

The gather operation selects elementsof a source vector using indices sup-plied by an index vector. The selectedelements are placed sequentially in anoutput vector so that the output vec-tor and the index vector are indexedthe same.The following instances are supported:

csipl cvgather split fcsipl cvgather split d

CSIPL/Brief [3.1D] NASoftware 69

Page 88: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl mgather P(scalar P * X,int ldX,csipl scalar mi * I,csipl stride strideI,scalar P * Y,csipl stride strideY,csipl length n);

The gather operation selects elementsof a source vector/matrix using indicessupplied by an index vector. The se-lected elements are placed sequentiallyin an output vector so that the outputvector and the index vector are indexedthe same.The following instances are supported:

csipl mgather fcsipl mgather dcsipl mgather icsipl mgather si

voidcsipl cmgather inter P(void * X,int ldX,csipl scalar mi * I,csipl stride strideI,void * Y,csipl stride strideY,csipl length n);

The gather operation selects elementsof a source vector/matrix using indicessupplied by an index vector. The se-lected elements are placed sequentiallyin an output vector so that the outputvector and the index vector are indexedthe same.The following instances are supported:

csipl cmgather inter fcsipl cmgather inter d

voidcsipl cmgather split P(scalar P * X re,scalar P * X im,int ldX,csipl scalar mi * I re,csipl scalar mi * I im,csipl stride strideI,scalar P * Y re,scalar P * Y im,csipl stride strideY,csipl length n);

The gather operation selects elementsof a source vector/matrix using indicessupplied by an index vector. The se-lected elements are placed sequentiallyin an output vector so that the outputvector and the index vector are indexedthe same.The following instances are supported:

csipl cmgather split fcsipl cmgather split d

voidcsipl vimag inter P(void * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Extract the imaginary part of a com-plex vector.The following instances are supported:

csipl vimag inter fcsipl vimag inter d

voidcsipl vimag split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Extract the imaginary part of a com-plex vector.The following instances are supported:

csipl vimag split fcsipl vimag split d

voidcsipl mimag P(void * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Extract the imaginary part of a com-plex matrix.The following instances are supported:

csipl mimag fcsipl mimag d

CSIPL/Brief [3.1D] NASoftware 70

Page 89: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vpolar inter P(void * A,csipl stride strideA,scalar P * R,csipl stride strideR,scalar P * P,csipl stride strideP,csipl length n);

Convert a complex vector from rectan-gular to polar form. The polar dataconsists of a real vector containing theradius and a corresponding real vectorcontaining the argument (angle) of thecomplex input data.The following instances are supported:

csipl vpolar inter fcsipl vpolar inter d

voidcsipl vpolar split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R,csipl stride strideR,scalar P * P,csipl stride strideP,csipl length n);

Convert a complex vector from rectan-gular to polar form. The polar dataconsists of a real vector containing theradius and a corresponding real vectorcontaining the argument (angle) of thecomplex input data.The following instances are supported:

csipl vpolar split fcsipl vpolar split d

voidcsipl mpolar P(void * A,int ldA,scalar P * R,int ldR,scalar P * P,int ldP,csipl length m,csipl length n);

Convert a complex matrix from rect-angular to polar form. The polar dataconsists of a real matrix containing theradius and a corresponding real matrixcontaining the argument (angle) of thecomplex input data.The following instances are supported:

csipl mpolar fcsipl mpolar d

voidcsipl vreal inter P(void * A,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Extract the real part of a complex vec-tor.The following instances are supported:

csipl vreal inter fcsipl vreal inter d

voidcsipl vreal split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * R,csipl stride strideR,csipl length n);

Extract the real part of a complex vec-tor.The following instances are supported:

csipl vreal split fcsipl vreal split d

voidcsipl mreal P(void * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Extract the real part of a complex ma-trix.The following instances are supported:

csipl mreal fcsipl mreal d

CSIPL/Brief [3.1D] NASoftware 71

Page 90: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl vrect inter P(scalar P * R,csipl stride strideR,scalar P * P,csipl stride strideP,void * A,csipl stride strideA,csipl length n);

Convert a pair of real vectors from com-plex polar to complex rectangular form.The following instances are supported:

csipl vrect inter fcsipl vrect inter d

voidcsipl vrect split P(scalar P * R,csipl stride strideR,scalar P * P,csipl stride strideP,scalar P * A re,scalar P * A im,csipl stride strideA,csipl length n);

Convert a pair of real vectors from com-plex polar to complex rectangular form.The following instances are supported:

csipl vrect split fcsipl vrect split d

voidcsipl mrect P(scalar P * R,int ldR,scalar P * P,int ldP,void * A,int ldA,csipl length m,csipl length n);

Convert a pair of real matrices fromcomplex polar to complex rectangularform.The following instances are supported:

csipl mrect fcsipl mrect d

voidcsipl vscatter P(scalar P * X,csipl stride strideX,scalar P * Y,csipl stride strideY,unsigned int * I,csipl stride strideI,csipl length n);

The scatter operation sequentially useselements of a source vector and an in-dex vector. The element of the vectorindex is used to select a storage loca-tion in the output vector to store theelement from the source vector.The following instances are supported:

csipl vscatter fcsipl vscatter dcsipl vscatter icsipl vscatter si

voidcsipl cvscatter inter P(void * X,csipl stride strideX,void * Y,csipl stride strideY,unsigned int * I,csipl stride strideI,csipl length n);

The scatter operation sequentially useselements of a source vector and an in-dex vector. The element of the vectorindex is used to select a storage loca-tion in the output vector to store theelement from the source vector.The following instances are supported:

csipl cvscatter inter fcsipl cvscatter inter d

CSIPL/Brief [3.1D] NASoftware 72

Page 91: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cvscatter split P(scalar P * X re,scalar P * X im,csipl stride strideX,scalar P * Y re,scalar P * Y im,csipl stride strideY,unsigned int * I re,unsigned int * I im,csipl stride strideI,csipl length n);

The scatter operation sequentially useselements of a source vector and an in-dex vector. The element of the vectorindex is used to select a storage loca-tion in the output vector to store theelement from the source vector.The following instances are supported:

csipl cvscatter split fcsipl cvscatter split d

voidcsipl mscatter P(scalar P * X,csipl stride strideX,scalar P * Y,int ldY,csipl scalar mi * I,csipl stride strideI,csipl length n);

The scatter operation sequentially useselements of a source vector and an in-dex vector. The element of the vec-tor/matrix index is used to select astorage location in the output vec-tor/matrix to store the element fromthe source vector.The following instances are supported:

csipl mscatter fcsipl mscatter dcsipl mscatter icsipl mscatter si

voidcsipl cmscatter inter P(void * X,csipl stride strideX,void * Y,int ldY,csipl scalar mi * I,csipl stride strideI,csipl length n);

The scatter operation sequentially useselements of a source vector and an in-dex vector. The element of the vec-tor/matrix index is used to select astorage location in the output vec-tor/matrix to store the element fromthe source vector.The following instances are supported:

csipl cmscatter inter fcsipl cmscatter inter d

voidcsipl cmscatter split P(scalar P * X re,scalar P * X im,csipl stride strideX,scalar P * Y re,scalar P * Y im,int ldY,csipl scalar mi * I re,csipl scalar mi * I im,csipl stride strideI,csipl length n);

The scatter operation sequentially useselements of a source vector and an in-dex vector. The element of the vec-tor/matrix index is used to select astorage location in the output vec-tor/matrix to store the element fromthe source vector.The following instances are supported:

csipl cmscatter split fcsipl cmscatter split d

voidcsipl cvswap inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,csipl length n);

Swap elements between two vectors.The following instances are supported:

csipl cvswap inter fcsipl cvswap inter d

CSIPL/Brief [3.1D] NASoftware 73

Page 92: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 6. Vector And Elementwise Operations

Prototype Descriptionvoidcsipl cvswap split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,csipl length n);

Swap elements between two vectors.The following instances are supported:

csipl cvswap split fcsipl cvswap split d

voidcsipl mswap P(scalar P * A,int ldA,scalar P * B,int ldB,csipl length m,csipl length n);

Swap elements between two matrices.The following instances are supported:

csipl mswap fcsipl mswap dcsipl mswap icsipl mswap si

voidcsipl cmswap inter P(void * A,int ldA,void * B,int ldB,csipl length m,csipl length n);

Swap elements between two matrices.The following instances are supported:

csipl cmswap inter fcsipl cmswap inter d

voidcsipl cmswap split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,csipl length m,csipl length n);

Swap elements between two matrices.The following instances are supported:

csipl cmswap split fcsipl cmswap split d

CSIPL/Brief [3.1D] NASoftware 74

Page 93: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

7.1 FFT Functions

Prototype Descriptioncsipl fft P *csipl ccfftip create P(csipl index length,scalar P scale,csipl fft dir dir,unsigned int ntimes,csipl alg hint hint);

Create a 1D FFT object.The following instances are supported:

csipl ccfftip create fcsipl ccfftip create d

csipl fft P *csipl ccfftop create P(csipl index length,scalar P scale,csipl fft dir dir,unsigned int ntimes,csipl alg hint hint);

Create a 1D FFT object.The following instances are supported:

csipl ccfftop create fcsipl ccfftop create d

csipl fft P *csipl crfftop create P(csipl index length,scalar P scale,unsigned int ntimes,csipl alg hint hint);

Create a 1D FFT object.The following instances are supported:

csipl crfftop create fcsipl crfftop create d

csipl fft P *csipl rcfftop create P(csipl index length,scalar P scale,unsigned int ntimes,csipl alg hint hint);

Create a 1D FFT object.The following instances are supported:

csipl rcfftop create fcsipl rcfftop create d

voidcsipl ccfftip inter P(csipl fft P * plan,void * xy,csipl stride stridexy);

Apply a complex-to-complex FastFourier Transform (FFT).The following instances are supported:

csipl ccfftip inter fcsipl ccfftip inter d

voidcsipl ccfftip split P(csipl fft P * plan,scalar P * xy re,scalar P * xy im,csipl stride stridexy);

Apply a complex-to-complex FastFourier Transform (FFT).The following instances are supported:

csipl ccfftip split fcsipl ccfftip split d

voidcsipl ccfftop inter P(csipl fft P * plan,void * x,csipl stride stridex,void * y,csipl stride stridey);

Apply a complex-to-complex FastFourier Transform (FFT).The following instances are supported:

csipl ccfftop inter fcsipl ccfftop inter d

CSIPL/Brief [3.1D] NASoftware 75

Page 94: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptionvoidcsipl ccfftop split P(csipl fft P * plan,scalar P * x re,scalar P * x im,csipl stride stridex,scalar P * y re,scalar P * y im,csipl stride stridey);

Apply a complex-to-complex FastFourier Transform (FFT).The following instances are supported:

csipl ccfftop split fcsipl ccfftop split d

voidcsipl crfftop inter P(csipl fft P * plan,void * x,csipl stride stridex,scalar P * y,csipl stride stridey);

Apply a complex-to-real Fast FourierTransform (FFT).The following instances are supported:

csipl crfftop inter fcsipl crfftop inter d

voidcsipl crfftop split P(csipl fft P * plan,scalar P * x re,scalar P * x im,csipl stride stridex,scalar P * y,csipl stride stridey);

Apply a complex-to-real Fast FourierTransform (FFT).The following instances are supported:

csipl crfftop split fcsipl crfftop split d

voidcsipl rcfftop inter P(csipl fft P * plan,scalar P * x,csipl stride stridex,void * y,csipl stride stridey);

Apply a real-to-complex Fast FourierTransform (FFT).The following instances are supported:

csipl rcfftop inter fcsipl rcfftop inter d

voidcsipl rcfftop split P(csipl fft P * plan,scalar P * x,csipl stride stridex,scalar P * y re,scalar P * y im,csipl stride stridey);

Apply a real-to-complex Fast FourierTransform (FFT).The following instances are supported:

csipl rcfftop split fcsipl rcfftop split d

intcsipl fft destroy P(csipl fft P * plan);

Destroy an FFT object.The following instances are supported:

csipl fft destroy fcsipl fft destroy d

voidcsipl fft getattr P(csipl fft P * plan,csipl fft attr P * attr);

Return the attributes of an FFT ob-ject.The following instances are supported:

csipl fft getattr fcsipl fft getattr d

csipl fftm P *csipl ccfftmop create P(csipl index rows,csipl index cols,scalar P scale,csipl fft dir dir,csipl major major,unsigned int ntimes,csipl alg hint hint);

Create a 1D multiple FFT object.The following instances are supported:

csipl ccfftmop create fcsipl ccfftmop create d

CSIPL/Brief [3.1D] NASoftware 76

Page 95: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptioncsipl fftm P *csipl ccfftmip create P(csipl index rows,csipl index cols,scalar P scale,csipl fft dir dir,csipl major major,unsigned int ntimes,csipl alg hint hint);

Create a 1D multiple FFT object.The following instances are supported:

csipl ccfftmip create fcsipl ccfftmip create d

csipl fftm P *csipl crfftmop create P(csipl index rows,csipl index cols,scalar P scale,csipl major major,unsigned int ntimes,csipl alg hint hint);

Create a 1D multiple FFT object.The following instances are supported:

csipl crfftmop create fcsipl crfftmop create d

csipl fftm P *csipl rcfftmop create P(csipl index rows,csipl index cols,scalar P scale,csipl major major,unsigned int ntimes,csipl alg hint hint);

Create a 1D multiple FFT object.The following instances are supported:

csipl rcfftmop create fcsipl rcfftmop create d

intcsipl fftm destroy P(csipl fftm P * plan);

Destroy an FFT object.The following instances are supported:

csipl fftm destroy fcsipl fftm destroy d

voidcsipl fftm getattr P(csipl fftm P * plan,csipl fftm attr P * attr);

Return the attributes of an FFT ob-ject.The following instances are supported:

csipl fftm getattr fcsipl fftm getattr d

voidcsipl ccfftmip inter P(csipl fftm P * plan,void * XY,int ldXY);

Apply a multiple complex-to-complexFast Fourier Transform (FFT).The following instances are supported:

csipl ccfftmip inter fcsipl ccfftmip inter d

voidcsipl ccfftmip split P(csipl fftm P * plan,scalar P * XY re,scalar P * XY im,int ldXY);

Apply a multiple complex-to-complexFast Fourier Transform (FFT).The following instances are supported:

csipl ccfftmip split fcsipl ccfftmip split d

voidcsipl ccfftmop inter P(csipl fftm P * plan,void * X,int ldX,void * Y,int ldY);

Apply a multiple complex-to-complexFast Fourier Transform (FFT).The following instances are supported:

csipl ccfftmop inter fcsipl ccfftmop inter d

CSIPL/Brief [3.1D] NASoftware 77

Page 96: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptionvoidcsipl ccfftmop split P(csipl fftm P * plan,scalar P * X re,scalar P * X im,int ldX,scalar P * Y re,scalar P * Y im,int ldY);

Apply a multiple complex-to-complexFast Fourier Transform (FFT).The following instances are supported:

csipl ccfftmop split fcsipl ccfftmop split d

voidcsipl crfftmop inter P(csipl fftm P * plan,void * X,int ldX,scalar P * Y,int ldY);

Apply a multiple complex-to-real FastFourier Transform (FFT).The following instances are supported:

csipl crfftmop inter fcsipl crfftmop inter d

voidcsipl crfftmop split P(csipl fftm P * plan,scalar P * X re,scalar P * X im,int ldX,scalar P * Y,int ldY);

Apply a multiple complex-to-real FastFourier Transform (FFT).The following instances are supported:

csipl crfftmop split fcsipl crfftmop split d

voidcsipl rcfftmop inter P(csipl fftm P * plan,scalar P * X,int ldX,void * Y,int ldY);

Apply a multiple real-to-complex out ofplace Fast Fourier Transform (FFT).The following instances are supported:

csipl rcfftmop inter fcsipl rcfftmop inter d

voidcsipl rcfftmop split P(csipl fftm P * plan,scalar P * X,int ldX,scalar P * Y re,scalar P * Y im,int ldY);

Apply a multiple real-to-complex out ofplace Fast Fourier Transform (FFT).The following instances are supported:

csipl rcfftmop split fcsipl rcfftmop split d

csipl fft2d P *csipl ccfft2dop create P(csipl index rows,csipl index cols,scalar P scale,csipl fft dir dir,unsigned int ntimes,csipl alg hint hint);

Create a 2D FFT object.The following instances are supported:

csipl ccfft2dop create fcsipl ccfft2dop create d

csipl fft2d P *csipl ccfft2dip create P(csipl index rows,csipl index cols,scalar P scale,csipl fft dir dir,unsigned int ntimes,csipl alg hint hint);

Create a 2D FFT object.The following instances are supported:

csipl ccfft2dip create fcsipl ccfft2dip create d

csipl fft2d P *csipl crfft2dop create P(csipl index rows,csipl index cols,scalar P scale,unsigned int ntimes,csipl alg hint hint);

Create a 2D FFT object.The following instances are supported:

csipl crfft2dop create fcsipl crfft2dop create d

CSIPL/Brief [3.1D] NASoftware 78

Page 97: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptioncsipl fft2d P *csipl rcfft2dop create P(csipl index rows,csipl index cols,scalar P scale,unsigned int ntimes,csipl alg hint hint);

Create a 2D FFT object.The following instances are supported:

csipl rcfft2dop create fcsipl rcfft2dop create d

voidcsipl ccfft2dip inter P(csipl fft2d P * plan,void * XY,int ldXY);

Apply a complex-to-complex 2D FastFourier Transform (FFT).The following instances are supported:

csipl ccfft2dip inter fcsipl ccfft2dip inter d

voidcsipl ccfft2dip split P(csipl fft2d P * plan,scalar P * XY re,scalar P * XY im,int ldXY);

Apply a complex-to-complex 2D FastFourier Transform (FFT).The following instances are supported:

csipl ccfft2dip split fcsipl ccfft2dip split d

voidcsipl ccfft2dop inter P(csipl fft2d P * plan,void * X,int ldX,void * Y,int ldY);

Apply a complex-to-complex 2D FastFourier Transform (FFT).The following instances are supported:

csipl ccfft2dop inter fcsipl ccfft2dop inter d

voidcsipl ccfft2dop split P(csipl fft2d P * plan,scalar P * X re,scalar P * X im,int ldX,scalar P * Y re,scalar P * Y im,int ldY);

Apply a complex-to-complex 2D FastFourier Transform (FFT).The following instances are supported:

csipl ccfft2dop split fcsipl ccfft2dop split d

voidcsipl crfft2dop inter P(csipl fft2d P * plan,void * X,int ldX,scalar P * Y,int ldY);

Apply a complex-to-real 2D FastFourier Transform (FFT).The following instances are supported:

csipl crfft2dop inter fcsipl crfft2dop inter d

voidcsipl crfft2dop split P(csipl fft2d P * plan,scalar P * X re,scalar P * X im,int ldX,scalar P * Y,int ldY);

Apply a complex-to-real 2D FastFourier Transform (FFT).The following instances are supported:

csipl crfft2dop split fcsipl crfft2dop split d

voidcsipl rcfft2dop inter P(csipl fft2d P * plan,scalar P * X,int ldX,void * Y,int ldY);

Apply a real-to-complex 2D FastFourier Transform (FFT).The following instances are supported:

csipl rcfft2dop inter fcsipl rcfft2dop inter d

CSIPL/Brief [3.1D] NASoftware 79

Page 98: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptionvoidcsipl rcfft2dop split P(csipl fft2d P * plan,scalar P * X,int ldX,scalar P * Y re,scalar P * Y im,int ldY);

Apply a real-to-complex 2D FastFourier Transform (FFT).The following instances are supported:

csipl rcfft2dop split fcsipl rcfft2dop split d

intcsipl fft2d destroy P(csipl fft2d P * plan);

Destroy an FFT object.The following instances are supported:

csipl fft2d destroy fcsipl fft2d destroy d

voidcsipl fft2d getattr P(csipl fft2d P * plan,csipl fft2d attr P * attr);

Return the attributes of an FFT ob-ject.The following instances are supported:

csipl fft2d getattr fcsipl fft2d getattr d

7.2 Convolution/Correlation Functions

Prototype Descriptioncsipl conv1d P *csipl conv1d create P(scalar P * kernel,csipl stride stridekernel,csipl symmetry symm,unsigned int N,unsigned int D,csipl support region support,unsigned int ntimes,csipl alg hint hint,csipl length n);

Create a decimated 1D convolution fil-ter object.The following instances are supported:

csipl conv1d create fcsipl conv1d create d

intcsipl conv1d destroy P(csipl conv1d P * plan);

Destroy a 1D convolution object.The following instances are supported:

csipl conv1d destroy fcsipl conv1d destroy d

voidcsipl conv1d getattr P(csipl conv1d P * plan,csipl conv1d attr P * attr);

Returns the attributes for a 1D convo-lution object.The following instances are supported:

csipl conv1d getattr fcsipl conv1d getattr d

voidcsipl convolve1d P(csipl conv1d P * plan,scalar P * x,csipl stride stridex,scalar P * y,csipl stride stridey,csipl length n);

Compute a decimated real one-dimensional (1D) convolution of twovectors.The following instances are supported:

csipl convolve1d fcsipl convolve1d d

CSIPL/Brief [3.1D] NASoftware 80

Page 99: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptioncsipl conv2d P *csipl conv2d create P(scalar P * H,int ldH,csipl symmetry symm,unsigned int P,unsigned int Q,unsigned int D,csipl support region support,unsigned int ntimes,csipl alg hint hint,csipl length m,csipl length n);

Create a decimated 2D convolution fil-ter object.The following instances are supported:

csipl conv2d create fcsipl conv2d create d

intcsipl conv2d destroy P(csipl conv2d P * plan);

Destroy a 2D convolution object.The following instances are supported:

csipl conv2d destroy fcsipl conv2d destroy d

voidcsipl conv2d getattr P(csipl conv2d P * plan,csipl conv2d attr P * attr);

Returns the attributes for a 2D convo-lution object.The following instances are supported:

csipl conv2d getattr fcsipl conv2d getattr d

voidcsipl convolve2d P(csipl conv2d P * plan,scalar P * x,int ldx,scalar P * y,int ldy,csipl length m,csipl length n);

Compute a decimated real two-dimensional (2D) convolution of twomatrices.The following instances are supported:

csipl convolve2d fcsipl convolve2d d

csipl Dcorr1d P *csipl Dcorr1d create P(unsigned int M,unsigned int N,csipl support region support,unsigned int ntimes,csipl alg hint hint);

Create a 1D correlation object.The following instances are supported:

csipl corr1d create fcsipl corr1d create dcsipl ccorr1d create fcsipl ccorr1d create d

intcsipl Dcorr1d destroy P(csipl Dcorr1d P * plan);

Destroy a 1D correlation object.The following instances are supported:

csipl corr1d destroy fcsipl corr1d destroy dcsipl ccorr1d destroy fcsipl ccorr1d destroy d

voidcsipl Dcorr1d getattr P(csipl Dcorr1d P * plan,csipl Dcorr1d attr P * attr);

Return the attributes for a 1D correla-tion object.The following instances are supported:

csipl corr1d getattr fcsipl corr1d getattr dcsipl ccorr1d getattr fcsipl ccorr1d getattr d

CSIPL/Brief [3.1D] NASoftware 81

Page 100: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptionvoidcsipl correlate1d P(csipl corr1d P * plan,csipl bias bias,scalar P * ref,csipl stride strideref,scalar P * x,csipl stride stridex,scalar P * y,csipl stride stridey,csipl length n);

Compute a real one-dimensional (1D)correlation of two vectors.The following instances are supported:

csipl correlate1d fcsipl correlate1d d

voidcsipl ccorrelate1d inter P(csipl ccorr1d P * plan,csipl bias bias,void * ref,csipl stride strideref,void * x,csipl stride stridex,void * y,csipl stride stridey,csipl length n);

Compute a real one-dimensional (1D)correlation of two vectors.The following instances are supported:

csipl ccorrelate1d inter fcsipl ccorrelate1d inter d

voidcsipl ccorrelate1d split P(csipl ccorr1d P * plan,csipl bias bias,scalar P * ref re,scalar P * ref im,csipl stride strideref,scalar P * x re,scalar P * x im,csipl stride stridex,scalar P * y re,scalar P * y im,csipl stride stridey,csipl length n);

Compute a real one-dimensional (1D)correlation of two vectors.The following instances are supported:

csipl ccorrelate1d split fcsipl ccorrelate1d split d

csipl Dcorr2d P *csipl Dcorr2d create P(unsigned int M,unsigned int N,unsigned int P,unsigned int Q,csipl support region support,unsigned int ntimes,csipl alg hint hint);

Create a 2D correlation object.The following instances are supported:

csipl corr2d create fcsipl corr2d create dcsipl ccorr2d create fcsipl ccorr2d create d

intcsipl Dcorr2d destroy P(csipl Dcorr2d P * plan);

Destroy a 2D correlation object.The following instances are supported:

csipl corr2d destroy fcsipl corr2d destroy dcsipl ccorr2d destroy fcsipl ccorr2d destroy d

voidcsipl Dcorr2d getattr P(csipl Dcorr2d P * plan,csipl Dcorr2d attr P * attr);

Return the attributes for a 2D correla-tion object.The following instances are supported:

csipl corr2d getattr fcsipl corr2d getattr dcsipl ccorr2d getattr fcsipl ccorr2d getattr d

CSIPL/Brief [3.1D] NASoftware 82

Page 101: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptionvoidcsipl correlate2d P(csipl corr2d P * plan,csipl bias bias,scalar P * ref,int ldref,scalar P * x,int ldx,scalar P * y,int ldy,csipl length m,csipl length n);

Compute a two-dimensional (2D) cor-relation of two matrices.The following instances are supported:

csipl correlate2d fcsipl correlate2d d

voidcsipl ccorrelate2d inter P(csipl ccorr2d P * plan,csipl bias bias,void * ref,int ldref,void * x,int ldx,void * y,int ldy,csipl length m,csipl length n);

Compute a two-dimensional (2D) cor-relation of two matrices.The following instances are supported:

csipl ccorrelate2d inter fcsipl ccorrelate2d inter d

voidcsipl ccorrelate2d split P(csipl ccorr2d P * plan,csipl bias bias,scalar P * ref re,scalar P * ref im,int ldref,scalar P * x re,scalar P * x im,int ldx,scalar P * y re,scalar P * y im,int ldy,csipl length m,csipl length n);

Compute a two-dimensional (2D) cor-relation of two matrices.The following instances are supported:

csipl ccorrelate2d split fcsipl ccorrelate2d split d

7.3 Window Functions

Prototype Descriptionscalar P *csipl vcreate blackman P(unsigned int N,csipl memory hint hint);

Create a vector with Blackman windowweights.The following instances are supported:

csipl vcreate blackman fcsipl vcreate blackman d

scalar P *csipl vcreate cheby P(unsigned int N,scalar P ripple,csipl memory hint hint);

Create a vector with Dolph-Chebyshevwindow weights.The following instances are supported:

csipl vcreate cheby fcsipl vcreate cheby d

CSIPL/Brief [3.1D] NASoftware 83

Page 102: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptionscalar P *csipl vcreate hanning P(unsigned int N,csipl memory hint hint);

Create a vector with Hanning windowweights.The following instances are supported:

csipl vcreate hanning fcsipl vcreate hanning d

scalar P *csipl vcreate kaiser P(unsigned int N,scalar P beta,csipl memory hint hint);

Create a vector with Kaiser windowweights.The following instances are supported:

csipl vcreate kaiser fcsipl vcreate kaiser d

7.4 Filter Functions

Prototype Descriptioncsipl fir P *csipl fir create P(scalar P * kernel,csipl stride stridekernel,csipl symmetry symm,unsigned int N,unsigned int D,csipl obj state state,unsigned int ntimes,csipl alg hint hint,csipl length n);

Create a decimated FIR filter object.The following instances are supported:

csipl fir create fcsipl fir create d

csipl cfir P *csipl cfir create inter P(void * kernel,csipl stride stridekernel,csipl symmetry symm,unsigned int N,unsigned int D,csipl obj state state,unsigned int ntimes,csipl alg hint hint,csipl length n);

Create a decimated FIR filter object.The following instances are supported:

csipl cfir create inter fcsipl cfir create inter d

csipl cfir P *csipl cfir create split P(scalar P * kernel re,scalar P * kernel im,csipl stride stridekernel,csipl symmetry symm,unsigned int N,unsigned int D,csipl obj state state,unsigned int ntimes,csipl alg hint hint,csipl length n);

Create a decimated FIR filter object.The following instances are supported:

csipl cfir create split fcsipl cfir create split d

intcsipl Dfir destroy P(csipl Dfir P * plan);

Destroy a FIR filter object.The following instances are supported:

csipl fir destroy fcsipl fir destroy dcsipl cfir destroy fcsipl cfir destroy d

CSIPL/Brief [3.1D] NASoftware 84

Page 103: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

Prototype Descriptionintcsipl firflt P(csipl fir P * plan,scalar P * x,csipl stride stridex,scalar P * y,csipl stride stridey,csipl length n);

FIR filter an input sequence and deci-mate the output.The following instances are supported:

csipl firflt fcsipl firflt d

intcsipl cfirflt inter P(csipl cfir P * plan,void * x,csipl stride stridex,void * y,csipl stride stridey,csipl length n);

FIR filter an input sequence and deci-mate the output.The following instances are supported:

csipl cfirflt inter fcsipl cfirflt inter d

intcsipl cfirflt split P(csipl cfir P * plan,scalar P * x re,scalar P * x im,csipl stride stridex,scalar P * y re,scalar P * y im,csipl stride stridey,csipl length n);

FIR filter an input sequence and deci-mate the output.The following instances are supported:

csipl cfirflt split fcsipl cfirflt split d

voidcsipl Dfir getattr P(csipl Dfir P * plan,csipl Dfir attr P * attr);

Return the attributes of a FIR filter ob-ject.The following instances are supported:

csipl fir getattr fcsipl fir getattr dcsipl cfir getattr fcsipl cfir getattr d

voidcsipl Dfir reset P(csipl Dfir P * fir);

Reset the state of a decimated FIR fil-ter object.The following instances are supported:

csipl fir reset fcsipl fir reset dcsipl cfir reset fcsipl cfir reset d

CSIPL/Brief [3.1D] NASoftware 85

Page 104: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 7. Signal Processing Functions

7.5 Miscellaneous Signal Processing Functions

Prototype Descriptionvoidcsipl vhisto P(scalar P * A,csipl stride strideA,scalar P min,scalar P max,csipl hist opt opt,scalar P * R,csipl stride strideR,csipl length n);

Compute the histogram of a vector.The following instances are supported:

csipl vhisto fcsipl vhisto d

CSIPL/Brief [3.1D] NASoftware 86

Page 105: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

8.1 Matrix and Vector Operations

Prototype Descriptionvoidcsipl cmherm inter P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Complex Hermitian (conjugate trans-pose) of a matrix.The following instances are supported:

csipl cmherm inter fcsipl cmherm inter d

voidcsipl cmherm split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Complex Hermitian (conjugate trans-pose) of a matrix.The following instances are supported:

csipl cmherm split fcsipl cmherm split d

csipl cscalar Pcsipl cvjdot inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,csipl length n);

Compute the conjugate inner (dot)product of two complex vectors.The following instances are supported:

csipl cvjdot inter fcsipl cvjdot inter d

csipl cscalar Pcsipl cvjdot split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,csipl length n);

Compute the conjugate inner (dot)product of two complex vectors.The following instances are supported:

csipl cvjdot split fcsipl cvjdot split d

voidcsipl gemp P(scalar P alpha,scalar P * A,int ldA,csipl mat op Aop,scalar P * B,int ldB,csipl mat op Bop,scalar P beta,scalar P * R,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the general product of twomatrices and accumulate.The following instances are supported:

csipl gemp fcsipl gemp d

CSIPL/Brief [3.1D] NASoftware 87

Page 106: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionvoidcsipl cgemp inter P(csipl cscalar P alpha,void * A,int ldA,csipl mat op Aop,void * B,int ldB,csipl mat op Bop,csipl cscalar P beta,void * R,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the general product of twomatrices and accumulate.The following instances are supported:

csipl cgemp inter fcsipl cgemp inter d

voidcsipl cgemp split P(csipl cscalar P alpha re,csipl cscalar P alpha im,scalar P * A re,scalar P * A im,int ldA,csipl mat op Aop,scalar P * B re,scalar P * B im,int ldB,csipl mat op Bop,csipl cscalar P beta re,csipl cscalar P beta im,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the general product of twomatrices and accumulate.The following instances are supported:

csipl cgemp split fcsipl cgemp split d

voidcsipl gems P(scalar P alpha,scalar P * A,int ldA,csipl mat op Aop,scalar P beta,scalar P * C,int ldC,csipl length m,csipl length n);

Calculate a general matrix sum.The following instances are supported:

csipl gems fcsipl gems d

voidcsipl cgems inter P(csipl cscalar P alpha,void * A,int ldA,csipl mat op Aop,csipl cscalar P beta,void * C,int ldC,csipl length m,csipl length n);

Calculate a general matrix sum.The following instances are supported:

csipl cgems inter fcsipl cgems inter d

CSIPL/Brief [3.1D] NASoftware 88

Page 107: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionvoidcsipl cgems split P(csipl cscalar P alpha re,csipl cscalar P alpha im,scalar P * A re,scalar P * A im,int ldA,csipl mat op Aop,csipl cscalar P beta re,csipl cscalar P beta im,scalar P * C re,scalar P * C im,int ldC,csipl length m,csipl length n);

Calculate a general matrix sum.The following instances are supported:

csipl cgems split fcsipl cgems split d

voidcsipl mprod P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product of two matrices.The following instances are supported:

csipl mprod fcsipl mprod dcsipl mprod icsipl mprod si

voidcsipl cmprod inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product of two matrices.The following instances are supported:

csipl cmprod inter fcsipl cmprod inter dcsipl cmprod inter icsipl cmprod inter si

voidcsipl cmprod split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product of two matrices.The following instances are supported:

csipl cmprod split fcsipl cmprod split dcsipl cmprod split icsipl cmprod split si

voidcsipl cmprodh inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product a complex ma-trix and the Hermitian of a complexmatrix.The following instances are supported:

csipl cmprodh inter fcsipl cmprodh inter dcsipl cmprodh inter icsipl cmprodh inter si

CSIPL/Brief [3.1D] NASoftware 89

Page 108: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionvoidcsipl cmprodh split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product a complex ma-trix and the Hermitian of a complexmatrix.The following instances are supported:

csipl cmprodh split fcsipl cmprodh split dcsipl cmprodh split icsipl cmprodh split si

voidcsipl cmprodj inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product a complex ma-trix and the conjugate of a complex ma-trix.The following instances are supported:

csipl cmprodj inter fcsipl cmprodj inter dcsipl cmprodj inter icsipl cmprodj inter si

voidcsipl cmprodj split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product a complex ma-trix and the conjugate of a complex ma-trix.The following instances are supported:

csipl cmprodj split fcsipl cmprodj split dcsipl cmprodj split icsipl cmprodj split si

voidcsipl mprodt P(scalar P * A,int ldA,scalar P * B,int ldB,scalar P * R,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product of a matrix andthe transpose of a matrix.The following instances are supported:

csipl mprodt fcsipl mprodt dcsipl mprodt icsipl mprodt si

voidcsipl cmprodt inter P(void * A,int ldA,void * B,int ldB,void * R,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product of a matrix andthe transpose of a matrix.The following instances are supported:

csipl cmprodt inter fcsipl cmprodt inter dcsipl cmprodt inter icsipl cmprodt inter si

CSIPL/Brief [3.1D] NASoftware 90

Page 109: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionvoidcsipl cmprodt split P(scalar P * A re,scalar P * A im,int ldA,scalar P * B re,scalar P * B im,int ldB,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n,csipl length p);

Calculate the product of a matrix andthe transpose of a matrix.The following instances are supported:

csipl cmprodt split fcsipl cmprodt split dcsipl cmprodt split icsipl cmprodt split si

voidcsipl mvprod P(scalar P * A,int ldA,scalar P * X,csipl stride strideX,scalar P * Y,csipl stride strideY,csipl length m,csipl length n);

Calculate a matrix–vector product.The following instances are supported:

csipl mvprod fcsipl mvprod dcsipl mvprod icsipl mvprod si

voidcsipl cmvprod inter P(void * A,int ldA,void * X,csipl stride strideX,void * Y,csipl stride strideY,csipl length m,csipl length n);

Calculate a matrix–vector product.The following instances are supported:

csipl cmvprod inter fcsipl cmvprod inter dcsipl cmvprod inter icsipl cmvprod inter si

voidcsipl cmvprod split P(scalar P * A re,scalar P * A im,int ldA,scalar P * X re,scalar P * X im,csipl stride strideX,scalar P * Y re,scalar P * Y im,csipl stride strideY,csipl length m,csipl length n);

Calculate a matrix–vector product.The following instances are supported:

csipl cmvprod split fcsipl cmvprod split dcsipl cmvprod split icsipl cmvprod split si

voidcsipl mtrans P(scalar P * A,int ldA,scalar P * R,int ldR,csipl length m,csipl length n);

Transpose a matrix.The following instances are supported:

csipl mtrans blcsipl mtrans fcsipl mtrans dcsipl mtrans icsipl mtrans si

CSIPL/Brief [3.1D] NASoftware 91

Page 110: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionvoidcsipl cmtrans inter P(void * A,int ldA,void * R,int ldR,csipl length m,csipl length n);

Transpose a matrix.The following instances are supported:

csipl cmtrans inter fcsipl cmtrans inter dcsipl cmtrans inter icsipl cmtrans inter si

voidcsipl cmtrans split P(scalar P * A re,scalar P * A im,int ldA,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Transpose a matrix.The following instances are supported:

csipl cmtrans split fcsipl cmtrans split dcsipl cmtrans split icsipl cmtrans split si

scalar Pcsipl vdot P(scalar P * A,csipl stride strideA,scalar P * B,csipl stride strideB,csipl length n);

Compute the inner (dot) product oftwo vectors.The following instances are supported:

csipl vdot fcsipl vdot d

csipl cscalar Pcsipl cvdot inter P(void * A,csipl stride strideA,void * B,csipl stride strideB,csipl length n);

Compute the inner (dot) product oftwo vectors.The following instances are supported:

csipl cvdot inter fcsipl cvdot inter d

csipl cscalar Pcsipl cvdot split P(scalar P * A re,scalar P * A im,csipl stride strideA,scalar P * B re,scalar P * B im,csipl stride strideB,csipl length n);

Compute the inner (dot) product oftwo vectors.The following instances are supported:

csipl cvdot split fcsipl cvdot split d

voidcsipl vmprod P(scalar P * X,csipl stride strideX,scalar P * A,int ldA,scalar P * Y,csipl stride strideY,csipl length m,csipl length n);

Calculate a vector–matrix product.The following instances are supported:

csipl vmprod fcsipl vmprod dcsipl vmprod icsipl vmprod si

voidcsipl cvmprod inter P(void * X,csipl stride strideX,void * A,int ldA,void * Y,csipl stride strideY,csipl length m,csipl length n);

Calculate a vector–matrix product.The following instances are supported:

csipl cvmprod inter fcsipl cvmprod inter dcsipl cvmprod inter icsipl cvmprod inter si

CSIPL/Brief [3.1D] NASoftware 92

Page 111: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionvoidcsipl cvmprod split P(scalar P * X re,scalar P * X im,csipl stride strideX,scalar P * A re,scalar P * A im,int ldA,scalar P * Y re,scalar P * Y im,csipl stride strideY,csipl length m,csipl length n);

Calculate a vector–matrix product.The following instances are supported:

csipl cvmprod split fcsipl cvmprod split dcsipl cvmprod split icsipl cvmprod split si

voidcsipl vouter P(scalar P alpha,scalar P * X,csipl stride strideX,scalar P * Y,csipl stride strideY,scalar P * R,int ldR,csipl length m,csipl length n);

Calculate the outer product of two vec-tors.The following instances are supported:

csipl vouter fcsipl vouter d

voidcsipl cvouter inter P(csipl cscalar P alpha,void * X,csipl stride strideX,void * Y,csipl stride strideY,void * R,int ldR,csipl length m,csipl length n);

Calculate the outer product of two vec-tors.The following instances are supported:

csipl cvouter inter fcsipl cvouter inter d

voidcsipl cvouter split P(csipl cscalar P alpha re,csipl cscalar P alpha im,scalar P * X re,scalar P * X im,csipl stride strideX,scalar P * Y re,scalar P * Y im,csipl stride strideY,scalar P * R re,scalar P * R im,int ldR,csipl length m,csipl length n);

Calculate the outer product of two vec-tors.The following instances are supported:

csipl cvouter split fcsipl cvouter split d

scalar Pcsipl vcsummgval inter P(void * A,csipl stride strideA,csipl length n);

Returns the sum of the magnitudes ofthe elements of a complex vector.The following instances are supported:

csipl vcsummgval inter fcsipl vcsummgval inter d

scalar Pcsipl vcsummgval split P(scalar P * A re,scalar P * A im,csipl stride strideA,csipl length n);

Returns the sum of the magnitudes ofthe elements of a complex vector.The following instances are supported:

csipl vcsummgval split fcsipl vcsummgval split d

CSIPL/Brief [3.1D] NASoftware 93

Page 112: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionvoidcsipl minvlu P(scalar P * A,int ldA,signed int * V,csipl stride strideV,scalar P * R,int ldR,csipl length n);

Invert a square matrix using LU de-composition.The following instances are supported:

csipl minvlu fcsipl minvlu d

voidcsipl cminvlu inter P(void * A,int ldA,signed int * V,csipl stride strideV,void * R,int ldR,csipl length n);

Invert a square matrix using LU de-composition.The following instances are supported:

csipl cminvlu inter fcsipl cminvlu inter d

voidcsipl cminvlu split P(scalar P * A re,scalar P * A im,int ldA,signed int * V,csipl stride strideV,scalar P * R re,scalar P * R im,int ldR,csipl length n);

Invert a square matrix using LU de-composition.The following instances are supported:

csipl cminvlu split fcsipl cminvlu split d

CSIPL/Brief [3.1D] NASoftware 94

Page 113: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

8.2 Special Linear System Solvers

Prototype Descriptionintcsipl covsol P(scalar P * A,int ldA,scalar P * XB,int ldXB,csipl length m,csipl length n,csipl length p);

Solve a covariance linear system prob-lem.The following instances are supported:

csipl covsol fcsipl covsol d

intcsipl ccovsol inter P(void * A,int ldA,void * XB,int ldXB,csipl length m,csipl length n,csipl length p);

Solve a covariance linear system prob-lem.The following instances are supported:

csipl ccovsol inter fcsipl ccovsol inter d

intcsipl ccovsol split P(scalar P * A re,scalar P * A im,int ldA,scalar P * XB re,scalar P * XB im,int ldXB,csipl length m,csipl length n,csipl length p);

Solve a covariance linear system prob-lem.The following instances are supported:

csipl ccovsol split fcsipl ccovsol split d

intcsipl llsqsol P(scalar P * A,int ldA,scalar P * XB,int ldXB,csipl length m,csipl length n,csipl length p);

Solve a linear least squares problem.The following instances are supported:

csipl llsqsol fcsipl llsqsol d

intcsipl cllsqsol inter P(void * A,int ldA,void * XB,int ldXB,csipl length m,csipl length n,csipl length p);

Solve a linear least squares problem.The following instances are supported:

csipl cllsqsol inter fcsipl cllsqsol inter d

intcsipl cllsqsol split P(scalar P * A re,scalar P * A im,int ldA,scalar P * XB re,scalar P * XB im,int ldXB,csipl length m,csipl length n,csipl length p);

Solve a linear least squares problem.The following instances are supported:

csipl cllsqsol split fcsipl cllsqsol split d

CSIPL/Brief [3.1D] NASoftware 95

Page 114: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionintcsipl toepsol P(scalar P * T,csipl stride strideT,scalar P * B,csipl stride strideB,scalar P * W,csipl stride strideW,scalar P * X,csipl stride strideX,csipl length n);

Solve a real symmetric positive definiteToeplitz linear system.The following instances are supported:

csipl toepsol fcsipl toepsol d

intcsipl ctoepsol inter P(void * T,csipl stride strideT,void * B,csipl stride strideB,void * W,csipl stride strideW,void * X,csipl stride strideX,csipl length n);

Solve a real symmetric positive definiteToeplitz linear system.The following instances are supported:

csipl ctoepsol inter fcsipl ctoepsol inter d

intcsipl ctoepsol split P(scalar P * T re,scalar P * T im,csipl stride strideT,scalar P * B re,scalar P * B im,csipl stride strideB,scalar P * W re,scalar P * W im,csipl stride strideW,scalar P * X re,scalar P * X im,csipl stride strideX,csipl length n);

Solve a real symmetric positive definiteToeplitz linear system.The following instances are supported:

csipl ctoepsol split fcsipl ctoepsol split d

8.3 General Square Linear System Solver

Prototype Descriptionintcsipl lud P(csipl clu P * lud,scalar P * A,int ldA,csipl length n);

Compute an LU decomposition of asquare matrix using partial pivoting.The following instances are supported:

csipl lud fcsipl lud d

intcsipl clud inter P(csipl clu P * lud,void * A,int ldA,csipl length n);

Compute an LU decomposition of asquare matrix using partial pivoting.The following instances are supported:

csipl clud inter fcsipl clud inter d

intcsipl clud split P(csipl clu P * lud,scalar P * A re,scalar P * A im,int ldA,csipl length n);

Compute an LU decomposition of asquare matrix using partial pivoting.The following instances are supported:

csipl clud split fcsipl clud split d

CSIPL/Brief [3.1D] NASoftware 96

Page 115: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptioncsipl Dlu P *csipl Dlud create P(unsigned int N);

Create an LU decomposition object.The following instances are supported:

csipl lud create fcsipl lud create dcsipl clud create fcsipl clud create d

intcsipl Dlud destroy P(csipl Dlu P * lud);

Destroy an LU decomposition object.The following instances are supported:

csipl lud destroy fcsipl lud destroy dcsipl clud destroy fcsipl clud destroy d

voidcsipl Dlud getattr P(csipl Dlu P * lud,csipl Dlu attr P * attr);

Returns the attributes of an LU decom-position object.The following instances are supported:

csipl lud getattr fcsipl lud getattr dcsipl clud getattr fcsipl clud getattr d

intcsipl lusol P(csipl clu P * clud,csipl mat op opA,scalar P * XB,int ldXB,csipl length m,csipl length n);

Solve a square linear system.The following instances are supported:

csipl lusol fcsipl lusol d

intcsipl clusol inter P(csipl clu P * clud,csipl mat op opA,void * XB,int ldXB,csipl length m,csipl length n);

Solve a square linear system.The following instances are supported:

csipl clusol inter fcsipl clusol inter d

intcsipl clusol split P(csipl clu P * clud re,csipl clu P * clud im,csipl mat op opA,scalar P * XB re,scalar P * XB im,int ldXB,csipl length m,csipl length n);

Solve a square linear system.The following instances are supported:

csipl clusol split fcsipl clusol split d

8.4 Symmetric Positive Definite Linear System Solver

Prototype Descriptionintcsipl chold P(csipl cchol P * chold,scalar P * A,int ldA,csipl length n);

Compute a Cholesky decomposition ofa symmetric positive definite matrix.The following instances are supported:

csipl chold fcsipl chold d

CSIPL/Brief [3.1D] NASoftware 97

Page 116: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionintcsipl cchold inter P(csipl cchol P * chold,void * A,int ldA,csipl length n);

Compute a Cholesky decomposition ofa symmetric positive definite matrix.The following instances are supported:

csipl cchold inter fcsipl cchold inter d

intcsipl cchold split P(csipl cchol P * chold,scalar P * A re,scalar P * A im,int ldA,csipl length n);

Compute a Cholesky decomposition ofa symmetric positive definite matrix.The following instances are supported:

csipl cchold split fcsipl cchold split d

csipl chol P *csipl chold create P(csipl mat uplo uplo,unsigned int n);

Creates a Cholesky decomposition ob-ject.The following instances are supported:

csipl chold create fcsipl chold create d

csipl cchol P *csipl cchold create P(csipl mat uplo uplo,unsigned int n);

Creates a Cholesky decomposition ob-ject.The following instances are supported:

csipl cchold create fcsipl cchold create d

intcsipl Dchold destroy P(csipl Dchol P * chold);

Destroy a Cholesky decomposition ob-ject.The following instances are supported:

csipl chold destroy fcsipl chold destroy dcsipl cchold destroy fcsipl cchold destroy d

voidcsipl Dchold getattr P(csipl Dchol P * chold,csipl Dchol attr P * attr);

Returns the attributes of a Choleskydecomposition object.The following instances are supported:

csipl chold getattr fcsipl chold getattr dcsipl cchold getattr fcsipl cchold getattr d

intcsipl cholsol P(csipl cchol P * chold,scalar P * XB,int ldXB,csipl length m,csipl length n);

Solve a symmetric positive definite lin-ear system.The following instances are supported:

csipl cholsol fcsipl cholsol d

intcsipl ccholsol inter P(csipl cchol P * chold,void * XB,int ldXB,csipl length m,csipl length n);

Solve a symmetric positive definite lin-ear system.The following instances are supported:

csipl ccholsol inter fcsipl ccholsol inter d

CSIPL/Brief [3.1D] NASoftware 98

Page 117: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionintcsipl ccholsol split P(csipl cchol P * chold,scalar P * XB re,scalar P * XB im,int ldXB,csipl length m,csipl length n);

Solve a symmetric positive definite lin-ear system.The following instances are supported:

csipl ccholsol split fcsipl ccholsol split d

8.5 Overdetermined Linear System Solver

Prototype Descriptionintcsipl qrd P(csipl cqr P * qrd,scalar P * A,int ldA,csipl length m,csipl length n);

Compute a QR decomposition of a ma-trix .The following instances are supported:

csipl qrd fcsipl qrd d

intcsipl cqrd inter P(csipl cqr P * qrd,void * A,int ldA,csipl length m,csipl length n);

Compute a QR decomposition of a ma-trix .The following instances are supported:

csipl cqrd inter fcsipl cqrd inter d

intcsipl cqrd split P(csipl cqr P * qrd,scalar P * A re,scalar P * A im,int ldA,csipl length m,csipl length n);

Compute a QR decomposition of a ma-trix .The following instances are supported:

csipl cqrd split fcsipl cqrd split d

csipl qr P *csipl qrd create P(unsigned int m,unsigned int n,csipl qrd qopt qopt);

Create a QR decomposition object.The following instances are supported:

csipl qrd create fcsipl qrd create d

csipl cqr P *csipl cqrd create P(unsigned int m,unsigned int n,csipl qrd qopt qopt);

Create a QR decomposition object.The following instances are supported:

csipl cqrd create fcsipl cqrd create d

intcsipl Dqrd destroy P(csipl Dqr P * qrd);

Destroy a QR decomposition object.The following instances are supported:

csipl qrd destroy fcsipl qrd destroy dcsipl cqrd destroy fcsipl cqrd destroy d

voidcsipl Dqrd getattr P(csipl Dqr P * qrd,csipl Dqr attr P * attr);

Returns the attributes of a QR decom-position object.The following instances are supported:

csipl qrd getattr fcsipl qrd getattr dcsipl cqrd getattr fcsipl cqrd getattr d

CSIPL/Brief [3.1D] NASoftware 99

Page 118: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionintcsipl qrdprodq P(csipl qr P * qrd,csipl mat op opQ,csipl mat side apQ,scalar P * C,int ldC,csipl length m,csipl length n);

Multiply a matrix by the matrix Qfrom a QR decomposition.The following instances are supported:

csipl qrdprodq fcsipl qrdprodq d

intcsipl cqrdprodq inter P(csipl cqr P * qrd,csipl mat op opQ,csipl mat side apQ,void * C,int ldC,csipl length m,csipl length n);

Multiply a matrix by the matrix Qfrom a QR decomposition.The following instances are supported:

csipl cqrdprodq inter fcsipl cqrdprodq inter d

intcsipl cqrdprodq split P(csipl cqr P * qrd re,csipl cqr P * qrd im,csipl mat op opQ,csipl mat side apQ,scalar P * C re,scalar P * C im,int ldC,csipl length m,csipl length n);

Multiply a matrix by the matrix Qfrom a QR decomposition.The following instances are supported:

csipl cqrdprodq split fcsipl cqrdprodq split d

intcsipl qrdsolr P(csipl qr P * qrd,csipl mat op OpR,scalar P alpha,scalar P * XB,int ldXB,csipl length m,csipl length n);

Solve linear system based on the ma-trix R, from QR decomposition of thematrix A.The following instances are supported:

csipl qrdsolr fcsipl qrdsolr d

intcsipl cqrdsolr inter P(csipl cqr P * qrd,csipl mat op OpR,csipl cscalar P alpha,void * XB,int ldXB,csipl length m,csipl length n);

Solve linear system based on the ma-trix R, from QR decomposition of thematrix A.The following instances are supported:

csipl cqrdsolr inter fcsipl cqrdsolr inter d

intcsipl cqrdsolr split P(csipl cqr P * qrd re,csipl cqr P * qrd im,csipl mat op OpR,csipl cscalar P alpha re,csipl cscalar P alpha im,scalar P * XB re,scalar P * XB im,int ldXB,csipl length m,csipl length n);

Solve linear system based on the ma-trix R, from QR decomposition of thematrix A.The following instances are supported:

csipl cqrdsolr split fcsipl cqrdsolr split d

CSIPL/Brief [3.1D] NASoftware 100

Page 119: CSIPL/Brief [3.1D]csipl rscmadd split P. . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv P. . . . . . . . . . . . . . . . . . . . . . . . . . . .38 csipl Dvdiv inter P

Chapter 8. Linear Algebra

Prototype Descriptionintcsipl qrsol P(csipl qr P * qrd,csipl mat op OpR,scalar P alpha,scalar P * XB,int ldXB,csipl length m,csipl length n);

Solve linear system based on the ma-trix R, from QR decomposition of thematrix A.The following instances are supported:

csipl qrsol fcsipl qrsol d

intcsipl cqrsol inter P(csipl cqr P * qrd,csipl qrd prob prob,void * XB,int ldXB,csipl length m,csipl length n);

Solve either a linear covariance or linearleast squares problem.The following instances are supported:

csipl cqrsol inter fcsipl cqrsol inter d

intcsipl cqrsol split P(csipl cqr P * qrd re,csipl cqr P * qrd im,csipl qrd prob prob,void * XB,int ldXB,csipl length m,csipl length n);

Solve either a linear covariance or linearleast squares problem.The following instances are supported:

csipl cqrsol split fcsipl cqrsol split d

CSIPL/Brief [3.1D] NASoftware 101