summaryrefslogtreecommitdiff
path: root/gsl-1.9/cblas
diff options
context:
space:
mode:
Diffstat (limited to 'gsl-1.9/cblas')
-rw-r--r--gsl-1.9/cblas/ChangeLog30
-rw-r--r--gsl-1.9/cblas/Makefile.am19
-rw-r--r--gsl-1.9/cblas/Makefile.in640
-rw-r--r--gsl-1.9/cblas/TODO8
-rw-r--r--gsl-1.9/cblas/caxpy.c12
-rw-r--r--gsl-1.9/cblas/cblas.h34
-rw-r--r--gsl-1.9/cblas/ccopy.c12
-rw-r--r--gsl-1.9/cblas/cdotc_sub.c14
-rw-r--r--gsl-1.9/cblas/cdotu_sub.c14
-rw-r--r--gsl-1.9/cblas/cgbmv.c14
-rw-r--r--gsl-1.9/cblas/cgemm.c15
-rw-r--r--gsl-1.9/cblas/cgemv.c14
-rw-r--r--gsl-1.9/cblas/cgerc.c13
-rw-r--r--gsl-1.9/cblas/cgeru.c13
-rw-r--r--gsl-1.9/cblas/chbmv.c14
-rw-r--r--gsl-1.9/cblas/chemm.c14
-rw-r--r--gsl-1.9/cblas/chemv.c14
-rw-r--r--gsl-1.9/cblas/cher.c13
-rw-r--r--gsl-1.9/cblas/cher2.c13
-rw-r--r--gsl-1.9/cblas/cher2k.c14
-rw-r--r--gsl-1.9/cblas/cherk.c14
-rw-r--r--gsl-1.9/cblas/chpmv.c13
-rw-r--r--gsl-1.9/cblas/chpr.c13
-rw-r--r--gsl-1.9/cblas/chpr2.c13
-rw-r--r--gsl-1.9/cblas/cscal.c11
-rw-r--r--gsl-1.9/cblas/csscal.c11
-rw-r--r--gsl-1.9/cblas/cswap.c11
-rw-r--r--gsl-1.9/cblas/csymm.c14
-rw-r--r--gsl-1.9/cblas/csyr2k.c14
-rw-r--r--gsl-1.9/cblas/csyrk.c14
-rw-r--r--gsl-1.9/cblas/ctbmv.c14
-rw-r--r--gsl-1.9/cblas/ctbsv.c16
-rw-r--r--gsl-1.9/cblas/ctpmv.c13
-rw-r--r--gsl-1.9/cblas/ctpsv.c15
-rw-r--r--gsl-1.9/cblas/ctrmm.c15
-rw-r--r--gsl-1.9/cblas/ctrmv.c14
-rw-r--r--gsl-1.9/cblas/ctrsm.c17
-rw-r--r--gsl-1.9/cblas/ctrsv.c16
-rw-r--r--gsl-1.9/cblas/dasum.c11
-rw-r--r--gsl-1.9/cblas/daxpy.c12
-rw-r--r--gsl-1.9/cblas/dcopy.c12
-rw-r--r--gsl-1.9/cblas/ddot.c16
-rw-r--r--gsl-1.9/cblas/dgbmv.c15
-rw-r--r--gsl-1.9/cblas/dgemm.c15
-rw-r--r--gsl-1.9/cblas/dgemv.c14
-rw-r--r--gsl-1.9/cblas/dger.c13
-rw-r--r--gsl-1.9/cblas/dnrm2.c11
-rw-r--r--gsl-1.9/cblas/drot.c12
-rw-r--r--gsl-1.9/cblas/drotg.c11
-rw-r--r--gsl-1.9/cblas/drotm.c12
-rw-r--r--gsl-1.9/cblas/drotmg.c11
-rw-r--r--gsl-1.9/cblas/dsbmv.c14
-rw-r--r--gsl-1.9/cblas/dscal.c11
-rw-r--r--gsl-1.9/cblas/dsdot.c16
-rw-r--r--gsl-1.9/cblas/dspmv.c14
-rw-r--r--gsl-1.9/cblas/dspr.c13
-rw-r--r--gsl-1.9/cblas/dspr2.c13
-rw-r--r--gsl-1.9/cblas/dswap.c12
-rw-r--r--gsl-1.9/cblas/dsymm.c15
-rw-r--r--gsl-1.9/cblas/dsymv.c14
-rw-r--r--gsl-1.9/cblas/dsyr.c13
-rw-r--r--gsl-1.9/cblas/dsyr2.c13
-rw-r--r--gsl-1.9/cblas/dsyr2k.c15
-rw-r--r--gsl-1.9/cblas/dsyrk.c14
-rw-r--r--gsl-1.9/cblas/dtbmv.c14
-rw-r--r--gsl-1.9/cblas/dtbsv.c14
-rw-r--r--gsl-1.9/cblas/dtpmv.c13
-rw-r--r--gsl-1.9/cblas/dtpsv.c13
-rw-r--r--gsl-1.9/cblas/dtrmm.c15
-rw-r--r--gsl-1.9/cblas/dtrmv.c14
-rw-r--r--gsl-1.9/cblas/dtrsm.c15
-rw-r--r--gsl-1.9/cblas/dtrsv.c14
-rw-r--r--gsl-1.9/cblas/dzasum.c11
-rw-r--r--gsl-1.9/cblas/dznrm2.c11
-rw-r--r--gsl-1.9/cblas/gsl_cblas.h606
-rw-r--r--gsl-1.9/cblas/hypot.c28
-rw-r--r--gsl-1.9/cblas/icamax.c11
-rw-r--r--gsl-1.9/cblas/idamax.c11
-rw-r--r--gsl-1.9/cblas/isamax.c11
-rw-r--r--gsl-1.9/cblas/izamax.c11
-rw-r--r--gsl-1.9/cblas/sasum.c11
-rw-r--r--gsl-1.9/cblas/saxpy.c12
-rw-r--r--gsl-1.9/cblas/scasum.c11
-rw-r--r--gsl-1.9/cblas/scnrm2.c11
-rw-r--r--gsl-1.9/cblas/scopy.c12
-rw-r--r--gsl-1.9/cblas/sdot.c16
-rw-r--r--gsl-1.9/cblas/sdsdot.c16
-rw-r--r--gsl-1.9/cblas/sgbmv.c14
-rw-r--r--gsl-1.9/cblas/sgemm.c15
-rw-r--r--gsl-1.9/cblas/sgemv.c14
-rw-r--r--gsl-1.9/cblas/sger.c13
-rw-r--r--gsl-1.9/cblas/snrm2.c11
-rw-r--r--gsl-1.9/cblas/source_asum_c.h34
-rw-r--r--gsl-1.9/cblas/source_asum_r.h34
-rw-r--r--gsl-1.9/cblas/source_axpy_c.h40
-rw-r--r--gsl-1.9/cblas/source_axpy_r.h50
-rw-r--r--gsl-1.9/cblas/source_copy_c.h31
-rw-r--r--gsl-1.9/cblas/source_copy_r.h30
-rw-r--r--gsl-1.9/cblas/source_dot_c.h38
-rw-r--r--gsl-1.9/cblas/source_dot_r.h33
-rw-r--r--gsl-1.9/cblas/source_gbmv_c.h170
-rw-r--r--gsl-1.9/cblas/source_gbmv_r.h98
-rw-r--r--gsl-1.9/cblas/source_gemm_c.h167
-rw-r--r--gsl-1.9/cblas/source_gemm_r.h125
-rw-r--r--gsl-1.9/cblas/source_gemv_c.h158
-rw-r--r--gsl-1.9/cblas/source_gemv_r.h90
-rw-r--r--gsl-1.9/cblas/source_ger.h48
-rw-r--r--gsl-1.9/cblas/source_gerc.h63
-rw-r--r--gsl-1.9/cblas/source_geru.h62
-rw-r--r--gsl-1.9/cblas/source_hbmv.h145
-rw-r--r--gsl-1.9/cblas/source_hemm.h204
-rw-r--r--gsl-1.9/cblas/source_hemv.h136
-rw-r--r--gsl-1.9/cblas/source_her.h80
-rw-r--r--gsl-1.9/cblas/source_her2.h115
-rw-r--r--gsl-1.9/cblas/source_her2k.h269
-rw-r--r--gsl-1.9/cblas/source_herk.h161
-rw-r--r--gsl-1.9/cblas/source_hpmv.h138
-rw-r--r--gsl-1.9/cblas/source_hpr.h80
-rw-r--r--gsl-1.9/cblas/source_hpr2.h115
-rw-r--r--gsl-1.9/cblas/source_iamax_c.h41
-rw-r--r--gsl-1.9/cblas/source_iamax_r.h39
-rw-r--r--gsl-1.9/cblas/source_nrm2_c.h60
-rw-r--r--gsl-1.9/cblas/source_nrm2_r.h50
-rw-r--r--gsl-1.9/cblas/source_rot.h32
-rw-r--r--gsl-1.9/cblas/source_rotg.h46
-rw-r--r--gsl-1.9/cblas/source_rotm.h58
-rw-r--r--gsl-1.9/cblas/source_rotmg.h162
-rw-r--r--gsl-1.9/cblas/source_sbmv.h100
-rw-r--r--gsl-1.9/cblas/source_scal_c.h39
-rw-r--r--gsl-1.9/cblas/source_scal_c_s.h35
-rw-r--r--gsl-1.9/cblas/source_scal_r.h34
-rw-r--r--gsl-1.9/cblas/source_spmv.h101
-rw-r--r--gsl-1.9/cblas/source_spr.h56
-rw-r--r--gsl-1.9/cblas/source_spr2.h66
-rw-r--r--gsl-1.9/cblas/source_swap_c.h35
-rw-r--r--gsl-1.9/cblas/source_swap_r.h31
-rw-r--r--gsl-1.9/cblas/source_symm_c.h203
-rw-r--r--gsl-1.9/cblas/source_symm_r.h131
-rw-r--r--gsl-1.9/cblas/source_symv.h93
-rw-r--r--gsl-1.9/cblas/source_syr.h56
-rw-r--r--gsl-1.9/cblas/source_syr2.h66
-rw-r--r--gsl-1.9/cblas/source_syr2k_c.h190
-rw-r--r--gsl-1.9/cblas/source_syr2k_r.h129
-rw-r--r--gsl-1.9/cblas/source_syrk_c.h164
-rw-r--r--gsl-1.9/cblas/source_syrk_r.h125
-rw-r--r--gsl-1.9/cblas/source_tbmv_c.h171
-rw-r--r--gsl-1.9/cblas/source_tbmv_r.h106
-rw-r--r--gsl-1.9/cblas/source_tbsv_c.h179
-rw-r--r--gsl-1.9/cblas/source_tbsv_r.h123
-rw-r--r--gsl-1.9/cblas/source_tpmv_c.h173
-rw-r--r--gsl-1.9/cblas/source_tpmv_r.h97
-rw-r--r--gsl-1.9/cblas/source_tpsv_c.h227
-rw-r--r--gsl-1.9/cblas/source_tpsv_r.h131
-rw-r--r--gsl-1.9/cblas/source_trmm_c.h330
-rw-r--r--gsl-1.9/cblas/source_trmm_r.h223
-rw-r--r--gsl-1.9/cblas/source_trmv_c.h169
-rw-r--r--gsl-1.9/cblas/source_trmv_r.h107
-rw-r--r--gsl-1.9/cblas/source_trsm_c.h397
-rw-r--r--gsl-1.9/cblas/source_trsm_r.h275
-rw-r--r--gsl-1.9/cblas/source_trsv_c.h228
-rw-r--r--gsl-1.9/cblas/source_trsv_r.h132
-rw-r--r--gsl-1.9/cblas/srot.c12
-rw-r--r--gsl-1.9/cblas/srotg.c11
-rw-r--r--gsl-1.9/cblas/srotm.c12
-rw-r--r--gsl-1.9/cblas/srotmg.c11
-rw-r--r--gsl-1.9/cblas/ssbmv.c14
-rw-r--r--gsl-1.9/cblas/sscal.c11
-rw-r--r--gsl-1.9/cblas/sspmv.c13
-rw-r--r--gsl-1.9/cblas/sspr.c13
-rw-r--r--gsl-1.9/cblas/sspr2.c13
-rw-r--r--gsl-1.9/cblas/sswap.c11
-rw-r--r--gsl-1.9/cblas/ssymm.c14
-rw-r--r--gsl-1.9/cblas/ssymv.c14
-rw-r--r--gsl-1.9/cblas/ssyr.c13
-rw-r--r--gsl-1.9/cblas/ssyr2.c13
-rw-r--r--gsl-1.9/cblas/ssyr2k.c15
-rw-r--r--gsl-1.9/cblas/ssyrk.c14
-rw-r--r--gsl-1.9/cblas/stbmv.c14
-rw-r--r--gsl-1.9/cblas/stbsv.c14
-rw-r--r--gsl-1.9/cblas/stpmv.c13
-rw-r--r--gsl-1.9/cblas/stpsv.c13
-rw-r--r--gsl-1.9/cblas/strmm.c15
-rw-r--r--gsl-1.9/cblas/strmv.c14
-rw-r--r--gsl-1.9/cblas/strsm.c15
-rw-r--r--gsl-1.9/cblas/strsv.c14
-rw-r--r--gsl-1.9/cblas/test.c38
-rw-r--r--gsl-1.9/cblas/test_amax.c142
-rw-r--r--gsl-1.9/cblas/test_asum.c143
-rw-r--r--gsl-1.9/cblas/test_axpy.c233
-rw-r--r--gsl-1.9/cblas/test_copy.c221
-rw-r--r--gsl-1.9/cblas/test_dot.c383
-rw-r--r--gsl-1.9/cblas/test_gbmv.c543
-rw-r--r--gsl-1.9/cblas/test_gemm.c1399
-rw-r--r--gsl-1.9/cblas/test_gemv.c503
-rw-r--r--gsl-1.9/cblas/test_ger.c283
-rw-r--r--gsl-1.9/cblas/test_hbmv.c411
-rw-r--r--gsl-1.9/cblas/test_hemm.c427
-rw-r--r--gsl-1.9/cblas/test_hemv.c395
-rw-r--r--gsl-1.9/cblas/test_her.c179
-rw-r--r--gsl-1.9/cblas/test_her2.c195
-rw-r--r--gsl-1.9/cblas/test_her2k.c427
-rw-r--r--gsl-1.9/cblas/test_herk.c395
-rw-r--r--gsl-1.9/cblas/test_hpmv.c379
-rw-r--r--gsl-1.9/cblas/test_hpr.c171
-rw-r--r--gsl-1.9/cblas/test_hpr2.c187
-rw-r--r--gsl-1.9/cblas/test_nrm2.c143
-rw-r--r--gsl-1.9/cblas/test_rot.c635
-rw-r--r--gsl-1.9/cblas/test_rotg.c1677
-rw-r--r--gsl-1.9/cblas/test_rotm.c1511
-rw-r--r--gsl-1.9/cblas/test_rotmg.c167
-rw-r--r--gsl-1.9/cblas/test_sbmv.c395
-rw-r--r--gsl-1.9/cblas/test_scal.c911
-rw-r--r--gsl-1.9/cblas/test_spmv.c363
-rw-r--r--gsl-1.9/cblas/test_spr.c163
-rw-r--r--gsl-1.9/cblas/test_spr2.c179
-rw-r--r--gsl-1.9/cblas/test_swap.c311
-rw-r--r--gsl-1.9/cblas/test_symm.c827
-rw-r--r--gsl-1.9/cblas/test_symv.c379
-rw-r--r--gsl-1.9/cblas/test_syr.c171
-rw-r--r--gsl-1.9/cblas/test_syr2.c187
-rw-r--r--gsl-1.9/cblas/test_syr2k.c827
-rw-r--r--gsl-1.9/cblas/test_syrk.c763
-rw-r--r--gsl-1.9/cblas/test_tbmv.c1819
-rw-r--r--gsl-1.9/cblas/test_tbsv.c1819
-rw-r--r--gsl-1.9/cblas/test_tpmv.c1659
-rw-r--r--gsl-1.9/cblas/test_tpsv.c1659
-rw-r--r--gsl-1.9/cblas/test_trmm.c3947
-rw-r--r--gsl-1.9/cblas/test_trmv.c1739
-rw-r--r--gsl-1.9/cblas/test_trsm.c3947
-rw-r--r--gsl-1.9/cblas/test_trsv.c1739
-rw-r--r--gsl-1.9/cblas/tests.c44
-rw-r--r--gsl-1.9/cblas/tests.h44
-rw-r--r--gsl-1.9/cblas/xerbla.c44
-rw-r--r--gsl-1.9/cblas/zaxpy.c12
-rw-r--r--gsl-1.9/cblas/zcopy.c12
-rw-r--r--gsl-1.9/cblas/zdotc_sub.c14
-rw-r--r--gsl-1.9/cblas/zdotu_sub.c14
-rw-r--r--gsl-1.9/cblas/zdscal.c11
-rw-r--r--gsl-1.9/cblas/zgbmv.c14
-rw-r--r--gsl-1.9/cblas/zgemm.c15
-rw-r--r--gsl-1.9/cblas/zgemv.c14
-rw-r--r--gsl-1.9/cblas/zgerc.c13
-rw-r--r--gsl-1.9/cblas/zgeru.c13
-rw-r--r--gsl-1.9/cblas/zhbmv.c14
-rw-r--r--gsl-1.9/cblas/zhemm.c14
-rw-r--r--gsl-1.9/cblas/zhemv.c14
-rw-r--r--gsl-1.9/cblas/zher.c13
-rw-r--r--gsl-1.9/cblas/zher2.c13
-rw-r--r--gsl-1.9/cblas/zher2k.c14
-rw-r--r--gsl-1.9/cblas/zherk.c14
-rw-r--r--gsl-1.9/cblas/zhpmv.c13
-rw-r--r--gsl-1.9/cblas/zhpr.c13
-rw-r--r--gsl-1.9/cblas/zhpr2.c13
-rw-r--r--gsl-1.9/cblas/zscal.c11
-rw-r--r--gsl-1.9/cblas/zswap.c11
-rw-r--r--gsl-1.9/cblas/zsymm.c14
-rw-r--r--gsl-1.9/cblas/zsyr2k.c14
-rw-r--r--gsl-1.9/cblas/zsyrk.c14
-rw-r--r--gsl-1.9/cblas/ztbmv.c14
-rw-r--r--gsl-1.9/cblas/ztbsv.c16
-rw-r--r--gsl-1.9/cblas/ztpmv.c13
-rw-r--r--gsl-1.9/cblas/ztpsv.c15
-rw-r--r--gsl-1.9/cblas/ztrmm.c15
-rw-r--r--gsl-1.9/cblas/ztrmv.c14
-rw-r--r--gsl-1.9/cblas/ztrsm.c17
-rw-r--r--gsl-1.9/cblas/ztrsv.c16
266 files changed, 46306 insertions, 0 deletions
diff --git a/gsl-1.9/cblas/ChangeLog b/gsl-1.9/cblas/ChangeLog
new file mode 100644
index 0000000..f6949d5
--- /dev/null
+++ b/gsl-1.9/cblas/ChangeLog
@@ -0,0 +1,30 @@
+2003-01-21 Brian Gough <brian.gough@network-theory.co.uk>
+
+ * test.m: skip trans=113 for complex matrix on SYRK tests.
+
+Tue Feb 19 20:50:27 2002 Brian Gough <bjg@network-theory.co.uk>
+
+ * gsl_cblas.h: added extern "C"
+
+Mon Jul 2 22:21:00 2001 Brian Gough <bjg@network-theory.co.uk>
+
+ * test.c: added missing #include <config.h>
+
+Fri Apr 27 19:53:10 2001 Brian Gough <bjg@network-theory.co.uk>
+
+ * source_tpmv_r.h: moved index declarations to more restricted scope
+
+ * source_rotmg.h: changed declaration y1 to y in order to avoid
+ confusion with function y0(x) in C library. Also changed x1 to x.
+
+ * source_syr2k_r.h: error where lda was used instead of ldb in
+ syr2k_r was not picked up by any tests! Now fixed
+
+Thu Apr 12 16:46:16 2001 Brian Gough <bjg@network-theory.co.uk>
+
+ * all routines now included for Level 1, 2, 3-- passes blas test
+ suite for numerical results, but no error handling yet
+
+ * split out from blas directory to make an independent blas
+ library
+
diff --git a/gsl-1.9/cblas/Makefile.am b/gsl-1.9/cblas/Makefile.am
new file mode 100644
index 0000000..2d59fee
--- /dev/null
+++ b/gsl-1.9/cblas/Makefile.am
@@ -0,0 +1,19 @@
+lib_LTLIBRARIES = libgslcblas.la
+libgslcblas_la_LDFLAGS = -version-info $(GSL_LT_CBLAS_VERSION)
+
+pkginclude_HEADERS = gsl_cblas.h
+
+INCLUDES= -I$(top_srcdir)
+
+libgslcblas_la_SOURCES = sasum.c saxpy.c scasum.c scnrm2.c scopy.c sdot.c sdsdot.c sgbmv.c sgemm.c sgemv.c sger.c snrm2.c srot.c srotg.c srotm.c srotmg.c ssbmv.c sscal.c sspmv.c sspr.c sspr2.c sswap.c ssymm.c ssymv.c ssyr.c ssyr2.c ssyr2k.c ssyrk.c stbmv.c stbsv.c stpmv.c stpsv.c strmm.c strmv.c strsm.c strsv.c dasum.c daxpy.c dcopy.c ddot.c dgbmv.c dgemm.c dgemv.c dger.c dnrm2.c drot.c drotg.c drotm.c drotmg.c dsbmv.c dscal.c dsdot.c dspmv.c dspr.c dspr2.c dswap.c dsymm.c dsymv.c dsyr.c dsyr2.c dsyr2k.c dsyrk.c dtbmv.c dtbsv.c dtpmv.c dtpsv.c dtrmm.c dtrmv.c dtrsm.c dtrsv.c dzasum.c dznrm2.c caxpy.c ccopy.c cdotc_sub.c cdotu_sub.c cgbmv.c cgemm.c cgemv.c cgerc.c cgeru.c chbmv.c chemm.c chemv.c cher.c cher2.c cher2k.c cherk.c chpmv.c chpr.c chpr2.c cscal.c csscal.c cswap.c csymm.c csyr2k.c csyrk.c ctbmv.c ctbsv.c ctpmv.c ctpsv.c ctrmm.c ctrmv.c ctrsm.c ctrsv.c zaxpy.c zcopy.c zdotc_sub.c zdotu_sub.c zdscal.c zgbmv.c zgemm.c zgemv.c zgerc.c zgeru.c zhbmv.c zhemm.c zhemv.c zher.c zher2.c zher2k.c zherk.c zhpmv.c zhpr.c zhpr2.c zscal.c zswap.c zsymm.c zsyr2k.c zsyrk.c ztbmv.c ztbsv.c ztpmv.c ztpsv.c ztrmm.c ztrmv.c ztrsm.c ztrsv.c icamax.c idamax.c isamax.c izamax.c xerbla.c
+
+noinst_HEADERS = tests.c tests.h cblas.h source_asum_c.h source_asum_r.h source_axpy_c.h source_axpy_r.h source_copy_c.h source_copy_r.h source_dot_c.h source_dot_r.h source_gbmv_c.h source_gbmv_r.h source_gemm_c.h source_gemm_r.h source_gemv_c.h source_gemv_r.h source_ger.h source_gerc.h source_geru.h source_hbmv.h source_hemm.h source_hemv.h source_her.h source_her2.h source_her2k.h source_herk.h source_hpmv.h source_hpr.h source_hpr2.h source_iamax_c.h source_iamax_r.h source_nrm2_c.h source_nrm2_r.h source_rot.h source_rotg.h source_rotm.h source_rotmg.h source_sbmv.h source_scal_c.h source_scal_c_s.h source_scal_r.h source_spmv.h source_spr.h source_spr2.h source_swap_c.h source_swap_r.h source_symm_c.h source_symm_r.h source_symv.h source_syr.h source_syr2.h source_syr2k_c.h source_syr2k_r.h source_syrk_c.h source_syrk_r.h source_tbmv_c.h source_tbmv_r.h source_tbsv_c.h source_tbsv_r.h source_tpmv_c.h source_tpmv_r.h source_tpsv_c.h source_tpsv_r.h source_trmm_c.h source_trmm_r.h source_trmv_c.h source_trmv_r.h source_trsm_c.h source_trsm_r.h source_trsv_c.h source_trsv_r.h hypot.c
+
+check_PROGRAMS = test
+TESTS = $(check_PROGRAMS)
+
+test_LDADD = libgslcblas.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la
+test_SOURCES = test.c test_amax.c test_asum.c test_axpy.c test_copy.c test_dot.c test_gbmv.c test_gemm.c test_gemv.c test_ger.c test_hbmv.c test_hemm.c test_hemv.c test_her.c test_her2.c test_her2k.c test_herk.c test_hpmv.c test_hpr.c test_hpr2.c test_nrm2.c test_rot.c test_rotg.c test_rotm.c test_rotmg.c test_sbmv.c test_scal.c test_spmv.c test_spr.c test_spr2.c test_swap.c test_symm.c test_symv.c test_syr.c test_syr2.c test_syr2k.c test_syrk.c test_tbmv.c test_tbsv.c test_tpmv.c test_tpsv.c test_trmm.c test_trmv.c test_trsm.c test_trsv.c
+
+
+
diff --git a/gsl-1.9/cblas/Makefile.in b/gsl-1.9/cblas/Makefile.in
new file mode 100644
index 0000000..949eca6
--- /dev/null
+++ b/gsl-1.9/cblas/Makefile.in
@@ -0,0 +1,640 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+check_PROGRAMS = test$(EXEEXT)
+subdir = cblas
+DIST_COMMON = $(noinst_HEADERS) $(pkginclude_HEADERS) \
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog TODO
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)"
+libLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libgslcblas_la_LIBADD =
+am_libgslcblas_la_OBJECTS = sasum.lo saxpy.lo scasum.lo scnrm2.lo \
+ scopy.lo sdot.lo sdsdot.lo sgbmv.lo sgemm.lo sgemv.lo sger.lo \
+ snrm2.lo srot.lo srotg.lo srotm.lo srotmg.lo ssbmv.lo sscal.lo \
+ sspmv.lo sspr.lo sspr2.lo sswap.lo ssymm.lo ssymv.lo ssyr.lo \
+ ssyr2.lo ssyr2k.lo ssyrk.lo stbmv.lo stbsv.lo stpmv.lo \
+ stpsv.lo strmm.lo strmv.lo strsm.lo strsv.lo dasum.lo daxpy.lo \
+ dcopy.lo ddot.lo dgbmv.lo dgemm.lo dgemv.lo dger.lo dnrm2.lo \
+ drot.lo drotg.lo drotm.lo drotmg.lo dsbmv.lo dscal.lo dsdot.lo \
+ dspmv.lo dspr.lo dspr2.lo dswap.lo dsymm.lo dsymv.lo dsyr.lo \
+ dsyr2.lo dsyr2k.lo dsyrk.lo dtbmv.lo dtbsv.lo dtpmv.lo \
+ dtpsv.lo dtrmm.lo dtrmv.lo dtrsm.lo dtrsv.lo dzasum.lo \
+ dznrm2.lo caxpy.lo ccopy.lo cdotc_sub.lo cdotu_sub.lo cgbmv.lo \
+ cgemm.lo cgemv.lo cgerc.lo cgeru.lo chbmv.lo chemm.lo chemv.lo \
+ cher.lo cher2.lo cher2k.lo cherk.lo chpmv.lo chpr.lo chpr2.lo \
+ cscal.lo csscal.lo cswap.lo csymm.lo csyr2k.lo csyrk.lo \
+ ctbmv.lo ctbsv.lo ctpmv.lo ctpsv.lo ctrmm.lo ctrmv.lo ctrsm.lo \
+ ctrsv.lo zaxpy.lo zcopy.lo zdotc_sub.lo zdotu_sub.lo zdscal.lo \
+ zgbmv.lo zgemm.lo zgemv.lo zgerc.lo zgeru.lo zhbmv.lo zhemm.lo \
+ zhemv.lo zher.lo zher2.lo zher2k.lo zherk.lo zhpmv.lo zhpr.lo \
+ zhpr2.lo zscal.lo zswap.lo zsymm.lo zsyr2k.lo zsyrk.lo \
+ ztbmv.lo ztbsv.lo ztpmv.lo ztpsv.lo ztrmm.lo ztrmv.lo ztrsm.lo \
+ ztrsv.lo icamax.lo idamax.lo isamax.lo izamax.lo xerbla.lo
+libgslcblas_la_OBJECTS = $(am_libgslcblas_la_OBJECTS)
+am_test_OBJECTS = test.$(OBJEXT) test_amax.$(OBJEXT) \
+ test_asum.$(OBJEXT) test_axpy.$(OBJEXT) test_copy.$(OBJEXT) \
+ test_dot.$(OBJEXT) test_gbmv.$(OBJEXT) test_gemm.$(OBJEXT) \
+ test_gemv.$(OBJEXT) test_ger.$(OBJEXT) test_hbmv.$(OBJEXT) \
+ test_hemm.$(OBJEXT) test_hemv.$(OBJEXT) test_her.$(OBJEXT) \
+ test_her2.$(OBJEXT) test_her2k.$(OBJEXT) test_herk.$(OBJEXT) \
+ test_hpmv.$(OBJEXT) test_hpr.$(OBJEXT) test_hpr2.$(OBJEXT) \
+ test_nrm2.$(OBJEXT) test_rot.$(OBJEXT) test_rotg.$(OBJEXT) \
+ test_rotm.$(OBJEXT) test_rotmg.$(OBJEXT) test_sbmv.$(OBJEXT) \
+ test_scal.$(OBJEXT) test_spmv.$(OBJEXT) test_spr.$(OBJEXT) \
+ test_spr2.$(OBJEXT) test_swap.$(OBJEXT) test_symm.$(OBJEXT) \
+ test_symv.$(OBJEXT) test_syr.$(OBJEXT) test_syr2.$(OBJEXT) \
+ test_syr2k.$(OBJEXT) test_syrk.$(OBJEXT) test_tbmv.$(OBJEXT) \
+ test_tbsv.$(OBJEXT) test_tpmv.$(OBJEXT) test_tpsv.$(OBJEXT) \
+ test_trmm.$(OBJEXT) test_trmv.$(OBJEXT) test_trsm.$(OBJEXT) \
+ test_trsv.$(OBJEXT)
+test_OBJECTS = $(am_test_OBJECTS)
+test_DEPENDENCIES = libgslcblas.la ../ieee-utils/libgslieeeutils.la \
+ ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp =
+am__depfiles_maybe =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libgslcblas_la_SOURCES) $(test_SOURCES)
+DIST_SOURCES = $(libgslcblas_la_SOURCES) $(test_SOURCES)
+pkgincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(noinst_HEADERS) $(pkginclude_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GSL_CFLAGS = @GSL_CFLAGS@
+GSL_LIBS = @GSL_LIBS@
+GSL_LT_CBLAS_VERSION = @GSL_LT_CBLAS_VERSION@
+GSL_LT_VERSION = @GSL_LT_VERSION@
+HAVE_AIX_IEEE_INTERFACE = @HAVE_AIX_IEEE_INTERFACE@
+HAVE_DARWIN86_IEEE_INTERFACE = @HAVE_DARWIN86_IEEE_INTERFACE@
+HAVE_DARWIN_IEEE_INTERFACE = @HAVE_DARWIN_IEEE_INTERFACE@
+HAVE_EXTENDED_PRECISION_REGISTERS = @HAVE_EXTENDED_PRECISION_REGISTERS@
+HAVE_FREEBSD_IEEE_INTERFACE = @HAVE_FREEBSD_IEEE_INTERFACE@
+HAVE_GNUM68K_IEEE_INTERFACE = @HAVE_GNUM68K_IEEE_INTERFACE@
+HAVE_GNUPPC_IEEE_INTERFACE = @HAVE_GNUPPC_IEEE_INTERFACE@
+HAVE_GNUSPARC_IEEE_INTERFACE = @HAVE_GNUSPARC_IEEE_INTERFACE@
+HAVE_GNUX86_IEEE_INTERFACE = @HAVE_GNUX86_IEEE_INTERFACE@
+HAVE_HPUX11_IEEE_INTERFACE = @HAVE_HPUX11_IEEE_INTERFACE@
+HAVE_HPUX_IEEE_INTERFACE = @HAVE_HPUX_IEEE_INTERFACE@
+HAVE_IEEE_COMPARISONS = @HAVE_IEEE_COMPARISONS@
+HAVE_IEEE_DENORMALS = @HAVE_IEEE_DENORMALS@
+HAVE_INLINE = @HAVE_INLINE@
+HAVE_IRIX_IEEE_INTERFACE = @HAVE_IRIX_IEEE_INTERFACE@
+HAVE_NETBSD_IEEE_INTERFACE = @HAVE_NETBSD_IEEE_INTERFACE@
+HAVE_OPENBSD_IEEE_INTERFACE = @HAVE_OPENBSD_IEEE_INTERFACE@
+HAVE_OS2EMX_IEEE_INTERFACE = @HAVE_OS2EMX_IEEE_INTERFACE@
+HAVE_PRINTF_LONGDOUBLE = @HAVE_PRINTF_LONGDOUBLE@
+HAVE_SOLARIS_IEEE_INTERFACE = @HAVE_SOLARIS_IEEE_INTERFACE@
+HAVE_SUNOS4_IEEE_INTERFACE = @HAVE_SUNOS4_IEEE_INTERFACE@
+HAVE_TRU64_IEEE_INTERFACE = @HAVE_TRU64_IEEE_INTERFACE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RELEASED = @RELEASED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+lib_LTLIBRARIES = libgslcblas.la
+libgslcblas_la_LDFLAGS = -version-info $(GSL_LT_CBLAS_VERSION)
+pkginclude_HEADERS = gsl_cblas.h
+INCLUDES = -I$(top_srcdir)
+libgslcblas_la_SOURCES = sasum.c saxpy.c scasum.c scnrm2.c scopy.c \
+ sdot.c sdsdot.c sgbmv.c sgemm.c sgemv.c sger.c snrm2.c srot.c \
+ srotg.c srotm.c srotmg.c ssbmv.c sscal.c sspmv.c sspr.c \
+ sspr2.c sswap.c ssymm.c ssymv.c ssyr.c ssyr2.c ssyr2k.c \
+ ssyrk.c stbmv.c stbsv.c stpmv.c stpsv.c strmm.c strmv.c \
+ strsm.c strsv.c dasum.c daxpy.c dcopy.c ddot.c dgbmv.c dgemm.c \
+ dgemv.c dger.c dnrm2.c drot.c drotg.c drotm.c drotmg.c dsbmv.c \
+ dscal.c dsdot.c dspmv.c dspr.c dspr2.c dswap.c dsymm.c dsymv.c \
+ dsyr.c dsyr2.c dsyr2k.c dsyrk.c dtbmv.c dtbsv.c dtpmv.c \
+ dtpsv.c dtrmm.c dtrmv.c dtrsm.c dtrsv.c dzasum.c dznrm2.c \
+ caxpy.c ccopy.c cdotc_sub.c cdotu_sub.c cgbmv.c cgemm.c \
+ cgemv.c cgerc.c cgeru.c chbmv.c chemm.c chemv.c cher.c cher2.c \
+ cher2k.c cherk.c chpmv.c chpr.c chpr2.c cscal.c csscal.c \
+ cswap.c csymm.c csyr2k.c csyrk.c ctbmv.c ctbsv.c ctpmv.c \
+ ctpsv.c ctrmm.c ctrmv.c ctrsm.c ctrsv.c zaxpy.c zcopy.c \
+ zdotc_sub.c zdotu_sub.c zdscal.c zgbmv.c zgemm.c zgemv.c \
+ zgerc.c zgeru.c zhbmv.c zhemm.c zhemv.c zher.c zher2.c \
+ zher2k.c zherk.c zhpmv.c zhpr.c zhpr2.c zscal.c zswap.c \
+ zsymm.c zsyr2k.c zsyrk.c ztbmv.c ztbsv.c ztpmv.c ztpsv.c \
+ ztrmm.c ztrmv.c ztrsm.c ztrsv.c icamax.c idamax.c isamax.c \
+ izamax.c xerbla.c
+noinst_HEADERS = tests.c tests.h cblas.h source_asum_c.h \
+ source_asum_r.h source_axpy_c.h source_axpy_r.h \
+ source_copy_c.h source_copy_r.h source_dot_c.h source_dot_r.h \
+ source_gbmv_c.h source_gbmv_r.h source_gemm_c.h \
+ source_gemm_r.h source_gemv_c.h source_gemv_r.h source_ger.h \
+ source_gerc.h source_geru.h source_hbmv.h source_hemm.h \
+ source_hemv.h source_her.h source_her2.h source_her2k.h \
+ source_herk.h source_hpmv.h source_hpr.h source_hpr2.h \
+ source_iamax_c.h source_iamax_r.h source_nrm2_c.h \
+ source_nrm2_r.h source_rot.h source_rotg.h source_rotm.h \
+ source_rotmg.h source_sbmv.h source_scal_c.h source_scal_c_s.h \
+ source_scal_r.h source_spmv.h source_spr.h source_spr2.h \
+ source_swap_c.h source_swap_r.h source_symm_c.h \
+ source_symm_r.h source_symv.h source_syr.h source_syr2.h \
+ source_syr2k_c.h source_syr2k_r.h source_syrk_c.h \
+ source_syrk_r.h source_tbmv_c.h source_tbmv_r.h \
+ source_tbsv_c.h source_tbsv_r.h source_tpmv_c.h \
+ source_tpmv_r.h source_tpsv_c.h source_tpsv_r.h \
+ source_trmm_c.h source_trmm_r.h source_trmv_c.h \
+ source_trmv_r.h source_trsm_c.h source_trsm_r.h \
+ source_trsv_c.h source_trsv_r.h hypot.c
+TESTS = $(check_PROGRAMS)
+test_LDADD = libgslcblas.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la
+test_SOURCES = test.c test_amax.c test_asum.c test_axpy.c test_copy.c test_dot.c test_gbmv.c test_gemm.c test_gemv.c test_ger.c test_hbmv.c test_hemm.c test_hemv.c test_her.c test_her2.c test_her2k.c test_herk.c test_hpmv.c test_hpr.c test_hpr2.c test_nrm2.c test_rot.c test_rotg.c test_rotm.c test_rotmg.c test_sbmv.c test_scal.c test_spmv.c test_spr.c test_spr2.c test_swap.c test_symm.c test_symv.c test_syr.c test_syr2.c test_syr2k.c test_syrk.c test_tbmv.c test_tbsv.c test_tpmv.c test_tpsv.c test_trmm.c test_trmv.c test_trsm.c test_trsv.c
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu --ignore-deps cblas/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu --ignore-deps cblas/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libgslcblas.la: $(libgslcblas_la_OBJECTS) $(libgslcblas_la_DEPENDENCIES)
+ $(LINK) -rpath $(libdir) $(libgslcblas_la_LDFLAGS) $(libgslcblas_la_OBJECTS) $(libgslcblas_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES)
+ @rm -f test$(EXEEXT)
+ $(LINK) $(test_LDFLAGS) $(test_OBJECTS) $(test_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.c.o:
+ $(COMPILE) -c $<
+
+.c.obj:
+ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-pkgincludeHEADERS: $(pkginclude_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkgincludedir)" || $(mkdir_p) "$(DESTDIR)$(pkgincludedir)"
+ @list='$(pkginclude_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(pkgincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgincludedir)/$$f'"; \
+ $(pkgincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgincludedir)/$$f"; \
+ done
+
+uninstall-pkgincludeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkginclude_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(pkgincludedir)/$$f'"; \
+ rm -f "$(DESTDIR)$(pkgincludedir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list='$(TESTS)'; \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *" $$tst "*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ echo "XPASS: $$tst"; \
+ ;; \
+ *) \
+ echo "PASS: $$tst"; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *" $$tst "*) \
+ xfail=`expr $$xfail + 1`; \
+ echo "XFAIL: $$tst"; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ echo "FAIL: $$tst"; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ echo "SKIP: $$tst"; \
+ fi; \
+ done; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="All $$all tests passed"; \
+ else \
+ banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all tests failed"; \
+ else \
+ banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ skipped="($$skip tests were not run)"; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
+ clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pkgincludeHEADERS
+
+install-exec-am: install-libLTLIBRARIES
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
+ uninstall-pkgincludeHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
+ clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-exec install-exec-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-man install-pkgincludeHEADERS install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gsl-1.9/cblas/TODO b/gsl-1.9/cblas/TODO
new file mode 100644
index 0000000..deb2a5f
--- /dev/null
+++ b/gsl-1.9/cblas/TODO
@@ -0,0 +1,8 @@
+use macros so that all complex arithmetic can use native complex types if compiler supports them
+
+make sure double/float are replaced by BASE everywhere
+well... not _everywhere_; internal accumulations should
+be done in double always; there's no reason not too,
+it's safer and maybe even faster [GJ]
+
+gbmv_c : use conj*imag instead of having branches form Trans & ConjTrans
diff --git a/gsl-1.9/cblas/caxpy.c b/gsl-1.9/cblas/caxpy.c
new file mode 100644
index 0000000..842153e
--- /dev/null
+++ b/gsl-1.9/cblas/caxpy.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_caxpy (const int N, const void *alpha, const void *X, const int incX,
+ void *Y, const int incY)
+{
+#define BASE float
+#include "source_axpy_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cblas.h b/gsl-1.9/cblas/cblas.h
new file mode 100644
index 0000000..b478671
--- /dev/null
+++ b/gsl-1.9/cblas/cblas.h
@@ -0,0 +1,34 @@
+#define INDEX int
+#define OFFSET(N, incX) ((incX) > 0 ? 0 : ((N) - 1) * (-(incX)))
+#define BLAS_ERROR(x) cblas_xerbla(0, __FILE__, x);
+
+#define CONJUGATE(x) ((x) == CblasConjTrans)
+#define TRANSPOSE(x) ((x) == CblasTrans || (x) == CblasConjTrans)
+#define UPPER(x) ((x) == CblasUpper)
+#define LOWER(x) ((x) == CblasLower)
+
+/* Handling of packed complex types... */
+
+#define REAL(a,i) (((BASE *) a)[2*(i)])
+#define IMAG(a,i) (((BASE *) a)[2*(i)+1])
+
+#define REAL0(a) (((BASE *)a)[0])
+#define IMAG0(a) (((BASE *)a)[1])
+
+#define CONST_REAL(a,i) (((const BASE *) a)[2*(i)])
+#define CONST_IMAG(a,i) (((const BASE *) a)[2*(i)+1])
+
+#define CONST_REAL0(a) (((const BASE *)a)[0])
+#define CONST_IMAG0(a) (((const BASE *)a)[1])
+
+
+#define GB(KU,KL,lda,i,j) ((KU+1+(i-j))*lda + j)
+
+#define TRCOUNT(N,i) ((((i)+1)*(2*(N)-(i)))/2)
+
+/* #define TBUP(N,i,j) */
+/* #define TBLO(N,i,j) */
+
+#define TPUP(N,i,j) (TRCOUNT(N,(i)-1)+(j)-(i))
+#define TPLO(N,i,j) (((i)*((i)+1))/2 + (j))
+
diff --git a/gsl-1.9/cblas/ccopy.c b/gsl-1.9/cblas/ccopy.c
new file mode 100644
index 0000000..c4716dd
--- /dev/null
+++ b/gsl-1.9/cblas/ccopy.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ccopy (const int N, const void *X, const int incX, void *Y,
+ const int incY)
+{
+#define BASE float
+#include "source_copy_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cdotc_sub.c b/gsl-1.9/cblas/cdotc_sub.c
new file mode 100644
index 0000000..7bf646d
--- /dev/null
+++ b/gsl-1.9/cblas/cdotc_sub.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cdotc_sub (const int N, const void *X, const int incX, const void *Y,
+ const int incY, void *result)
+{
+#define BASE float
+#define CONJ_SIGN (-1.0)
+#include "source_dot_c.h"
+#undef CONJ_SIGN
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cdotu_sub.c b/gsl-1.9/cblas/cdotu_sub.c
new file mode 100644
index 0000000..4dff0be
--- /dev/null
+++ b/gsl-1.9/cblas/cdotu_sub.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cdotu_sub (const int N, const void *X, const int incX, const void *Y,
+ const int incY, void *result)
+{
+#define BASE float
+#define CONJ_SIGN 1.0
+#include "source_dot_c.h"
+#undef CONJ_SIGN
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cgbmv.c b/gsl-1.9/cblas/cgbmv.c
new file mode 100644
index 0000000..b263720
--- /dev/null
+++ b/gsl-1.9/cblas/cgbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cgbmv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA,
+ const int M, const int N, const int KL, const int KU,
+ const void *alpha, const void *A, const int lda, const void *X,
+ const int incX, const void *beta, void *Y, const int incY)
+{
+#define BASE float
+#include "source_gbmv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cgemm.c b/gsl-1.9/cblas/cgemm.c
new file mode 100644
index 0000000..006678c
--- /dev/null
+++ b/gsl-1.9/cblas/cgemm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cgemm (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+ const int K, const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const void *beta, void *C,
+ const int ldc)
+{
+#define BASE float
+#include "source_gemm_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cgemv.c b/gsl-1.9/cblas/cgemv.c
new file mode 100644
index 0000000..4a276d8
--- /dev/null
+++ b/gsl-1.9/cblas/cgemv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cgemv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA,
+ const int M, const int N, const void *alpha, const void *A,
+ const int lda, const void *X, const int incX, const void *beta,
+ void *Y, const int incY)
+{
+#define BASE float
+#include "source_gemv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cgerc.c b/gsl-1.9/cblas/cgerc.c
new file mode 100644
index 0000000..d10d66d
--- /dev/null
+++ b/gsl-1.9/cblas/cgerc.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cgerc (const enum CBLAS_ORDER order, const int M, const int N,
+ const void *alpha, const void *X, const int incX, const void *Y,
+ const int incY, void *A, const int lda)
+{
+#define BASE float
+#include "source_gerc.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cgeru.c b/gsl-1.9/cblas/cgeru.c
new file mode 100644
index 0000000..d1aa274
--- /dev/null
+++ b/gsl-1.9/cblas/cgeru.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cgeru (const enum CBLAS_ORDER order, const int M, const int N,
+ const void *alpha, const void *X, const int incX, const void *Y,
+ const int incY, void *A, const int lda)
+{
+#define BASE float
+#include "source_geru.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/chbmv.c b/gsl-1.9/cblas/chbmv.c
new file mode 100644
index 0000000..04ed3d0
--- /dev/null
+++ b/gsl-1.9/cblas/chbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_chbmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const int K, const void *alpha, const void *A,
+ const int lda, const void *X, const int incX, const void *beta,
+ void *Y, const int incY)
+{
+#define BASE float
+#include "source_hbmv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/chemm.c b/gsl-1.9/cblas/chemm.c
new file mode 100644
index 0000000..c67f118
--- /dev/null
+++ b/gsl-1.9/cblas/chemm.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_chemm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const void *alpha, const void *A, const int lda, const void *B,
+ const int ldb, const void *beta, void *C, const int ldc)
+{
+#define BASE float
+#include "source_hemm.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/chemv.c b/gsl-1.9/cblas/chemv.c
new file mode 100644
index 0000000..0f54973
--- /dev/null
+++ b/gsl-1.9/cblas/chemv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_chemv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *A, const int lda,
+ const void *X, const int incX, const void *beta, void *Y,
+ const int incY)
+{
+#define BASE float
+#include "source_hemv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cher.c b/gsl-1.9/cblas/cher.c
new file mode 100644
index 0000000..348252e
--- /dev/null
+++ b/gsl-1.9/cblas/cher.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cher (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const void *X, const int incX,
+ void *A, const int lda)
+{
+#define BASE float
+#include "source_her.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cher2.c b/gsl-1.9/cblas/cher2.c
new file mode 100644
index 0000000..7e5067b
--- /dev/null
+++ b/gsl-1.9/cblas/cher2.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cher2 (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *A, const int lda)
+{
+#define BASE float
+#include "source_her2.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cher2k.c b/gsl-1.9/cblas/cher2k.c
new file mode 100644
index 0000000..d1fc694
--- /dev/null
+++ b/gsl-1.9/cblas/cher2k.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cher2k (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda, const void *B,
+ const int ldb, const float beta, void *C, const int ldc)
+{
+#define BASE float
+#include "source_her2k.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cherk.c b/gsl-1.9/cblas/cherk.c
new file mode 100644
index 0000000..1cb3af7
--- /dev/null
+++ b/gsl-1.9/cblas/cherk.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cherk (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const float alpha, const void *A, const int lda,
+ const float beta, void *C, const int ldc)
+{
+#define BASE float
+#include "source_herk.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/chpmv.c b/gsl-1.9/cblas/chpmv.c
new file mode 100644
index 0000000..5069459
--- /dev/null
+++ b/gsl-1.9/cblas/chpmv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_chpmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *Ap, const void *X,
+ const int incX, const void *beta, void *Y, const int incY)
+{
+#define BASE float
+#include "source_hpmv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/chpr.c b/gsl-1.9/cblas/chpr.c
new file mode 100644
index 0000000..1ac0d0d
--- /dev/null
+++ b/gsl-1.9/cblas/chpr.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_chpr (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const void *X, const int incX,
+ void *Ap)
+{
+#define BASE float
+#include "source_hpr.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/chpr2.c b/gsl-1.9/cblas/chpr2.c
new file mode 100644
index 0000000..f5e4046
--- /dev/null
+++ b/gsl-1.9/cblas/chpr2.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_chpr2 (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *Ap)
+{
+#define BASE float
+#include "source_hpr2.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cscal.c b/gsl-1.9/cblas/cscal.c
new file mode 100644
index 0000000..5a881b9
--- /dev/null
+++ b/gsl-1.9/cblas/cscal.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cscal (const int N, const void *alpha, void *X, const int incX)
+{
+#define BASE float
+#include "source_scal_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/csscal.c b/gsl-1.9/cblas/csscal.c
new file mode 100644
index 0000000..ef59150
--- /dev/null
+++ b/gsl-1.9/cblas/csscal.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_csscal (const int N, const float alpha, void *X, const int incX)
+{
+#define BASE float
+#include "source_scal_c_s.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/cswap.c b/gsl-1.9/cblas/cswap.c
new file mode 100644
index 0000000..8e940ec
--- /dev/null
+++ b/gsl-1.9/cblas/cswap.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_cswap (const int N, void *X, const int incX, void *Y, const int incY)
+{
+#define BASE float
+#include "source_swap_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/csymm.c b/gsl-1.9/cblas/csymm.c
new file mode 100644
index 0000000..28bd1c9
--- /dev/null
+++ b/gsl-1.9/cblas/csymm.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_csymm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const void *alpha, const void *A, const int lda, const void *B,
+ const int ldb, const void *beta, void *C, const int ldc)
+{
+#define BASE float
+#include "source_symm_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/csyr2k.c b/gsl-1.9/cblas/csyr2k.c
new file mode 100644
index 0000000..92439a2
--- /dev/null
+++ b/gsl-1.9/cblas/csyr2k.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_csyr2k (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda, const void *B,
+ const int ldb, const void *beta, void *C, const int ldc)
+{
+#define BASE float
+#include "source_syr2k_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/csyrk.c b/gsl-1.9/cblas/csyrk.c
new file mode 100644
index 0000000..9fec100
--- /dev/null
+++ b/gsl-1.9/cblas/csyrk.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_csyrk (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda,
+ const void *beta, void *C, const int ldc)
+{
+#define BASE float
+#include "source_syrk_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ctbmv.c b/gsl-1.9/cblas/ctbmv.c
new file mode 100644
index 0000000..f22ad92
--- /dev/null
+++ b/gsl-1.9/cblas/ctbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ctbmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const void *A, const int lda, void *X,
+ const int incX)
+{
+#define BASE float
+#include "source_tbmv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ctbsv.c b/gsl-1.9/cblas/ctbsv.c
new file mode 100644
index 0000000..b30b090
--- /dev/null
+++ b/gsl-1.9/cblas/ctbsv.c
@@ -0,0 +1,16 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+#include "hypot.c"
+
+void
+cblas_ctbsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const void *A, const int lda, void *X,
+ const int incX)
+{
+#define BASE float
+#include "source_tbsv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ctpmv.c b/gsl-1.9/cblas/ctpmv.c
new file mode 100644
index 0000000..dd5d741
--- /dev/null
+++ b/gsl-1.9/cblas/ctpmv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ctpmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *Ap, void *X, const int incX)
+{
+#define BASE float
+#include "source_tpmv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ctpsv.c b/gsl-1.9/cblas/ctpsv.c
new file mode 100644
index 0000000..434bd8e
--- /dev/null
+++ b/gsl-1.9/cblas/ctpsv.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+#include "hypot.c"
+
+void
+cblas_ctpsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *Ap, void *X, const int incX)
+{
+#define BASE float
+#include "source_tpsv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ctrmm.c b/gsl-1.9/cblas/ctrmm.c
new file mode 100644
index 0000000..37c5140
--- /dev/null
+++ b/gsl-1.9/cblas/ctrmm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ctrmm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const void *alpha, const void *A, const int lda, void *B,
+ const int ldb)
+{
+#define BASE float
+#include "source_trmm_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ctrmv.c b/gsl-1.9/cblas/ctrmv.c
new file mode 100644
index 0000000..260d3c2
--- /dev/null
+++ b/gsl-1.9/cblas/ctrmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ctrmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *A, const int lda, void *X,
+ const int incX)
+{
+#define BASE float
+#include "source_trmv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ctrsm.c b/gsl-1.9/cblas/ctrsm.c
new file mode 100644
index 0000000..7d5c427
--- /dev/null
+++ b/gsl-1.9/cblas/ctrsm.c
@@ -0,0 +1,17 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+#include "hypot.c"
+
+void
+cblas_ctrsm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const void *alpha, const void *A, const int lda, void *B,
+ const int ldb)
+{
+#define BASE float
+#include "source_trsm_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ctrsv.c b/gsl-1.9/cblas/ctrsv.c
new file mode 100644
index 0000000..2e5c462
--- /dev/null
+++ b/gsl-1.9/cblas/ctrsv.c
@@ -0,0 +1,16 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+#include "hypot.c"
+
+void
+cblas_ctrsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *A, const int lda, void *X,
+ const int incX)
+{
+#define BASE float
+#include "source_trsv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dasum.c b/gsl-1.9/cblas/dasum.c
new file mode 100644
index 0000000..db215c1
--- /dev/null
+++ b/gsl-1.9/cblas/dasum.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+double
+cblas_dasum (const int N, const double *X, const int incX)
+{
+#define BASE double
+#include "source_asum_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/daxpy.c b/gsl-1.9/cblas/daxpy.c
new file mode 100644
index 0000000..d0fd567
--- /dev/null
+++ b/gsl-1.9/cblas/daxpy.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_daxpy (const int N, const double alpha, const double *X, const int incX,
+ double *Y, const int incY)
+{
+#define BASE double
+#include "source_axpy_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dcopy.c b/gsl-1.9/cblas/dcopy.c
new file mode 100644
index 0000000..5c6ed2e
--- /dev/null
+++ b/gsl-1.9/cblas/dcopy.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dcopy (const int N, const double *X, const int incX, double *Y,
+ const int incY)
+{
+#define BASE double
+#include "source_copy_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ddot.c b/gsl-1.9/cblas/ddot.c
new file mode 100644
index 0000000..e5801f3
--- /dev/null
+++ b/gsl-1.9/cblas/ddot.c
@@ -0,0 +1,16 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+double
+cblas_ddot (const int N, const double *X, const int incX, const double *Y,
+ const int incY)
+{
+#define INIT_VAL 0.0
+#define ACC_TYPE double
+#define BASE double
+#include "source_dot_r.h"
+#undef ACC_TYPE
+#undef BASE
+#undef INIT_VAL
+}
diff --git a/gsl-1.9/cblas/dgbmv.c b/gsl-1.9/cblas/dgbmv.c
new file mode 100644
index 0000000..2da9fe4
--- /dev/null
+++ b/gsl-1.9/cblas/dgbmv.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dgbmv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA,
+ const int M, const int N, const int KL, const int KU,
+ const double alpha, const double *A, const int lda,
+ const double *X, const int incX, const double beta, double *Y,
+ const int incY)
+{
+#define BASE double
+#include "source_gbmv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dgemm.c b/gsl-1.9/cblas/dgemm.c
new file mode 100644
index 0000000..428ed13
--- /dev/null
+++ b/gsl-1.9/cblas/dgemm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dgemm (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+ const int K, const double alpha, const double *A, const int lda,
+ const double *B, const int ldb, const double beta, double *C,
+ const int ldc)
+{
+#define BASE double
+#include "source_gemm_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dgemv.c b/gsl-1.9/cblas/dgemv.c
new file mode 100644
index 0000000..cc5aea9
--- /dev/null
+++ b/gsl-1.9/cblas/dgemv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dgemv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA,
+ const int M, const int N, const double alpha, const double *A,
+ const int lda, const double *X, const int incX,
+ const double beta, double *Y, const int incY)
+{
+#define BASE double
+#include "source_gemv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dger.c b/gsl-1.9/cblas/dger.c
new file mode 100644
index 0000000..d9596ae
--- /dev/null
+++ b/gsl-1.9/cblas/dger.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dger (const enum CBLAS_ORDER order, const int M, const int N,
+ const double alpha, const double *X, const int incX,
+ const double *Y, const int incY, double *A, const int lda)
+{
+#define BASE double
+#include "source_ger.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dnrm2.c b/gsl-1.9/cblas/dnrm2.c
new file mode 100644
index 0000000..f7d5d83
--- /dev/null
+++ b/gsl-1.9/cblas/dnrm2.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+double
+cblas_dnrm2 (const int N, const double *X, const int incX)
+{
+#define BASE double
+#include "source_nrm2_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/drot.c b/gsl-1.9/cblas/drot.c
new file mode 100644
index 0000000..15c75db
--- /dev/null
+++ b/gsl-1.9/cblas/drot.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_drot (const int N, double *X, const int incX, double *Y, const int incY,
+ const double c, const double s)
+{
+#define BASE double
+#include "source_rot.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/drotg.c b/gsl-1.9/cblas/drotg.c
new file mode 100644
index 0000000..bc95658
--- /dev/null
+++ b/gsl-1.9/cblas/drotg.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_drotg (double *a, double *b, double *c, double *s)
+{
+#define BASE double
+#include "source_rotg.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/drotm.c b/gsl-1.9/cblas/drotm.c
new file mode 100644
index 0000000..69d5129
--- /dev/null
+++ b/gsl-1.9/cblas/drotm.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_drotm (const int N, double *X, const int incX, double *Y,
+ const int incY, const double *P)
+{
+#define BASE double
+#include "source_rotm.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/drotmg.c b/gsl-1.9/cblas/drotmg.c
new file mode 100644
index 0000000..d9e68ba
--- /dev/null
+++ b/gsl-1.9/cblas/drotmg.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_drotmg (double *d1, double *d2, double *b1, const double b2, double *P)
+{
+#define BASE double
+#include "source_rotmg.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dsbmv.c b/gsl-1.9/cblas/dsbmv.c
new file mode 100644
index 0000000..2fcc6f7
--- /dev/null
+++ b/gsl-1.9/cblas/dsbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dsbmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const int K, const double alpha, const double *A,
+ const int lda, const double *X, const int incX,
+ const double beta, double *Y, const int incY)
+{
+#define BASE double
+#include "source_sbmv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dscal.c b/gsl-1.9/cblas/dscal.c
new file mode 100644
index 0000000..479b121
--- /dev/null
+++ b/gsl-1.9/cblas/dscal.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dscal (const int N, const double alpha, double *X, const int incX)
+{
+#define BASE double
+#include "source_scal_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dsdot.c b/gsl-1.9/cblas/dsdot.c
new file mode 100644
index 0000000..2d3400b
--- /dev/null
+++ b/gsl-1.9/cblas/dsdot.c
@@ -0,0 +1,16 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+double
+cblas_dsdot (const int N, const float *X, const int incX, const float *Y,
+ const int incY)
+{
+#define INIT_VAL 0.0
+#define ACC_TYPE double
+#define BASE float
+#include "source_dot_r.h"
+#undef ACC_TYPE
+#undef BASE
+#undef INIT_VAL
+}
diff --git a/gsl-1.9/cblas/dspmv.c b/gsl-1.9/cblas/dspmv.c
new file mode 100644
index 0000000..870c7e3
--- /dev/null
+++ b/gsl-1.9/cblas/dspmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dspmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *Ap,
+ const double *X, const int incX, const double beta, double *Y,
+ const int incY)
+{
+#define BASE double
+#include "source_spmv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dspr.c b/gsl-1.9/cblas/dspr.c
new file mode 100644
index 0000000..0d2d86e
--- /dev/null
+++ b/gsl-1.9/cblas/dspr.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dspr (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *X, const int incX,
+ double *Ap)
+{
+#define BASE double
+#include "source_spr.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dspr2.c b/gsl-1.9/cblas/dspr2.c
new file mode 100644
index 0000000..78348e2
--- /dev/null
+++ b/gsl-1.9/cblas/dspr2.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dspr2 (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *X, const int incX,
+ const double *Y, const int incY, double *Ap)
+{
+#define BASE double
+#include "source_spr2.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dswap.c b/gsl-1.9/cblas/dswap.c
new file mode 100644
index 0000000..e8401a5
--- /dev/null
+++ b/gsl-1.9/cblas/dswap.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dswap (const int N, double *X, const int incX, double *Y,
+ const int incY)
+{
+#define BASE double
+#include "source_swap_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dsymm.c b/gsl-1.9/cblas/dsymm.c
new file mode 100644
index 0000000..0a4905a
--- /dev/null
+++ b/gsl-1.9/cblas/dsymm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dsymm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const double alpha, const double *A, const int lda,
+ const double *B, const int ldb, const double beta, double *C,
+ const int ldc)
+{
+#define BASE double
+#include "source_symm_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dsymv.c b/gsl-1.9/cblas/dsymv.c
new file mode 100644
index 0000000..2c3429d
--- /dev/null
+++ b/gsl-1.9/cblas/dsymv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dsymv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *A, const int lda,
+ const double *X, const int incX, const double beta, double *Y,
+ const int incY)
+{
+#define BASE double
+#include "source_symv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dsyr.c b/gsl-1.9/cblas/dsyr.c
new file mode 100644
index 0000000..a83a795
--- /dev/null
+++ b/gsl-1.9/cblas/dsyr.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dsyr (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *X, const int incX,
+ double *A, const int lda)
+{
+#define BASE double
+#include "source_syr.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dsyr2.c b/gsl-1.9/cblas/dsyr2.c
new file mode 100644
index 0000000..f2bfcc1
--- /dev/null
+++ b/gsl-1.9/cblas/dsyr2.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dsyr2 (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *X, const int incX,
+ const double *Y, const int incY, double *A, const int lda)
+{
+#define BASE double
+#include "source_syr2.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dsyr2k.c b/gsl-1.9/cblas/dsyr2k.c
new file mode 100644
index 0000000..7c14830
--- /dev/null
+++ b/gsl-1.9/cblas/dsyr2k.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dsyr2k (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const double alpha, const double *A, const int lda,
+ const double *B, const int ldb, const double beta, double *C,
+ const int ldc)
+{
+#define BASE double
+#include "source_syr2k_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dsyrk.c b/gsl-1.9/cblas/dsyrk.c
new file mode 100644
index 0000000..b529c1a
--- /dev/null
+++ b/gsl-1.9/cblas/dsyrk.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dsyrk (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const double alpha, const double *A, const int lda,
+ const double beta, double *C, const int ldc)
+{
+#define BASE double
+#include "source_syrk_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dtbmv.c b/gsl-1.9/cblas/dtbmv.c
new file mode 100644
index 0000000..5859218
--- /dev/null
+++ b/gsl-1.9/cblas/dtbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dtbmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const double *A, const int lda,
+ double *X, const int incX)
+{
+#define BASE double
+#include "source_tbmv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dtbsv.c b/gsl-1.9/cblas/dtbsv.c
new file mode 100644
index 0000000..a009f1e
--- /dev/null
+++ b/gsl-1.9/cblas/dtbsv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dtbsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const double *A, const int lda,
+ double *X, const int incX)
+{
+#define BASE double
+#include "source_tbsv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dtpmv.c b/gsl-1.9/cblas/dtpmv.c
new file mode 100644
index 0000000..35fa212
--- /dev/null
+++ b/gsl-1.9/cblas/dtpmv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dtpmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const double *Ap, double *X, const int incX)
+{
+#define BASE double
+#include "source_tpmv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dtpsv.c b/gsl-1.9/cblas/dtpsv.c
new file mode 100644
index 0000000..8b0b981
--- /dev/null
+++ b/gsl-1.9/cblas/dtpsv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dtpsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const double *Ap, double *X, const int incX)
+{
+#define BASE double
+#include "source_tpsv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dtrmm.c b/gsl-1.9/cblas/dtrmm.c
new file mode 100644
index 0000000..e48c656
--- /dev/null
+++ b/gsl-1.9/cblas/dtrmm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dtrmm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const double alpha, const double *A, const int lda, double *B,
+ const int ldb)
+{
+#define BASE double
+#include "source_trmm_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dtrmv.c b/gsl-1.9/cblas/dtrmv.c
new file mode 100644
index 0000000..68fc9d0
--- /dev/null
+++ b/gsl-1.9/cblas/dtrmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dtrmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const double *A, const int lda, double *X,
+ const int incX)
+{
+#define BASE double
+#include "source_trmv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dtrsm.c b/gsl-1.9/cblas/dtrsm.c
new file mode 100644
index 0000000..d2a234b
--- /dev/null
+++ b/gsl-1.9/cblas/dtrsm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dtrsm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const double alpha, const double *A, const int lda, double *B,
+ const int ldb)
+{
+#define BASE double
+#include "source_trsm_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dtrsv.c b/gsl-1.9/cblas/dtrsv.c
new file mode 100644
index 0000000..3d9f971
--- /dev/null
+++ b/gsl-1.9/cblas/dtrsv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_dtrsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const double *A, const int lda, double *X,
+ const int incX)
+{
+#define BASE double
+#include "source_trsv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dzasum.c b/gsl-1.9/cblas/dzasum.c
new file mode 100644
index 0000000..7484ede
--- /dev/null
+++ b/gsl-1.9/cblas/dzasum.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+double
+cblas_dzasum (const int N, const void *X, const int incX)
+{
+#define BASE double
+#include "source_asum_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/dznrm2.c b/gsl-1.9/cblas/dznrm2.c
new file mode 100644
index 0000000..d58ec9f
--- /dev/null
+++ b/gsl-1.9/cblas/dznrm2.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+double
+cblas_dznrm2 (const int N, const void *X, const int incX)
+{
+#define BASE double
+#include "source_nrm2_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/gsl_cblas.h b/gsl-1.9/cblas/gsl_cblas.h
new file mode 100644
index 0000000..38d0dd8
--- /dev/null
+++ b/gsl-1.9/cblas/gsl_cblas.h
@@ -0,0 +1,606 @@
+/* blas/gsl_cblas.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/* This is a copy of the CBLAS standard header.
+ * We carry this around so we do not have to
+ * break our model for flexible BLAS functionality.
+ */
+
+#ifndef __GSL_CBLAS_H__
+#define __GSL_CBLAS_H__
+#include <stddef.h>
+
+#undef __BEGIN_DECLS
+#undef __END_DECLS
+#ifdef __cplusplus
+#define __BEGIN_DECLS extern "C" {
+#define __END_DECLS }
+#else
+#define __BEGIN_DECLS /* empty */
+#define __END_DECLS /* empty */
+#endif
+
+__BEGIN_DECLS
+
+/*
+ * Enumerated and derived types
+ */
+#define CBLAS_INDEX size_t /* this may vary between platforms */
+
+enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
+enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113};
+enum CBLAS_UPLO {CblasUpper=121, CblasLower=122};
+enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132};
+enum CBLAS_SIDE {CblasLeft=141, CblasRight=142};
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS functions (complex are recast as routines)
+ * ===========================================================================
+ */
+float cblas_sdsdot(const int N, const float alpha, const float *X,
+ const int incX, const float *Y, const int incY);
+double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
+ const int incY);
+float cblas_sdot(const int N, const float *X, const int incX,
+ const float *Y, const int incY);
+double cblas_ddot(const int N, const double *X, const int incX,
+ const double *Y, const int incY);
+
+/*
+ * Functions having prefixes Z and C only
+ */
+void cblas_cdotu_sub(const int N, const void *X, const int incX,
+ const void *Y, const int incY, void *dotu);
+void cblas_cdotc_sub(const int N, const void *X, const int incX,
+ const void *Y, const int incY, void *dotc);
+
+void cblas_zdotu_sub(const int N, const void *X, const int incX,
+ const void *Y, const int incY, void *dotu);
+void cblas_zdotc_sub(const int N, const void *X, const int incX,
+ const void *Y, const int incY, void *dotc);
+
+
+/*
+ * Functions having prefixes S D SC DZ
+ */
+float cblas_snrm2(const int N, const float *X, const int incX);
+float cblas_sasum(const int N, const float *X, const int incX);
+
+double cblas_dnrm2(const int N, const double *X, const int incX);
+double cblas_dasum(const int N, const double *X, const int incX);
+
+float cblas_scnrm2(const int N, const void *X, const int incX);
+float cblas_scasum(const int N, const void *X, const int incX);
+
+double cblas_dznrm2(const int N, const void *X, const int incX);
+double cblas_dzasum(const int N, const void *X, const int incX);
+
+
+/*
+ * Functions having standard 4 prefixes (S D C Z)
+ */
+CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX);
+CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
+CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX);
+CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS routines
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (s, d, c, z)
+ */
+void cblas_sswap(const int N, float *X, const int incX,
+ float *Y, const int incY);
+void cblas_scopy(const int N, const float *X, const int incX,
+ float *Y, const int incY);
+void cblas_saxpy(const int N, const float alpha, const float *X,
+ const int incX, float *Y, const int incY);
+
+void cblas_dswap(const int N, double *X, const int incX,
+ double *Y, const int incY);
+void cblas_dcopy(const int N, const double *X, const int incX,
+ double *Y, const int incY);
+void cblas_daxpy(const int N, const double alpha, const double *X,
+ const int incX, double *Y, const int incY);
+
+void cblas_cswap(const int N, void *X, const int incX,
+ void *Y, const int incY);
+void cblas_ccopy(const int N, const void *X, const int incX,
+ void *Y, const int incY);
+void cblas_caxpy(const int N, const void *alpha, const void *X,
+ const int incX, void *Y, const int incY);
+
+void cblas_zswap(const int N, void *X, const int incX,
+ void *Y, const int incY);
+void cblas_zcopy(const int N, const void *X, const int incX,
+ void *Y, const int incY);
+void cblas_zaxpy(const int N, const void *alpha, const void *X,
+ const int incX, void *Y, const int incY);
+
+
+/*
+ * Routines with S and D prefix only
+ */
+void cblas_srotg(float *a, float *b, float *c, float *s);
+void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
+void cblas_srot(const int N, float *X, const int incX,
+ float *Y, const int incY, const float c, const float s);
+void cblas_srotm(const int N, float *X, const int incX,
+ float *Y, const int incY, const float *P);
+
+void cblas_drotg(double *a, double *b, double *c, double *s);
+void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
+void cblas_drot(const int N, double *X, const int incX,
+ double *Y, const int incY, const double c, const double s);
+void cblas_drotm(const int N, double *X, const int incX,
+ double *Y, const int incY, const double *P);
+
+
+/*
+ * Routines with S D C Z CS and ZD prefixes
+ */
+void cblas_sscal(const int N, const float alpha, float *X, const int incX);
+void cblas_dscal(const int N, const double alpha, double *X, const int incX);
+void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
+void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
+void cblas_csscal(const int N, const float alpha, void *X, const int incX);
+void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 2 BLAS
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (S, D, C, Z)
+ */
+void cblas_sgemv(const enum CBLAS_ORDER order,
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+ const float alpha, const float *A, const int lda,
+ const float *X, const int incX, const float beta,
+ float *Y, const int incY);
+void cblas_sgbmv(const enum CBLAS_ORDER order,
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+ const int KL, const int KU, const float alpha,
+ const float *A, const int lda, const float *X,
+ const int incX, const float beta, float *Y, const int incY);
+void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const float *A, const int lda,
+ float *X, const int incX);
+void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const float *A, const int lda,
+ float *X, const int incX);
+void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const float *Ap, float *X, const int incX);
+void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const float *A, const int lda, float *X,
+ const int incX);
+void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const float *A, const int lda,
+ float *X, const int incX);
+void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const float *Ap, float *X, const int incX);
+
+void cblas_dgemv(const enum CBLAS_ORDER order,
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+ const double alpha, const double *A, const int lda,
+ const double *X, const int incX, const double beta,
+ double *Y, const int incY);
+void cblas_dgbmv(const enum CBLAS_ORDER order,
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+ const int KL, const int KU, const double alpha,
+ const double *A, const int lda, const double *X,
+ const int incX, const double beta, double *Y, const int incY);
+void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const double *A, const int lda,
+ double *X, const int incX);
+void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const double *A, const int lda,
+ double *X, const int incX);
+void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const double *Ap, double *X, const int incX);
+void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const double *A, const int lda, double *X,
+ const int incX);
+void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const double *A, const int lda,
+ double *X, const int incX);
+void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const double *Ap, double *X, const int incX);
+
+void cblas_cgemv(const enum CBLAS_ORDER order,
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ const void *X, const int incX, const void *beta,
+ void *Y, const int incY);
+void cblas_cgbmv(const enum CBLAS_ORDER order,
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+ const int KL, const int KU, const void *alpha,
+ const void *A, const int lda, const void *X,
+ const int incX, const void *beta, void *Y, const int incY);
+void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *A, const int lda,
+ void *X, const int incX);
+void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const void *A, const int lda,
+ void *X, const int incX);
+void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *Ap, void *X, const int incX);
+void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *A, const int lda, void *X,
+ const int incX);
+void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const void *A, const int lda,
+ void *X, const int incX);
+void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *Ap, void *X, const int incX);
+
+void cblas_zgemv(const enum CBLAS_ORDER order,
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ const void *X, const int incX, const void *beta,
+ void *Y, const int incY);
+void cblas_zgbmv(const enum CBLAS_ORDER order,
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+ const int KL, const int KU, const void *alpha,
+ const void *A, const int lda, const void *X,
+ const int incX, const void *beta, void *Y, const int incY);
+void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *A, const int lda,
+ void *X, const int incX);
+void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const void *A, const int lda,
+ void *X, const int incX);
+void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *Ap, void *X, const int incX);
+void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *A, const int lda, void *X,
+ const int incX);
+void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const void *A, const int lda,
+ void *X, const int incX);
+void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *Ap, void *X, const int incX);
+
+
+/*
+ * Routines with S and D prefixes only
+ */
+void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *A,
+ const int lda, const float *X, const int incX,
+ const float beta, float *Y, const int incY);
+void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const int K, const float alpha, const float *A,
+ const int lda, const float *X, const int incX,
+ const float beta, float *Y, const int incY);
+void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *Ap,
+ const float *X, const int incX,
+ const float beta, float *Y, const int incY);
+void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N,
+ const float alpha, const float *X, const int incX,
+ const float *Y, const int incY, float *A, const int lda);
+void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *X,
+ const int incX, float *A, const int lda);
+void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *X,
+ const int incX, float *Ap);
+void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *X,
+ const int incX, const float *Y, const int incY, float *A,
+ const int lda);
+void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *X,
+ const int incX, const float *Y, const int incY, float *A);
+
+void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *A,
+ const int lda, const double *X, const int incX,
+ const double beta, double *Y, const int incY);
+void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const int K, const double alpha, const double *A,
+ const int lda, const double *X, const int incX,
+ const double beta, double *Y, const int incY);
+void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *Ap,
+ const double *X, const int incX,
+ const double beta, double *Y, const int incY);
+void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N,
+ const double alpha, const double *X, const int incX,
+ const double *Y, const int incY, double *A, const int lda);
+void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *X,
+ const int incX, double *A, const int lda);
+void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *X,
+ const int incX, double *Ap);
+void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *X,
+ const int incX, const double *Y, const int incY, double *A,
+ const int lda);
+void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const double *X,
+ const int incX, const double *Y, const int incY, double *A);
+
+
+/*
+ * Routines with C and Z prefixes only
+ */
+void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *A,
+ const int lda, const void *X, const int incX,
+ const void *beta, void *Y, const int incY);
+void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const int K, const void *alpha, const void *A,
+ const int lda, const void *X, const int incX,
+ const void *beta, void *Y, const int incY);
+void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *Ap,
+ const void *X, const int incX,
+ const void *beta, void *Y, const int incY);
+void cblas_cgeru(const enum CBLAS_ORDER order, const int M, const int N,
+ const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *A, const int lda);
+void cblas_cgerc(const enum CBLAS_ORDER order, const int M, const int N,
+ const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *A, const int lda);
+void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const void *X, const int incX,
+ void *A, const int lda);
+void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const void *X,
+ const int incX, void *A);
+void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
+ const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *A, const int lda);
+void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
+ const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *Ap);
+
+void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *A,
+ const int lda, const void *X, const int incX,
+ const void *beta, void *Y, const int incY);
+void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const int K, const void *alpha, const void *A,
+ const int lda, const void *X, const int incX,
+ const void *beta, void *Y, const int incY);
+void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *Ap,
+ const void *X, const int incX,
+ const void *beta, void *Y, const int incY);
+void cblas_zgeru(const enum CBLAS_ORDER order, const int M, const int N,
+ const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *A, const int lda);
+void cblas_zgerc(const enum CBLAS_ORDER order, const int M, const int N,
+ const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *A, const int lda);
+void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const void *X, const int incX,
+ void *A, const int lda);
+void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const void *X,
+ const int incX, void *A);
+void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
+ const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *A, const int lda);
+void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
+ const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *Ap);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 3 BLAS
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (S, D, C, Z)
+ */
+void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+ const int K, const float alpha, const float *A,
+ const int lda, const float *B, const int ldb,
+ const float beta, float *C, const int ldc);
+void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const float alpha, const float *A, const int lda,
+ const float *B, const int ldb, const float beta,
+ float *C, const int ldc);
+void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const float alpha, const float *A, const int lda,
+ const float beta, float *C, const int ldc);
+void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const float alpha, const float *A, const int lda,
+ const float *B, const int ldb, const float beta,
+ float *C, const int ldc);
+void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const float alpha, const float *A, const int lda,
+ float *B, const int ldb);
+void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const float alpha, const float *A, const int lda,
+ float *B, const int ldb);
+
+void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+ const int K, const double alpha, const double *A,
+ const int lda, const double *B, const int ldb,
+ const double beta, double *C, const int ldc);
+void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const double alpha, const double *A, const int lda,
+ const double *B, const int ldb, const double beta,
+ double *C, const int ldc);
+void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const double alpha, const double *A, const int lda,
+ const double beta, double *C, const int ldc);
+void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const double alpha, const double *A, const int lda,
+ const double *B, const int ldb, const double beta,
+ double *C, const int ldc);
+void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const double alpha, const double *A, const int lda,
+ double *B, const int ldb);
+void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const double alpha, const double *A, const int lda,
+ double *B, const int ldb);
+
+void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+ const int K, const void *alpha, const void *A,
+ const int lda, const void *B, const int ldb,
+ const void *beta, void *C, const int ldc);
+void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const void *beta,
+ void *C, const int ldc);
+void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda,
+ const void *beta, void *C, const int ldc);
+void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const void *beta,
+ void *C, const int ldc);
+void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ void *B, const int ldb);
+void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ void *B, const int ldb);
+
+void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+ const int K, const void *alpha, const void *A,
+ const int lda, const void *B, const int ldb,
+ const void *beta, void *C, const int ldc);
+void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const void *beta,
+ void *C, const int ldc);
+void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda,
+ const void *beta, void *C, const int ldc);
+void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const void *beta,
+ void *C, const int ldc);
+void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ void *B, const int ldb);
+void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ void *B, const int ldb);
+
+
+/*
+ * Routines with prefixes C and Z only
+ */
+void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const void *beta,
+ void *C, const int ldc);
+void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const float alpha, const void *A, const int lda,
+ const float beta, void *C, const int ldc);
+void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const float beta,
+ void *C, const int ldc);
+
+void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const void *beta,
+ void *C, const int ldc);
+void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const double alpha, const void *A, const int lda,
+ const double beta, void *C, const int ldc);
+void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const double beta,
+ void *C, const int ldc);
+
+void cblas_xerbla(int p, const char *rout, const char *form, ...);
+
+__END_DECLS
+
+#endif /* __GSL_CBLAS_H__ */
diff --git a/gsl-1.9/cblas/hypot.c b/gsl-1.9/cblas/hypot.c
new file mode 100644
index 0000000..8f6bb47
--- /dev/null
+++ b/gsl-1.9/cblas/hypot.c
@@ -0,0 +1,28 @@
+#include <math.h>
+
+static double xhypot (const double x, const double y);
+
+static double xhypot (const double x, const double y)
+{
+ double xabs = fabs(x) ;
+ double yabs = fabs(y) ;
+ double min, max;
+
+ if (xabs < yabs) {
+ min = xabs ;
+ max = yabs ;
+ } else {
+ min = yabs ;
+ max = xabs ;
+ }
+
+ if (min == 0)
+ {
+ return max ;
+ }
+
+ {
+ double u = min / max ;
+ return max * sqrt (1 + u * u) ;
+ }
+}
diff --git a/gsl-1.9/cblas/icamax.c b/gsl-1.9/cblas/icamax.c
new file mode 100644
index 0000000..cf0f344
--- /dev/null
+++ b/gsl-1.9/cblas/icamax.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+CBLAS_INDEX
+cblas_icamax (const int N, const void *X, const int incX)
+{
+#define BASE float
+#include "source_iamax_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/idamax.c b/gsl-1.9/cblas/idamax.c
new file mode 100644
index 0000000..b6372e7
--- /dev/null
+++ b/gsl-1.9/cblas/idamax.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+CBLAS_INDEX
+cblas_idamax (const int N, const double *X, const int incX)
+{
+#define BASE double
+#include "source_iamax_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/isamax.c b/gsl-1.9/cblas/isamax.c
new file mode 100644
index 0000000..6e7279a
--- /dev/null
+++ b/gsl-1.9/cblas/isamax.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+CBLAS_INDEX
+cblas_isamax (const int N, const float *X, const int incX)
+{
+#define BASE float
+#include "source_iamax_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/izamax.c b/gsl-1.9/cblas/izamax.c
new file mode 100644
index 0000000..e3ae675
--- /dev/null
+++ b/gsl-1.9/cblas/izamax.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+CBLAS_INDEX
+cblas_izamax (const int N, const void *X, const int incX)
+{
+#define BASE double
+#include "source_iamax_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sasum.c b/gsl-1.9/cblas/sasum.c
new file mode 100644
index 0000000..019d925
--- /dev/null
+++ b/gsl-1.9/cblas/sasum.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+float
+cblas_sasum (const int N, const float *X, const int incX)
+{
+#define BASE float
+#include "source_asum_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/saxpy.c b/gsl-1.9/cblas/saxpy.c
new file mode 100644
index 0000000..af08d4d
--- /dev/null
+++ b/gsl-1.9/cblas/saxpy.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_saxpy (const int N, const float alpha, const float *X, const int incX,
+ float *Y, const int incY)
+{
+#define BASE float
+#include "source_axpy_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/scasum.c b/gsl-1.9/cblas/scasum.c
new file mode 100644
index 0000000..af87482
--- /dev/null
+++ b/gsl-1.9/cblas/scasum.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+float
+cblas_scasum (const int N, const void *X, const int incX)
+{
+#define BASE float
+#include "source_asum_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/scnrm2.c b/gsl-1.9/cblas/scnrm2.c
new file mode 100644
index 0000000..4653c13
--- /dev/null
+++ b/gsl-1.9/cblas/scnrm2.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+float
+cblas_scnrm2 (const int N, const void *X, const int incX)
+{
+#define BASE float
+#include "source_nrm2_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/scopy.c b/gsl-1.9/cblas/scopy.c
new file mode 100644
index 0000000..423a386
--- /dev/null
+++ b/gsl-1.9/cblas/scopy.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_scopy (const int N, const float *X, const int incX, float *Y,
+ const int incY)
+{
+#define BASE float
+#include "source_copy_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sdot.c b/gsl-1.9/cblas/sdot.c
new file mode 100644
index 0000000..c65904f
--- /dev/null
+++ b/gsl-1.9/cblas/sdot.c
@@ -0,0 +1,16 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+float
+cblas_sdot (const int N, const float *X, const int incX, const float *Y,
+ const int incY)
+{
+#define INIT_VAL 0.0
+#define ACC_TYPE float
+#define BASE float
+#include "source_dot_r.h"
+#undef ACC_TYPE
+#undef BASE
+#undef INIT_VAL
+}
diff --git a/gsl-1.9/cblas/sdsdot.c b/gsl-1.9/cblas/sdsdot.c
new file mode 100644
index 0000000..5672ac4
--- /dev/null
+++ b/gsl-1.9/cblas/sdsdot.c
@@ -0,0 +1,16 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+float
+cblas_sdsdot (const int N, const float alpha, const float *X, const int incX,
+ const float *Y, const int incY)
+{
+#define INIT_VAL alpha
+#define ACC_TYPE double
+#define BASE float
+#include "source_dot_r.h"
+#undef ACC_TYPE
+#undef BASE
+#undef INIT_VAL
+}
diff --git a/gsl-1.9/cblas/sgbmv.c b/gsl-1.9/cblas/sgbmv.c
new file mode 100644
index 0000000..9f2fc7d
--- /dev/null
+++ b/gsl-1.9/cblas/sgbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sgbmv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA,
+ const int M, const int N, const int KL, const int KU,
+ const float alpha, const float *A, const int lda, const float *X,
+ const int incX, const float beta, float *Y, const int incY)
+{
+#define BASE float
+#include "source_gbmv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sgemm.c b/gsl-1.9/cblas/sgemm.c
new file mode 100644
index 0000000..98ec087
--- /dev/null
+++ b/gsl-1.9/cblas/sgemm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sgemm (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+ const int K, const float alpha, const float *A, const int lda,
+ const float *B, const int ldb, const float beta, float *C,
+ const int ldc)
+{
+#define BASE float
+#include "source_gemm_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sgemv.c b/gsl-1.9/cblas/sgemv.c
new file mode 100644
index 0000000..b3e7aec
--- /dev/null
+++ b/gsl-1.9/cblas/sgemv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sgemv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA,
+ const int M, const int N, const float alpha, const float *A,
+ const int lda, const float *X, const int incX, const float beta,
+ float *Y, const int incY)
+{
+#define BASE float
+#include "source_gemv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sger.c b/gsl-1.9/cblas/sger.c
new file mode 100644
index 0000000..72c366d
--- /dev/null
+++ b/gsl-1.9/cblas/sger.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sger (const enum CBLAS_ORDER order, const int M, const int N,
+ const float alpha, const float *X, const int incX, const float *Y,
+ const int incY, float *A, const int lda)
+{
+#define BASE float
+#include "source_ger.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/snrm2.c b/gsl-1.9/cblas/snrm2.c
new file mode 100644
index 0000000..76b3d59
--- /dev/null
+++ b/gsl-1.9/cblas/snrm2.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+float
+cblas_snrm2 (const int N, const float *X, const int incX)
+{
+#define BASE float
+#include "source_nrm2_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/source_asum_c.h b/gsl-1.9/cblas/source_asum_c.h
new file mode 100644
index 0000000..c0e85ab
--- /dev/null
+++ b/gsl-1.9/cblas/source_asum_c.h
@@ -0,0 +1,34 @@
+/* blas/source_asum_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ BASE r = 0.0;
+ INDEX i;
+ INDEX ix = 0;
+
+ if (incX <= 0) {
+ return 0;
+ }
+
+ for (i = 0; i < N; i++) {
+ r += fabs(CONST_REAL(X, ix)) + fabs(CONST_IMAG(X, ix));
+ ix += incX;
+ }
+ return r;
+}
diff --git a/gsl-1.9/cblas/source_asum_r.h b/gsl-1.9/cblas/source_asum_r.h
new file mode 100644
index 0000000..3d6f2e3
--- /dev/null
+++ b/gsl-1.9/cblas/source_asum_r.h
@@ -0,0 +1,34 @@
+/* blas/source_asum_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ BASE r = 0.0;
+ INDEX i;
+ INDEX ix = 0;
+
+ if (incX <= 0) {
+ return 0;
+ }
+
+ for (i = 0; i < N; i++) {
+ r += fabs(X[ix]);
+ ix += incX;
+ }
+ return r;
+}
diff --git a/gsl-1.9/cblas/source_axpy_c.h b/gsl-1.9/cblas/source_axpy_c.h
new file mode 100644
index 0000000..1884ccd
--- /dev/null
+++ b/gsl-1.9/cblas/source_axpy_c.h
@@ -0,0 +1,40 @@
+/* blas/source_axpy_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (fabs(alpha_real) == 0 && fabs(alpha_imag) == 0) {
+ return;
+ }
+
+ for (i = 0; i < N; i++) {
+ const BASE x_real = CONST_REAL(X, ix);
+ const BASE x_imag = CONST_IMAG(X, ix);
+ REAL(Y, iy) += (alpha_real * x_real - alpha_imag * x_imag);
+ IMAG(Y, iy) += (alpha_real * x_imag + alpha_imag * x_real);
+ ix += incX;
+ iy += incY;
+ }
+}
diff --git a/gsl-1.9/cblas/source_axpy_r.h b/gsl-1.9/cblas/source_axpy_r.h
new file mode 100644
index 0000000..8e38448
--- /dev/null
+++ b/gsl-1.9/cblas/source_axpy_r.h
@@ -0,0 +1,50 @@
+/* blas/source_axpy_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+
+ if (alpha == 0.0) {
+ return;
+ }
+
+ if (incX == 1 && incY == 1) {
+ const INDEX m = N % 4;
+
+ for (i = 0; i < m; i++) {
+ Y[i] += alpha * X[i];
+ }
+
+ for (i = m; i + 3 < N; i += 4) {
+ Y[i] += alpha * X[i];
+ Y[i + 1] += alpha * X[i + 1];
+ Y[i + 2] += alpha * X[i + 2];
+ Y[i + 3] += alpha * X[i + 3];
+ }
+ } else {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+
+ for (i = 0; i < N; i++) {
+ Y[iy] += alpha * X[ix];
+ ix += incX;
+ iy += incY;
+ }
+ }
+}
diff --git a/gsl-1.9/cblas/source_copy_c.h b/gsl-1.9/cblas/source_copy_c.h
new file mode 100644
index 0000000..c7f7b58
--- /dev/null
+++ b/gsl-1.9/cblas/source_copy_c.h
@@ -0,0 +1,31 @@
+/* blas/source_copy_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+
+ for (i = 0; i < N; i++) {
+ REAL(Y, iy) = CONST_REAL(X, ix);
+ IMAG(Y, iy) = CONST_IMAG(X, ix);
+ ix += incX;
+ iy += incY;
+ }
+}
diff --git a/gsl-1.9/cblas/source_copy_r.h b/gsl-1.9/cblas/source_copy_r.h
new file mode 100644
index 0000000..a8dc86b
--- /dev/null
+++ b/gsl-1.9/cblas/source_copy_r.h
@@ -0,0 +1,30 @@
+/* blas/source_copy_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+
+ for (i = 0; i < N; i++) {
+ Y[iy] = X[ix];
+ ix += incX;
+ iy += incY;
+ }
+}
diff --git a/gsl-1.9/cblas/source_dot_c.h b/gsl-1.9/cblas/source_dot_c.h
new file mode 100644
index 0000000..062040f
--- /dev/null
+++ b/gsl-1.9/cblas/source_dot_c.h
@@ -0,0 +1,38 @@
+/* blas/source_dot_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ BASE r_real = 0.0;
+ BASE r_imag = 0.0;
+ INDEX i;
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE x_real = CONST_REAL(X, ix);
+ const BASE x_imag = CONST_IMAG(X, ix);
+ const BASE y_real = CONST_REAL(Y, iy);
+ const BASE y_imag = CONST_IMAG(Y, iy);
+ r_real += x_real * y_real - CONJ_SIGN * x_imag * y_imag;
+ r_imag += x_real * y_imag + CONJ_SIGN * x_imag * y_real;
+ ix += incX;
+ iy += incY;
+ }
+ REAL0(result) = r_real;
+ IMAG0(result) = r_imag;
+}
diff --git a/gsl-1.9/cblas/source_dot_r.h b/gsl-1.9/cblas/source_dot_r.h
new file mode 100644
index 0000000..dc356eb
--- /dev/null
+++ b/gsl-1.9/cblas/source_dot_r.h
@@ -0,0 +1,33 @@
+/* blas/source_dot_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ ACC_TYPE r = INIT_VAL;
+ INDEX i;
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+
+ for (i = 0; i < N; i++) {
+ r += X[ix] * Y[iy];
+ ix += incX;
+ iy += incY;
+ }
+
+ return r;
+}
diff --git a/gsl-1.9/cblas/source_gbmv_c.h b/gsl-1.9/cblas/source_gbmv_c.h
new file mode 100644
index 0000000..c235366
--- /dev/null
+++ b/gsl-1.9/cblas/source_gbmv_c.h
@@ -0,0 +1,170 @@
+/* blas/source_gbmv_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ INDEX lenX, lenY, L, U;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if (M == 0 || N == 0)
+ return;
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ if (TransA == CblasNoTrans) {
+ lenX = N;
+ lenY = M;
+ L = KL;
+ U = KU;
+ } else {
+ lenX = M;
+ lenY = N;
+ L = KU;
+ U = KL;
+ }
+
+ /* form y := beta*y */
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ REAL(Y, iy) = 0.0;
+ IMAG(Y, iy) = 0.0;
+ iy += incY;
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ const BASE y_real = REAL(Y, iy);
+ const BASE y_imag = IMAG(Y, iy);
+ const BASE tmpR = y_real * beta_real - y_imag * beta_imag;
+ const BASE tmpI = y_real * beta_imag + y_imag * beta_real;
+ REAL(Y, iy) = tmpR;
+ IMAG(Y, iy) = tmpI;
+ iy += incY;
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && TransA == CblasNoTrans)
+ || (order == CblasColMajor && TransA == CblasTrans)) {
+ /* form y := alpha*A*x + y */
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ BASE dotR = 0.0;
+ BASE dotI = 0.0;
+ const INDEX j_min = (i > L ? i - L : 0);
+ const INDEX j_max = GSL_MIN(lenX, i + U + 1);
+ INDEX ix = OFFSET(lenX, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE x_real = CONST_REAL(X, ix);
+ const BASE x_imag = CONST_IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + (L + j - i));
+ const BASE A_imag = CONST_IMAG(A, lda * i + (L + j - i));
+
+ dotR += A_real * x_real - A_imag * x_imag;
+ dotI += A_real * x_imag + A_imag * x_real;
+ ix += incX;
+ }
+
+ REAL(Y, iy) += alpha_real * dotR - alpha_imag * dotI;
+ IMAG(Y, iy) += alpha_real * dotI + alpha_imag * dotR;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && TransA == CblasTrans)
+ || (order == CblasColMajor && TransA == CblasNoTrans)) {
+ /* form y := alpha*A'*x + y */
+ INDEX ix = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ const BASE x_real = CONST_REAL(X, ix);
+ const BASE x_imag = CONST_IMAG(X, ix);
+ BASE tmpR = alpha_real * x_real - alpha_imag * x_imag;
+ BASE tmpI = alpha_real * x_imag + alpha_imag * x_real;
+ if (!(tmpR == 0.0 && tmpI == 0.0)) {
+ const INDEX i_min = (j > U ? j - U : 0);
+ const INDEX i_max = GSL_MIN(lenY, j + L + 1);
+ INDEX iy = OFFSET(lenY, incY) + i_min * incY;
+ for (i = i_min; i < i_max; i++) {
+ const BASE A_real = CONST_REAL(A, lda * j + (U + i - j));
+ const BASE A_imag = CONST_IMAG(A, lda * j + (U + i - j));
+ REAL(Y, iy) += A_real * tmpR - A_imag * tmpI;
+ IMAG(Y, iy) += A_real * tmpI + A_imag * tmpR;
+ iy += incY;
+ }
+ }
+ ix += incX;
+ }
+ } else if (order == CblasRowMajor && TransA == CblasConjTrans) {
+ /* form y := alpha*A^H*x + y */
+ INDEX ix = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ const BASE x_real = CONST_REAL(X, ix);
+ const BASE x_imag = CONST_IMAG(X, ix);
+ BASE tmpR = alpha_real * x_real - alpha_imag * x_imag;
+ BASE tmpI = alpha_real * x_imag + alpha_imag * x_real;
+ if (!(tmpR == 0.0 && tmpI == 0.0)) {
+ const INDEX i_min = (j > U ? j - U : 0);
+ const INDEX i_max = GSL_MIN(lenY, j + L + 1);
+ INDEX iy = OFFSET(lenY, incY) + i_min * incY;
+ for (i = i_min; i < i_max; i++) {
+ const BASE A_real = CONST_REAL(A, lda * j + (U + i - j));
+ const BASE A_imag = CONST_IMAG(A, lda * j + (U + i - j));
+ REAL(Y, iy) += A_real * tmpR - (-A_imag) * tmpI;
+ IMAG(Y, iy) += A_real * tmpI + (-A_imag) * tmpR;
+ iy += incY;
+ }
+ }
+ ix += incX;
+ }
+ } else if (order == CblasColMajor && TransA == CblasConjTrans) {
+ /* form y := alpha*A^H*x + y */
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ BASE dotR = 0.0;
+ BASE dotI = 0.0;
+ const INDEX j_min = (i > L ? i - L : 0);
+ const INDEX j_max = GSL_MIN(lenX, i + U + 1);
+ INDEX ix = OFFSET(lenX, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE x_real = CONST_REAL(X, ix);
+ const BASE x_imag = CONST_IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + (L + j - i));
+ const BASE A_imag = CONST_IMAG(A, lda * i + (L + j - i));
+
+ dotR += A_real * x_real - (-A_imag) * x_imag;
+ dotI += A_real * x_imag + (-A_imag) * x_real;
+ ix += incX;
+ }
+
+ REAL(Y, iy) += alpha_real * dotR - alpha_imag * dotI;
+ IMAG(Y, iy) += alpha_real * dotI + alpha_imag * dotR;
+ iy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_gbmv_r.h b/gsl-1.9/cblas/source_gbmv_r.h
new file mode 100644
index 0000000..779512b
--- /dev/null
+++ b/gsl-1.9/cblas/source_gbmv_r.h
@@ -0,0 +1,98 @@
+/* blas/source_gbmv_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ INDEX lenX, lenY, L, U;
+
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+
+ if (M == 0 || N == 0)
+ return;
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ if (Trans == CblasNoTrans) {
+ lenX = N;
+ lenY = M;
+ L = KL;
+ U = KU;
+ } else {
+ lenX = M;
+ lenY = N;
+ L = KU;
+ U = KL;
+ }
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ Y[iy] = 0;
+ iy += incY;
+ }
+ } else if (beta != 1.0) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ Y[iy] *= beta;
+ iy += incY;
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans)
+ || (order == CblasColMajor && Trans == CblasTrans)) {
+ /* form y := alpha*A*x + y */
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ BASE temp = 0.0;
+ const INDEX j_min = (i > L ? i - L : 0);
+ const INDEX j_max = GSL_MIN(lenX, i + U + 1);
+ INDEX jx = OFFSET(lenX, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[(L - i + j) + i * lda];
+ jx += incX;
+ }
+ Y[iy] += alpha * temp;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans)
+ || (order == CblasColMajor && Trans == CblasNoTrans)) {
+ /* form y := alpha*A'*x + y */
+ INDEX jx = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ const BASE temp = alpha * X[jx];
+ if (temp != 0.0) {
+ const INDEX i_min = (j > U ? j - U : 0);
+ const INDEX i_max = GSL_MIN(lenY, j + L + 1);
+ INDEX iy = OFFSET(lenY, incY) + i_min * incY;
+ for (i = i_min; i < i_max; i++) {
+ Y[iy] += temp * A[lda * j + (U + i - j)];
+ iy += incY;
+ }
+ }
+ jx += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_gemm_c.h b/gsl-1.9/cblas/source_gemm_c.h
new file mode 100644
index 0000000..ca0a4fb
--- /dev/null
+++ b/gsl-1.9/cblas/source_gemm_c.h
@@ -0,0 +1,167 @@
+/* blas/source_gemm_c.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ INDEX ldf, ldg;
+ int conjF, conjG, TransF, TransG;
+ const BASE *F, *G;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ F = (const BASE *)A;
+ ldf = lda;
+ conjF = (TransA == CblasConjTrans) ? -1 : 1;
+ TransF = (TransA == CblasNoTrans) ? CblasNoTrans : CblasTrans;
+ G = (const BASE *)B;
+ ldg = ldb;
+ conjG = (TransB == CblasConjTrans) ? -1 : 1;
+ TransG = (TransB == CblasNoTrans) ? CblasNoTrans : CblasTrans;
+ } else {
+ n1 = N;
+ n2 = M;
+ F = (const BASE *)B;
+ ldf = ldb;
+ conjF = (TransB == CblasConjTrans) ? -1 : 1;
+ TransF = (TransB == CblasNoTrans) ? CblasNoTrans : CblasTrans;
+ G = (const BASE *)A;
+ ldg = lda;
+ conjG = (TransA == CblasConjTrans) ? -1 : 1;
+ TransG = (TransA == CblasNoTrans) ? CblasNoTrans : CblasTrans;
+ }
+
+ /* form y := beta*y */
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Cij_real = REAL(C, ldc * i + j);
+ const BASE Cij_imag = IMAG(C, ldc * i + j);
+ REAL(C, ldc * i + j) = beta_real * Cij_real - beta_imag * Cij_imag;
+ IMAG(C, ldc * i + j) = beta_real * Cij_imag + beta_imag * Cij_real;
+ }
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if (TransF == CblasNoTrans && TransG == CblasNoTrans) {
+
+ /* form C := alpha*A*B + C */
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < n1; i++) {
+ const BASE Fik_real = CONST_REAL(F, ldf * i + k);
+ const BASE Fik_imag = conjF * CONST_IMAG(F, ldf * i + k);
+ const BASE temp_real = alpha_real * Fik_real - alpha_imag * Fik_imag;
+ const BASE temp_imag = alpha_real * Fik_imag + alpha_imag * Fik_real;
+ if (!(temp_real == 0.0 && temp_imag == 0.0)) {
+ for (j = 0; j < n2; j++) {
+ const BASE Gkj_real = CONST_REAL(G, ldg * k + j);
+ const BASE Gkj_imag = conjG * CONST_IMAG(G, ldg * k + j);
+ REAL(C, ldc * i + j) += temp_real * Gkj_real - temp_imag * Gkj_imag;
+ IMAG(C, ldc * i + j) += temp_real * Gkj_imag + temp_imag * Gkj_real;
+ }
+ }
+ }
+ }
+
+ } else if (TransF == CblasNoTrans && TransG == CblasTrans) {
+
+ /* form C := alpha*A*B' + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Fik_real = CONST_REAL(F, ldf * i + k);
+ const BASE Fik_imag = conjF * CONST_IMAG(F, ldf * i + k);
+ const BASE Gjk_real = CONST_REAL(G, ldg * j + k);
+ const BASE Gjk_imag = conjG * CONST_IMAG(G, ldg * j + k);
+ temp_real += Fik_real * Gjk_real - Fik_imag * Gjk_imag;
+ temp_imag += Fik_real * Gjk_imag + Fik_imag * Gjk_real;
+ }
+ REAL(C, ldc * i + j) += alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(C, ldc * i + j) += alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (TransF == CblasTrans && TransG == CblasNoTrans) {
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < n1; i++) {
+ const BASE Fki_real = CONST_REAL(F, ldf * k + i);
+ const BASE Fki_imag = conjF * CONST_IMAG(F, ldf * k + i);
+ const BASE temp_real = alpha_real * Fki_real - alpha_imag * Fki_imag;
+ const BASE temp_imag = alpha_real * Fki_imag + alpha_imag * Fki_real;
+ if (!(temp_real == 0.0 && temp_imag == 0.0)) {
+ for (j = 0; j < n2; j++) {
+ const BASE Gkj_real = CONST_REAL(G, ldg * k + j);
+ const BASE Gkj_imag = conjG * CONST_IMAG(G, ldg * k + j);
+ REAL(C, ldc * i + j) += temp_real * Gkj_real - temp_imag * Gkj_imag;
+ IMAG(C, ldc * i + j) += temp_real * Gkj_imag + temp_imag * Gkj_real;
+ }
+ }
+ }
+ }
+
+ } else if (TransF == CblasTrans && TransG == CblasTrans) {
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Fki_real = CONST_REAL(F, ldf * k + i);
+ const BASE Fki_imag = conjF * CONST_IMAG(F, ldf * k + i);
+ const BASE Gjk_real = CONST_REAL(G, ldg * j + k);
+ const BASE Gjk_imag = conjG * CONST_IMAG(G, ldg * j + k);
+
+ temp_real += Fki_real * Gjk_real - Fki_imag * Gjk_imag;
+ temp_imag += Fki_real * Gjk_imag + Fki_imag * Gjk_real;
+ }
+ REAL(C, ldc * i + j) += alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(C, ldc * i + j) += alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_gemm_r.h b/gsl-1.9/cblas/source_gemm_r.h
new file mode 100644
index 0000000..aa625dd
--- /dev/null
+++ b/gsl-1.9/cblas/source_gemm_r.h
@@ -0,0 +1,125 @@
+/* blas/source_gemm_r.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ INDEX ldf, ldg;
+ int TransF, TransG;
+ const BASE *F, *G;
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ F = A;
+ ldf = lda;
+ TransF = (TransA == CblasConjTrans) ? CblasTrans : TransA;
+ G = B;
+ ldg = ldb;
+ TransG = (TransB == CblasConjTrans) ? CblasTrans : TransB;
+ } else {
+ n1 = N;
+ n2 = M;
+ F = B;
+ ldf = ldb;
+ TransF = (TransB == CblasConjTrans) ? CblasTrans : TransB;
+ G = A;
+ ldg = lda;
+ TransG = (TransA == CblasConjTrans) ? CblasTrans : TransA;
+ }
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ C[ldc * i + j] = 0.0;
+ }
+ }
+ } else if (beta != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ C[ldc * i + j] *= beta;
+ }
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ if (TransF == CblasNoTrans && TransG == CblasNoTrans) {
+
+ /* form C := alpha*A*B + C */
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < n1; i++) {
+ const BASE temp = alpha * F[ldf * i + k];
+ if (temp != 0.0) {
+ for (j = 0; j < n2; j++) {
+ C[ldc * i + j] += temp * G[ldg * k + j];
+ }
+ }
+ }
+ }
+
+ } else if (TransF == CblasNoTrans && TransG == CblasTrans) {
+
+ /* form C := alpha*A*B' + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp = 0.0;
+ for (k = 0; k < K; k++) {
+ temp += F[ldf * i + k] * G[ldg * j + k];
+ }
+ C[ldc * i + j] += alpha * temp;
+ }
+ }
+
+ } else if (TransF == CblasTrans && TransG == CblasNoTrans) {
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < n1; i++) {
+ const BASE temp = alpha * F[ldf * k + i];
+ if (temp != 0.0) {
+ for (j = 0; j < n2; j++) {
+ C[ldc * i + j] += temp * G[ldg * k + j];
+ }
+ }
+ }
+ }
+
+ } else if (TransF == CblasTrans && TransG == CblasTrans) {
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp = 0.0;
+ for (k = 0; k < K; k++) {
+ temp += F[ldf * k + i] * G[ldg * j + k];
+ }
+ C[ldc * i + j] += alpha * temp;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_gemv_c.h b/gsl-1.9/cblas/source_gemv_c.h
new file mode 100644
index 0000000..9e998c9
--- /dev/null
+++ b/gsl-1.9/cblas/source_gemv_c.h
@@ -0,0 +1,158 @@
+/* blas/source_gemv_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ INDEX lenX, lenY;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if (M == 0 || N == 0)
+ return;
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ if (TransA == CblasNoTrans) {
+ lenX = N;
+ lenY = M;
+ } else {
+ lenX = M;
+ lenY = N;
+ }
+
+ /* form y := beta*y */
+
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ REAL(Y, iy) = 0.0;
+ IMAG(Y, iy) = 0.0;
+ iy += incY;
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ const BASE y_real = REAL(Y, iy);
+ const BASE y_imag = IMAG(Y, iy);
+ const BASE tmpR = y_real * beta_real - y_imag * beta_imag;
+ const BASE tmpI = y_real * beta_imag + y_imag * beta_real;
+ REAL(Y, iy) = tmpR;
+ IMAG(Y, iy) = tmpI;
+ iy += incY;
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && TransA == CblasNoTrans)
+ || (order == CblasColMajor && TransA == CblasTrans)) {
+ /* form y := alpha*A*x + y */
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ BASE dotR = 0.0;
+ BASE dotI = 0.0;
+ INDEX ix = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ const BASE x_real = CONST_REAL(X, ix);
+ const BASE x_imag = CONST_IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + j);
+ const BASE A_imag = CONST_IMAG(A, lda * i + j);
+
+ dotR += A_real * x_real - A_imag * x_imag;
+ dotI += A_real * x_imag + A_imag * x_real;
+ ix += incX;
+ }
+
+ REAL(Y, iy) += alpha_real * dotR - alpha_imag * dotI;
+ IMAG(Y, iy) += alpha_real * dotI + alpha_imag * dotR;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && TransA == CblasTrans)
+ || (order == CblasColMajor && TransA == CblasNoTrans)) {
+ /* form y := alpha*A'*x + y */
+ INDEX ix = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ BASE x_real = CONST_REAL(X, ix);
+ BASE x_imag = CONST_IMAG(X, ix);
+ BASE tmpR = alpha_real * x_real - alpha_imag * x_imag;
+ BASE tmpI = alpha_real * x_imag + alpha_imag * x_real;
+
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ const BASE A_real = CONST_REAL(A, lda * j + i);
+ const BASE A_imag = CONST_IMAG(A, lda * j + i);
+ REAL(Y, iy) += A_real * tmpR - A_imag * tmpI;
+ IMAG(Y, iy) += A_real * tmpI + A_imag * tmpR;
+ iy += incY;
+ }
+ ix += incX;
+ }
+ } else if (order == CblasRowMajor && TransA == CblasConjTrans) {
+ /* form y := alpha*A^H*x + y */
+ INDEX ix = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ BASE x_real = CONST_REAL(X, ix);
+ BASE x_imag = CONST_IMAG(X, ix);
+ BASE tmpR = alpha_real * x_real - alpha_imag * x_imag;
+ BASE tmpI = alpha_real * x_imag + alpha_imag * x_real;
+
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ const BASE A_real = CONST_REAL(A, lda * j + i);
+ const BASE A_imag = CONST_IMAG(A, lda * j + i);
+ REAL(Y, iy) += A_real * tmpR - (-A_imag) * tmpI;
+ IMAG(Y, iy) += A_real * tmpI + (-A_imag) * tmpR;
+ iy += incY;
+ }
+ ix += incX;
+ }
+ } else if (order == CblasColMajor && TransA == CblasConjTrans) {
+ /* form y := alpha*A^H*x + y */
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ BASE dotR = 0.0;
+ BASE dotI = 0.0;
+ INDEX ix = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ const BASE x_real = CONST_REAL(X, ix);
+ const BASE x_imag = CONST_IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + j);
+ const BASE A_imag = CONST_IMAG(A, lda * i + j);
+
+ dotR += A_real * x_real - (-A_imag) * x_imag;
+ dotI += A_real * x_imag + (-A_imag) * x_real;
+ ix += incX;
+ }
+
+ REAL(Y, iy) += alpha_real * dotR - alpha_imag * dotI;
+ IMAG(Y, iy) += alpha_real * dotI + alpha_imag * dotR;
+ iy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+
+}
diff --git a/gsl-1.9/cblas/source_gemv_r.h b/gsl-1.9/cblas/source_gemv_r.h
new file mode 100644
index 0000000..6f2bbd2
--- /dev/null
+++ b/gsl-1.9/cblas/source_gemv_r.h
@@ -0,0 +1,90 @@
+/* blas/source_gemv_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ INDEX lenX, lenY;
+
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+
+ if (M == 0 || N == 0)
+ return;
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ if (Trans == CblasNoTrans) {
+ lenX = N;
+ lenY = M;
+ } else {
+ lenX = M;
+ lenY = N;
+ }
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ Y[iy] = 0.0;
+ iy += incY;
+ }
+ } else if (beta != 1.0) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ Y[iy] *= beta;
+ iy += incY;
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans)
+ || (order == CblasColMajor && Trans == CblasTrans)) {
+ /* form y := alpha*A*x + y */
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ BASE temp = 0.0;
+ INDEX ix = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ temp += X[ix] * A[lda * i + j];
+ ix += incX;
+ }
+ Y[iy] += alpha * temp;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans)
+ || (order == CblasColMajor && Trans == CblasNoTrans)) {
+ /* form y := alpha*A'*x + y */
+ INDEX ix = OFFSET(lenX, incX);
+ for (j = 0; j < lenX; j++) {
+ const BASE temp = alpha * X[ix];
+ if (temp != 0.0) {
+ INDEX iy = OFFSET(lenY, incY);
+ for (i = 0; i < lenY; i++) {
+ Y[iy] += temp * A[lda * j + i];
+ iy += incY;
+ }
+ }
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_ger.h b/gsl-1.9/cblas/source_ger.h
new file mode 100644
index 0000000..9e314f3
--- /dev/null
+++ b/gsl-1.9/cblas/source_ger.h
@@ -0,0 +1,48 @@
+/* blas/source_ger.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ if (order == CblasRowMajor) {
+ INDEX ix = OFFSET(M, incX);
+ for (i = 0; i < M; i++) {
+ const BASE tmp = alpha * X[ix];
+ INDEX jy = OFFSET(N, incY);
+ for (j = 0; j < N; j++) {
+ A[lda * i + j] += Y[jy] * tmp;
+ jy += incY;
+ }
+ ix += incX;
+ }
+ } else if (order == CblasColMajor) {
+ INDEX jy = OFFSET(N, incY);
+ for (j = 0; j < N; j++) {
+ const BASE tmp = alpha * Y[jy];
+ INDEX ix = OFFSET(M, incX);
+ for (i = 0; i < M; i++) {
+ A[i + lda * j] += X[ix] * tmp;
+ ix += incX;
+ }
+ jy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_gerc.h b/gsl-1.9/cblas/source_gerc.h
new file mode 100644
index 0000000..3ee58bc
--- /dev/null
+++ b/gsl-1.9/cblas/source_gerc.h
@@ -0,0 +1,63 @@
+/* blas/source_gerc.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (order == CblasRowMajor) {
+ INDEX ix = OFFSET(M, incX);
+ for (i = 0; i < M; i++) {
+ const BASE X_real = CONST_REAL(X, ix);
+ const BASE X_imag = CONST_IMAG(X, ix);
+ const BASE tmp_real = alpha_real * X_real - alpha_imag * X_imag;
+ const BASE tmp_imag = alpha_imag * X_real + alpha_real * X_imag;
+ INDEX jy = OFFSET(N, incY);
+ for (j = 0; j < N; j++) {
+ const BASE Y_real = CONST_REAL(Y, jy);
+ const BASE Y_imag = -CONST_IMAG(Y, jy);
+ REAL(A, lda * i + j) += Y_real * tmp_real - Y_imag * tmp_imag;
+ IMAG(A, lda * i + j) += Y_imag * tmp_real + Y_real * tmp_imag;
+ jy += incY;
+ }
+ ix += incX;
+ }
+ } else if (order == CblasColMajor) {
+ INDEX jy = OFFSET(N, incY);
+ for (j = 0; j < N; j++) {
+ const BASE Y_real = CONST_REAL(Y, jy);
+ const BASE Y_imag = -CONST_IMAG(Y, jy);
+ const BASE tmp_real = alpha_real * Y_real - alpha_imag * Y_imag;
+ const BASE tmp_imag = alpha_imag * Y_real + alpha_real * Y_imag;
+ INDEX ix = OFFSET(M, incX);
+ for (i = 0; i < M; i++) {
+ const BASE X_real = CONST_REAL(X, ix);
+ const BASE X_imag = CONST_IMAG(X, ix);
+ REAL(A, i + lda * j) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(A, i + lda * j) += X_imag * tmp_real + X_real * tmp_imag;
+ ix += incX;
+ }
+ jy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_geru.h b/gsl-1.9/cblas/source_geru.h
new file mode 100644
index 0000000..73d4948
--- /dev/null
+++ b/gsl-1.9/cblas/source_geru.h
@@ -0,0 +1,62 @@
+/* blas/source_geru.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (order == CblasRowMajor) {
+ INDEX ix = OFFSET(M, incX);
+ for (i = 0; i < M; i++) {
+ const BASE X_real = CONST_REAL(X, ix);
+ const BASE X_imag = CONST_IMAG(X, ix);
+ const BASE tmp_real = alpha_real * X_real - alpha_imag * X_imag;
+ const BASE tmp_imag = alpha_imag * X_real + alpha_real * X_imag;
+ INDEX jy = OFFSET(N, incY);
+ for (j = 0; j < N; j++) {
+ const BASE Y_real = CONST_REAL(Y, jy);
+ const BASE Y_imag = CONST_IMAG(Y, jy);
+ REAL(A, lda * i + j) += Y_real * tmp_real - Y_imag * tmp_imag;
+ IMAG(A, lda * i + j) += Y_imag * tmp_real + Y_real * tmp_imag;
+ jy += incY;
+ }
+ ix += incX;
+ }
+ } else if (order == CblasColMajor) {
+ INDEX jy = OFFSET(N, incY);
+ for (j = 0; j < N; j++) {
+ const BASE Y_real = CONST_REAL(Y, jy);
+ const BASE Y_imag = CONST_IMAG(Y, jy);
+ const BASE tmp_real = alpha_real * Y_real - alpha_imag * Y_imag;
+ const BASE tmp_imag = alpha_imag * Y_real + alpha_real * Y_imag;
+ INDEX ix = OFFSET(M, incX);
+ for (i = 0; i < M; i++) {
+ const BASE X_real = CONST_REAL(X, ix);
+ const BASE X_imag = CONST_IMAG(X, ix);
+ REAL(A, i + lda * j) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(A, i + lda * j) += X_imag * tmp_real + X_real * tmp_imag;
+ ix += incX;
+ }
+ jy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_hbmv.h b/gsl-1.9/cblas/source_hbmv.h
new file mode 100644
index 0000000..28ee607
--- /dev/null
+++ b/gsl-1.9/cblas/source_hbmv.h
@@ -0,0 +1,145 @@
+/* blas/source_hbmv.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ const int conj = (order == CblasColMajor) ? -1 : 1;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if (N == 0)
+ return;
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ /* form y := beta*y */
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ REAL(Y, iy) = 0.0;
+ IMAG(Y, iy) = 0.0;
+ iy += incY;
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE y_real = REAL(Y, iy);
+ const BASE y_imag = IMAG(Y, iy);
+ const BASE tmpR = y_real * beta_real - y_imag * beta_imag;
+ const BASE tmpI = y_real * beta_imag + y_imag * beta_real;
+ REAL(Y, iy) = tmpR;
+ IMAG(Y, iy) = tmpI;
+ iy += incY;
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ /* form y := alpha*A*x + y */
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ BASE x_real = CONST_REAL(X, ix);
+ BASE x_imag = CONST_IMAG(X, ix);
+ BASE temp1_real = alpha_real * x_real - alpha_imag * x_imag;
+ BASE temp1_imag = alpha_real * x_imag + alpha_imag * x_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ BASE Aii_real = CONST_REAL(A, lda * i + 0);
+ /* Aii_imag is zero */
+ REAL(Y, iy) += temp1_real * Aii_real;
+ IMAG(Y, iy) += temp1_imag * Aii_real;
+ for (j = j_min; j < j_max; j++) {
+ BASE Aij_real = CONST_REAL(A, lda * i + (j - i));
+ BASE Aij_imag = conj * CONST_IMAG(A, lda * i + (j - i));
+ REAL(Y, jy) += temp1_real * Aij_real - temp1_imag * (-Aij_imag);
+ IMAG(Y, jy) += temp1_real * (-Aij_imag) + temp1_imag * Aij_real;
+ x_real = CONST_REAL(X, jx);
+ x_imag = CONST_IMAG(X, jx);
+ temp2_real += x_real * Aij_real - x_imag * Aij_imag;
+ temp2_imag += x_real * Aij_imag + x_imag * Aij_real;
+ jx += incX;
+ jy += incY;
+ }
+ REAL(Y, iy) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(Y, iy) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ BASE x_real = CONST_REAL(X, ix);
+ BASE x_imag = CONST_IMAG(X, ix);
+ BASE temp1_real = alpha_real * x_real - alpha_imag * x_imag;
+ BASE temp1_imag = alpha_real * x_imag + alpha_imag * x_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ const INDEX j_min = (K > i ? 0 : i - K);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+
+ for (j = j_min; j < j_max; j++) {
+ BASE Aij_real = CONST_REAL(A, i * lda + (K - i + j));
+ BASE Aij_imag = conj * CONST_IMAG(A, i * lda + (K - i + j));
+ REAL(Y, jy) += temp1_real * Aij_real - temp1_imag * (-Aij_imag);
+ IMAG(Y, jy) += temp1_real * (-Aij_imag) + temp1_imag * Aij_real;
+ x_real = CONST_REAL(X, jx);
+ x_imag = CONST_IMAG(X, jx);
+ temp2_real += x_real * Aij_real - x_imag * Aij_imag;
+ temp2_imag += x_real * Aij_imag + x_imag * Aij_real;
+ jx += incX;
+ jy += incY;
+ }
+
+ {
+ BASE Aii_real = CONST_REAL(A, lda * i + K);
+ /* Aii_imag is zero */
+ REAL(Y, iy) += temp1_real * Aii_real;
+ IMAG(Y, iy) += temp1_imag * Aii_real;
+ }
+
+ REAL(Y, iy) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(Y, iy) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ ix += incX;
+ iy += incY;
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+
+}
diff --git a/gsl-1.9/cblas/source_hemm.h b/gsl-1.9/cblas/source_hemm.h
new file mode 100644
index 0000000..c1ea5a5
--- /dev/null
+++ b/gsl-1.9/cblas/source_hemm.h
@@ -0,0 +1,204 @@
+/* blas/source_hemm.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ int uplo, side;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ uplo = Uplo;
+ side = Side;
+ } else {
+ n1 = N;
+ n2 = M;
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ side = (Side == CblasLeft) ? CblasRight : CblasLeft;
+ }
+
+ /* form y := beta*y */
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Cij_real = REAL(C, ldc * i + j);
+ const BASE Cij_imag = IMAG(C, ldc * i + j);
+ REAL(C, ldc * i + j) = beta_real * Cij_real - beta_imag * Cij_imag;
+ IMAG(C, ldc * i + j) = beta_real * Cij_imag + beta_imag * Cij_real;
+ }
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if (side == CblasLeft && uplo == CblasUpper) {
+
+ /* form C := alpha*A*B + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = CONST_REAL(B, ldb * i + j);
+ const BASE Bij_imag = CONST_IMAG(B, ldb * i + j);
+ const BASE temp1_real = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ const BASE temp1_imag = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ {
+ const BASE Aii_real = CONST_REAL(A, i * lda + i);
+ /* const BASE Aii_imag = 0.0; */
+ REAL(C, i * ldc + j) += temp1_real * Aii_real;
+ IMAG(C, i * ldc + j) += temp1_imag * Aii_real;
+ }
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Bkj_real = CONST_REAL(B, ldb * k + j);
+ const BASE Bkj_imag = CONST_IMAG(B, ldb * k + j);
+ REAL(C, k * ldc + j) += Aik_real * temp1_real - (-Aik_imag) * temp1_imag;
+ IMAG(C, k * ldc + j) += Aik_real * temp1_imag + (-Aik_imag) * temp1_real;
+ temp2_real += Aik_real * Bkj_real - Aik_imag * Bkj_imag;
+ temp2_imag += Aik_real * Bkj_imag + Aik_imag * Bkj_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasLower) {
+
+ /* form C := alpha*A*B + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = CONST_REAL(B, ldb * i + j);
+ const BASE Bij_imag = CONST_IMAG(B, ldb * i + j);
+ const BASE temp1_real = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ const BASE temp1_imag = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ for (k = 0; k < i; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Bkj_real = CONST_REAL(B, ldb * k + j);
+ const BASE Bkj_imag = CONST_IMAG(B, ldb * k + j);
+ REAL(C, k * ldc + j) += Aik_real * temp1_real - (-Aik_imag) * temp1_imag;
+ IMAG(C, k * ldc + j) += Aik_real * temp1_imag + (-Aik_imag) * temp1_real;
+ temp2_real += Aik_real * Bkj_real - Aik_imag * Bkj_imag;
+ temp2_imag += Aik_real * Bkj_imag + Aik_imag * Bkj_real;
+ }
+ {
+ const BASE Aii_real = CONST_REAL(A, i * lda + i);
+ /* const BASE Aii_imag = 0.0; */
+ REAL(C, i * ldc + j) += temp1_real * Aii_real;
+ IMAG(C, i * ldc + j) += temp1_imag * Aii_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper) {
+
+ /* form C := alpha*B*A + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = CONST_REAL(B, ldb * i + j);
+ const BASE Bij_imag = CONST_IMAG(B, ldb * i + j);
+ const BASE temp1_real = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ const BASE temp1_imag = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ {
+ const BASE Ajj_real = CONST_REAL(A, j * lda + j);
+ /* const BASE Ajj_imag = 0.0; */
+ REAL(C, i * ldc + j) += temp1_real * Ajj_real;
+ IMAG(C, i * ldc + j) += temp1_imag * Ajj_real;
+ }
+ for (k = j + 1; k < n2; k++) {
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ const BASE Bik_real = CONST_REAL(B, ldb * i + k);
+ const BASE Bik_imag = CONST_IMAG(B, ldb * i + k);
+ REAL(C, i * ldc + k) += temp1_real * Ajk_real - temp1_imag * Ajk_imag;
+ IMAG(C, i * ldc + k) += temp1_real * Ajk_imag + temp1_imag * Ajk_real;
+ temp2_real += Bik_real * Ajk_real - Bik_imag * (-Ajk_imag);
+ temp2_imag += Bik_real * (-Ajk_imag) + Bik_imag * Ajk_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower) {
+
+ /* form C := alpha*B*A + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = CONST_REAL(B, ldb * i + j);
+ const BASE Bij_imag = CONST_IMAG(B, ldb * i + j);
+ const BASE temp1_real = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ const BASE temp1_imag = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ for (k = 0; k < j; k++) {
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ const BASE Bik_real = CONST_REAL(B, ldb * i + k);
+ const BASE Bik_imag = CONST_IMAG(B, ldb * i + k);
+ REAL(C, i * ldc + k) += temp1_real * Ajk_real - temp1_imag * Ajk_imag;
+ IMAG(C, i * ldc + k) += temp1_real * Ajk_imag + temp1_imag * Ajk_real;
+ temp2_real += Bik_real * Ajk_real - Bik_imag * (-Ajk_imag);
+ temp2_imag += Bik_real * (-Ajk_imag) + Bik_imag * Ajk_real;
+ }
+ {
+ const BASE Ajj_real = CONST_REAL(A, j * lda + j);
+ /* const BASE Ajj_imag = 0.0; */
+ REAL(C, i * ldc + j) += temp1_real * Ajj_real;
+ IMAG(C, i * ldc + j) += temp1_imag * Ajj_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_hemv.h b/gsl-1.9/cblas/source_hemv.h
new file mode 100644
index 0000000..5ba35e6
--- /dev/null
+++ b/gsl-1.9/cblas/source_hemv.h
@@ -0,0 +1,136 @@
+/* blas/source_hemv.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (order == CblasColMajor) ? -1 : 1;
+ INDEX i, j;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ /* form y := beta*y */
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ REAL(Y, iy) = 0.0;
+ IMAG(Y, iy) = 0.0;
+ iy += incY;
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE y_real = REAL(Y, iy);
+ const BASE y_imag = IMAG(Y, iy);
+ const BASE tmpR = y_real * beta_real - y_imag * beta_imag;
+ const BASE tmpI = y_real * beta_imag + y_imag * beta_real;
+ REAL(Y, iy) = tmpR;
+ IMAG(Y, iy) = tmpI;
+ iy += incY;
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ /* form y := alpha*A*x + y */
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ BASE x_real = CONST_REAL(X, ix);
+ BASE x_imag = CONST_IMAG(X, ix);
+ BASE temp1_real = alpha_real * x_real - alpha_imag * x_imag;
+ BASE temp1_imag = alpha_real * x_imag + alpha_imag * x_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = N;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ BASE Aii_real = CONST_REAL(A, lda * i + i);
+ /* Aii_imag is zero */
+ REAL(Y, iy) += temp1_real * Aii_real;
+ IMAG(Y, iy) += temp1_imag * Aii_real;
+ for (j = j_min; j < j_max; j++) {
+ BASE Aij_real = CONST_REAL(A, lda * i + j);
+ BASE Aij_imag = conj * CONST_IMAG(A, lda * i + j);
+ REAL(Y, jy) += temp1_real * Aij_real - temp1_imag * (-Aij_imag);
+ IMAG(Y, jy) += temp1_real * (-Aij_imag) + temp1_imag * Aij_real;
+ x_real = CONST_REAL(X, jx);
+ x_imag = CONST_IMAG(X, jx);
+ temp2_real += x_real * Aij_real - x_imag * Aij_imag;
+ temp2_imag += x_real * Aij_imag + x_imag * Aij_real;
+ jx += incX;
+ jy += incY;
+ }
+ REAL(Y, iy) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(Y, iy) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ INDEX iy = OFFSET(N, incY) + (N - 1) * incY;
+ for (i = N; i > 0 && i--;) {
+ BASE x_real = CONST_REAL(X, ix);
+ BASE x_imag = CONST_IMAG(X, ix);
+ BASE temp1_real = alpha_real * x_real - alpha_imag * x_imag;
+ BASE temp1_imag = alpha_real * x_imag + alpha_imag * x_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ const INDEX j_min = 0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ BASE Aii_real = CONST_REAL(A, lda * i + i);
+ /* Aii_imag is zero */
+ REAL(Y, iy) += temp1_real * Aii_real;
+ IMAG(Y, iy) += temp1_imag * Aii_real;
+
+ for (j = j_min; j < j_max; j++) {
+ BASE Aij_real = CONST_REAL(A, lda * i + j);
+ BASE Aij_imag = conj * CONST_IMAG(A, lda * i + j);
+ REAL(Y, jy) += temp1_real * Aij_real - temp1_imag * (-Aij_imag);
+ IMAG(Y, jy) += temp1_real * (-Aij_imag) + temp1_imag * Aij_real;
+ x_real = CONST_REAL(X, jx);
+ x_imag = CONST_IMAG(X, jx);
+ temp2_real += x_real * Aij_real - x_imag * Aij_imag;
+ temp2_imag += x_real * Aij_imag + x_imag * Aij_real;
+ jx += incX;
+ jy += incY;
+ }
+ REAL(Y, iy) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(Y, iy) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ ix -= incX;
+ iy -= incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_her.h b/gsl-1.9/cblas/source_her.h
new file mode 100644
index 0000000..6fa08d8
--- /dev/null
+++ b/gsl-1.9/cblas/source_her.h
@@ -0,0 +1,80 @@
+/* blas/source_her.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (order == CblasColMajor) ? -1 : 1;
+ INDEX i, j;
+
+ if (alpha == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE tmp_real = alpha * CONST_REAL(X, ix);
+ const BASE tmp_imag = alpha * conj * CONST_IMAG(X, ix);
+ INDEX jx = ix;
+
+ {
+ const BASE X_real = CONST_REAL(X, jx);
+ const BASE X_imag = -conj * CONST_IMAG(X, jx);
+ REAL(A, lda * i + i) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(A, lda * i + i) = 0;
+ jx += incX;
+ }
+
+ for (j = i + 1; j < N; j++) {
+ const BASE X_real = CONST_REAL(X, jx);
+ const BASE X_imag = -conj * CONST_IMAG(X, jx);
+ REAL(A, lda * i + j) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(A, lda * i + j) += X_imag * tmp_real + X_real * tmp_imag;
+ jx += incX;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE tmp_real = alpha * CONST_REAL(X, ix);
+ const BASE tmp_imag = alpha * conj * CONST_IMAG(X, ix);
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE X_real = CONST_REAL(X, jx);
+ const BASE X_imag = -conj * CONST_IMAG(X, jx);
+ REAL(A, lda * i + j) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(A, lda * i + j) += X_imag * tmp_real + X_real * tmp_imag;
+ jx += incX;
+ }
+
+ {
+ const BASE X_real = CONST_REAL(X, jx);
+ const BASE X_imag = -conj * CONST_IMAG(X, jx);
+ REAL(A, lda * i + i) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(A, lda * i + i) = 0;
+ jx += incX;
+ }
+
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_her2.h b/gsl-1.9/cblas/source_her2.h
new file mode 100644
index 0000000..78793f3
--- /dev/null
+++ b/gsl-1.9/cblas/source_her2.h
@@ -0,0 +1,115 @@
+/* blas/source_her2.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (order == CblasColMajor) ? -1 : 1;
+ INDEX i, j;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE Xi_real = CONST_REAL(X, ix);
+ const BASE Xi_imag = CONST_IMAG(X, ix);
+ /* tmp1 = alpha Xi */
+ const BASE tmp1_real = alpha_real * Xi_real - alpha_imag * Xi_imag;
+ const BASE tmp1_imag = alpha_imag * Xi_real + alpha_real * Xi_imag;
+
+ const BASE Yi_real = CONST_REAL(Y, iy);
+ const BASE Yi_imag = CONST_IMAG(Y, iy);
+ /* tmp2 = conj(alpha) Yi */
+ const BASE tmp2_real = alpha_real * Yi_real + alpha_imag * Yi_imag;
+ const BASE tmp2_imag = -alpha_imag * Yi_real + alpha_real * Yi_imag;
+
+ INDEX jx = ix + incX;
+ INDEX jy = iy + incY;
+
+ /* Aij = alpha*Xi*conj(Yj) + conj(alpha)*Yi*conj(Xj) */
+
+ REAL(A, lda * i + i) += 2 * (tmp1_real * Yi_real + tmp1_imag * Yi_imag);
+ IMAG(A, lda * i + i) = 0;
+
+ for (j = i + 1; j < N; j++) {
+ const BASE Xj_real = CONST_REAL(X, jx);
+ const BASE Xj_imag = CONST_IMAG(X, jx);
+ const BASE Yj_real = CONST_REAL(Y, jy);
+ const BASE Yj_imag = CONST_IMAG(Y, jy);
+ REAL(A, lda * i + j) += ((tmp1_real * Yj_real + tmp1_imag * Yj_imag)
+ + (tmp2_real * Xj_real + tmp2_imag * Xj_imag));
+ IMAG(A, lda * i + j) +=
+ conj * ((tmp1_imag * Yj_real - tmp1_real * Yj_imag) +
+ (tmp2_imag * Xj_real - tmp2_real * Xj_imag));
+ jx += incX;
+ jy += incY;
+ }
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE Xi_real = CONST_REAL(X, ix);
+ const BASE Xi_imag = CONST_IMAG(X, ix);
+ const BASE tmp1_real = alpha_real * Xi_real - alpha_imag * Xi_imag;
+ const BASE tmp1_imag = alpha_imag * Xi_real + alpha_real * Xi_imag;
+
+ const BASE Yi_real = CONST_REAL(Y, iy);
+ const BASE Yi_imag = CONST_IMAG(Y, iy);
+ const BASE tmp2_real = alpha_real * Yi_real + alpha_imag * Yi_imag;
+ const BASE tmp2_imag = -alpha_imag * Yi_real + alpha_real * Yi_imag;
+
+ INDEX jx = OFFSET(N, incX);
+ INDEX jy = OFFSET(N, incY);
+
+ /* Aij = alpha*Xi*conj(Yj) + conj(alpha)*Yi*conj(Xj) */
+
+ for (j = 0; j < i; j++) {
+ const BASE Xj_real = CONST_REAL(X, jx);
+ const BASE Xj_imag = CONST_IMAG(X, jx);
+ const BASE Yj_real = CONST_REAL(Y, jy);
+ const BASE Yj_imag = CONST_IMAG(Y, jy);
+ REAL(A, lda * i + j) += ((tmp1_real * Yj_real + tmp1_imag * Yj_imag)
+ + (tmp2_real * Xj_real + tmp2_imag * Xj_imag));
+ IMAG(A, lda * i + j) +=
+ conj * ((tmp1_imag * Yj_real - tmp1_real * Yj_imag) +
+ (tmp2_imag * Xj_real - tmp2_real * Xj_imag));
+ jx += incX;
+ jy += incY;
+ }
+
+ REAL(A, lda * i + i) += 2 * (tmp1_real * Yi_real + tmp1_imag * Yi_imag);
+ IMAG(A, lda * i + i) = 0;
+
+ ix += incX;
+ iy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_her2k.h b/gsl-1.9/cblas/source_her2k.h
new file mode 100644
index 0000000..5ec7ef1
--- /dev/null
+++ b/gsl-1.9/cblas/source_her2k.h
@@ -0,0 +1,269 @@
+/* blas/source_her2k_c.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ int uplo, trans;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (beta == 1.0 && ((alpha_real == 0.0 && alpha_imag == 0.0) || K == 0))
+ return;
+
+ if (Order == CblasRowMajor) {
+ uplo = Uplo;
+ trans = Trans;
+ } else {
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ trans = (Trans == CblasNoTrans) ? CblasConjTrans : CblasNoTrans;
+ alpha_imag *= -1; /* conjugate alpha */
+ }
+
+ /* form C := beta*C */
+
+ if (beta == 0.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ }
+ } else if (beta != 1.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ REAL(C, ldc * i + i) *= beta;
+ IMAG(C, ldc * i + i) = 0.0;
+ for (j = i + 1; j < N; j++) {
+ REAL(C, ldc * i + j) *= beta;
+ IMAG(C, ldc * i + j) *= beta;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j < i; j++) {
+ REAL(C, ldc * i + j) *= beta;
+ IMAG(C, ldc * i + j) *= beta;
+ }
+ REAL(C, ldc * i + i) *= beta;
+ IMAG(C, ldc * i + i) = 0.0;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ IMAG(C, ldc * i + i) = 0.0;
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if (uplo == CblasUpper && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+
+ /* Cii += alpha Aik conj(Bik) + conj(alpha) Bik conj(Aik) */
+ {
+ BASE temp_real = 0.0;
+ /* BASE temp_imag = 0.0; */
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ /* temp1 = alpha * Aik */
+ const BASE temp1_real = alpha_real * Aik_real - alpha_imag * Aik_imag;
+ const BASE temp1_imag = alpha_real * Aik_imag + alpha_imag * Aik_real;
+ const BASE Bik_real = CONST_REAL(B, i * ldb + k);
+ const BASE Bik_imag = CONST_IMAG(B, i * ldb + k);
+ temp_real += temp1_real * Bik_real + temp1_imag * Bik_imag;
+ }
+
+ REAL(C, i * ldc + i) += 2 * temp_real;
+ IMAG(C, i * ldc + i) = 0.0;
+ }
+
+ /* Cij += alpha Aik conj(Bjk) + conj(alpha) Bik conj(Ajk) */
+ for (j = i + 1; j < N; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ /* temp1 = alpha * Aik */
+ const BASE temp1_real = alpha_real * Aik_real - alpha_imag * Aik_imag;
+ const BASE temp1_imag = alpha_real * Aik_imag + alpha_imag * Aik_real;
+ const BASE Bik_real = CONST_REAL(B, i * ldb + k);
+ const BASE Bik_imag = CONST_IMAG(B, i * ldb + k);
+
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ /* temp2 = alpha * Ajk */
+ const BASE temp2_real = alpha_real * Ajk_real - alpha_imag * Ajk_imag;
+ const BASE temp2_imag = alpha_real * Ajk_imag + alpha_imag * Ajk_real;
+ const BASE Bjk_real = CONST_REAL(B, j * ldb + k);
+ const BASE Bjk_imag = CONST_IMAG(B, j * ldb + k);
+
+ /* Cij += alpha * Aik * conj(Bjk) + conj(alpha) * Bik * conj(Ajk) */
+ temp_real += ((temp1_real * Bjk_real + temp1_imag * Bjk_imag)
+ + (Bik_real * temp2_real + Bik_imag * temp2_imag));
+ temp_imag += ((temp1_real * (-Bjk_imag) + temp1_imag * Bjk_real)
+ + (Bik_real * (-temp2_imag) + Bik_imag * temp2_real));
+ }
+ REAL(C, i * ldc + j) += temp_real;
+ IMAG(C, i * ldc + j) += temp_imag;
+ }
+ }
+
+ } else if (uplo == CblasUpper && trans == CblasConjTrans) {
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < N; i++) {
+ BASE Aki_real = CONST_REAL(A, k * lda + i);
+ BASE Aki_imag = CONST_IMAG(A, k * lda + i);
+ BASE Bki_real = CONST_REAL(B, k * ldb + i);
+ BASE Bki_imag = CONST_IMAG(B, k * ldb + i);
+ /* temp1 = alpha * conj(Aki) */
+ BASE temp1_real = alpha_real * Aki_real - alpha_imag * (-Aki_imag);
+ BASE temp1_imag = alpha_real * (-Aki_imag) + alpha_imag * Aki_real;
+ /* temp2 = conj(alpha) * conj(Bki) */
+ BASE temp2_real = alpha_real * Bki_real - alpha_imag * Bki_imag;
+ BASE temp2_imag = -(alpha_real * Bki_imag + alpha_imag * Bki_real);
+
+ /* Cii += alpha * conj(Aki) * Bki + conj(alpha) * conj(Bki) * Aki */
+ {
+ REAL(C, i * lda + i) += 2 * (temp1_real * Bki_real - temp1_imag * Bki_imag);
+ IMAG(C, i * lda + i) = 0.0;
+ }
+
+ for (j = i + 1; j < N; j++) {
+ BASE Akj_real = CONST_REAL(A, k * lda + j);
+ BASE Akj_imag = CONST_IMAG(A, k * lda + j);
+ BASE Bkj_real = CONST_REAL(B, k * ldb + j);
+ BASE Bkj_imag = CONST_IMAG(B, k * ldb + j);
+ /* Cij += alpha * conj(Aki) * Bkj + conj(alpha) * conj(Bki) * Akj */
+ REAL(C, i * lda + j) += (temp1_real * Bkj_real - temp1_imag * Bkj_imag)
+ + (temp2_real * Akj_real - temp2_imag * Akj_imag);
+ IMAG(C, i * lda + j) += (temp1_real * Bkj_imag + temp1_imag * Bkj_real)
+ + (temp2_real * Akj_imag + temp2_imag * Akj_real);
+ }
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+
+ /* Cij += alpha Aik conj(Bjk) + conj(alpha) Bik conj(Ajk) */
+
+ for (j = 0; j < i; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ /* temp1 = alpha * Aik */
+ const BASE temp1_real = alpha_real * Aik_real - alpha_imag * Aik_imag;
+ const BASE temp1_imag = alpha_real * Aik_imag + alpha_imag * Aik_real;
+ const BASE Bik_real = CONST_REAL(B, i * ldb + k);
+ const BASE Bik_imag = CONST_IMAG(B, i * ldb + k);
+
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ /* temp2 = alpha * Ajk */
+ const BASE temp2_real = alpha_real * Ajk_real - alpha_imag * Ajk_imag;
+ const BASE temp2_imag = alpha_real * Ajk_imag + alpha_imag * Ajk_real;
+ const BASE Bjk_real = CONST_REAL(B, j * ldb + k);
+ const BASE Bjk_imag = CONST_IMAG(B, j * ldb + k);
+
+ /* Cij += alpha * Aik * conj(Bjk) + conj(alpha) * Bik * conj(Ajk) */
+ temp_real += ((temp1_real * Bjk_real + temp1_imag * Bjk_imag)
+ + (Bik_real * temp2_real + Bik_imag * temp2_imag));
+ temp_imag += ((temp1_real * (-Bjk_imag) + temp1_imag * Bjk_real)
+ + (Bik_real * (-temp2_imag) + Bik_imag * temp2_real));
+ }
+ REAL(C, i * ldc + j) += temp_real;
+ IMAG(C, i * ldc + j) += temp_imag;
+ }
+
+ /* Cii += alpha Aik conj(Bik) + conj(alpha) Bik conj(Aik) */
+ {
+ BASE temp_real = 0.0;
+ /* BASE temp_imag = 0.0; */
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ /* temp1 = alpha * Aik */
+ const BASE temp1_real = alpha_real * Aik_real - alpha_imag * Aik_imag;
+ const BASE temp1_imag = alpha_real * Aik_imag + alpha_imag * Aik_real;
+ const BASE Bik_real = CONST_REAL(B, i * ldb + k);
+ const BASE Bik_imag = CONST_IMAG(B, i * ldb + k);
+ temp_real += temp1_real * Bik_real + temp1_imag * Bik_imag;
+ }
+
+ REAL(C, i * ldc + i) += 2 * temp_real;
+ IMAG(C, i * ldc + i) = 0.0;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasConjTrans) {
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < N; i++) {
+ BASE Aki_real = CONST_REAL(A, k * lda + i);
+ BASE Aki_imag = CONST_IMAG(A, k * lda + i);
+ BASE Bki_real = CONST_REAL(B, k * ldb + i);
+ BASE Bki_imag = CONST_IMAG(B, k * ldb + i);
+ /* temp1 = alpha * conj(Aki) */
+ BASE temp1_real = alpha_real * Aki_real - alpha_imag * (-Aki_imag);
+ BASE temp1_imag = alpha_real * (-Aki_imag) + alpha_imag * Aki_real;
+ /* temp2 = conj(alpha) * conj(Bki) */
+ BASE temp2_real = alpha_real * Bki_real - alpha_imag * Bki_imag;
+ BASE temp2_imag = -(alpha_real * Bki_imag + alpha_imag * Bki_real);
+
+ for (j = 0; j < i; j++) {
+ BASE Akj_real = CONST_REAL(A, k * lda + j);
+ BASE Akj_imag = CONST_IMAG(A, k * lda + j);
+ BASE Bkj_real = CONST_REAL(B, k * ldb + j);
+ BASE Bkj_imag = CONST_IMAG(B, k * ldb + j);
+ /* Cij += alpha * conj(Aki) * Bkj + conj(alpha) * conj(Bki) * Akj */
+ REAL(C, i * lda + j) += (temp1_real * Bkj_real - temp1_imag * Bkj_imag)
+ + (temp2_real * Akj_real - temp2_imag * Akj_imag);
+ IMAG(C, i * lda + j) += (temp1_real * Bkj_imag + temp1_imag * Bkj_real)
+ + (temp2_real * Akj_imag + temp2_imag * Akj_real);
+ }
+
+ /* Cii += alpha * conj(Aki) * Bki + conj(alpha) * conj(Bki) * Aki */
+ {
+ REAL(C, i * lda + i) += 2 * (temp1_real * Bki_real - temp1_imag * Bki_imag);
+ IMAG(C, i * lda + i) = 0.0;
+ }
+ }
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_herk.h b/gsl-1.9/cblas/source_herk.h
new file mode 100644
index 0000000..cfa67e4
--- /dev/null
+++ b/gsl-1.9/cblas/source_herk.h
@@ -0,0 +1,161 @@
+/* blas/source_herk.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ int uplo, trans;
+
+ if (beta == 1.0 && (alpha == 0.0 || K == 0))
+ return;
+
+ if (Order == CblasRowMajor) {
+ uplo = Uplo;
+ trans = Trans;
+ } else {
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ trans = (Trans == CblasNoTrans) ? CblasConjTrans : CblasNoTrans;
+ }
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ }
+ } else if (beta != 1.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ REAL(C, ldc * i + i) *= beta;
+ IMAG(C, ldc * i + i) = 0;
+ for (j = i + 1; j < N; j++) {
+ REAL(C, ldc * i + j) *= beta;
+ IMAG(C, ldc * i + j) *= beta;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j < i; j++) {
+ REAL(C, ldc * i + j) *= beta;
+ IMAG(C, ldc * i + j) *= beta;
+ }
+ REAL(C, ldc * i + i) *= beta;
+ IMAG(C, ldc * i + i) = 0;
+ }
+ }
+ } else {
+ /* set imaginary part of Aii to zero */
+ for (i = 0; i < N; i++) {
+ IMAG(C, ldc * i + i) = 0.0;
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ if (uplo == CblasUpper && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = -CONST_IMAG(A, j * lda + k);
+ temp_real += Aik_real * Ajk_real - Aik_imag * Ajk_imag;
+ temp_imag += Aik_real * Ajk_imag + Aik_imag * Ajk_real;
+ }
+ REAL(C, i * ldc + j) += alpha * temp_real;
+ IMAG(C, i * ldc + j) += alpha * temp_imag;
+ }
+ }
+
+ } else if (uplo == CblasUpper && trans == CblasConjTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aki_real = CONST_REAL(A, k * lda + i);
+ const BASE Aki_imag = -CONST_IMAG(A, k * lda + i);
+ const BASE Akj_real = CONST_REAL(A, k * lda + j);
+ const BASE Akj_imag = CONST_IMAG(A, k * lda + j);
+ temp_real += Aki_real * Akj_real - Aki_imag * Akj_imag;
+ temp_imag += Aki_real * Akj_imag + Aki_imag * Akj_real;
+ }
+ REAL(C, i * ldc + j) += alpha * temp_real;
+ IMAG(C, i * ldc + j) += alpha * temp_imag;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = -CONST_IMAG(A, j * lda + k);
+ temp_real += Aik_real * Ajk_real - Aik_imag * Ajk_imag;
+ temp_imag += Aik_real * Ajk_imag + Aik_imag * Ajk_real;
+ }
+ REAL(C, i * ldc + j) += alpha * temp_real;
+ IMAG(C, i * ldc + j) += alpha * temp_imag;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasConjTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aki_real = CONST_REAL(A, k * lda + i);
+ const BASE Aki_imag = -CONST_IMAG(A, k * lda + i);
+ const BASE Akj_real = CONST_REAL(A, k * lda + j);
+ const BASE Akj_imag = CONST_IMAG(A, k * lda + j);
+ temp_real += Aki_real * Akj_real - Aki_imag * Akj_imag;
+ temp_imag += Aki_real * Akj_imag + Aki_imag * Akj_real;
+ }
+ REAL(C, i * ldc + j) += alpha * temp_real;
+ IMAG(C, i * ldc + j) += alpha * temp_imag;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_hpmv.h b/gsl-1.9/cblas/source_hpmv.h
new file mode 100644
index 0000000..8878231
--- /dev/null
+++ b/gsl-1.9/cblas/source_hpmv.h
@@ -0,0 +1,138 @@
+/* blas/source_hpmv.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (order == CblasColMajor) ? -1 : 1;
+ INDEX i, j;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ /* form y := beta*y */
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ REAL(Y, iy) = 0.0;
+ IMAG(Y, iy) = 0.0;
+ iy += incY;
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE y_real = REAL(Y, iy);
+ const BASE y_imag = IMAG(Y, iy);
+ const BASE tmpR = y_real * beta_real - y_imag * beta_imag;
+ const BASE tmpI = y_real * beta_imag + y_imag * beta_real;
+ REAL(Y, iy) = tmpR;
+ IMAG(Y, iy) = tmpI;
+ iy += incY;
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ /* form y := alpha*A*x + y */
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ BASE x_real = CONST_REAL(X, ix);
+ BASE x_imag = CONST_IMAG(X, ix);
+ BASE temp1_real = alpha_real * x_real - alpha_imag * x_imag;
+ BASE temp1_imag = alpha_real * x_imag + alpha_imag * x_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = N;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ BASE Aii_real = CONST_REAL(Ap, TPUP(N, i, i));
+ /* Aii_imag is zero */
+ REAL(Y, iy) += temp1_real * Aii_real;
+ IMAG(Y, iy) += temp1_imag * Aii_real;
+ for (j = j_min; j < j_max; j++) {
+ BASE Aij_real = CONST_REAL(Ap, TPUP(N, i, j));
+ BASE Aij_imag = conj * CONST_IMAG(Ap, TPUP(N, i, j));
+ REAL(Y, jy) += temp1_real * Aij_real - temp1_imag * (-Aij_imag);
+ IMAG(Y, jy) += temp1_real * (-Aij_imag) + temp1_imag * Aij_real;
+ x_real = CONST_REAL(X, jx);
+ x_imag = CONST_IMAG(X, jx);
+ temp2_real += x_real * Aij_real - x_imag * Aij_imag;
+ temp2_imag += x_real * Aij_imag + x_imag * Aij_real;
+ jx += incX;
+ jy += incY;
+ }
+ REAL(Y, iy) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(Y, iy) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ BASE x_real = CONST_REAL(X, ix);
+ BASE x_imag = CONST_IMAG(X, ix);
+ BASE temp1_real = alpha_real * x_real - alpha_imag * x_imag;
+ BASE temp1_imag = alpha_real * x_imag + alpha_imag * x_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ const INDEX j_min = 0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ BASE Aii_real = CONST_REAL(Ap, TPLO(N, i, i));
+ /* Aii_imag is zero */
+ REAL(Y, iy) += temp1_real * Aii_real;
+ IMAG(Y, iy) += temp1_imag * Aii_real;
+ for (j = j_min; j < j_max; j++) {
+ BASE Aij_real = CONST_REAL(Ap, TPLO(N, i, j));
+ BASE Aij_imag = conj * CONST_IMAG(Ap, TPLO(N, i, j));
+ REAL(Y, jy) += temp1_real * Aij_real - temp1_imag * (-Aij_imag);
+ IMAG(Y, jy) += temp1_real * (-Aij_imag) + temp1_imag * Aij_real;
+ x_real = CONST_REAL(X, jx);
+ x_imag = CONST_IMAG(X, jx);
+ temp2_real += x_real * Aij_real - x_imag * Aij_imag;
+ temp2_imag += x_real * Aij_imag + x_imag * Aij_real;
+ jx += incX;
+ jy += incY;
+ }
+ REAL(Y, iy) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(Y, iy) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ ix += incX;
+ iy += incY;
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_hpr.h b/gsl-1.9/cblas/source_hpr.h
new file mode 100644
index 0000000..5eb93aa
--- /dev/null
+++ b/gsl-1.9/cblas/source_hpr.h
@@ -0,0 +1,80 @@
+/* blas/source_hpr.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (order == CblasColMajor) ? -1 : 1;
+ INDEX i, j;
+
+ if (alpha == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE tmp_real = alpha * CONST_REAL(X, ix);
+ const BASE tmp_imag = alpha * conj * CONST_IMAG(X, ix);
+ INDEX jx = ix;
+
+ {
+ const BASE X_real = CONST_REAL(X, jx);
+ const BASE X_imag = -conj * CONST_IMAG(X, jx);
+ REAL(Ap, TPUP(N, i, i)) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(Ap, TPUP(N, i, i)) = 0;
+ jx += incX;
+ }
+
+ for (j = i + 1; j < N; j++) {
+ const BASE X_real = CONST_REAL(X, jx);
+ const BASE X_imag = -conj * CONST_IMAG(X, jx);
+ REAL(Ap, TPUP(N, i, j)) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(Ap, TPUP(N, i, j)) += X_imag * tmp_real + X_real * tmp_imag;
+ jx += incX;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE tmp_real = alpha * CONST_REAL(X, ix);
+ const BASE tmp_imag = alpha * conj * CONST_IMAG(X, ix);
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE X_real = CONST_REAL(X, jx);
+ const BASE X_imag = -conj * CONST_IMAG(X, jx);
+ REAL(Ap, TPLO(N, i, j)) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(Ap, TPLO(N, i, j)) += X_imag * tmp_real + X_real * tmp_imag;
+ jx += incX;
+ }
+
+ {
+ const BASE X_real = CONST_REAL(X, jx);
+ const BASE X_imag = -conj * CONST_IMAG(X, jx);
+ REAL(Ap, TPLO(N, i, i)) += X_real * tmp_real - X_imag * tmp_imag;
+ IMAG(Ap, TPLO(N, i, i)) = 0;
+ jx += incX;
+ }
+
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_hpr2.h b/gsl-1.9/cblas/source_hpr2.h
new file mode 100644
index 0000000..ecc9db1
--- /dev/null
+++ b/gsl-1.9/cblas/source_hpr2.h
@@ -0,0 +1,115 @@
+/* blas/source_hpr2.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (order == CblasColMajor) ? -1 : 1;
+ INDEX i, j;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE Xi_real = CONST_REAL(X, ix);
+ const BASE Xi_imag = CONST_IMAG(X, ix);
+ /* tmp1 = alpha Xi */
+ const BASE tmp1_real = alpha_real * Xi_real - alpha_imag * Xi_imag;
+ const BASE tmp1_imag = alpha_imag * Xi_real + alpha_real * Xi_imag;
+
+ const BASE Yi_real = CONST_REAL(Y, iy);
+ const BASE Yi_imag = CONST_IMAG(Y, iy);
+ /* tmp2 = conj(alpha) Yi */
+ const BASE tmp2_real = alpha_real * Yi_real + alpha_imag * Yi_imag;
+ const BASE tmp2_imag = -alpha_imag * Yi_real + alpha_real * Yi_imag;
+
+ INDEX jx = ix + incX;
+ INDEX jy = iy + incY;
+
+ /* Aij = alpha*Xi*conj(Yj) + conj(alpha)*Yi*conj(Xj) */
+
+ REAL(Ap, TPUP(N, i, i)) += 2 * (tmp1_real * Yi_real + tmp1_imag * Yi_imag);
+ IMAG(Ap, TPUP(N, i, i)) = 0;
+
+ for (j = i + 1; j < N; j++) {
+ const BASE Xj_real = CONST_REAL(X, jx);
+ const BASE Xj_imag = CONST_IMAG(X, jx);
+ const BASE Yj_real = CONST_REAL(Y, jy);
+ const BASE Yj_imag = CONST_IMAG(Y, jy);
+ REAL(Ap, TPUP(N, i, j)) += ((tmp1_real * Yj_real + tmp1_imag * Yj_imag)
+ + (tmp2_real * Xj_real + tmp2_imag * Xj_imag));
+ IMAG(Ap, TPUP(N, i, j)) +=
+ conj * ((tmp1_imag * Yj_real - tmp1_real * Yj_imag) +
+ (tmp2_imag * Xj_real - tmp2_real * Xj_imag));
+ jx += incX;
+ jy += incY;
+ }
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE Xi_real = CONST_REAL(X, ix);
+ const BASE Xi_imag = CONST_IMAG(X, ix);
+ const BASE tmp1_real = alpha_real * Xi_real - alpha_imag * Xi_imag;
+ const BASE tmp1_imag = alpha_imag * Xi_real + alpha_real * Xi_imag;
+
+ const BASE Yi_real = CONST_REAL(Y, iy);
+ const BASE Yi_imag = CONST_IMAG(Y, iy);
+ const BASE tmp2_real = alpha_real * Yi_real + alpha_imag * Yi_imag;
+ const BASE tmp2_imag = -alpha_imag * Yi_real + alpha_real * Yi_imag;
+
+ INDEX jx = OFFSET(N, incX);
+ INDEX jy = OFFSET(N, incY);
+
+ /* Aij = alpha*Xi*conj(Yj) + conj(alpha)*Yi*conj(Xj) */
+
+ for (j = 0; j < i; j++) {
+ const BASE Xj_real = CONST_REAL(X, jx);
+ const BASE Xj_imag = CONST_IMAG(X, jx);
+ const BASE Yj_real = CONST_REAL(Y, jy);
+ const BASE Yj_imag = CONST_IMAG(Y, jy);
+ REAL(Ap, TPLO(N, i, j)) += ((tmp1_real * Yj_real + tmp1_imag * Yj_imag)
+ + (tmp2_real * Xj_real + tmp2_imag * Xj_imag));
+ IMAG(Ap, TPLO(N, i, j)) +=
+ conj * ((tmp1_imag * Yj_real - tmp1_real * Yj_imag) +
+ (tmp2_imag * Xj_real - tmp2_real * Xj_imag));
+ jx += incX;
+ jy += incY;
+ }
+
+ REAL(Ap, TPLO(N, i, i)) += 2 * (tmp1_real * Yi_real + tmp1_imag * Yi_imag);
+ IMAG(Ap, TPLO(N, i, i)) = 0;
+
+ ix += incX;
+ iy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_iamax_c.h b/gsl-1.9/cblas/source_iamax_c.h
new file mode 100644
index 0000000..d6840a5
--- /dev/null
+++ b/gsl-1.9/cblas/source_iamax_c.h
@@ -0,0 +1,41 @@
+/* blas/source_iamax_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ BASE max = 0.0;
+ INDEX ix = 0;
+ INDEX i;
+ CBLAS_INDEX result = 0;
+
+ if (incX <= 0) {
+ return 0;
+ }
+
+ for (i = 0; i < N; i++) {
+ const BASE a = fabs(CONST_REAL(X, ix)) + fabs(CONST_IMAG(X, ix));
+
+ if (a > max) {
+ max = a;
+ result = i;
+ }
+ ix += incX;
+ }
+
+ return result;
+}
diff --git a/gsl-1.9/cblas/source_iamax_r.h b/gsl-1.9/cblas/source_iamax_r.h
new file mode 100644
index 0000000..a7e4133
--- /dev/null
+++ b/gsl-1.9/cblas/source_iamax_r.h
@@ -0,0 +1,39 @@
+/* blas/source_iamax_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ BASE max = 0.0;
+ INDEX ix = 0;
+ INDEX i;
+ CBLAS_INDEX result = 0;
+
+ if (incX <= 0) {
+ return 0;
+ }
+
+ for (i = 0; i < N; i++) {
+ if (fabs(X[ix]) > max) {
+ max = fabs(X[ix]);
+ result = i;
+ }
+ ix += incX;
+ }
+
+ return result;
+}
diff --git a/gsl-1.9/cblas/source_nrm2_c.h b/gsl-1.9/cblas/source_nrm2_c.h
new file mode 100644
index 0000000..7bd37ed
--- /dev/null
+++ b/gsl-1.9/cblas/source_nrm2_c.h
@@ -0,0 +1,60 @@
+/* blas/source_nrm2_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ BASE scale = 0.0;
+ BASE ssq = 1.0;
+ INDEX i;
+ INDEX ix = 0;
+
+ if (N == 0 || incX < 1) {
+ return 0;
+ }
+
+ for (i = 0; i < N; i++) {
+ const BASE x = CONST_REAL(X, ix);
+ const BASE y = CONST_IMAG(X, ix);
+
+ if (x != 0.0) {
+ const BASE ax = fabs(x);
+
+ if (scale < ax) {
+ ssq = 1.0 + ssq * (scale / ax) * (scale / ax);
+ scale = ax;
+ } else {
+ ssq += (ax / scale) * (ax / scale);
+ }
+ }
+
+ if (y != 0.0) {
+ const BASE ay = fabs(y);
+
+ if (scale < ay) {
+ ssq = 1.0 + ssq * (scale / ay) * (scale / ay);
+ scale = ay;
+ } else {
+ ssq += (ay / scale) * (ay / scale);
+ }
+ }
+
+ ix += incX;
+ }
+
+ return scale * sqrt(ssq);
+}
diff --git a/gsl-1.9/cblas/source_nrm2_r.h b/gsl-1.9/cblas/source_nrm2_r.h
new file mode 100644
index 0000000..d2beb3a
--- /dev/null
+++ b/gsl-1.9/cblas/source_nrm2_r.h
@@ -0,0 +1,50 @@
+/* blas/source_nrm2_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ BASE scale = 0.0;
+ BASE ssq = 1.0;
+ INDEX i;
+ INDEX ix = 0;
+
+ if (N <= 0 || incX <= 0) {
+ return 0;
+ } else if (N == 1) {
+ return fabs(X[0]);
+ }
+
+ for (i = 0; i < N; i++) {
+ const BASE x = X[ix];
+
+ if (x != 0.0) {
+ const BASE ax = fabs(x);
+
+ if (scale < ax) {
+ ssq = 1.0 + ssq * (scale / ax) * (scale / ax);
+ scale = ax;
+ } else {
+ ssq += (ax / scale) * (ax / scale);
+ }
+ }
+
+ ix += incX;
+ }
+
+ return scale * sqrt(ssq);
+}
diff --git a/gsl-1.9/cblas/source_rot.h b/gsl-1.9/cblas/source_rot.h
new file mode 100644
index 0000000..1015a4c
--- /dev/null
+++ b/gsl-1.9/cblas/source_rot.h
@@ -0,0 +1,32 @@
+/* blas/source_rot.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE x = X[ix];
+ const BASE y = Y[iy];
+ X[ix] = c * x + s * y;
+ Y[iy] = -s * x + c * y;
+ ix += incX;
+ iy += incY;
+ }
+}
diff --git a/gsl-1.9/cblas/source_rotg.h b/gsl-1.9/cblas/source_rotg.h
new file mode 100644
index 0000000..24589e2
--- /dev/null
+++ b/gsl-1.9/cblas/source_rotg.h
@@ -0,0 +1,46 @@
+/* blas/source_rotg.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const BASE roe = (fabs(*a) > fabs(*b) ? *a : *b);
+ const BASE scale = fabs(*a) + fabs(*b);
+ BASE r, z;
+
+ if (scale != 0.0) {
+ const BASE aos = *a / scale;
+ const BASE bos = *b / scale;
+ r = scale * sqrt(aos * aos + bos * bos);
+ r = GSL_SIGN(roe) * r;
+ *c = *a / r;
+ *s = *b / r;
+ z = 1.0;
+ if (fabs(*a) > fabs(*b))
+ z = *s;
+ if (fabs(*b) >= fabs(*a) && *c != 0.0)
+ z = 1.0 / (*c);
+ } else {
+ *c = 1.0;
+ *s = 0.0;
+ r = 0.0;
+ z = 0.0;
+ }
+
+ *a = r;
+ *b = z;
+}
diff --git a/gsl-1.9/cblas/source_rotm.h b/gsl-1.9/cblas/source_rotm.h
new file mode 100644
index 0000000..942616a
--- /dev/null
+++ b/gsl-1.9/cblas/source_rotm.h
@@ -0,0 +1,58 @@
+/* blas/source_rotmg.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX n;
+ INDEX i = OFFSET(N, incX);
+ INDEX j = OFFSET(N, incY);
+
+ BASE h11, h21, h12, h22;
+
+ if (P[0] == -1.0) {
+ h11 = P[1];
+ h21 = P[2];
+ h12 = P[3];
+ h22 = P[4];
+ } else if (P[0] == 0.0) {
+ h11 = 1.0;
+ h21 = P[2];
+ h12 = P[3];
+ h22 = 1.0;
+ } else if (P[0] == 1.0) {
+ h11 = P[1];
+ h21 = -1.0;
+ h12 = 1.0;
+ h22 = P[4];
+ } else if (P[0] == -2.0) {
+ return;
+ } else {
+ BLAS_ERROR("unrecognized value of P[0]");
+ return;
+ }
+
+ for (n = 0; n < N; n++) {
+ const BASE w = X[i];
+ const BASE z = Y[j];
+ X[i] = h11 * w + h12 * z;
+ Y[j] = h21 * w + h22 * z;
+ i += incX;
+ j += incY;
+ }
+
+}
diff --git a/gsl-1.9/cblas/source_rotmg.h b/gsl-1.9/cblas/source_rotmg.h
new file mode 100644
index 0000000..7a41538
--- /dev/null
+++ b/gsl-1.9/cblas/source_rotmg.h
@@ -0,0 +1,162 @@
+/* blas/source_rotmg.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const BASE G = 4096.0, G2 = G * G;
+ BASE D1 = *d1, D2 = *d2, x = *b1, y = b2;
+ BASE h11, h12, h21, h22, u;
+
+ BASE c, s;
+
+ /* case of d1 < 0, appendix A, second to last paragraph */
+
+ if (D1 < 0.0) {
+ P[0] = -1;
+ P[1] = 0;
+ P[2] = 0;
+ P[3] = 0;
+ P[4] = 0;
+ *d1 = 0;
+ *d2 = 0;
+ *b1 = 0;
+ return;
+ }
+
+ if (D2 * y == 0.0) {
+ P[0] = -2; /* case of H = I, page 315 */
+ return;
+ }
+
+ c = fabs(D1 * x * x);
+ s = fabs(D2 * y * y);
+
+ if (c > s) {
+ /* case of equation A6 */
+
+ P[0] = 0.0;
+
+ h11 = 1;
+ h12 = (D2 * y) / (D1 * x);
+ h21 = -y / x;
+ h22 = 1;
+
+ u = 1 - h21 * h12;
+
+ if (u <= 0.0) { /* the case u <= 0 is rejected */
+ P[0] = -1;
+ P[1] = 0;
+ P[2] = 0;
+ P[3] = 0;
+ P[4] = 0;
+ *d1 = 0;
+ *d2 = 0;
+ *b1 = 0;
+ return;
+ }
+
+ D1 /= u;
+ D2 /= u;
+ x *= u;
+ } else {
+ /* case of equation A7 */
+
+ if (D2 * y * y < 0.0) {
+ P[0] = -1;
+ P[1] = 0;
+ P[2] = 0;
+ P[3] = 0;
+ P[4] = 0;
+ *d1 = 0;
+ *d2 = 0;
+ *b1 = 0;
+ return;
+ }
+
+ P[0] = 1;
+
+ h11 = (D1 * x) / (D2 * y);
+ h12 = 1;
+ h21 = -1;
+ h22 = x / y;
+
+ u = 1 + h11 * h22;
+
+ D1 /= u;
+ D2 /= u;
+
+ {
+ BASE tmp = D2;
+ D2 = D1;
+ D1 = tmp;
+ }
+
+ x = y * u;
+ }
+
+ /* rescale D1 to range [1/G2,G2] */
+
+ while (D1 <= 1.0 / G2 && D1 != 0.0) {
+ P[0] = -1;
+ D1 *= G2;
+ x /= G;
+ h11 /= G;
+ h12 /= G;
+ }
+
+ while (D1 >= G2) {
+ P[0] = -1;
+ D1 /= G2;
+ x *= G;
+ h11 *= G;
+ h12 *= G;
+ }
+
+ /* rescale D2 to range [1/G2,G2] */
+
+ while (fabs(D2) <= 1.0 / G2 && D2 != 0.0) {
+ P[0] = -1;
+ D2 *= G2;
+ h21 /= G;
+ h22 /= G;
+ }
+
+ while (fabs(D2) >= G2) {
+ P[0] = -1;
+ D2 /= G2;
+ h21 *= G;
+ h22 *= G;
+ }
+
+ *d1 = D1;
+ *d2 = D2;
+ *b1 = x;
+
+ if (P[0] == -1.0) {
+ P[1] = h11;
+ P[2] = h21;
+ P[3] = h12;
+ P[4] = h22;
+ } else if (P[0] == 0.0) {
+ P[2] = h21;
+ P[3] = h12;
+ } else if (P[0] == 1.0) {
+ P[1] = h11;
+ P[4] = h22;
+ }
+}
diff --git a/gsl-1.9/cblas/source_sbmv.h b/gsl-1.9/cblas/source_sbmv.h
new file mode 100644
index 0000000..144fc1d
--- /dev/null
+++ b/gsl-1.9/cblas/source_sbmv.h
@@ -0,0 +1,100 @@
+/* blas/source_sbmv.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ if (N == 0)
+ return;
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ Y[iy] = 0.0;
+ iy += incY;
+ }
+ } else if (beta != 1.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ Y[iy] *= beta;
+ iy += incY;
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ /* form y := alpha*A*x + y */
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+
+ for (i = 0; i < N; i++) {
+ BASE tmp1 = alpha * X[ix];
+ BASE tmp2 = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ Y[iy] += tmp1 * A[0 + i * lda];
+ for (j = j_min; j < j_max; j++) {
+ BASE Aij = A[(j - i) + i * lda];
+ Y[jy] += tmp1 * Aij;
+ tmp2 += Aij * X[jx];
+ jx += incX;
+ jy += incY;
+ }
+ Y[iy] += alpha * tmp2;
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+
+ for (i = 0; i < N; i++) {
+ BASE tmp1 = alpha * X[ix];
+ BASE tmp2 = 0.0;
+ const INDEX j_min = (i > K) ? i - K : 0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ for (j = j_min; j < j_max; j++) {
+ BASE Aij = A[(K - i + j) + i * lda];
+ Y[jy] += tmp1 * Aij;
+ tmp2 += Aij * X[jx];
+ jx += incX;
+ jy += incY;
+ }
+ Y[iy] += tmp1 * A[K + i * lda] + alpha * tmp2;
+ ix += incX;
+ iy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+
+}
diff --git a/gsl-1.9/cblas/source_scal_c.h b/gsl-1.9/cblas/source_scal_c.h
new file mode 100644
index 0000000..9a5826b
--- /dev/null
+++ b/gsl-1.9/cblas/source_scal_c.h
@@ -0,0 +1,39 @@
+/* blas/source_scal_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix;
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (incX <= 0) {
+ return;
+ }
+
+ ix = OFFSET(N, incX);
+
+ for (i = 0; i < N; i++) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ REAL(X, ix) = x_real * alpha_real - x_imag * alpha_imag;
+ IMAG(X, ix) = x_real * alpha_imag + x_imag * alpha_real;
+ ix += incX;
+ }
+}
diff --git a/gsl-1.9/cblas/source_scal_c_s.h b/gsl-1.9/cblas/source_scal_c_s.h
new file mode 100644
index 0000000..d8a07d4
--- /dev/null
+++ b/gsl-1.9/cblas/source_scal_c_s.h
@@ -0,0 +1,35 @@
+/* blas/source_scal_c_s.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix;
+
+ if (incX <= 0) {
+ return;
+ }
+
+ ix = OFFSET(N, incX);
+
+ for (i = 0; i < N; i++) {
+ REAL(X, ix) *= alpha;
+ IMAG(X, ix) *= alpha;
+ ix += incX;
+ }
+}
diff --git a/gsl-1.9/cblas/source_scal_r.h b/gsl-1.9/cblas/source_scal_r.h
new file mode 100644
index 0000000..60947f8
--- /dev/null
+++ b/gsl-1.9/cblas/source_scal_r.h
@@ -0,0 +1,34 @@
+/* blas/source_scal_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix;
+
+ if (incX <= 0) {
+ return;
+ }
+
+ ix = OFFSET(N, incX);
+
+ for (i = 0; i < N; i++) {
+ X[ix] *= alpha;
+ ix += incX;
+ }
+}
diff --git a/gsl-1.9/cblas/source_spmv.h b/gsl-1.9/cblas/source_spmv.h
new file mode 100644
index 0000000..8ee0c73
--- /dev/null
+++ b/gsl-1.9/cblas/source_spmv.h
@@ -0,0 +1,101 @@
+/* blas/source_spmv.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ Y[iy] = 0.0;
+ iy += incY;
+ }
+ } else if (beta != 1.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ Y[iy] *= beta;
+ iy += incY;
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ /* form y := alpha*A*x + y */
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ BASE tmp1 = alpha * X[ix];
+ BASE tmp2 = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = N;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+
+ Y[iy] += tmp1 * Ap[TPUP(N, i, i)];
+
+ for (j = j_min; j < j_max; j++) {
+ const BASE apk = Ap[TPUP(N, i, j)];
+ Y[jy] += tmp1 * apk;
+ tmp2 += apk * X[jx];
+ jy += incY;
+ jx += incX;
+ }
+ Y[iy] += alpha * tmp2;
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ BASE tmp1 = alpha * X[ix];
+ BASE tmp2 = 0.0;
+
+ const INDEX j_min = 0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+
+ Y[iy] += tmp1 * Ap[TPLO(N, i, i)];
+
+ for (j = j_min; j < j_max; j++) {
+ const BASE apk = Ap[TPLO(N, i, j)];
+ Y[jy] += tmp1 * apk;
+ tmp2 += apk * X[jx];
+ jy += incY;
+ jx += incX;
+ }
+ Y[iy] += alpha * tmp2;
+ ix += incX;
+ iy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_spr.h b/gsl-1.9/cblas/source_spr.h
new file mode 100644
index 0000000..025fdd8
--- /dev/null
+++ b/gsl-1.9/cblas/source_spr.h
@@ -0,0 +1,56 @@
+/* blas/source_spr.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ if (N == 0)
+ return;
+
+ if (alpha == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE tmp = alpha * X[ix];
+ INDEX jx = ix;
+ for (j = i; j < N; j++) {
+ Ap[TPUP(N, i, j)] += X[jx] * tmp;
+ jx += incX;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE tmp = alpha * X[ix];
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j <= i; j++) {
+ Ap[TPLO(N, i, j)] += X[jx] * tmp;
+ jx += incX;
+ }
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_spr2.h b/gsl-1.9/cblas/source_spr2.h
new file mode 100644
index 0000000..2e48fba
--- /dev/null
+++ b/gsl-1.9/cblas/source_spr2.h
@@ -0,0 +1,66 @@
+/* blas/source_spr2.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ if (N == 0)
+ return;
+
+ if (alpha == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE tmp1 = alpha * X[ix];
+ const BASE tmp2 = alpha * Y[iy];
+ INDEX jx = ix;
+ INDEX jy = iy;
+ for (j = i; j < N; j++) {
+ Ap[TPUP(N, i, j)] += tmp1 * Y[jy] + tmp2 * X[jx];
+ jx += incX;
+ jy += incY;
+ }
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE tmp1 = alpha * X[ix];
+ const BASE tmp2 = alpha * Y[iy];
+ INDEX jx = OFFSET(N, incX);
+ INDEX jy = OFFSET(N, incY);
+ for (j = 0; j <= i; j++) {
+ Ap[TPLO(N, i, j)] += tmp1 * Y[jy] + tmp2 * X[jx];
+ jx += incX;
+ jy += incY;
+ }
+ ix += incX;
+ iy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_swap_c.h b/gsl-1.9/cblas/source_swap_c.h
new file mode 100644
index 0000000..81660a1
--- /dev/null
+++ b/gsl-1.9/cblas/source_swap_c.h
@@ -0,0 +1,35 @@
+/* blas/source_swap_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+
+ for (i = 0; i < N; i++) {
+ const BASE tmp_real = REAL(X, ix);
+ const BASE tmp_imag = IMAG(X, ix);
+ REAL(X, ix) = REAL(Y, iy);
+ IMAG(X, ix) = IMAG(Y, iy);
+ REAL(Y, iy) = tmp_real;
+ IMAG(Y, iy) = tmp_imag;
+ ix += incX;
+ iy += incY;
+ }
+}
diff --git a/gsl-1.9/cblas/source_swap_r.h b/gsl-1.9/cblas/source_swap_r.h
new file mode 100644
index 0000000..77ffe33
--- /dev/null
+++ b/gsl-1.9/cblas/source_swap_r.h
@@ -0,0 +1,31 @@
+/* blas/source_swap_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i;
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE tmp = X[ix];
+ X[ix] = Y[iy];
+ Y[iy] = tmp;
+ ix += incX;
+ iy += incY;
+ }
+}
diff --git a/gsl-1.9/cblas/source_symm_c.h b/gsl-1.9/cblas/source_symm_c.h
new file mode 100644
index 0000000..8959dcc
--- /dev/null
+++ b/gsl-1.9/cblas/source_symm_c.h
@@ -0,0 +1,203 @@
+/* blas/source_symm_c.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ int uplo, side;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ uplo = Uplo;
+ side = Side;
+ } else {
+ n1 = N;
+ n2 = M;
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ side = (Side == CblasLeft) ? CblasRight : CblasLeft;
+ }
+
+ /* form y := beta*y */
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Cij_real = REAL(C, ldc * i + j);
+ const BASE Cij_imag = IMAG(C, ldc * i + j);
+ REAL(C, ldc * i + j) = beta_real * Cij_real - beta_imag * Cij_imag;
+ IMAG(C, ldc * i + j) = beta_real * Cij_imag + beta_imag * Cij_real;
+ }
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if (side == CblasLeft && uplo == CblasUpper) {
+
+ /* form C := alpha*A*B + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = CONST_REAL(B, ldb * i + j);
+ const BASE Bij_imag = CONST_IMAG(B, ldb * i + j);
+ const BASE temp1_real = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ const BASE temp1_imag = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ {
+ const BASE Aii_real = CONST_REAL(A, i * lda + i);
+ const BASE Aii_imag = CONST_IMAG(A, i * lda + i);
+ REAL(C, i * ldc + j) += temp1_real * Aii_real - temp1_imag * Aii_imag;
+ IMAG(C, i * ldc + j) += temp1_real * Aii_imag + temp1_imag * Aii_real;
+ }
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Bkj_real = CONST_REAL(B, ldb * k + j);
+ const BASE Bkj_imag = CONST_IMAG(B, ldb * k + j);
+ REAL(C, k * ldc + j) += Aik_real * temp1_real - Aik_imag * temp1_imag;
+ IMAG(C, k * ldc + j) += Aik_real * temp1_imag + Aik_imag * temp1_real;
+ temp2_real += Aik_real * Bkj_real - Aik_imag * Bkj_imag;
+ temp2_imag += Aik_real * Bkj_imag + Aik_imag * Bkj_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasLower) {
+
+ /* form C := alpha*A*B + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = CONST_REAL(B, ldb * i + j);
+ const BASE Bij_imag = CONST_IMAG(B, ldb * i + j);
+ const BASE temp1_real = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ const BASE temp1_imag = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ for (k = 0; k < i; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Bkj_real = CONST_REAL(B, ldb * k + j);
+ const BASE Bkj_imag = CONST_IMAG(B, ldb * k + j);
+ REAL(C, k * ldc + j) += Aik_real * temp1_real - Aik_imag * temp1_imag;
+ IMAG(C, k * ldc + j) += Aik_real * temp1_imag + Aik_imag * temp1_real;
+ temp2_real += Aik_real * Bkj_real - Aik_imag * Bkj_imag;
+ temp2_imag += Aik_real * Bkj_imag + Aik_imag * Bkj_real;
+ }
+ {
+ const BASE Aii_real = CONST_REAL(A, i * lda + i);
+ const BASE Aii_imag = CONST_IMAG(A, i * lda + i);
+ REAL(C, i * ldc + j) += temp1_real * Aii_real - temp1_imag * Aii_imag;
+ IMAG(C, i * ldc + j) += temp1_real * Aii_imag + temp1_imag * Aii_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper) {
+
+ /* form C := alpha*B*A + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = CONST_REAL(B, ldb * i + j);
+ const BASE Bij_imag = CONST_IMAG(B, ldb * i + j);
+ const BASE temp1_real = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ const BASE temp1_imag = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ {
+ const BASE Ajj_real = CONST_REAL(A, j * lda + j);
+ const BASE Ajj_imag = CONST_IMAG(A, j * lda + j);
+ REAL(C, i * ldc + j) += temp1_real * Ajj_real - temp1_imag * Ajj_imag;
+ IMAG(C, i * ldc + j) += temp1_real * Ajj_imag + temp1_imag * Ajj_real;
+ }
+ for (k = j + 1; k < n2; k++) {
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ const BASE Bik_real = CONST_REAL(B, ldb * i + k);
+ const BASE Bik_imag = CONST_IMAG(B, ldb * i + k);
+ REAL(C, i * ldc + k) += temp1_real * Ajk_real - temp1_imag * Ajk_imag;
+ IMAG(C, i * ldc + k) += temp1_real * Ajk_imag + temp1_imag * Ajk_real;
+ temp2_real += Bik_real * Ajk_real - Bik_imag * Ajk_imag;
+ temp2_imag += Bik_real * Ajk_imag + Bik_imag * Ajk_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower) {
+
+ /* form C := alpha*B*A + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = CONST_REAL(B, ldb * i + j);
+ const BASE Bij_imag = CONST_IMAG(B, ldb * i + j);
+ const BASE temp1_real = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ const BASE temp1_imag = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ BASE temp2_real = 0.0;
+ BASE temp2_imag = 0.0;
+ for (k = 0; k < j; k++) {
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ const BASE Bik_real = CONST_REAL(B, ldb * i + k);
+ const BASE Bik_imag = CONST_IMAG(B, ldb * i + k);
+ REAL(C, i * ldc + k) += temp1_real * Ajk_real - temp1_imag * Ajk_imag;
+ IMAG(C, i * ldc + k) += temp1_real * Ajk_imag + temp1_imag * Ajk_real;
+ temp2_real += Bik_real * Ajk_real - Bik_imag * Ajk_imag;
+ temp2_imag += Bik_real * Ajk_imag + Bik_imag * Ajk_real;
+ }
+ {
+ const BASE Ajj_real = CONST_REAL(A, j * lda + j);
+ const BASE Ajj_imag = CONST_IMAG(A, j * lda + j);
+ REAL(C, i * ldc + j) += temp1_real * Ajj_real - temp1_imag * Ajj_imag;
+ IMAG(C, i * ldc + j) += temp1_real * Ajj_imag + temp1_imag * Ajj_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp2_real - alpha_imag * temp2_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp2_imag + alpha_imag * temp2_real;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_symm_r.h b/gsl-1.9/cblas/source_symm_r.h
new file mode 100644
index 0000000..39b1958
--- /dev/null
+++ b/gsl-1.9/cblas/source_symm_r.h
@@ -0,0 +1,131 @@
+/* blas/source_symm_r.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ int uplo, side;
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ uplo = Uplo;
+ side = Side;
+ } else {
+ n1 = N;
+ n2 = M;
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ side = (Side == CblasLeft) ? CblasRight : CblasLeft;
+ }
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ C[ldc * i + j] = 0.0;
+ }
+ }
+ } else if (beta != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ C[ldc * i + j] *= beta;
+ }
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ if (side == CblasLeft && uplo == CblasUpper) {
+
+ /* form C := alpha*A*B + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE temp1 = alpha * B[ldb * i + j];
+ BASE temp2 = 0.0;
+ C[i * ldc + j] += temp1 * A[i * lda + i];
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aik = A[i * lda + k];
+ C[k * ldc + j] += Aik * temp1;
+ temp2 += Aik * B[ldb * k + j];
+ }
+ C[i * ldc + j] += alpha * temp2;
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasLower) {
+
+ /* form C := alpha*A*B + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE temp1 = alpha * B[ldb * i + j];
+ BASE temp2 = 0.0;
+ for (k = 0; k < i; k++) {
+ const BASE Aik = A[i * lda + k];
+ C[k * ldc + j] += Aik * temp1;
+ temp2 += Aik * B[ldb * k + j];
+ }
+ C[i * ldc + j] += temp1 * A[i * lda + i] + alpha * temp2;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper) {
+
+ /* form C := alpha*B*A + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE temp1 = alpha * B[ldb * i + j];
+ BASE temp2 = 0.0;
+ C[i * ldc + j] += temp1 * A[j * lda + j];
+ for (k = j + 1; k < n2; k++) {
+ const BASE Ajk = A[j * lda + k];
+ C[i * ldc + k] += temp1 * Ajk;
+ temp2 += B[ldb * i + k] * Ajk;
+ }
+ C[i * ldc + j] += alpha * temp2;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower) {
+
+ /* form C := alpha*B*A + C */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE temp1 = alpha * B[ldb * i + j];
+ BASE temp2 = 0.0;
+ for (k = 0; k < j; k++) {
+ const BASE Ajk = A[j * lda + k];
+ C[i * ldc + k] += temp1 * Ajk;
+ temp2 += B[ldb * i + k] * Ajk;
+ }
+ C[i * ldc + j] += temp1 * A[j * lda + j] + alpha * temp2;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_symv.h b/gsl-1.9/cblas/source_symv.h
new file mode 100644
index 0000000..57bf302
--- /dev/null
+++ b/gsl-1.9/cblas/source_symv.h
@@ -0,0 +1,93 @@
+/* blas/source_symv.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ Y[iy] = 0.0;
+ iy += incY;
+ }
+ } else if (beta != 1.0) {
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ Y[iy] *= beta;
+ iy += incY;
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ /* form y := alpha*A*x + y */
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ BASE temp1 = alpha * X[ix];
+ BASE temp2 = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = N;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ Y[iy] += temp1 * A[lda * i + i];
+ for (j = j_min; j < j_max; j++) {
+ Y[jy] += temp1 * A[lda * i + j];
+ temp2 += X[jx] * A[lda * i + j];
+ jx += incX;
+ jy += incY;
+ }
+ Y[iy] += alpha * temp2;
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ INDEX iy = OFFSET(N, incY) + (N - 1) * incY;
+ for (i = N; i > 0 && i--;) {
+ BASE temp1 = alpha * X[ix];
+ BASE temp2 = 0.0;
+ const INDEX j_min = 0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ INDEX jy = OFFSET(N, incY) + j_min * incY;
+ Y[iy] += temp1 * A[lda * i + i];
+ for (j = j_min; j < j_max; j++) {
+ Y[jy] += temp1 * A[lda * i + j];
+ temp2 += X[jx] * A[lda * i + j];
+ jx += incX;
+ jy += incY;
+ }
+ Y[iy] += alpha * temp2;
+ ix -= incX;
+ iy -= incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_syr.h b/gsl-1.9/cblas/source_syr.h
new file mode 100644
index 0000000..9d5584b
--- /dev/null
+++ b/gsl-1.9/cblas/source_syr.h
@@ -0,0 +1,56 @@
+/* blas/source_syr.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ if (N == 0)
+ return;
+
+ if (alpha == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE tmp = alpha * X[ix];
+ INDEX jx = ix;
+ for (j = i; j < N; j++) {
+ A[lda * i + j] += X[jx] * tmp;
+ jx += incX;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE tmp = alpha * X[ix];
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j <= i; j++) {
+ A[lda * i + j] += X[jx] * tmp;
+ jx += incX;
+ }
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_syr2.h b/gsl-1.9/cblas/source_syr2.h
new file mode 100644
index 0000000..5bf2cab
--- /dev/null
+++ b/gsl-1.9/cblas/source_syr2.h
@@ -0,0 +1,66 @@
+/* blas/source_syr2.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ if (N == 0)
+ return;
+
+ if (alpha == 0.0)
+ return;
+
+ if ((order == CblasRowMajor && Uplo == CblasUpper)
+ || (order == CblasColMajor && Uplo == CblasLower)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE tmp1 = alpha * X[ix];
+ const BASE tmp2 = alpha * Y[iy];
+ INDEX jx = ix;
+ INDEX jy = iy;
+ for (j = i; j < N; j++) {
+ A[lda * i + j] += tmp1 * Y[jy] + tmp2 * X[jx];
+ jx += incX;
+ jy += incY;
+ }
+ ix += incX;
+ iy += incY;
+ }
+ } else if ((order == CblasRowMajor && Uplo == CblasLower)
+ || (order == CblasColMajor && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ INDEX iy = OFFSET(N, incY);
+ for (i = 0; i < N; i++) {
+ const BASE tmp1 = alpha * X[ix];
+ const BASE tmp2 = alpha * Y[iy];
+ INDEX jx = OFFSET(N, incX);
+ INDEX jy = OFFSET(N, incY);
+ for (j = 0; j <= i; j++) {
+ A[lda * i + j] += tmp1 * Y[jy] + tmp2 * X[jx];
+ jx += incX;
+ jy += incY;
+ }
+ ix += incX;
+ iy += incY;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_syr2k_c.h b/gsl-1.9/cblas/source_syr2k_c.h
new file mode 100644
index 0000000..b49320e
--- /dev/null
+++ b/gsl-1.9/cblas/source_syr2k_c.h
@@ -0,0 +1,190 @@
+/* blas/source_syr2k_c.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ int uplo, trans;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ if (Order == CblasRowMajor) {
+ uplo = Uplo;
+ trans = Trans;
+ } else {
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ trans = (Trans == CblasNoTrans) ? CblasTrans : CblasNoTrans;
+ }
+
+ /* form C := beta*C */
+
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ const BASE Cij_real = REAL(C, ldc * i + j);
+ const BASE Cij_imag = IMAG(C, ldc * i + j);
+ REAL(C, ldc * i + j) = beta_real * Cij_real - beta_imag * Cij_imag;
+ IMAG(C, ldc * i + j) = beta_real * Cij_imag + beta_imag * Cij_real;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ const BASE Cij_real = REAL(C, ldc * i + j);
+ const BASE Cij_imag = IMAG(C, ldc * i + j);
+ REAL(C, ldc * i + j) = beta_real * Cij_real - beta_imag * Cij_imag;
+ IMAG(C, ldc * i + j) = beta_real * Cij_imag + beta_imag * Cij_real;
+ }
+ }
+ }
+ }
+
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if (uplo == CblasUpper && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Bik_real = CONST_REAL(B, i * ldb + k);
+ const BASE Bik_imag = CONST_IMAG(B, i * ldb + k);
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ const BASE Bjk_real = CONST_REAL(B, j * ldb + k);
+ const BASE Bjk_imag = CONST_IMAG(B, j * ldb + k);
+ temp_real += ((Aik_real * Bjk_real - Aik_imag * Bjk_imag)
+ + (Bik_real * Ajk_real - Bik_imag * Ajk_imag));
+ temp_imag += ((Aik_real * Bjk_imag + Aik_imag * Bjk_real)
+ + (Bik_real * Ajk_imag + Bik_imag * Ajk_real));
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (uplo == CblasUpper && trans == CblasTrans) {
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < N; i++) {
+ BASE Aki_real = CONST_REAL(A, k * lda + i);
+ BASE Aki_imag = CONST_IMAG(A, k * lda + i);
+ BASE Bki_real = CONST_REAL(B, k * ldb + i);
+ BASE Bki_imag = CONST_IMAG(B, k * ldb + i);
+ BASE temp1_real = alpha_real * Aki_real - alpha_imag * Aki_imag;
+ BASE temp1_imag = alpha_real * Aki_imag + alpha_imag * Aki_real;
+ BASE temp2_real = alpha_real * Bki_real - alpha_imag * Bki_imag;
+ BASE temp2_imag = alpha_real * Bki_imag + alpha_imag * Bki_real;
+ for (j = i; j < N; j++) {
+ BASE Akj_real = CONST_REAL(A, k * lda + j);
+ BASE Akj_imag = CONST_IMAG(A, k * lda + j);
+ BASE Bkj_real = CONST_REAL(B, k * ldb + j);
+ BASE Bkj_imag = CONST_IMAG(B, k * ldb + j);
+ REAL(C, i * lda + j) += (temp1_real * Bkj_real - temp1_imag * Bkj_imag)
+ + (temp2_real * Akj_real - temp2_imag * Akj_imag);
+ IMAG(C, i * lda + j) += (temp1_real * Bkj_imag + temp1_imag * Bkj_real)
+ + (temp2_real * Akj_imag + temp2_imag * Akj_real);
+ }
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasNoTrans) {
+
+
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Bik_real = CONST_REAL(B, i * ldb + k);
+ const BASE Bik_imag = CONST_IMAG(B, i * ldb + k);
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ const BASE Bjk_real = CONST_REAL(B, j * ldb + k);
+ const BASE Bjk_imag = CONST_IMAG(B, j * ldb + k);
+ temp_real += ((Aik_real * Bjk_real - Aik_imag * Bjk_imag)
+ + (Bik_real * Ajk_real - Bik_imag * Ajk_imag));
+ temp_imag += ((Aik_real * Bjk_imag + Aik_imag * Bjk_real)
+ + (Bik_real * Ajk_imag + Bik_imag * Ajk_real));
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasTrans) {
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < N; i++) {
+ BASE Aki_real = CONST_REAL(A, k * lda + i);
+ BASE Aki_imag = CONST_IMAG(A, k * lda + i);
+ BASE Bki_real = CONST_REAL(B, k * ldb + i);
+ BASE Bki_imag = CONST_IMAG(B, k * ldb + i);
+ BASE temp1_real = alpha_real * Aki_real - alpha_imag * Aki_imag;
+ BASE temp1_imag = alpha_real * Aki_imag + alpha_imag * Aki_real;
+ BASE temp2_real = alpha_real * Bki_real - alpha_imag * Bki_imag;
+ BASE temp2_imag = alpha_real * Bki_imag + alpha_imag * Bki_real;
+ for (j = 0; j <= i; j++) {
+ BASE Akj_real = CONST_REAL(A, k * lda + j);
+ BASE Akj_imag = CONST_IMAG(A, k * lda + j);
+ BASE Bkj_real = CONST_REAL(B, k * ldb + j);
+ BASE Bkj_imag = CONST_IMAG(B, k * ldb + j);
+ REAL(C, i * lda + j) += (temp1_real * Bkj_real - temp1_imag * Bkj_imag)
+ + (temp2_real * Akj_real - temp2_imag * Akj_imag);
+ IMAG(C, i * lda + j) += (temp1_real * Bkj_imag + temp1_imag * Bkj_real)
+ + (temp2_real * Akj_imag + temp2_imag * Akj_real);
+ }
+ }
+ }
+
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_syr2k_r.h b/gsl-1.9/cblas/source_syr2k_r.h
new file mode 100644
index 0000000..866acc0
--- /dev/null
+++ b/gsl-1.9/cblas/source_syr2k_r.h
@@ -0,0 +1,129 @@
+/* blas/source_syr2k_r.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ int uplo, trans;
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ if (Order == CblasRowMajor) {
+ uplo = Uplo;
+ trans = (Trans == CblasConjTrans) ? CblasTrans : Trans;
+ } else {
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+
+ if (Trans == CblasTrans || Trans == CblasConjTrans) {
+ trans = CblasNoTrans;
+ } else {
+ trans = CblasTrans;
+ }
+ }
+
+ /* form C := beta*C */
+ if (beta == 0.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ C[ldc * i + j] = 0.0;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ C[ldc * i + j] = 0.0;
+ }
+ }
+ }
+ } else if (beta != 1.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ C[ldc * i + j] *= beta;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ C[ldc * i + j] *= beta;
+ }
+ }
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ if (uplo == CblasUpper && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ BASE temp = 0.0;
+ for (k = 0; k < K; k++) {
+ temp += (A[i * lda + k] * B[j * ldb + k]
+ + B[i * ldb + k] * A[j * lda + k]);
+ }
+ C[i * ldc + j] += alpha * temp;
+ }
+ }
+
+ } else if (uplo == CblasUpper && trans == CblasTrans) {
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < N; i++) {
+ BASE temp1 = alpha * A[k * lda + i];
+ BASE temp2 = alpha * B[k * ldb + i];
+ for (j = i; j < N; j++) {
+ C[i * lda + j] += temp1 * B[k * ldb + j] + temp2 * A[k * lda + j];
+ }
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasNoTrans) {
+
+
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ BASE temp = 0.0;
+ for (k = 0; k < K; k++) {
+ temp += (A[i * lda + k] * B[j * ldb + k]
+ + B[i * ldb + k] * A[j * lda + k]);
+ }
+ C[i * ldc + j] += alpha * temp;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasTrans) {
+
+ for (k = 0; k < K; k++) {
+ for (i = 0; i < N; i++) {
+ BASE temp1 = alpha * A[k * lda + i];
+ BASE temp2 = alpha * B[k * ldb + i];
+ for (j = 0; j <= i; j++) {
+ C[i * lda + j] += temp1 * B[k * ldb + j] + temp2 * A[k * lda + j];
+ }
+ }
+ }
+
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_syrk_c.h b/gsl-1.9/cblas/source_syrk_c.h
new file mode 100644
index 0000000..97dcc20
--- /dev/null
+++ b/gsl-1.9/cblas/source_syrk_c.h
@@ -0,0 +1,164 @@
+/* blas/source_syrk_r.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ int uplo, trans;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ const BASE beta_real = CONST_REAL0(beta);
+ const BASE beta_imag = CONST_IMAG0(beta);
+
+ if ((alpha_real == 0.0 && alpha_imag == 0.0)
+ && (beta_real == 1.0 && beta_imag == 0.0))
+ return;
+
+ if (Order == CblasRowMajor) {
+ uplo = Uplo;
+ /* FIXME: original blas does not make distinction between Trans and ConjTrans?? */
+ trans = (Trans == CblasNoTrans) ? CblasNoTrans : CblasTrans;
+ } else {
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ trans = (Trans == CblasNoTrans) ? CblasTrans : CblasNoTrans;
+ }
+
+ /* form y := beta*y */
+ if (beta_real == 0.0 && beta_imag == 0.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ REAL(C, ldc * i + j) = 0.0;
+ IMAG(C, ldc * i + j) = 0.0;
+ }
+ }
+ }
+ } else if (!(beta_real == 1.0 && beta_imag == 0.0)) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ const BASE Cij_real = REAL(C, ldc * i + j);
+ const BASE Cij_imag = IMAG(C, ldc * i + j);
+ REAL(C, ldc * i + j) = beta_real * Cij_real - beta_imag * Cij_imag;
+ IMAG(C, ldc * i + j) = beta_real * Cij_imag + beta_imag * Cij_real;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ const BASE Cij_real = REAL(C, ldc * i + j);
+ const BASE Cij_imag = IMAG(C, ldc * i + j);
+ REAL(C, ldc * i + j) = beta_real * Cij_real - beta_imag * Cij_imag;
+ IMAG(C, ldc * i + j) = beta_real * Cij_imag + beta_imag * Cij_real;
+ }
+ }
+ }
+ }
+
+ if (alpha_real == 0.0 && alpha_imag == 0.0)
+ return;
+
+ if (uplo == CblasUpper && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ temp_real += Aik_real * Ajk_real - Aik_imag * Ajk_imag;
+ temp_imag += Aik_real * Ajk_imag + Aik_imag * Ajk_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (uplo == CblasUpper && trans == CblasTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aki_real = CONST_REAL(A, k * lda + i);
+ const BASE Aki_imag = CONST_IMAG(A, k * lda + i);
+ const BASE Akj_real = CONST_REAL(A, k * lda + j);
+ const BASE Akj_imag = CONST_IMAG(A, k * lda + j);
+ temp_real += Aki_real * Akj_real - Aki_imag * Akj_imag;
+ temp_imag += Aki_real * Akj_imag + Aki_imag * Akj_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = CONST_IMAG(A, i * lda + k);
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = CONST_IMAG(A, j * lda + k);
+ temp_real += Aik_real * Ajk_real - Aik_imag * Ajk_imag;
+ temp_imag += Aik_real * Ajk_imag + Aik_imag * Ajk_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+ for (k = 0; k < K; k++) {
+ const BASE Aki_real = CONST_REAL(A, k * lda + i);
+ const BASE Aki_imag = CONST_IMAG(A, k * lda + i);
+ const BASE Akj_real = CONST_REAL(A, k * lda + j);
+ const BASE Akj_imag = CONST_IMAG(A, k * lda + j);
+ temp_real += Aki_real * Akj_real - Aki_imag * Akj_imag;
+ temp_imag += Aki_real * Akj_imag + Aki_imag * Akj_real;
+ }
+ REAL(C, i * ldc + j) += alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(C, i * ldc + j) += alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_syrk_r.h b/gsl-1.9/cblas/source_syrk_r.h
new file mode 100644
index 0000000..e245ea7
--- /dev/null
+++ b/gsl-1.9/cblas/source_syrk_r.h
@@ -0,0 +1,125 @@
+/* blas/source_syrk_r.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ int uplo, trans;
+
+ if (alpha == 0.0 && beta == 1.0)
+ return;
+
+ if (Order == CblasRowMajor) {
+ uplo = Uplo;
+ trans = (Trans == CblasConjTrans) ? CblasTrans : Trans;
+ } else {
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+
+ if (Trans == CblasTrans || Trans == CblasConjTrans) {
+ trans = CblasNoTrans;
+ } else {
+ trans = CblasTrans;
+ }
+ }
+
+ /* form y := beta*y */
+ if (beta == 0.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ C[ldc * i + j] = 0.0;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ C[ldc * i + j] = 0.0;
+ }
+ }
+ }
+ } else if (beta != 1.0) {
+ if (uplo == CblasUpper) {
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ C[ldc * i + j] *= beta;
+ }
+ }
+ } else {
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ C[ldc * i + j] *= beta;
+ }
+ }
+ }
+ }
+
+ if (alpha == 0.0)
+ return;
+
+ if (uplo == CblasUpper && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ BASE temp = 0.0;
+ for (k = 0; k < K; k++) {
+ temp += A[i * lda + k] * A[j * lda + k];
+ }
+ C[i * ldc + j] += alpha * temp;
+ }
+ }
+
+ } else if (uplo == CblasUpper && trans == CblasTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = i; j < N; j++) {
+ BASE temp = 0.0;
+ for (k = 0; k < K; k++) {
+ temp += A[k * lda + i] * A[k * lda + j];
+ }
+ C[i * ldc + j] += alpha * temp;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasNoTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ BASE temp = 0.0;
+ for (k = 0; k < K; k++) {
+ temp += A[i * lda + k] * A[j * lda + k];
+ }
+ C[i * ldc + j] += alpha * temp;
+ }
+ }
+
+ } else if (uplo == CblasLower && trans == CblasTrans) {
+
+ for (i = 0; i < N; i++) {
+ for (j = 0; j <= i; j++) {
+ BASE temp = 0.0;
+ for (k = 0; k < K; k++) {
+ temp += A[k * lda + i] * A[k * lda + j];
+ }
+ C[i * ldc + j] += alpha * temp;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_tbmv_c.h b/gsl-1.9/cblas/source_tbmv_c.h
new file mode 100644
index 0000000..b0a4fac
--- /dev/null
+++ b/gsl-1.9/cblas/source_tbmv_c.h
@@ -0,0 +1,171 @@
+/* blas/source_tbmv_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (TransA == CblasConjTrans) ? -1 : 1;
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+ const int nonunit = (Diag == CblasNonUnit);
+ INDEX i, j;
+
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+ /* form x := A*x */
+
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE temp_r = 0.0;
+ BASE temp_i = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + incX * j_min;
+ for (j = j_min; j < j_max; j++) {
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ const BASE A_real = CONST_REAL(A, lda * i + (j - i));
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + (j - i));
+
+ temp_r += A_real * x_real - A_imag * x_imag;
+ temp_i += A_real * x_imag + A_imag * x_real;
+
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + 0);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + 0);
+
+ REAL(X, ix) = temp_r + (A_real * x_real - A_imag * x_imag);
+ IMAG(X, ix) = temp_i + (A_real * x_imag + A_imag * x_real);
+ } else {
+ REAL(X, ix) += temp_r;
+ IMAG(X, ix) += temp_i;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+
+ for (i = N; i > 0 && i--;) { /* N-1 ... 0 */
+ BASE temp_r = 0.0;
+ BASE temp_i = 0.0;
+ const INDEX j_min = (K > i ? 0 : i - K);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ const BASE A_real = CONST_REAL(A, lda * i + (K - i + j));
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + (K - i + j));
+
+ temp_r += A_real * x_real - A_imag * x_imag;
+ temp_i += A_real * x_imag + A_imag * x_real;
+
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + K);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + K);
+
+ REAL(X, ix) = temp_r + (A_real * x_real - A_imag * x_imag);
+ IMAG(X, ix) = temp_i + (A_real * x_imag + A_imag * x_real);
+ } else {
+ REAL(X, ix) += temp_r;
+ IMAG(X, ix) += temp_i;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := A'*x */
+
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ for (i = N; i > 0 && i--;) { /* N-1 ... 0 */
+ BASE temp_r = 0.0;
+ BASE temp_i = 0.0;
+ const INDEX j_min = (K > i ? 0 : i - K);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ const BASE A_real = CONST_REAL(A, lda * j + (i - j));
+ const BASE A_imag = conj * CONST_IMAG(A, lda * j + (i - j));
+
+ temp_r += A_real * x_real - A_imag * x_imag;
+ temp_i += A_real * x_imag + A_imag * x_real;
+
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + 0);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + 0);
+
+ REAL(X, ix) = temp_r + (A_real * x_real - A_imag * x_imag);
+ IMAG(X, ix) = temp_i + (A_real * x_imag + A_imag * x_real);
+ } else {
+ REAL(X, ix) += temp_r;
+ IMAG(X, ix) += temp_i;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE temp_r = 0.0;
+ BASE temp_i = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ const BASE A_real = CONST_REAL(A, lda * j + (K - j + i));
+ const BASE A_imag = conj * CONST_IMAG(A, lda * j + (K - j + i));
+
+ temp_r += A_real * x_real - A_imag * x_imag;
+ temp_i += A_real * x_imag + A_imag * x_real;
+
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + K);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + K);
+
+ REAL(X, ix) = temp_r + (A_real * x_real - A_imag * x_imag);
+ IMAG(X, ix) = temp_i + (A_real * x_imag + A_imag * x_real);
+ } else {
+ REAL(X, ix) += temp_r;
+ IMAG(X, ix) += temp_i;
+ }
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_tbmv_r.h b/gsl-1.9/cblas/source_tbmv_r.h
new file mode 100644
index 0000000..1e57ccf
--- /dev/null
+++ b/gsl-1.9/cblas/source_tbmv_r.h
@@ -0,0 +1,106 @@
+/* blas/source_tbmv_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ const int nonunit = (Diag == CblasNonUnit);
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+
+ if (N == 0)
+ return;
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+ /* form x := A*x */
+
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE temp = (nonunit ? A[lda * i + 0] : 1.0) * X[ix];
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[lda * i + (j - i)];
+ jx += incX;
+ }
+
+ X[ix] = temp;
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ for (i = N; i > 0 && i--;) {
+ BASE temp = (nonunit ? A[lda * i + K] : 1.0) * X[ix];
+ const INDEX j_min = (i > K ? i - K : 0);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[lda * i + (K - i + j)];
+ jx += incX;
+ }
+ X[ix] = temp;
+ ix -= incX;
+ }
+
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := A'*x */
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+
+ for (i = N; i > 0 && i--;) {
+ BASE temp = 0.0;
+ const INDEX j_min = (K > i ? 0 : i - K);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[lda * j + (i - j)];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = temp + X[ix] * A[lda * i + 0];
+ } else {
+ X[ix] += temp;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE temp = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[lda * j + (K - j + i)];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = temp + X[ix] * A[lda * i + K];
+ } else {
+ X[ix] += temp;
+ }
+ ix += incX;
+ }
+ }
+}
diff --git a/gsl-1.9/cblas/source_tbsv_c.h b/gsl-1.9/cblas/source_tbsv_c.h
new file mode 100644
index 0000000..85f0652
--- /dev/null
+++ b/gsl-1.9/cblas/source_tbsv_c.h
@@ -0,0 +1,179 @@
+/* blas/source_tbsv_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (TransA == CblasConjTrans) ? -1 : 1;
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+ const int nonunit = (Diag == CblasNonUnit);
+ INDEX i, j;
+
+ if (N == 0)
+ return;
+
+ /* form x := inv( A )*x */
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+
+ INDEX ix = OFFSET(N, incX) + incX * (N - 1);
+
+ for (i = N; i > 0 && i--;) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE Aij_real = CONST_REAL(A, lda * i + (j - i));
+ const BASE Aij_imag = conj * CONST_IMAG(A, lda * i + (j - i));
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * i + 0);
+ const BASE a_imag = conj * CONST_IMAG(A, lda * i + 0);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix -= incX;
+ }
+
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+ /* forward substitution */
+
+ INDEX ix = OFFSET(N, incX);
+
+ for (i = 0; i < N; i++) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ const INDEX j_min = (K > i ? 0 : i - K);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE Aij_real = CONST_REAL(A, lda * i + (K + j - i));
+ const BASE Aij_imag = conj * CONST_IMAG(A, lda * i + (K + j - i));
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * i + K);
+ const BASE a_imag = conj * CONST_IMAG(A, lda * i + K);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := inv( A' )*x */
+
+ /* forward substitution */
+
+ INDEX ix = OFFSET(N, incX);
+
+ for (i = 0; i < N; i++) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ const INDEX j_min = (K > i ? 0 : i - K);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE Aij_real = CONST_REAL(A, (i - j) + lda * j);
+ const BASE Aij_imag = conj * CONST_IMAG(A, (i - j) + lda * j);
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, 0 + lda * i);
+ const BASE a_imag = conj * CONST_IMAG(A, 0 + lda * i);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ /* backsubstitution */
+
+ INDEX ix = OFFSET(N, incX) + incX * (N - 1);
+
+ for (i = N; i > 0 && i--;) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE Aij_real = CONST_REAL(A, (K + i - j) + lda * j);
+ const BASE Aij_imag = conj * CONST_IMAG(A, (K + i - j) + lda * j);
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, K + lda * i);
+ const BASE a_imag = conj * CONST_IMAG(A, K + lda * i);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix -= incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_tbsv_r.h b/gsl-1.9/cblas/source_tbsv_r.h
new file mode 100644
index 0000000..30227e7
--- /dev/null
+++ b/gsl-1.9/cblas/source_tbsv_r.h
@@ -0,0 +1,123 @@
+/* blas/source_tbsv_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int nonunit = (Diag == CblasNonUnit);
+ INDEX i, j;
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+
+ if (N == 0)
+ return;
+
+ /* form x := inv( A )*x */
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+ /* backsubstitution */
+ INDEX ix = OFFSET(N, incX) + incX * (N - 1);
+ for (i = N; i > 0 && i--;) {
+ BASE tmp = X[ix];
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE Aij = A[lda * i + (j - i)];
+ tmp -= Aij * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / A[lda * i + 0];
+ } else {
+ X[ix] = tmp;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+
+ /* forward substitution */
+ INDEX ix = OFFSET(N, incX);
+
+ for (i = 0; i < N; i++) {
+ BASE tmp = X[ix];
+ const INDEX j_min = (i > K ? i - K : 0);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE Aij = A[lda * i + (K + j - i)];
+ tmp -= Aij * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / A[lda * i + K];
+ } else {
+ X[ix] = tmp;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+
+ /* form x := inv( A' )*x */
+
+ /* forward substitution */
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE tmp = X[ix];
+ const INDEX j_min = (K > i ? 0 : i - K);
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE Aji = A[(i - j) + lda * j];
+ tmp -= Aji * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / A[0 + lda * i];
+ } else {
+ X[ix] = tmp;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ /* backsubstitution */
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ for (i = N; i > 0 && i--;) {
+ BASE tmp = X[ix];
+ const INDEX j_min = i + 1;
+ const INDEX j_max = GSL_MIN(N, i + K + 1);
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ const BASE Aji = A[(K + i - j) + lda * j];
+ tmp -= Aji * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / A[K + lda * i];
+ } else {
+ X[ix] = tmp;
+ }
+ ix -= incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_tpmv_c.h b/gsl-1.9/cblas/source_tpmv_c.h
new file mode 100644
index 0000000..30afa6a
--- /dev/null
+++ b/gsl-1.9/cblas/source_tpmv_c.h
@@ -0,0 +1,173 @@
+/* blas/source_tpmv_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+
+ const int conj = (TransA == CblasConjTrans) ? -1 : 1;
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+ const int nonunit = (Diag == CblasNonUnit);
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+ /* form x:= A*x */
+
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE Aii_real = CONST_REAL(Ap, TPUP(N, i, i));
+ const BASE Aii_imag = conj * CONST_IMAG(Ap, TPUP(N, i, i));
+ BASE temp_r;
+ BASE temp_i;
+ if (nonunit) {
+ BASE x_real = REAL(X, ix);
+ BASE x_imag = IMAG(X, ix);
+ temp_r = Aii_real * x_real - Aii_imag * x_imag;
+ temp_i = Aii_real * x_imag + Aii_imag * x_real;
+ } else {
+ temp_r = REAL(X, ix);
+ temp_i = IMAG(X, ix);
+ }
+
+ {
+ INDEX jx = OFFSET(N, incX) + (i + 1) * incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aij_real = CONST_REAL(Ap, TPUP(N, i, j));
+ const BASE Aij_imag = conj * CONST_IMAG(Ap, TPUP(N, i, j));
+ BASE x_real = REAL(X, jx);
+ BASE x_imag = IMAG(X, jx);
+ temp_r += Aij_real * x_real - Aij_imag * x_imag;
+ temp_i += Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+ }
+
+ REAL(X, ix) = temp_r;
+ IMAG(X, ix) = temp_i;
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX) + incX * (N - 1);
+ for (i = N; i > 0 && i--;) {
+ const BASE Aii_real = CONST_REAL(Ap, TPLO(N, i, i));
+ const BASE Aii_imag = conj * CONST_IMAG(Ap, TPLO(N, i, i));
+ BASE temp_r;
+ BASE temp_i;
+ if (nonunit) {
+ BASE x_real = REAL(X, ix);
+ BASE x_imag = IMAG(X, ix);
+ temp_r = Aii_real * x_real - Aii_imag * x_imag;
+ temp_i = Aii_real * x_imag + Aii_imag * x_real;
+ } else {
+ temp_r = REAL(X, ix);
+ temp_i = IMAG(X, ix);
+ }
+
+ {
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aij_real = CONST_REAL(Ap, TPLO(N, i, j));
+ const BASE Aij_imag = conj * CONST_IMAG(Ap, TPLO(N, i, j));
+ BASE x_real = REAL(X, jx);
+ BASE x_imag = IMAG(X, jx);
+ temp_r += Aij_real * x_real - Aij_imag * x_imag;
+ temp_i += Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+ }
+
+ REAL(X, ix) = temp_r;
+ IMAG(X, ix) = temp_i;
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := A'*x */
+
+ INDEX ix = OFFSET(N, incX) + incX * (N - 1);
+ for (i = N; i > 0 && i--;) {
+ const BASE Aii_real = CONST_REAL(Ap, TPUP(N, i, i));
+ const BASE Aii_imag = conj * CONST_IMAG(Ap, TPUP(N, i, i));
+ BASE temp_r;
+ BASE temp_i;
+ if (nonunit) {
+ BASE x_real = REAL(X, ix);
+ BASE x_imag = IMAG(X, ix);
+ temp_r = Aii_real * x_real - Aii_imag * x_imag;
+ temp_i = Aii_real * x_imag + Aii_imag * x_real;
+ } else {
+ temp_r = REAL(X, ix);
+ temp_i = IMAG(X, ix);
+ }
+ {
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ BASE x_real = REAL(X, jx);
+ BASE x_imag = IMAG(X, jx);
+ const BASE Aji_real = CONST_REAL(Ap, TPUP(N, j, i));
+ const BASE Aji_imag = conj * CONST_IMAG(Ap, TPUP(N, j, i));
+ temp_r += Aji_real * x_real - Aji_imag * x_imag;
+ temp_i += Aji_real * x_imag + Aji_imag * x_real;
+ jx += incX;
+ }
+ }
+
+ REAL(X, ix) = temp_r;
+ IMAG(X, ix) = temp_i;
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ const BASE Aii_real = CONST_REAL(Ap, TPLO(N, i, i));
+ const BASE Aii_imag = conj * CONST_IMAG(Ap, TPLO(N, i, i));
+ BASE temp_r;
+ BASE temp_i;
+ if (nonunit) {
+ BASE x_real = REAL(X, ix);
+ BASE x_imag = IMAG(X, ix);
+ temp_r = Aii_real * x_real - Aii_imag * x_imag;
+ temp_i = Aii_real * x_imag + Aii_imag * x_real;
+ } else {
+ temp_r = REAL(X, ix);
+ temp_i = IMAG(X, ix);
+ }
+ {
+ INDEX jx = OFFSET(N, incX) + (i + 1) * incX;
+ for (j = i + 1; j < N; j++) {
+ BASE x_real = REAL(X, jx);
+ BASE x_imag = IMAG(X, jx);
+ const BASE Aji_real = CONST_REAL(Ap, TPLO(N, j, i));
+ const BASE Aji_imag = conj * CONST_IMAG(Ap, TPLO(N, j, i));
+ temp_r += Aji_real * x_real - Aji_imag * x_imag;
+ temp_i += Aji_real * x_imag + Aji_imag * x_real;
+ jx += incX;
+ }
+ }
+ REAL(X, ix) = temp_r;
+ IMAG(X, ix) = temp_i;
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_tpmv_r.h b/gsl-1.9/cblas/source_tpmv_r.h
new file mode 100644
index 0000000..100891c
--- /dev/null
+++ b/gsl-1.9/cblas/source_tpmv_r.h
@@ -0,0 +1,97 @@
+/* blas/source_tpmv_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ const int nonunit = (Diag == CblasNonUnit);
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+
+ if (N == 0)
+ return;
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+ /* form x:= A*x */
+
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE atmp = Ap[TPUP(N, i, i)];
+ BASE temp = (nonunit ? X[ix] * atmp : X[ix]);
+ INDEX jx = OFFSET(N, incX) + (i + 1) * incX;
+ for (j = i + 1; j < N; j++) {
+ atmp = Ap[TPUP(N, i, j)];
+ temp += atmp * X[jx];
+ jx += incX;
+ }
+ X[ix] = temp;
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ for (i = N; i > 0 && i--;) {
+ BASE atmp = Ap[TPLO(N, i, i)];
+ BASE temp = (nonunit ? X[ix] * atmp : X[ix]);
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ atmp = Ap[TPLO(N, i, j)];
+ temp += atmp * X[jx];
+ jx += incX;
+ }
+ X[ix] = temp;
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := A'*x */
+
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ for (i = N; i > 0 && i--;) {
+ BASE atmp = Ap[TPUP(N, i, i)];
+ BASE temp = (nonunit ? X[ix] * atmp : X[ix]);
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ atmp = Ap[TPUP(N, j, i)];
+ temp += atmp * X[jx];
+ jx += incX;
+ }
+ X[ix] = temp;
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE atmp = Ap[TPLO(N, i, i)];
+ BASE temp = (nonunit ? X[ix] * atmp : X[ix]);
+ INDEX jx = OFFSET(N, incX) + (i + 1) * incX;
+ for (j = i + 1; j < N; j++) {
+ atmp = Ap[TPLO(N, j, i)];
+ temp += atmp * X[jx];
+ jx += incX;
+ }
+ X[ix] = temp;
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_tpsv_c.h b/gsl-1.9/cblas/source_tpsv_c.h
new file mode 100644
index 0000000..bbd82e4
--- /dev/null
+++ b/gsl-1.9/cblas/source_tpsv_c.h
@@ -0,0 +1,227 @@
+/* blas/source_tpsv_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (TransA == CblasConjTrans) ? -1 : 1;
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+ const int nonunit = (Diag == CblasNonUnit);
+ INDEX i, j;
+
+ if (N == 0)
+ return;
+
+ /* form x := inv( A )*x */
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+
+ INDEX ix = OFFSET(N, incX) + incX * (N - 1);
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(Ap, TPUP(N, (N - 1), (N - 1)));
+ const BASE a_imag = conj * CONST_IMAG(Ap, TPUP(N, (N - 1), (N - 1)));
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (x_real * b_real + x_imag * b_imag) / s;
+ IMAG(X, ix) = (x_imag * b_real - b_imag * x_real) / s;
+ }
+
+ ix -= incX;
+
+ for (i = N - 1; i > 0 && i--;) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ INDEX jx = ix + incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aij_real = CONST_REAL(Ap, TPUP(N, i, j));
+ const BASE Aij_imag = conj * CONST_IMAG(Ap, TPUP(N, i, j));
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(Ap, TPUP(N, i, i));
+ const BASE a_imag = conj * CONST_IMAG(Ap, TPUP(N, i, i));
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix -= incX;
+ }
+
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+ /* forward substitution */
+
+ INDEX ix = OFFSET(N, incX);
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(Ap, TPLO(N, 0, 0));
+ const BASE a_imag = conj * CONST_IMAG(Ap, TPLO(N, 0, 0));
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (x_real * b_real + x_imag * b_imag) / s;
+ IMAG(X, ix) = (x_imag * b_real - b_imag * x_real) / s;
+ }
+
+ ix += incX;
+
+ for (i = 1; i < N; i++) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aij_real = CONST_REAL(Ap, TPLO(N, i, j));
+ const BASE Aij_imag = conj * CONST_IMAG(Ap, TPLO(N, i, j));
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(Ap, TPLO(N, i, i));
+ const BASE a_imag = conj * CONST_IMAG(Ap, TPLO(N, i, i));
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := inv( A' )*x */
+
+ /* forward substitution */
+
+ INDEX ix = OFFSET(N, incX);
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(Ap, TPUP(N, 0, 0));
+ const BASE a_imag = conj * CONST_IMAG(Ap, TPUP(N, 0, 0));
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (x_real * b_real + x_imag * b_imag) / s;
+ IMAG(X, ix) = (x_imag * b_real - b_imag * x_real) / s;
+ }
+
+ ix += incX;
+
+ for (i = 1; i < N; i++) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aij_real = CONST_REAL(Ap, TPUP(N, j, i));
+ const BASE Aij_imag = conj * CONST_IMAG(Ap, TPUP(N, j, i));
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(Ap, TPUP(N, i, i));
+ const BASE a_imag = conj * CONST_IMAG(Ap, TPUP(N, i, i));
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ /* backsubstitution */
+
+ INDEX ix = OFFSET(N, incX) + incX * (N - 1);
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(Ap, TPLO(N, (N - 1), (N - 1)));
+ const BASE a_imag = conj * CONST_IMAG(Ap, TPLO(N, (N - 1), (N - 1)));
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (x_real * b_real + x_imag * b_imag) / s;
+ IMAG(X, ix) = (x_imag * b_real - b_imag * x_real) / s;
+ }
+
+ ix -= incX;
+
+ for (i = N - 1; i > 0 && i--;) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ INDEX jx = ix + incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aij_real = CONST_REAL(Ap, TPLO(N, j, i));
+ const BASE Aij_imag = conj * CONST_IMAG(Ap, TPLO(N, j, i));
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(Ap, TPLO(N, i, i));
+ const BASE a_imag = conj * CONST_IMAG(Ap, TPLO(N, i, i));
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix -= incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_tpsv_r.h b/gsl-1.9/cblas/source_tpsv_r.h
new file mode 100644
index 0000000..cc4c828
--- /dev/null
+++ b/gsl-1.9/cblas/source_tpsv_r.h
@@ -0,0 +1,131 @@
+/* blas/source_tpsv_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ const int nonunit = (Diag == CblasNonUnit);
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+
+ if (N == 0)
+ return;
+
+ /* form x := inv( A )*x */
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+ /* backsubstitution */
+ INDEX ix = OFFSET(N, incX) + incX * (N - 1);
+ if (nonunit) {
+ X[ix] = X[ix] / Ap[TPUP(N, (N - 1), (N - 1))];
+ }
+ ix -= incX;
+ for (i = N - 1; i > 0 && i--;) {
+ BASE tmp = X[ix];
+ INDEX jx = ix + incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aij = Ap[TPUP(N, i, j)];
+ tmp -= Aij * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / Ap[TPUP(N, i, i)];
+ } else {
+ X[ix] = tmp;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+
+ /* forward substitution */
+ INDEX ix = OFFSET(N, incX);
+ if (nonunit) {
+ X[ix] = X[ix] / Ap[TPLO(N, 0, 0)];
+ }
+ ix += incX;
+ for (i = 1; i < N; i++) {
+ BASE tmp = X[ix];
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aij = Ap[TPLO(N, i, j)];
+ tmp -= Aij * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / Ap[TPLO(N, i, j)];
+ } else {
+ X[ix] = tmp;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+
+ /* form x := inv( A' )*x */
+
+ /* forward substitution */
+ INDEX ix = OFFSET(N, incX);
+ if (nonunit) {
+ X[ix] = X[ix] / Ap[TPUP(N, 0, 0)];
+ }
+ ix += incX;
+ for (i = 1; i < N; i++) {
+ BASE tmp = X[ix];
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aji = Ap[TPUP(N, j, i)];
+ tmp -= Aji * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / Ap[TPUP(N, i, i)];
+ } else {
+ X[ix] = tmp;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ /* backsubstitution */
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ if (nonunit) {
+ X[ix] = X[ix] / Ap[TPLO(N, (N - 1), (N - 1))];
+ }
+ ix -= incX;
+ for (i = N - 1; i > 0 && i--;) {
+ BASE tmp = X[ix];
+ INDEX jx = ix + incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aji = Ap[TPLO(N, j, i)];
+ tmp -= Aji * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / Ap[TPLO(N, i, i)];
+ } else {
+ X[ix] = tmp;
+ }
+ ix -= incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+
+}
diff --git a/gsl-1.9/cblas/source_trmm_c.h b/gsl-1.9/cblas/source_trmm_c.h
new file mode 100644
index 0000000..aeadfc7
--- /dev/null
+++ b/gsl-1.9/cblas/source_trmm_c.h
@@ -0,0 +1,330 @@
+/* blas/source_trmm_c.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ const int nonunit = (Diag == CblasNonUnit);
+ const int conj = (TransA == CblasConjTrans) ? -1 : 1;
+ int side, uplo, trans;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ side = Side;
+ uplo = Uplo;
+ trans = (TransA == CblasNoTrans) ? CblasNoTrans : CblasTrans;
+ } else {
+ n1 = N;
+ n2 = M;
+ side = (Side == CblasLeft) ? CblasRight : CblasLeft; /* exchanged */
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper; /* exchanged */
+ trans = (TransA == CblasNoTrans) ? CblasNoTrans : CblasTrans; /* same */
+ }
+
+ if (side == CblasLeft && uplo == CblasUpper && trans == CblasNoTrans) {
+
+ /* form B := alpha * TriU(A)*B */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+
+ if (nonunit) {
+ const BASE Aii_real = CONST_REAL(A, i * lda + i);
+ const BASE Aii_imag = conj * CONST_IMAG(A, i * lda + i);
+ const BASE Bij_real = REAL(B, i * ldb + j);
+ const BASE Bij_imag = IMAG(B, i * ldb + j);
+ temp_real = Aii_real * Bij_real - Aii_imag * Bij_imag;
+ temp_imag = Aii_real * Bij_imag + Aii_imag * Bij_real;
+ } else {
+ temp_real = REAL(B, i * ldb + j);
+ temp_imag = IMAG(B, i * ldb + j);
+ }
+
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = conj * CONST_IMAG(A, i * lda + k);
+ const BASE Bkj_real = REAL(B, k * ldb + j);
+ const BASE Bkj_imag = IMAG(B, k * ldb + j);
+ temp_real += Aik_real * Bkj_real - Aik_imag * Bkj_imag;
+ temp_imag += Aik_real * Bkj_imag + Aik_imag * Bkj_real;
+ }
+
+ REAL(B, ldb * i + j) = alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(B, ldb * i + j) = alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasUpper && trans == CblasTrans) {
+
+ /* form B := alpha * (TriU(A))' *B */
+
+ for (i = n1; i > 0 && i--;) {
+ for (j = 0; j < n2; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+
+ for (k = 0; k < i; k++) {
+ const BASE Aki_real = CONST_REAL(A, k * lda + i);
+ const BASE Aki_imag = conj * CONST_IMAG(A, k * lda + i);
+ const BASE Bkj_real = REAL(B, k * ldb + j);
+ const BASE Bkj_imag = IMAG(B, k * ldb + j);
+ temp_real += Aki_real * Bkj_real - Aki_imag * Bkj_imag;
+ temp_imag += Aki_real * Bkj_imag + Aki_imag * Bkj_real;
+ }
+
+ if (nonunit) {
+ const BASE Aii_real = CONST_REAL(A, i * lda + i);
+ const BASE Aii_imag = conj * CONST_IMAG(A, i * lda + i);
+ const BASE Bij_real = REAL(B, i * ldb + j);
+ const BASE Bij_imag = IMAG(B, i * ldb + j);
+ temp_real += Aii_real * Bij_real - Aii_imag * Bij_imag;
+ temp_imag += Aii_real * Bij_imag + Aii_imag * Bij_real;
+ } else {
+ temp_real += REAL(B, i * ldb + j);
+ temp_imag += IMAG(B, i * ldb + j);
+ }
+
+ REAL(B, ldb * i + j) = alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(B, ldb * i + j) = alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasLower && trans == CblasNoTrans) {
+
+ /* form B := alpha * TriL(A)*B */
+
+
+ for (i = n1; i > 0 && i--;) {
+ for (j = 0; j < n2; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+
+ for (k = 0; k < i; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = conj * CONST_IMAG(A, i * lda + k);
+ const BASE Bkj_real = REAL(B, k * ldb + j);
+ const BASE Bkj_imag = IMAG(B, k * ldb + j);
+ temp_real += Aik_real * Bkj_real - Aik_imag * Bkj_imag;
+ temp_imag += Aik_real * Bkj_imag + Aik_imag * Bkj_real;
+ }
+
+ if (nonunit) {
+ const BASE Aii_real = CONST_REAL(A, i * lda + i);
+ const BASE Aii_imag = conj * CONST_IMAG(A, i * lda + i);
+ const BASE Bij_real = REAL(B, i * ldb + j);
+ const BASE Bij_imag = IMAG(B, i * ldb + j);
+ temp_real += Aii_real * Bij_real - Aii_imag * Bij_imag;
+ temp_imag += Aii_real * Bij_imag + Aii_imag * Bij_real;
+ } else {
+ temp_real += REAL(B, i * ldb + j);
+ temp_imag += IMAG(B, i * ldb + j);
+ }
+
+ REAL(B, ldb * i + j) = alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(B, ldb * i + j) = alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+
+
+ } else if (side == CblasLeft && uplo == CblasLower && trans == CblasTrans) {
+
+ /* form B := alpha * TriL(A)' *B */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+
+ if (nonunit) {
+ const BASE Aii_real = CONST_REAL(A, i * lda + i);
+ const BASE Aii_imag = conj * CONST_IMAG(A, i * lda + i);
+ const BASE Bij_real = REAL(B, i * ldb + j);
+ const BASE Bij_imag = IMAG(B, i * ldb + j);
+ temp_real = Aii_real * Bij_real - Aii_imag * Bij_imag;
+ temp_imag = Aii_real * Bij_imag + Aii_imag * Bij_real;
+ } else {
+ temp_real = REAL(B, i * ldb + j);
+ temp_imag = IMAG(B, i * ldb + j);
+ }
+
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aki_real = CONST_REAL(A, k * lda + i);
+ const BASE Aki_imag = conj * CONST_IMAG(A, k * lda + i);
+ const BASE Bkj_real = REAL(B, k * ldb + j);
+ const BASE Bkj_imag = IMAG(B, k * ldb + j);
+ temp_real += Aki_real * Bkj_real - Aki_imag * Bkj_imag;
+ temp_imag += Aki_real * Bkj_imag + Aki_imag * Bkj_real;
+ }
+
+ REAL(B, ldb * i + j) = alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(B, ldb * i + j) = alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper && trans == CblasNoTrans) {
+
+ /* form B := alpha * B * TriU(A) */
+
+ for (i = 0; i < n1; i++) {
+ for (j = n2; j > 0 && j--;) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+
+ for (k = 0; k < j; k++) {
+ const BASE Akj_real = CONST_REAL(A, k * lda + j);
+ const BASE Akj_imag = conj * CONST_IMAG(A, k * lda + j);
+ const BASE Bik_real = REAL(B, i * ldb + k);
+ const BASE Bik_imag = IMAG(B, i * ldb + k);
+ temp_real += Akj_real * Bik_real - Akj_imag * Bik_imag;
+ temp_imag += Akj_real * Bik_imag + Akj_imag * Bik_real;
+ }
+
+ if (nonunit) {
+ const BASE Ajj_real = CONST_REAL(A, j * lda + j);
+ const BASE Ajj_imag = conj * CONST_IMAG(A, j * lda + j);
+ const BASE Bij_real = REAL(B, i * ldb + j);
+ const BASE Bij_imag = IMAG(B, i * ldb + j);
+ temp_real += Ajj_real * Bij_real - Ajj_imag * Bij_imag;
+ temp_imag += Ajj_real * Bij_imag + Ajj_imag * Bij_real;
+ } else {
+ temp_real += REAL(B, i * ldb + j);
+ temp_imag += IMAG(B, i * ldb + j);
+ }
+
+ REAL(B, ldb * i + j) = alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(B, ldb * i + j) = alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper && trans == CblasTrans) {
+
+ /* form B := alpha * B * (TriU(A))' */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+
+ if (nonunit) {
+ const BASE Ajj_real = CONST_REAL(A, j * lda + j);
+ const BASE Ajj_imag = conj * CONST_IMAG(A, j * lda + j);
+ const BASE Bij_real = REAL(B, i * ldb + j);
+ const BASE Bij_imag = IMAG(B, i * ldb + j);
+ temp_real = Ajj_real * Bij_real - Ajj_imag * Bij_imag;
+ temp_imag = Ajj_real * Bij_imag + Ajj_imag * Bij_real;
+ } else {
+ temp_real = REAL(B, i * ldb + j);
+ temp_imag = IMAG(B, i * ldb + j);
+ }
+
+ for (k = j + 1; k < n2; k++) {
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = conj * CONST_IMAG(A, j * lda + k);
+ const BASE Bik_real = REAL(B, i * ldb + k);
+ const BASE Bik_imag = IMAG(B, i * ldb + k);
+ temp_real += Ajk_real * Bik_real - Ajk_imag * Bik_imag;
+ temp_imag += Ajk_real * Bik_imag + Ajk_imag * Bik_real;
+ }
+
+ REAL(B, ldb * i + j) = alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(B, ldb * i + j) = alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower && trans == CblasNoTrans) {
+
+ /* form B := alpha *B * TriL(A) */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+
+ if (nonunit) {
+ const BASE Ajj_real = CONST_REAL(A, j * lda + j);
+ const BASE Ajj_imag = conj * CONST_IMAG(A, j * lda + j);
+ const BASE Bij_real = REAL(B, i * ldb + j);
+ const BASE Bij_imag = IMAG(B, i * ldb + j);
+ temp_real = Ajj_real * Bij_real - Ajj_imag * Bij_imag;
+ temp_imag = Ajj_real * Bij_imag + Ajj_imag * Bij_real;
+ } else {
+ temp_real = REAL(B, i * ldb + j);
+ temp_imag = IMAG(B, i * ldb + j);
+ }
+
+ for (k = j + 1; k < n2; k++) {
+ const BASE Akj_real = CONST_REAL(A, k * lda + j);
+ const BASE Akj_imag = conj * CONST_IMAG(A, k * lda + j);
+ const BASE Bik_real = REAL(B, i * ldb + k);
+ const BASE Bik_imag = IMAG(B, i * ldb + k);
+ temp_real += Akj_real * Bik_real - Akj_imag * Bik_imag;
+ temp_imag += Akj_real * Bik_imag + Akj_imag * Bik_real;
+ }
+
+ REAL(B, ldb * i + j) = alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(B, ldb * i + j) = alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower && trans == CblasTrans) {
+
+ /* form B := alpha * B * TriL(A)' */
+
+ for (i = 0; i < n1; i++) {
+ for (j = n2; j > 0 && j--;) {
+ BASE temp_real = 0.0;
+ BASE temp_imag = 0.0;
+
+ for (k = 0; k < j; k++) {
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = conj * CONST_IMAG(A, j * lda + k);
+ const BASE Bik_real = REAL(B, i * ldb + k);
+ const BASE Bik_imag = IMAG(B, i * ldb + k);
+ temp_real += Ajk_real * Bik_real - Ajk_imag * Bik_imag;
+ temp_imag += Ajk_real * Bik_imag + Ajk_imag * Bik_real;
+ }
+
+ if (nonunit) {
+ const BASE Ajj_real = CONST_REAL(A, j * lda + j);
+ const BASE Ajj_imag = conj * CONST_IMAG(A, j * lda + j);
+ const BASE Bij_real = REAL(B, i * ldb + j);
+ const BASE Bij_imag = IMAG(B, i * ldb + j);
+ temp_real += Ajj_real * Bij_real - Ajj_imag * Bij_imag;
+ temp_imag += Ajj_real * Bij_imag + Ajj_imag * Bij_real;
+ } else {
+ temp_real += REAL(B, i * ldb + j);
+ temp_imag += IMAG(B, i * ldb + j);
+ }
+
+ REAL(B, ldb * i + j) = alpha_real * temp_real - alpha_imag * temp_imag;
+ IMAG(B, ldb * i + j) = alpha_real * temp_imag + alpha_imag * temp_real;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_trmm_r.h b/gsl-1.9/cblas/source_trmm_r.h
new file mode 100644
index 0000000..150668a
--- /dev/null
+++ b/gsl-1.9/cblas/source_trmm_r.h
@@ -0,0 +1,223 @@
+/* blas/source_trmm_r.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ const int nonunit = (Diag == CblasNonUnit);
+ int side, uplo, trans;
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ side = Side;
+ uplo = Uplo;
+ trans = (TransA == CblasConjTrans) ? CblasTrans : TransA;
+ } else {
+ n1 = N;
+ n2 = M;
+ side = (Side == CblasLeft) ? CblasRight : CblasLeft;
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ trans = (TransA == CblasConjTrans) ? CblasTrans : TransA;
+ }
+
+ if (side == CblasLeft && uplo == CblasUpper && trans == CblasNoTrans) {
+
+ /* form B := alpha * TriU(A)*B */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp = 0.0;
+
+ if (nonunit) {
+ temp = A[i * lda + i] * B[i * ldb + j];
+ } else {
+ temp = B[i * ldb + j];
+ }
+
+ for (k = i + 1; k < n1; k++) {
+ temp += A[lda * i + k] * B[k * ldb + j];
+ }
+
+ B[ldb * i + j] = alpha * temp;
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasUpper && trans == CblasTrans) {
+
+ /* form B := alpha * (TriU(A))' *B */
+
+ for (i = n1; i > 0 && i--;) {
+ for (j = 0; j < n2; j++) {
+ BASE temp = 0.0;
+
+ for (k = 0; k < i; k++) {
+ temp += A[lda * k + i] * B[k * ldb + j];
+ }
+
+ if (nonunit) {
+ temp += A[i * lda + i] * B[i * ldb + j];
+ } else {
+ temp += B[i * ldb + j];
+ }
+
+ B[ldb * i + j] = alpha * temp;
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasLower && trans == CblasNoTrans) {
+
+ /* form B := alpha * TriL(A)*B */
+
+
+ for (i = n1; i > 0 && i--;) {
+ for (j = 0; j < n2; j++) {
+ BASE temp = 0.0;
+
+ for (k = 0; k < i; k++) {
+ temp += A[lda * i + k] * B[k * ldb + j];
+ }
+
+ if (nonunit) {
+ temp += A[i * lda + i] * B[i * ldb + j];
+ } else {
+ temp += B[i * ldb + j];
+ }
+
+ B[ldb * i + j] = alpha * temp;
+ }
+ }
+
+
+
+ } else if (side == CblasLeft && uplo == CblasLower && trans == CblasTrans) {
+
+ /* form B := alpha * TriL(A)' *B */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp = 0.0;
+
+ if (nonunit) {
+ temp = A[i * lda + i] * B[i * ldb + j];
+ } else {
+ temp = B[i * ldb + j];
+ }
+
+ for (k = i + 1; k < n1; k++) {
+ temp += A[lda * k + i] * B[k * ldb + j];
+ }
+
+ B[ldb * i + j] = alpha * temp;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper && trans == CblasNoTrans) {
+
+ /* form B := alpha * B * TriU(A) */
+
+ for (i = 0; i < n1; i++) {
+ for (j = n2; j > 0 && j--;) {
+ BASE temp = 0.0;
+
+ for (k = 0; k < j; k++) {
+ temp += A[lda * k + j] * B[i * ldb + k];
+ }
+
+ if (nonunit) {
+ temp += A[j * lda + j] * B[i * ldb + j];
+ } else {
+ temp += B[i * ldb + j];
+ }
+
+ B[ldb * i + j] = alpha * temp;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper && trans == CblasTrans) {
+
+ /* form B := alpha * B * (TriU(A))' */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp = 0.0;
+
+ if (nonunit) {
+ temp = A[j * lda + j] * B[i * ldb + j];
+ } else {
+ temp = B[i * ldb + j];
+ }
+
+ for (k = j + 1; k < n2; k++) {
+ temp += A[lda * j + k] * B[i * ldb + k];
+ }
+
+ B[ldb * i + j] = alpha * temp;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower && trans == CblasNoTrans) {
+
+ /* form B := alpha *B * TriL(A) */
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ BASE temp = 0.0;
+
+ if (nonunit) {
+ temp = A[j * lda + j] * B[i * ldb + j];
+ } else {
+ temp = B[i * ldb + j];
+ }
+
+ for (k = j + 1; k < n2; k++) {
+ temp += A[lda * k + j] * B[i * ldb + k];
+ }
+
+
+ B[ldb * i + j] = alpha * temp;
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower && trans == CblasTrans) {
+
+ /* form B := alpha * B * TriL(A)' */
+
+ for (i = 0; i < n1; i++) {
+ for (j = n2; j > 0 && j--;) {
+ BASE temp = 0.0;
+
+ for (k = 0; k < j; k++) {
+ temp += A[lda * j + k] * B[i * ldb + k];
+ }
+
+ if (nonunit) {
+ temp += A[j * lda + j] * B[i * ldb + j];
+ } else {
+ temp += B[i * ldb + j];
+ }
+
+ B[ldb * i + j] = alpha * temp;
+ }
+ }
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_trmv_c.h b/gsl-1.9/cblas/source_trmv_c.h
new file mode 100644
index 0000000..dc57c73
--- /dev/null
+++ b/gsl-1.9/cblas/source_trmv_c.h
@@ -0,0 +1,169 @@
+/* blas/source_tbmv_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (TransA == CblasConjTrans) ? -1 : 1;
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+ const int nonunit = (Diag == CblasNonUnit);
+
+ INDEX i, j;
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+
+ /* form x := A*x */
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE temp_r = 0.0;
+ BASE temp_i = 0.0;
+ const INDEX j_min = i + 1;
+ INDEX jx = OFFSET(N, incX) + incX * j_min;
+ for (j = j_min; j < N; j++) {
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ const BASE A_real = CONST_REAL(A, lda * i + j);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + j);
+
+ temp_r += A_real * x_real - A_imag * x_imag;
+ temp_i += A_real * x_imag + A_imag * x_real;
+
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + i);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + i);
+
+ REAL(X, ix) = temp_r + (A_real * x_real - A_imag * x_imag);
+ IMAG(X, ix) = temp_i + (A_real * x_imag + A_imag * x_real);
+ } else {
+ REAL(X, ix) += temp_r;
+ IMAG(X, ix) += temp_i;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+
+ for (i = N; i > 0 && i--;) {
+ BASE temp_r = 0.0;
+ BASE temp_i = 0.0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < j_max; j++) {
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ const BASE A_real = CONST_REAL(A, lda * i + j);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + j);
+
+ temp_r += A_real * x_real - A_imag * x_imag;
+ temp_i += A_real * x_imag + A_imag * x_real;
+
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + i);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + i);
+
+ REAL(X, ix) = temp_r + (A_real * x_real - A_imag * x_imag);
+ IMAG(X, ix) = temp_i + (A_real * x_imag + A_imag * x_real);
+ } else {
+ REAL(X, ix) += temp_r;
+ IMAG(X, ix) += temp_i;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := A'*x */
+
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ for (i = N; i > 0 && i--;) {
+ BASE temp_r = 0.0;
+ BASE temp_i = 0.0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX);
+ for (j = 0; j < j_max; j++) {
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ const BASE A_real = CONST_REAL(A, lda * j + i);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * j + i);
+
+ temp_r += A_real * x_real - A_imag * x_imag;
+ temp_i += A_real * x_imag + A_imag * x_real;
+
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + i);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + i);
+
+ REAL(X, ix) = temp_r + (A_real * x_real - A_imag * x_imag);
+ IMAG(X, ix) = temp_i + (A_real * x_imag + A_imag * x_real);
+ } else {
+ REAL(X, ix) += temp_r;
+ IMAG(X, ix) += temp_i;
+ }
+ ix -= incX;
+ }
+
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE temp_r = 0.0;
+ BASE temp_i = 0.0;
+ const INDEX j_min = i + 1;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < N; j++) {
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ const BASE A_real = CONST_REAL(A, lda * j + i);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * j + i);
+
+ temp_r += A_real * x_real - A_imag * x_imag;
+ temp_i += A_real * x_imag + A_imag * x_real;
+
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE A_real = CONST_REAL(A, lda * i + i);
+ const BASE A_imag = conj * CONST_IMAG(A, lda * i + i);
+
+ REAL(X, ix) = temp_r + (A_real * x_real - A_imag * x_imag);
+ IMAG(X, ix) = temp_i + (A_real * x_imag + A_imag * x_real);
+ } else {
+ REAL(X, ix) += temp_r;
+ IMAG(X, ix) += temp_i;
+ }
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_trmv_r.h b/gsl-1.9/cblas/source_trmv_r.h
new file mode 100644
index 0000000..9d4f3a5
--- /dev/null
+++ b/gsl-1.9/cblas/source_trmv_r.h
@@ -0,0 +1,107 @@
+/* blas/source_trmv_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j;
+ const int nonunit = (Diag == CblasNonUnit);
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+ /* form x := A*x */
+
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE temp = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = N;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[lda * i + j];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = temp + X[ix] * A[lda * i + i];
+ } else {
+ X[ix] += temp;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ for (i = N; i > 0 && i--;) {
+ BASE temp = 0.0;
+ const INDEX j_min = 0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[lda * i + j];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = temp + X[ix] * A[lda * i + i];
+ } else {
+ X[ix] += temp;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := A'*x */
+ INDEX ix = OFFSET(N, incX) + (N - 1) * incX;
+ for (i = N; i > 0 && i--;) {
+ BASE temp = 0.0;
+ const INDEX j_min = 0;
+ const INDEX j_max = i;
+ INDEX jx = OFFSET(N, incX) + j_min * incX;
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[lda * j + i];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = temp + X[ix] * A[lda * i + i];
+ } else {
+ X[ix] += temp;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+ INDEX ix = OFFSET(N, incX);
+ for (i = 0; i < N; i++) {
+ BASE temp = 0.0;
+ const INDEX j_min = i + 1;
+ const INDEX j_max = N;
+ INDEX jx = OFFSET(N, incX) + (i + 1) * incX;
+ for (j = j_min; j < j_max; j++) {
+ temp += X[jx] * A[lda * j + i];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = temp + X[ix] * A[lda * i + i];
+ } else {
+ X[ix] += temp;
+ }
+ ix += incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_trsm_c.h b/gsl-1.9/cblas/source_trsm_c.h
new file mode 100644
index 0000000..d618752
--- /dev/null
+++ b/gsl-1.9/cblas/source_trsm_c.h
@@ -0,0 +1,397 @@
+/* blas/source_trsm_c.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ const int nonunit = (Diag == CblasNonUnit);
+ const int conj = (TransA == CblasConjTrans) ? -1 : 1;
+ int side, uplo, trans;
+
+ const BASE alpha_real = CONST_REAL0(alpha);
+ const BASE alpha_imag = CONST_IMAG0(alpha);
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ side = Side;
+ uplo = Uplo;
+ trans = TransA;
+ trans = (TransA == CblasNoTrans) ? CblasNoTrans : CblasTrans;
+ } else {
+ n1 = N;
+ n2 = M;
+ side = (Side == CblasLeft) ? CblasRight : CblasLeft; /* exchanged */
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper; /* exchanged */
+ trans = (TransA == CblasNoTrans) ? CblasNoTrans : CblasTrans; /* same */
+ }
+
+ if (side == CblasLeft && uplo == CblasUpper && trans == CblasNoTrans) {
+
+ /* form B := alpha * inv(TriU(A)) *B */
+
+ if (!(alpha_real == 1.0 && alpha_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ IMAG(B, ldb * i + j) = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ }
+ }
+ }
+
+ for (i = n1; i > 0 && i--;) {
+ if (nonunit) {
+ const BASE Aii_real = CONST_REAL(A, lda * i + i);
+ const BASE Aii_imag = conj * CONST_IMAG(A, lda * i + i);
+ const BASE s = xhypot(Aii_real, Aii_imag);
+ const BASE a_real = Aii_real / s;
+ const BASE a_imag = Aii_imag / s;
+
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = (Bij_real * a_real + Bij_imag * a_imag) / s;
+ IMAG(B, ldb * i + j) = (Bij_imag * a_real - Bij_real * a_imag) / s;
+ }
+ }
+
+ for (k = 0; k < i; k++) {
+ const BASE Aki_real = CONST_REAL(A, k * lda + i);
+ const BASE Aki_imag = conj * CONST_IMAG(A, k * lda + i);
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * k + j) -= Aki_real * Bij_real - Aki_imag * Bij_imag;
+ IMAG(B, ldb * k + j) -= Aki_real * Bij_imag + Aki_imag * Bij_real;
+ }
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasUpper && trans == CblasTrans) {
+
+ /* form B := alpha * inv(TriU(A))' *B */
+
+ if (!(alpha_real == 1.0 && alpha_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ IMAG(B, ldb * i + j) = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+
+ if (nonunit) {
+ const BASE Aii_real = CONST_REAL(A, lda * i + i);
+ const BASE Aii_imag = conj * CONST_IMAG(A, lda * i + i);
+ const BASE s = xhypot(Aii_real, Aii_imag);
+ const BASE a_real = Aii_real / s;
+ const BASE a_imag = Aii_imag / s;
+
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = (Bij_real * a_real + Bij_imag * a_imag) / s;
+ IMAG(B, ldb * i + j) = (Bij_imag * a_real - Bij_real * a_imag) / s;
+ }
+ }
+
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = conj * CONST_IMAG(A, i * lda + k);
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * k + j) -= Aik_real * Bij_real - Aik_imag * Bij_imag;
+ IMAG(B, ldb * k + j) -= Aik_real * Bij_imag + Aik_imag * Bij_real;
+ }
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasLower && trans == CblasNoTrans) {
+
+ /* form B := alpha * inv(TriL(A))*B */
+
+ if (!(alpha_real == 1.0 && alpha_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ IMAG(B, ldb * i + j) = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+
+ if (nonunit) {
+ const BASE Aii_real = CONST_REAL(A, lda * i + i);
+ const BASE Aii_imag = conj * CONST_IMAG(A, lda * i + i);
+ const BASE s = xhypot(Aii_real, Aii_imag);
+ const BASE a_real = Aii_real / s;
+ const BASE a_imag = Aii_imag / s;
+
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = (Bij_real * a_real + Bij_imag * a_imag) / s;
+ IMAG(B, ldb * i + j) = (Bij_imag * a_real - Bij_real * a_imag) / s;
+ }
+ }
+
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aki_real = CONST_REAL(A, k * lda + i);
+ const BASE Aki_imag = conj * CONST_IMAG(A, k * lda + i);
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * k + j) -= Aki_real * Bij_real - Aki_imag * Bij_imag;
+ IMAG(B, ldb * k + j) -= Aki_real * Bij_imag + Aki_imag * Bij_real;
+ }
+ }
+ }
+
+
+ } else if (side == CblasLeft && uplo == CblasLower && trans == CblasTrans) {
+
+ /* form B := alpha * TriL(A)' *B */
+
+ if (!(alpha_real == 1.0 && alpha_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ IMAG(B, ldb * i + j) = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ }
+ }
+ }
+
+ for (i = n1; i > 0 && i--;) {
+ if (nonunit) {
+ const BASE Aii_real = CONST_REAL(A, lda * i + i);
+ const BASE Aii_imag = conj * CONST_IMAG(A, lda * i + i);
+ const BASE s = xhypot(Aii_real, Aii_imag);
+ const BASE a_real = Aii_real / s;
+ const BASE a_imag = Aii_imag / s;
+
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = (Bij_real * a_real + Bij_imag * a_imag) / s;
+ IMAG(B, ldb * i + j) = (Bij_imag * a_real - Bij_real * a_imag) / s;
+ }
+ }
+
+ for (k = 0; k < i; k++) {
+ const BASE Aik_real = CONST_REAL(A, i * lda + k);
+ const BASE Aik_imag = conj * CONST_IMAG(A, i * lda + k);
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * k + j) -= Aik_real * Bij_real - Aik_imag * Bij_imag;
+ IMAG(B, ldb * k + j) -= Aik_real * Bij_imag + Aik_imag * Bij_real;
+ }
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper && trans == CblasNoTrans) {
+
+ /* form B := alpha * B * inv(TriU(A)) */
+
+ if (!(alpha_real == 1.0 && alpha_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ IMAG(B, ldb * i + j) = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ if (nonunit) {
+ const BASE Ajj_real = CONST_REAL(A, lda * j + j);
+ const BASE Ajj_imag = conj * CONST_IMAG(A, lda * j + j);
+ const BASE s = xhypot(Ajj_real, Ajj_imag);
+ const BASE a_real = Ajj_real / s;
+ const BASE a_imag = Ajj_imag / s;
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = (Bij_real * a_real + Bij_imag * a_imag) / s;
+ IMAG(B, ldb * i + j) = (Bij_imag * a_real - Bij_real * a_imag) / s;
+ }
+
+ {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ for (k = j + 1; k < n2; k++) {
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = conj * CONST_IMAG(A, j * lda + k);
+ REAL(B, ldb * i + k) -= Ajk_real * Bij_real - Ajk_imag * Bij_imag;
+ IMAG(B, ldb * i + k) -= Ajk_real * Bij_imag + Ajk_imag * Bij_real;
+ }
+ }
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper && trans == CblasTrans) {
+
+ /* form B := alpha * B * inv(TriU(A))' */
+
+ if (!(alpha_real == 1.0 && alpha_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ IMAG(B, ldb * i + j) = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ for (j = n2; j > 0 && j--;) {
+
+ if (nonunit) {
+ const BASE Ajj_real = CONST_REAL(A, lda * j + j);
+ const BASE Ajj_imag = conj * CONST_IMAG(A, lda * j + j);
+ const BASE s = xhypot(Ajj_real, Ajj_imag);
+ const BASE a_real = Ajj_real / s;
+ const BASE a_imag = Ajj_imag / s;
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = (Bij_real * a_real + Bij_imag * a_imag) / s;
+ IMAG(B, ldb * i + j) = (Bij_imag * a_real - Bij_real * a_imag) / s;
+ }
+
+ {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ for (k = 0; k < j; k++) {
+ const BASE Akj_real = CONST_REAL(A, k * lda + j);
+ const BASE Akj_imag = conj * CONST_IMAG(A, k * lda + j);
+ REAL(B, ldb * i + k) -= Akj_real * Bij_real - Akj_imag * Bij_imag;
+ IMAG(B, ldb * i + k) -= Akj_real * Bij_imag + Akj_imag * Bij_real;
+ }
+ }
+ }
+ }
+
+
+ } else if (side == CblasRight && uplo == CblasLower && trans == CblasNoTrans) {
+
+ /* form B := alpha * B * inv(TriL(A)) */
+
+ if (!(alpha_real == 1.0 && alpha_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ IMAG(B, ldb * i + j) = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ for (j = n2; j > 0 && j--;) {
+
+ if (nonunit) {
+ const BASE Ajj_real = CONST_REAL(A, lda * j + j);
+ const BASE Ajj_imag = conj * CONST_IMAG(A, lda * j + j);
+ const BASE s = xhypot(Ajj_real, Ajj_imag);
+ const BASE a_real = Ajj_real / s;
+ const BASE a_imag = Ajj_imag / s;
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = (Bij_real * a_real + Bij_imag * a_imag) / s;
+ IMAG(B, ldb * i + j) = (Bij_imag * a_real - Bij_real * a_imag) / s;
+ }
+
+ {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ for (k = 0; k < j; k++) {
+ const BASE Ajk_real = CONST_REAL(A, j * lda + k);
+ const BASE Ajk_imag = conj * CONST_IMAG(A, j * lda + k);
+ REAL(B, ldb * i + k) -= Ajk_real * Bij_real - Ajk_imag * Bij_imag;
+ IMAG(B, ldb * i + k) -= Ajk_real * Bij_imag + Ajk_imag * Bij_real;
+ }
+ }
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower && trans == CblasTrans) {
+
+ /* form B := alpha * B * inv(TriL(A))' */
+
+
+ if (!(alpha_real == 1.0 && alpha_imag == 0.0)) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = alpha_real * Bij_real - alpha_imag * Bij_imag;
+ IMAG(B, ldb * i + j) = alpha_real * Bij_imag + alpha_imag * Bij_real;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ if (nonunit) {
+ const BASE Ajj_real = CONST_REAL(A, lda * j + j);
+ const BASE Ajj_imag = conj * CONST_IMAG(A, lda * j + j);
+ const BASE s = xhypot(Ajj_real, Ajj_imag);
+ const BASE a_real = Ajj_real / s;
+ const BASE a_imag = Ajj_imag / s;
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+ REAL(B, ldb * i + j) = (Bij_real * a_real + Bij_imag * a_imag) / s;
+ IMAG(B, ldb * i + j) = (Bij_imag * a_real - Bij_real * a_imag) / s;
+ }
+
+ {
+ const BASE Bij_real = REAL(B, ldb * i + j);
+ const BASE Bij_imag = IMAG(B, ldb * i + j);
+
+ for (k = j + 1; k < n2; k++) {
+ const BASE Akj_real = CONST_REAL(A, k * lda + j);
+ const BASE Akj_imag = conj * CONST_IMAG(A, k * lda + j);
+ REAL(B, ldb * i + k) -= Akj_real * Bij_real - Akj_imag * Bij_imag;
+ IMAG(B, ldb * i + k) -= Akj_real * Bij_imag + Akj_imag * Bij_real;
+ }
+ }
+ }
+ }
+
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_trsm_r.h b/gsl-1.9/cblas/source_trsm_r.h
new file mode 100644
index 0000000..5cb8955
--- /dev/null
+++ b/gsl-1.9/cblas/source_trsm_r.h
@@ -0,0 +1,275 @@
+/* blas/source_trsm_r.h
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ INDEX i, j, k;
+ INDEX n1, n2;
+ const int nonunit = (Diag == CblasNonUnit);
+ int side, uplo, trans;
+
+ if (Order == CblasRowMajor) {
+ n1 = M;
+ n2 = N;
+ side = Side;
+ uplo = Uplo;
+ trans = (TransA == CblasConjTrans) ? CblasTrans : TransA;
+ } else {
+ n1 = N;
+ n2 = M;
+ side = (Side == CblasLeft) ? CblasRight : CblasLeft;
+ uplo = (Uplo == CblasUpper) ? CblasLower : CblasUpper;
+ trans = (TransA == CblasConjTrans) ? CblasTrans : TransA;
+ }
+
+ if (side == CblasLeft && uplo == CblasUpper && trans == CblasNoTrans) {
+
+ /* form B := alpha * inv(TriU(A)) *B */
+
+ if (alpha != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] *= alpha;
+ }
+ }
+ }
+
+ for (i = n1; i > 0 && i--;) {
+ if (nonunit) {
+ BASE Aii = A[lda * i + i];
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] /= Aii;
+ }
+ }
+
+ for (k = 0; k < i; k++) {
+ const BASE Aki = A[k * lda + i];
+ for (j = 0; j < n2; j++) {
+ B[ldb * k + j] -= Aki * B[ldb * i + j];
+ }
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasUpper && trans == CblasTrans) {
+
+ /* form B := alpha * inv(TriU(A))' *B */
+
+ if (alpha != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] *= alpha;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ if (nonunit) {
+ BASE Aii = A[lda * i + i];
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] /= Aii;
+ }
+ }
+
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aik = A[i * lda + k];
+ for (j = 0; j < n2; j++) {
+ B[ldb * k + j] -= Aik * B[ldb * i + j];
+ }
+ }
+ }
+
+ } else if (side == CblasLeft && uplo == CblasLower && trans == CblasNoTrans) {
+
+ /* form B := alpha * inv(TriL(A))*B */
+
+
+ if (alpha != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] *= alpha;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ if (nonunit) {
+ BASE Aii = A[lda * i + i];
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] /= Aii;
+ }
+ }
+
+ for (k = i + 1; k < n1; k++) {
+ const BASE Aki = A[k * lda + i];
+ for (j = 0; j < n2; j++) {
+ B[ldb * k + j] -= Aki * B[ldb * i + j];
+ }
+ }
+ }
+
+
+ } else if (side == CblasLeft && uplo == CblasLower && trans == CblasTrans) {
+
+ /* form B := alpha * TriL(A)' *B */
+
+ if (alpha != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] *= alpha;
+ }
+ }
+ }
+
+ for (i = n1; i > 0 && i--;) {
+ if (nonunit) {
+ BASE Aii = A[lda * i + i];
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] /= Aii;
+ }
+ }
+
+ for (k = 0; k < i; k++) {
+ const BASE Aik = A[i * lda + k];
+ for (j = 0; j < n2; j++) {
+ B[ldb * k + j] -= Aik * B[ldb * i + j];
+ }
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper && trans == CblasNoTrans) {
+
+ /* form B := alpha * B * inv(TriU(A)) */
+
+ if (alpha != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] *= alpha;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ if (nonunit) {
+ BASE Ajj = A[lda * j + j];
+ B[ldb * i + j] /= Ajj;
+ }
+
+ {
+ BASE Bij = B[ldb * i + j];
+ for (k = j + 1; k < n2; k++) {
+ B[ldb * i + k] -= A[j * lda + k] * Bij;
+ }
+ }
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasUpper && trans == CblasTrans) {
+
+ /* form B := alpha * B * inv(TriU(A))' */
+
+ if (alpha != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] *= alpha;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ for (j = n2; j > 0 && j--;) {
+
+ if (nonunit) {
+ BASE Ajj = A[lda * j + j];
+ B[ldb * i + j] /= Ajj;
+ }
+
+ {
+ BASE Bij = B[ldb * i + j];
+ for (k = 0; k < j; k++) {
+ B[ldb * i + k] -= A[k * lda + j] * Bij;
+ }
+ }
+ }
+ }
+
+
+ } else if (side == CblasRight && uplo == CblasLower && trans == CblasNoTrans) {
+
+ /* form B := alpha * B * inv(TriL(A)) */
+
+ if (alpha != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] *= alpha;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ for (j = n2; j > 0 && j--;) {
+
+ if (nonunit) {
+ BASE Ajj = A[lda * j + j];
+ B[ldb * i + j] /= Ajj;
+ }
+
+ {
+ BASE Bij = B[ldb * i + j];
+ for (k = 0; k < j; k++) {
+ B[ldb * i + k] -= A[j * lda + k] * Bij;
+ }
+ }
+ }
+ }
+
+ } else if (side == CblasRight && uplo == CblasLower && trans == CblasTrans) {
+
+ /* form B := alpha * B * inv(TriL(A))' */
+
+
+ if (alpha != 1.0) {
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ B[ldb * i + j] *= alpha;
+ }
+ }
+ }
+
+ for (i = 0; i < n1; i++) {
+ for (j = 0; j < n2; j++) {
+ if (nonunit) {
+ BASE Ajj = A[lda * j + j];
+ B[ldb * i + j] /= Ajj;
+ }
+
+ {
+ BASE Bij = B[ldb * i + j];
+ for (k = j + 1; k < n2; k++) {
+ B[ldb * i + k] -= A[k * lda + j] * Bij;
+ }
+ }
+ }
+ }
+
+
+
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_trsv_c.h b/gsl-1.9/cblas/source_trsv_c.h
new file mode 100644
index 0000000..4d1b075
--- /dev/null
+++ b/gsl-1.9/cblas/source_trsv_c.h
@@ -0,0 +1,228 @@
+/* blas/source_trsv_c.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int conj = (TransA == CblasConjTrans) ? -1 : 1;
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+ const int nonunit = (Diag == CblasNonUnit);
+ INDEX i, j;
+ INDEX ix, jx;
+
+ if (N == 0)
+ return;
+
+ /* form x := inv( A )*x */
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+
+ ix = OFFSET(N, incX) + incX * (N - 1);
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * (N - 1) + (N - 1));
+ const BASE a_imag = conj * CONST_IMAG(A, lda * (N - 1) + (N - 1));
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (x_real * b_real + x_imag * b_imag) / s;
+ IMAG(X, ix) = (x_imag * b_real - b_imag * x_real) / s;
+ }
+
+ ix -= incX;
+
+ for (i = N - 1; i > 0 && i--;) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ jx = ix + incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aij_real = CONST_REAL(A, lda * i + j);
+ const BASE Aij_imag = conj * CONST_IMAG(A, lda * i + j);
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * i + i);
+ const BASE a_imag = conj * CONST_IMAG(A, lda * i + i);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix -= incX;
+ }
+
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+ /* forward substitution */
+
+ ix = OFFSET(N, incX);
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * 0 + 0);
+ const BASE a_imag = conj * CONST_IMAG(A, lda * 0 + 0);
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (x_real * b_real + x_imag * b_imag) / s;
+ IMAG(X, ix) = (x_imag * b_real - b_imag * x_real) / s;
+ }
+
+ ix += incX;
+
+ for (i = 1; i < N; i++) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aij_real = CONST_REAL(A, lda * i + j);
+ const BASE Aij_imag = conj * CONST_IMAG(A, lda * i + j);
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * i + i);
+ const BASE a_imag = conj * CONST_IMAG(A, lda * i + i);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+ /* form x := inv( A' )*x */
+
+ /* forward substitution */
+
+ ix = OFFSET(N, incX);
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * 0 + 0);
+ const BASE a_imag = conj * CONST_IMAG(A, lda * 0 + 0);
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (x_real * b_real + x_imag * b_imag) / s;
+ IMAG(X, ix) = (x_imag * b_real - b_imag * x_real) / s;
+ }
+
+ ix += incX;
+
+ for (i = 1; i < N; i++) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aij_real = CONST_REAL(A, lda * j + i);
+ const BASE Aij_imag = conj * CONST_IMAG(A, lda * j + i);
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * i + i);
+ const BASE a_imag = conj * CONST_IMAG(A, lda * i + i);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ /* backsubstitution */
+
+ ix = OFFSET(N, incX) + incX * (N - 1);
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * (N - 1) + (N - 1));
+ const BASE a_imag = conj * CONST_IMAG(A, lda * (N - 1) + (N - 1));
+ const BASE x_real = REAL(X, ix);
+ const BASE x_imag = IMAG(X, ix);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (x_real * b_real + x_imag * b_imag) / s;
+ IMAG(X, ix) = (x_imag * b_real - b_imag * x_real) / s;
+ }
+
+ ix -= incX;
+
+ for (i = N - 1; i > 0 && i--;) {
+ BASE tmp_real = REAL(X, ix);
+ BASE tmp_imag = IMAG(X, ix);
+ jx = ix + incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aij_real = CONST_REAL(A, lda * j + i);
+ const BASE Aij_imag = conj * CONST_IMAG(A, lda * j + i);
+ const BASE x_real = REAL(X, jx);
+ const BASE x_imag = IMAG(X, jx);
+ tmp_real -= Aij_real * x_real - Aij_imag * x_imag;
+ tmp_imag -= Aij_real * x_imag + Aij_imag * x_real;
+ jx += incX;
+ }
+
+ if (nonunit) {
+ const BASE a_real = CONST_REAL(A, lda * i + i);
+ const BASE a_imag = conj * CONST_IMAG(A, lda * i + i);
+ const BASE s = xhypot(a_real, a_imag);
+ const BASE b_real = a_real / s;
+ const BASE b_imag = a_imag / s;
+ REAL(X, ix) = (tmp_real * b_real + tmp_imag * b_imag) / s;
+ IMAG(X, ix) = (tmp_imag * b_real - tmp_real * b_imag) / s;
+ } else {
+ REAL(X, ix) = tmp_real;
+ IMAG(X, ix) = tmp_imag;
+ }
+ ix -= incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+}
diff --git a/gsl-1.9/cblas/source_trsv_r.h b/gsl-1.9/cblas/source_trsv_r.h
new file mode 100644
index 0000000..40246f3
--- /dev/null
+++ b/gsl-1.9/cblas/source_trsv_r.h
@@ -0,0 +1,132 @@
+/* blas/source_trsv_r.h
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+{
+ const int nonunit = (Diag == CblasNonUnit);
+ INDEX ix, jx;
+ INDEX i, j;
+ const int Trans = (TransA != CblasConjTrans) ? TransA : CblasTrans;
+
+ if (N == 0)
+ return;
+
+ /* form x := inv( A )*x */
+
+ if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasLower)) {
+ /* backsubstitution */
+ ix = OFFSET(N, incX) + incX * (N - 1);
+ if (nonunit) {
+ X[ix] = X[ix] / A[lda * (N - 1) + (N - 1)];
+ }
+ ix -= incX;
+ for (i = N - 1; i > 0 && i--;) {
+ BASE tmp = X[ix];
+ jx = ix + incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aij = A[lda * i + j];
+ tmp -= Aij * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / A[lda * i + i];
+ } else {
+ X[ix] = tmp;
+ }
+ ix -= incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasNoTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasTrans && Uplo == CblasUpper)) {
+
+ /* forward substitution */
+ ix = OFFSET(N, incX);
+ if (nonunit) {
+ X[ix] = X[ix] / A[lda * 0 + 0];
+ }
+ ix += incX;
+ for (i = 1; i < N; i++) {
+ BASE tmp = X[ix];
+ jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aij = A[lda * i + j];
+ tmp -= Aij * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / A[lda * i + i];
+ } else {
+ X[ix] = tmp;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasUpper)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasLower)) {
+
+ /* form x := inv( A' )*x */
+
+ /* forward substitution */
+ ix = OFFSET(N, incX);
+ if (nonunit) {
+ X[ix] = X[ix] / A[lda * 0 + 0];
+ }
+ ix += incX;
+ for (i = 1; i < N; i++) {
+ BASE tmp = X[ix];
+ jx = OFFSET(N, incX);
+ for (j = 0; j < i; j++) {
+ const BASE Aji = A[lda * j + i];
+ tmp -= Aji * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / A[lda * i + i];
+ } else {
+ X[ix] = tmp;
+ }
+ ix += incX;
+ }
+ } else if ((order == CblasRowMajor && Trans == CblasTrans && Uplo == CblasLower)
+ || (order == CblasColMajor && Trans == CblasNoTrans && Uplo == CblasUpper)) {
+
+ /* backsubstitution */
+ ix = OFFSET(N, incX) + (N - 1) * incX;
+ if (nonunit) {
+ X[ix] = X[ix] / A[lda * (N - 1) + (N - 1)];
+ }
+ ix -= incX;
+ for (i = N - 1; i > 0 && i--;) {
+ BASE tmp = X[ix];
+ jx = ix + incX;
+ for (j = i + 1; j < N; j++) {
+ const BASE Aji = A[lda * j + i];
+ tmp -= Aji * X[jx];
+ jx += incX;
+ }
+ if (nonunit) {
+ X[ix] = tmp / A[lda * i + i];
+ } else {
+ X[ix] = tmp;
+ }
+ ix -= incX;
+ }
+ } else {
+ BLAS_ERROR("unrecognized operation");
+ }
+
+}
diff --git a/gsl-1.9/cblas/srot.c b/gsl-1.9/cblas/srot.c
new file mode 100644
index 0000000..ee602d0
--- /dev/null
+++ b/gsl-1.9/cblas/srot.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_srot (const int N, float *X, const int incX, float *Y, const int incY,
+ const float c, const float s)
+{
+#define BASE float
+#include "source_rot.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/srotg.c b/gsl-1.9/cblas/srotg.c
new file mode 100644
index 0000000..65b2796
--- /dev/null
+++ b/gsl-1.9/cblas/srotg.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_srotg (float *a, float *b, float *c, float *s)
+{
+#define BASE float
+#include "source_rotg.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/srotm.c b/gsl-1.9/cblas/srotm.c
new file mode 100644
index 0000000..b4707e6
--- /dev/null
+++ b/gsl-1.9/cblas/srotm.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_srotm (const int N, float *X, const int incX, float *Y, const int incY,
+ const float *P)
+{
+#define BASE float
+#include "source_rotm.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/srotmg.c b/gsl-1.9/cblas/srotmg.c
new file mode 100644
index 0000000..3366300
--- /dev/null
+++ b/gsl-1.9/cblas/srotmg.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_srotmg (float *d1, float *d2, float *b1, const float b2, float *P)
+{
+#define BASE float
+#include "source_rotmg.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ssbmv.c b/gsl-1.9/cblas/ssbmv.c
new file mode 100644
index 0000000..e01f80e
--- /dev/null
+++ b/gsl-1.9/cblas/ssbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ssbmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const int K, const float alpha, const float *A,
+ const int lda, const float *X, const int incX, const float beta,
+ float *Y, const int incY)
+{
+#define BASE float
+#include "source_sbmv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sscal.c b/gsl-1.9/cblas/sscal.c
new file mode 100644
index 0000000..e4a8334
--- /dev/null
+++ b/gsl-1.9/cblas/sscal.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sscal (const int N, const float alpha, float *X, const int incX)
+{
+#define BASE float
+#include "source_scal_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sspmv.c b/gsl-1.9/cblas/sspmv.c
new file mode 100644
index 0000000..41884d8
--- /dev/null
+++ b/gsl-1.9/cblas/sspmv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sspmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *Ap, const float *X,
+ const int incX, const float beta, float *Y, const int incY)
+{
+#define BASE float
+#include "source_spmv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sspr.c b/gsl-1.9/cblas/sspr.c
new file mode 100644
index 0000000..e0b60d2
--- /dev/null
+++ b/gsl-1.9/cblas/sspr.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sspr (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *X, const int incX,
+ float *Ap)
+{
+#define BASE float
+#include "source_spr.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sspr2.c b/gsl-1.9/cblas/sspr2.c
new file mode 100644
index 0000000..c269b8e
--- /dev/null
+++ b/gsl-1.9/cblas/sspr2.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sspr2 (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *X, const int incX,
+ const float *Y, const int incY, float *Ap)
+{
+#define BASE double
+#include "source_spr2.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/sswap.c b/gsl-1.9/cblas/sswap.c
new file mode 100644
index 0000000..f9ca153
--- /dev/null
+++ b/gsl-1.9/cblas/sswap.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_sswap (const int N, float *X, const int incX, float *Y, const int incY)
+{
+#define BASE float
+#include "source_swap_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ssymm.c b/gsl-1.9/cblas/ssymm.c
new file mode 100644
index 0000000..2516b93
--- /dev/null
+++ b/gsl-1.9/cblas/ssymm.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ssymm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const float alpha, const float *A, const int lda, const float *B,
+ const int ldb, const float beta, float *C, const int ldc)
+{
+#define BASE float
+#include "source_symm_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ssymv.c b/gsl-1.9/cblas/ssymv.c
new file mode 100644
index 0000000..bf2708c
--- /dev/null
+++ b/gsl-1.9/cblas/ssymv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ssymv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *A, const int lda,
+ const float *X, const int incX, const float beta, float *Y,
+ const int incY)
+{
+#define BASE float
+#include "source_symv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ssyr.c b/gsl-1.9/cblas/ssyr.c
new file mode 100644
index 0000000..4cd15ce
--- /dev/null
+++ b/gsl-1.9/cblas/ssyr.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ssyr (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *X, const int incX,
+ float *A, const int lda)
+{
+#define BASE float
+#include "source_syr.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ssyr2.c b/gsl-1.9/cblas/ssyr2.c
new file mode 100644
index 0000000..996710b
--- /dev/null
+++ b/gsl-1.9/cblas/ssyr2.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ssyr2 (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const float alpha, const float *X, const int incX,
+ const float *Y, const int incY, float *A, const int lda)
+{
+#define BASE float
+#include "source_syr2.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ssyr2k.c b/gsl-1.9/cblas/ssyr2k.c
new file mode 100644
index 0000000..2cbafb3
--- /dev/null
+++ b/gsl-1.9/cblas/ssyr2k.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ssyr2k (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const float alpha, const float *A, const int lda,
+ const float *B, const int ldb, const float beta, float *C,
+ const int ldc)
+{
+#define BASE float
+#include "source_syr2k_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ssyrk.c b/gsl-1.9/cblas/ssyrk.c
new file mode 100644
index 0000000..ef5686e
--- /dev/null
+++ b/gsl-1.9/cblas/ssyrk.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ssyrk (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const float alpha, const float *A, const int lda,
+ const float beta, float *C, const int ldc)
+{
+#define BASE float
+#include "source_syrk_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/stbmv.c b/gsl-1.9/cblas/stbmv.c
new file mode 100644
index 0000000..3ff335b
--- /dev/null
+++ b/gsl-1.9/cblas/stbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_stbmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const float *A, const int lda,
+ float *X, const int incX)
+{
+#define BASE float
+#include "source_tbmv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/stbsv.c b/gsl-1.9/cblas/stbsv.c
new file mode 100644
index 0000000..9aee84a
--- /dev/null
+++ b/gsl-1.9/cblas/stbsv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_stbsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const float *A, const int lda,
+ float *X, const int incX)
+{
+#define BASE float
+#include "source_tbsv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/stpmv.c b/gsl-1.9/cblas/stpmv.c
new file mode 100644
index 0000000..d5457da
--- /dev/null
+++ b/gsl-1.9/cblas/stpmv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_stpmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const float *Ap, float *X, const int incX)
+{
+#define BASE float
+#include "source_tpmv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/stpsv.c b/gsl-1.9/cblas/stpsv.c
new file mode 100644
index 0000000..c983de0
--- /dev/null
+++ b/gsl-1.9/cblas/stpsv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_stpsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const float *Ap, float *X, const int incX)
+{
+#define BASE float
+#include "source_tpsv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/strmm.c b/gsl-1.9/cblas/strmm.c
new file mode 100644
index 0000000..2d715fb
--- /dev/null
+++ b/gsl-1.9/cblas/strmm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_strmm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const float alpha, const float *A, const int lda, float *B,
+ const int ldb)
+{
+#define BASE float
+#include "source_trmm_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/strmv.c b/gsl-1.9/cblas/strmv.c
new file mode 100644
index 0000000..2288d96
--- /dev/null
+++ b/gsl-1.9/cblas/strmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_strmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const float *A, const int lda, float *X,
+ const int incX)
+{
+#define BASE float
+#include "source_trmv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/strsm.c b/gsl-1.9/cblas/strsm.c
new file mode 100644
index 0000000..5c620ef
--- /dev/null
+++ b/gsl-1.9/cblas/strsm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_strsm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const float alpha, const float *A, const int lda, float *B,
+ const int ldb)
+{
+#define BASE float
+#include "source_trsm_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/strsv.c b/gsl-1.9/cblas/strsv.c
new file mode 100644
index 0000000..35add0e
--- /dev/null
+++ b/gsl-1.9/cblas/strsv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_strsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const float *A, const int lda, float *X,
+ const int incX)
+{
+#define BASE float
+#include "source_trsv_r.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/test.c b/gsl-1.9/cblas/test.c
new file mode 100644
index 0000000..cccea54
--- /dev/null
+++ b/gsl-1.9/cblas/test.c
@@ -0,0 +1,38 @@
+/* blas/test.c
+ *
+ * Copyright (C) 2001 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <config.h>
+#include <stdlib.h>
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+int
+main (void)
+{
+ gsl_ieee_env_setup ();
+
+#include "tests.c"
+
+ exit (gsl_test_summary());
+}
+
diff --git a/gsl-1.9/cblas/test_amax.c b/gsl-1.9/cblas/test_amax.c
new file mode 100644
index 0000000..c370224
--- /dev/null
+++ b/gsl-1.9/cblas/test_amax.c
@@ -0,0 +1,142 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_amax (void) {
+ {
+ int N = 1;
+ float X[] = { -0.388f };
+ int incX = -1;
+ int expected = 0;
+ int k;
+ k = cblas_isamax(N, X, incX);
+ gsl_test_int(k, expected, "samax(case 52)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.247 };
+ int incX = -1;
+ int expected = 0;
+ int k;
+ k = cblas_idamax(N, X, incX);
+ gsl_test_int(k, expected, "damax(case 53)");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.704f, 0.665f };
+ int incX = -1;
+ int expected = 0;
+ int k;
+ k = cblas_icamax(N, X, incX);
+ gsl_test_int(k, expected, "camax(case 54)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.599, -0.758 };
+ int incX = -1;
+ int expected = 0;
+ int k;
+ k = cblas_izamax(N, X, incX);
+ gsl_test_int(k, expected, "zamax(case 55)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.909f, 0.037f };
+ int incX = 1;
+ int expected = 0;
+ int k;
+ k = cblas_isamax(N, X, incX);
+ gsl_test_int(k, expected, "samax(case 56)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { 0.271, -0.426 };
+ int incX = 1;
+ int expected = 1;
+ int k;
+ k = cblas_idamax(N, X, incX);
+ gsl_test_int(k, expected, "damax(case 57)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { -0.648f, 0.317f, 0.62f, 0.392f };
+ int incX = 1;
+ int expected = 1;
+ int k;
+ k = cblas_icamax(N, X, incX);
+ gsl_test_int(k, expected, "camax(case 58)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { -0.789, 0.352, 0.562, 0.697 };
+ int incX = 1;
+ int expected = 1;
+ int k;
+ k = cblas_izamax(N, X, incX);
+ gsl_test_int(k, expected, "zamax(case 59)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.487f, 0.918f };
+ int incX = -1;
+ int expected = 0;
+ int k;
+ k = cblas_isamax(N, X, incX);
+ gsl_test_int(k, expected, "samax(case 60)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { 0.537, 0.826 };
+ int incX = -1;
+ int expected = 0;
+ int k;
+ k = cblas_idamax(N, X, incX);
+ gsl_test_int(k, expected, "damax(case 61)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.993f, 0.172f, -0.825f, 0.873f };
+ int incX = -1;
+ int expected = 0;
+ int k;
+ k = cblas_icamax(N, X, incX);
+ gsl_test_int(k, expected, "camax(case 62)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { 0.913, -0.436, -0.134, 0.129 };
+ int incX = -1;
+ int expected = 0;
+ int k;
+ k = cblas_izamax(N, X, incX);
+ gsl_test_int(k, expected, "zamax(case 63)");
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_asum.c b/gsl-1.9/cblas/test_asum.c
new file mode 100644
index 0000000..26353de
--- /dev/null
+++ b/gsl-1.9/cblas/test_asum.c
@@ -0,0 +1,143 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_asum (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float X[] = { 0.239f };
+ int incX = -1;
+ float expected = 0.0f;
+ float f;
+ f = cblas_sasum(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "sasum(case 40)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.413 };
+ int incX = -1;
+ double expected = 0;
+ double f;
+ f = cblas_dasum(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dasum(case 41)");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.1f, 0.017f };
+ int incX = -1;
+ float expected = 0.0f;
+ float f;
+ f = cblas_scasum(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "scasum(case 42)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.651, 0.079 };
+ int incX = -1;
+ double expected = 0;
+ double f;
+ f = cblas_dzasum(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dzasum(case 43)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.899f, -0.72f };
+ int incX = 1;
+ float expected = 1.619f;
+ float f;
+ f = cblas_sasum(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "sasum(case 44)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { 0.271, -0.012 };
+ int incX = 1;
+ double expected = 0.283;
+ double f;
+ f = cblas_dasum(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dasum(case 45)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { -0.567f, -0.645f, 0.098f, 0.256f };
+ int incX = 1;
+ float expected = 1.566f;
+ float f;
+ f = cblas_scasum(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "scasum(case 46)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { -0.046, -0.671, -0.323, 0.785 };
+ int incX = 1;
+ double expected = 1.825;
+ double f;
+ f = cblas_dzasum(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dzasum(case 47)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.169f, 0.833f };
+ int incX = -1;
+ float expected = 0.0f;
+ float f;
+ f = cblas_sasum(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "sasum(case 48)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { -0.586, -0.486 };
+ int incX = -1;
+ double expected = 0;
+ double f;
+ f = cblas_dasum(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dasum(case 49)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { -0.314f, -0.318f, -0.835f, -0.807f };
+ int incX = -1;
+ float expected = 0.0f;
+ float f;
+ f = cblas_scasum(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "scasum(case 50)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { -0.927, 0.152, -0.554, -0.844 };
+ int incX = -1;
+ double expected = 0;
+ double f;
+ f = cblas_dzasum(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dzasum(case 51)");
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_axpy.c b/gsl-1.9/cblas/test_axpy.c
new file mode 100644
index 0000000..9f30cd4
--- /dev/null
+++ b/gsl-1.9/cblas/test_axpy.c
@@ -0,0 +1,233 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_axpy (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float alpha = 0.0f;
+ float X[] = { 0.018f };
+ int incX = 1;
+ float Y[] = { -0.417f };
+ int incY = -1;
+ float expected[] = { -0.417f };
+ cblas_saxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 64)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha = 0;
+ double X[] = { 0.071 };
+ int incX = 1;
+ double Y[] = { -0.888 };
+ int incY = -1;
+ double expected[] = { -0.888 };
+ cblas_daxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 65)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {1.0f, 0.0f};
+ float X[] = { -0.542f, -0.362f };
+ int incX = 1;
+ float Y[] = { -0.459f, -0.433f };
+ int incY = -1;
+ float expected[] = { -1.001f, -0.795f };
+ cblas_caxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 66) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 66) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {-1, 0};
+ double X[] = { 0.003, -0.514 };
+ int incX = 1;
+ double Y[] = { -0.529, 0.743 };
+ int incY = -1;
+ double expected[] = { -0.532, 1.257 };
+ cblas_zaxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 67) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 67) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 0.1f;
+ float X[] = { 0.771f };
+ int incX = -1;
+ float Y[] = { 0.507f };
+ int incY = 1;
+ float expected[] = { 0.5841f };
+ cblas_saxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 68)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha = -0.3;
+ double X[] = { 0.029 };
+ int incX = -1;
+ double Y[] = { -0.992 };
+ int incY = 1;
+ double expected[] = { -1.0007 };
+ cblas_daxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 69)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {-0.3f, 0.1f};
+ float X[] = { 0.194f, -0.959f };
+ int incX = -1;
+ float Y[] = { 0.096f, 0.032f };
+ int incY = 1;
+ float expected[] = { 0.1337f, 0.3391f };
+ cblas_caxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 70) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 70) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {0, 1};
+ double X[] = { 0.776, -0.671 };
+ int incX = -1;
+ double Y[] = { 0.39, 0.404 };
+ int incY = 1;
+ double expected[] = { 1.061, 1.18 };
+ cblas_zaxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 71) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 71) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 1.0f;
+ float X[] = { 0.647f };
+ int incX = -1;
+ float Y[] = { 0.016f };
+ int incY = -1;
+ float expected[] = { 0.663f };
+ cblas_saxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 72)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha = -1;
+ double X[] = { -0.558 };
+ int incX = -1;
+ double Y[] = { 0.308 };
+ int incY = -1;
+ double expected[] = { 0.866 };
+ cblas_daxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 73)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {-0.3f, 0.1f};
+ float X[] = { 0.899f, -0.624f };
+ int incX = -1;
+ float Y[] = { 0.155f, -0.33f };
+ int incY = -1;
+ float expected[] = { -0.0523f, -0.0529f };
+ cblas_caxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 74) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 74) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {0, 1};
+ double X[] = { -0.451, 0.768 };
+ int incX = -1;
+ double Y[] = { 0.007, 0.732 };
+ int incY = -1;
+ double expected[] = { -0.761, 0.281 };
+ cblas_zaxpy(N, alpha, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 75) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 75) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_copy.c b/gsl-1.9/cblas/test_copy.c
new file mode 100644
index 0000000..2a65663
--- /dev/null
+++ b/gsl-1.9/cblas/test_copy.c
@@ -0,0 +1,221 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_copy (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float X[] = { 0.898f };
+ int incX = 1;
+ float Y[] = { 0.699f };
+ int incY = -1;
+ float expected[] = { 0.898f };
+ cblas_scopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], flteps, "scopy(case 76)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.002 };
+ int incX = 1;
+ double Y[] = { -0.921 };
+ int incY = -1;
+ double expected[] = { 0.002 };
+ cblas_dcopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], dbleps, "dcopy(case 77)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { -0.166f, 0.639f };
+ int incX = 1;
+ float Y[] = { 0.863f, 0.613f };
+ int incY = -1;
+ float expected[] = { -0.166f, 0.639f };
+ cblas_ccopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], flteps, "ccopy(case 78) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "ccopy(case 78) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.315, -0.324 };
+ int incX = 1;
+ double Y[] = { -0.312, -0.748 };
+ int incY = -1;
+ double expected[] = { 0.315, -0.324 };
+ cblas_zcopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zcopy(case 79) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zcopy(case 79) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.222f };
+ int incX = -1;
+ float Y[] = { 0.522f };
+ int incY = 1;
+ float expected[] = { 0.222f };
+ cblas_scopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], flteps, "scopy(case 80)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.021 };
+ int incX = -1;
+ double Y[] = { 0.898 };
+ int incY = 1;
+ double expected[] = { 0.021 };
+ cblas_dcopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], dbleps, "dcopy(case 81)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.376f, 0.229f };
+ int incX = -1;
+ float Y[] = { 0.143f, -0.955f };
+ int incY = 1;
+ float expected[] = { 0.376f, 0.229f };
+ cblas_ccopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], flteps, "ccopy(case 82) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "ccopy(case 82) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.265, -0.84 };
+ int incX = -1;
+ double Y[] = { -0.156, 0.939 };
+ int incY = 1;
+ double expected[] = { -0.265, -0.84 };
+ cblas_zcopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zcopy(case 83) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zcopy(case 83) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.074f };
+ int incX = -1;
+ float Y[] = { -0.802f };
+ int incY = -1;
+ float expected[] = { 0.074f };
+ cblas_scopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], flteps, "scopy(case 84)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.374 };
+ int incX = -1;
+ double Y[] = { -0.161 };
+ int incY = -1;
+ double expected[] = { -0.374 };
+ cblas_dcopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected[i], dbleps, "dcopy(case 85)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.084f, 0.778f };
+ int incX = -1;
+ float Y[] = { 0.31f, -0.797f };
+ int incY = -1;
+ float expected[] = { 0.084f, 0.778f };
+ cblas_ccopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], flteps, "ccopy(case 86) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "ccopy(case 86) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.831, -0.282 };
+ int incX = -1;
+ double Y[] = { -0.62, 0.32 };
+ int incY = -1;
+ double expected[] = { 0.831, -0.282 };
+ cblas_zcopy(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zcopy(case 87) real");
+ gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zcopy(case 87) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_dot.c b/gsl-1.9/cblas/test_dot.c
new file mode 100644
index 0000000..8000fe7
--- /dev/null
+++ b/gsl-1.9/cblas/test_dot.c
@@ -0,0 +1,383 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_dot (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float alpha = 0.0f;
+ float X[] = { 0.733f };
+ float Y[] = { 0.825f };
+ int incX = 1;
+ int incY = -1;
+ float expected = 0.604725f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 1)");
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 0.1f;
+ float X[] = { 0.733f };
+ float Y[] = { 0.825f };
+ int incX = 1;
+ int incY = -1;
+ float expected = 0.704725f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 2)");
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 1.0f;
+ float X[] = { 0.733f };
+ float Y[] = { 0.825f };
+ int incX = 1;
+ int incY = -1;
+ float expected = 1.604725f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 3)");
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 0.0f;
+ float X[] = { -0.812f };
+ float Y[] = { -0.667f };
+ int incX = -1;
+ int incY = 1;
+ float expected = 0.541604f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 4)");
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 0.1f;
+ float X[] = { -0.812f };
+ float Y[] = { -0.667f };
+ int incX = -1;
+ int incY = 1;
+ float expected = 0.641604f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 5)");
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 1.0f;
+ float X[] = { -0.812f };
+ float Y[] = { -0.667f };
+ int incX = -1;
+ int incY = 1;
+ float expected = 1.541604f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 6)");
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 0.0f;
+ float X[] = { 0.481f };
+ float Y[] = { 0.523f };
+ int incX = -1;
+ int incY = -1;
+ float expected = 0.251563f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 7)");
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 0.1f;
+ float X[] = { 0.481f };
+ float Y[] = { 0.523f };
+ int incX = -1;
+ int incY = -1;
+ float expected = 0.351563f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 8)");
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 1.0f;
+ float X[] = { 0.481f };
+ float Y[] = { 0.523f };
+ int incX = -1;
+ int incY = -1;
+ float expected = 1.251563f;
+ float f;
+ f = cblas_sdsdot (N, alpha, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdsdot(case 9)");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.785f };
+ float Y[] = { -0.7f };
+ int incX = 1;
+ int incY = -1;
+ float expected = -0.5495f;
+ float f;
+ f = cblas_sdot(N, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdot(case 10)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.79 };
+ double Y[] = { -0.679 };
+ int incX = 1;
+ int incY = -1;
+ double expected = -0.53641;
+ double f;
+ f = cblas_ddot(N, X, incX, Y, incY);
+ gsl_test_rel(f, expected, dbleps, "ddot(case 11)");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.474f, -0.27f };
+ float Y[] = { -0.144f, -0.392f };
+ int incX = 1;
+ int incY = -1;
+ float expected[2] = {-0.174096f, -0.146928f};
+ float f[2];
+ cblas_cdotu_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], flteps, "cdotu(case 12) real");
+ gsl_test_rel(f[1], expected[1], flteps, "cdotu(case 12) imag");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.474f, -0.27f };
+ float Y[] = { -0.144f, -0.392f };
+ int incX = 1;
+ int incY = -1;
+ float expected[2] = {0.037584f, -0.224688f};
+ float f[2];
+ cblas_cdotc_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], flteps, "cdotc(case 13) real");
+ gsl_test_rel(f[1], expected[1], flteps, "cdotc(case 13) imag");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.87, -0.631 };
+ double Y[] = { -0.7, -0.224 };
+ int incX = 1;
+ int incY = -1;
+ double expected[2] = {0.467656, 0.63658};
+ double f[2];
+ cblas_zdotu_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], dbleps, "zdotu(case 14) real");
+ gsl_test_rel(f[1], expected[1], dbleps, "zdotu(case 14) imag");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.87, -0.631 };
+ double Y[] = { -0.7, -0.224 };
+ int incX = 1;
+ int incY = -1;
+ double expected[2] = {0.750344, -0.24682};
+ double f[2];
+ cblas_zdotc_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], dbleps, "zdotc(case 15) real");
+ gsl_test_rel(f[1], expected[1], dbleps, "zdotc(case 15) imag");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { -0.457f };
+ float Y[] = { 0.839f };
+ int incX = -1;
+ int incY = 1;
+ float expected = -0.383423f;
+ float f;
+ f = cblas_sdot(N, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdot(case 16)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.949 };
+ double Y[] = { -0.873 };
+ int incX = -1;
+ int incY = 1;
+ double expected = -0.828477;
+ double f;
+ f = cblas_ddot(N, X, incX, Y, incY);
+ gsl_test_rel(f, expected, dbleps, "ddot(case 17)");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.852f, -0.045f };
+ float Y[] = { 0.626f, -0.164f };
+ int incX = -1;
+ int incY = 1;
+ float expected[2] = {0.525972f, -0.167898f};
+ float f[2];
+ cblas_cdotu_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], flteps, "cdotu(case 18) real");
+ gsl_test_rel(f[1], expected[1], flteps, "cdotu(case 18) imag");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.852f, -0.045f };
+ float Y[] = { 0.626f, -0.164f };
+ int incX = -1;
+ int incY = 1;
+ float expected[2] = {0.540732f, -0.111558f};
+ float f[2];
+ cblas_cdotc_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], flteps, "cdotc(case 19) real");
+ gsl_test_rel(f[1], expected[1], flteps, "cdotc(case 19) imag");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.786, -0.341 };
+ double Y[] = { -0.271, -0.896 };
+ int incX = -1;
+ int incY = 1;
+ double expected[2] = {-0.09253, 0.796667};
+ double f[2];
+ cblas_zdotu_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], dbleps, "zdotu(case 20) real");
+ gsl_test_rel(f[1], expected[1], dbleps, "zdotu(case 20) imag");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.786, -0.341 };
+ double Y[] = { -0.271, -0.896 };
+ int incX = -1;
+ int incY = 1;
+ double expected[2] = {0.518542, 0.611845};
+ double f[2];
+ cblas_zdotc_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], dbleps, "zdotc(case 21) real");
+ gsl_test_rel(f[1], expected[1], dbleps, "zdotc(case 21) imag");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { -0.088f };
+ float Y[] = { -0.165f };
+ int incX = -1;
+ int incY = -1;
+ float expected = 0.01452f;
+ float f;
+ f = cblas_sdot(N, X, incX, Y, incY);
+ gsl_test_rel(f, expected, flteps, "sdot(case 22)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.434 };
+ double Y[] = { -0.402 };
+ int incX = -1;
+ int incY = -1;
+ double expected = 0.174468;
+ double f;
+ f = cblas_ddot(N, X, incX, Y, incY);
+ gsl_test_rel(f, expected, dbleps, "ddot(case 23)");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { -0.347f, 0.899f };
+ float Y[] = { -0.113f, -0.858f };
+ int incX = -1;
+ int incY = -1;
+ float expected[2] = {0.810553f, 0.196139f};
+ float f[2];
+ cblas_cdotu_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], flteps, "cdotu(case 24) real");
+ gsl_test_rel(f[1], expected[1], flteps, "cdotu(case 24) imag");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { -0.347f, 0.899f };
+ float Y[] = { -0.113f, -0.858f };
+ int incX = -1;
+ int incY = -1;
+ float expected[2] = {-0.732131f, 0.399313f};
+ float f[2];
+ cblas_cdotc_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], flteps, "cdotc(case 25) real");
+ gsl_test_rel(f[1], expected[1], flteps, "cdotc(case 25) imag");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.897, -0.204 };
+ double Y[] = { -0.759, 0.557 };
+ int incX = -1;
+ int incY = -1;
+ double expected[2] = {0.794451, -0.344793};
+ double f[2];
+ cblas_zdotu_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], dbleps, "zdotu(case 26) real");
+ gsl_test_rel(f[1], expected[1], dbleps, "zdotu(case 26) imag");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.897, -0.204 };
+ double Y[] = { -0.759, 0.557 };
+ int incX = -1;
+ int incY = -1;
+ double expected[2] = {0.567195, -0.654465};
+ double f[2];
+ cblas_zdotc_sub(N, X, incX, Y, incY, &f);
+ gsl_test_rel(f[0], expected[0], dbleps, "zdotc(case 27) real");
+ gsl_test_rel(f[1], expected[1], dbleps, "zdotc(case 27) imag");
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_gbmv.c b/gsl-1.9/cblas/test_gbmv.c
new file mode 100644
index 0000000..34eff26
--- /dev/null
+++ b/gsl-1.9/cblas/test_gbmv.c
@@ -0,0 +1,543 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_gbmv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int trans = 111;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha = -1.0f;
+ float beta = -1.0f;
+ float A[] = { 0.423f, -0.143f, -0.182f, -0.076f, -0.855f, 0.599f, 0.389f, -0.473f, 0.493f, -0.902f, -0.889f, -0.256f, 0.112f, 0.128f, -0.277f, -0.777f };
+ float X[] = { 0.488f, 0.029f, -0.633f, 0.84f };
+ int incX = -1;
+ float Y[] = { 0.874f, 0.322f, -0.477f };
+ int incY = -1;
+ float y_expected[] = { -0.101941f, 0.764086f, 0.481914f };
+ cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 794)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha = -1.0f;
+ float beta = -1.0f;
+ float A[] = { 0.423f, -0.143f, -0.182f, -0.076f, -0.855f, 0.599f, 0.389f, -0.473f, 0.493f, -0.902f, -0.889f, -0.256f, 0.112f, 0.128f, -0.277f, -0.777f };
+ float X[] = { 0.488f, 0.029f, -0.633f, 0.84f };
+ int incX = -1;
+ float Y[] = { 0.874f, 0.322f, -0.477f };
+ int incY = -1;
+ float y_expected[] = { -0.656261f, 0.19575f, 0.055905f };
+ cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 795)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha = 0.0f;
+ float beta = 0.1f;
+ float A[] = { -0.066f, -0.153f, -0.619f, 0.174f, 0.777f, 0.543f, 0.614f, -0.446f, -0.138f, -0.767f, 0.725f, 0.222f, 0.165f, -0.063f, -0.047f, 0.267f };
+ float X[] = { -0.096f, -0.007f, -0.657f };
+ int incX = -1;
+ float Y[] = { -0.88f, 0.102f, -0.278f, 0.403f };
+ int incY = -1;
+ float y_expected[] = { -0.088f, 0.0102f, -0.0278f, 0.0403f };
+ cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 796)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha = 0.0f;
+ float beta = 0.1f;
+ float A[] = { -0.066f, -0.153f, -0.619f, 0.174f, 0.777f, 0.543f, 0.614f, -0.446f, -0.138f, -0.767f, 0.725f, 0.222f, 0.165f, -0.063f, -0.047f, 0.267f };
+ float X[] = { -0.096f, -0.007f, -0.657f };
+ int incX = -1;
+ float Y[] = { -0.88f, 0.102f, -0.278f, 0.403f };
+ int incY = -1;
+ float y_expected[] = { -0.088f, 0.0102f, -0.0278f, 0.0403f };
+ cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 797)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha = 0.1;
+ double beta = 0;
+ double A[] = { -0.688, 0.29, 0.442, -0.001, 0.313, -0.073, 0.991, -0.654, -0.12, 0.416, 0.571, 0.932, -0.179, -0.724, 0.492, -0.965 };
+ double X[] = { 0.187, -0.338, -0.976, -0.052 };
+ int incX = -1;
+ double Y[] = { -0.101, 0.8, 0.026 };
+ int incY = -1;
+ double y_expected[] = { 0.0083289, -0.0279986, -0.0446472 };
+ cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 798)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha = 0.1;
+ double beta = 0;
+ double A[] = { -0.688, 0.29, 0.442, -0.001, 0.313, -0.073, 0.991, -0.654, -0.12, 0.416, 0.571, 0.932, -0.179, -0.724, 0.492, -0.965 };
+ double X[] = { 0.187, -0.338, -0.976, -0.052 };
+ int incX = -1;
+ double Y[] = { -0.101, 0.8, 0.026 };
+ int incY = -1;
+ double y_expected[] = { -0.1141297, 0.0088824, -0.0320568 };
+ cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 799)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha = -0.3;
+ double beta = -0.3;
+ double A[] = { 0.746, 0.262, -0.449, -0.954, -0.093, 0.108, -0.496, 0.927, 0.177, 0.729, -0.92, -0.469, 0.87, -0.877, -0.308, -0.806 };
+ double X[] = { 0.662, -0.887, 0.261 };
+ int incX = -1;
+ double Y[] = { 0.771, 0.637, -0.177, -0.018 };
+ int incY = -1;
+ double y_expected[] = { -0.048588, -0.467865, 0.0818433, -0.0398619 };
+ cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 800)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha = -0.3;
+ double beta = -0.3;
+ double A[] = { 0.746, 0.262, -0.449, -0.954, -0.093, 0.108, -0.496, 0.927, 0.177, 0.729, -0.92, -0.469, 0.87, -0.877, -0.308, -0.806 };
+ double X[] = { 0.662, -0.887, 0.261 };
+ int incX = -1;
+ double Y[] = { 0.771, 0.637, -0.177, -0.018 };
+ int incY = -1;
+ double y_expected[] = { -0.404082, -0.2887797, 0.1876263, -0.1345935 };
+ cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 801)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { -0.107f, 0.926f, -0.246f, -0.555f, -0.301f, 0.276f, 0.471f, -0.084f, -0.754f, 0.082f, -0.952f, -0.394f, 0.659f, 0.054f, 0.795f, 0.923f, 0.232f, -0.788f, 0.478f, 0.775f, -0.118f, 0.691f, -0.933f, 0.809f, 0.164f, -0.263f, -0.923f, -0.88f, 0.819f, -0.521f, -0.045f, 0.034f };
+ float X[] = { 0.407f, 0.895f, 0.301f, 0.769f, -0.269f, -0.465f, 0.455f, -0.628f };
+ int incX = -1;
+ float Y[] = { -0.116f, -0.744f, -0.936f, -0.064f, -0.232f, -0.665f };
+ int incY = -1;
+ float y_expected[] = { -0.806176f, -1.559f, -1.57611f, -0.155463f, 0.098816f, -0.274361f };
+ cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 802) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 802) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { -0.107f, 0.926f, -0.246f, -0.555f, -0.301f, 0.276f, 0.471f, -0.084f, -0.754f, 0.082f, -0.952f, -0.394f, 0.659f, 0.054f, 0.795f, 0.923f, 0.232f, -0.788f, 0.478f, 0.775f, -0.118f, 0.691f, -0.933f, 0.809f, 0.164f, -0.263f, -0.923f, -0.88f, 0.819f, -0.521f, -0.045f, 0.034f };
+ float X[] = { 0.407f, 0.895f, 0.301f, 0.769f, -0.269f, -0.465f, 0.455f, -0.628f };
+ int incX = -1;
+ float Y[] = { -0.116f, -0.744f, -0.936f, -0.064f, -0.232f, -0.665f };
+ int incY = -1;
+ float y_expected[] = { -0.245235f, -0.313725f, -0.798094f, 0.691455f, -0.164015f, -0.242714f };
+ cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 803) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 803) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { -0.258f, 0.838f, -0.106f, -0.066f, 0.395f, 0.982f, -0.546f, 0.565f, 0.14f, -0.18f, 0.165f, -0.186f, 0.499f, -0.038f, -0.305f, -0.653f, -0.811f, -0.466f, -0.674f, -0.013f, -0.552f, -0.807f, -0.536f, 0.864f, -0.027f, -0.606f, 0.459f, 0.564f, -0.968f, 0.717f, -0.312f, -0.485f };
+ float X[] = { -0.399f, 0.459f, 0.398f, 0.358f, -0.161f, -0.359f };
+ int incX = -1;
+ float Y[] = { 0.572f, 0.293f, -0.813f, -0.096f, -0.611f, -0.717f, 0.736f, 0.259f };
+ int incY = -1;
+ float y_expected[] = { -0.619961f, -0.011425f, -0.477499f, 0.059361f, -0.886984f, 0.44008f, -0.139432f, 0.04644f };
+ cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 804) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 804) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { -0.258f, 0.838f, -0.106f, -0.066f, 0.395f, 0.982f, -0.546f, 0.565f, 0.14f, -0.18f, 0.165f, -0.186f, 0.499f, -0.038f, -0.305f, -0.653f, -0.811f, -0.466f, -0.674f, -0.013f, -0.552f, -0.807f, -0.536f, 0.864f, -0.027f, -0.606f, 0.459f, 0.564f, -0.968f, 0.717f, -0.312f, -0.485f };
+ float X[] = { -0.399f, 0.459f, 0.398f, 0.358f, -0.161f, -0.359f };
+ int incX = -1;
+ float Y[] = { 0.572f, 0.293f, -0.813f, -0.096f, -0.611f, -0.717f, 0.736f, 0.259f };
+ int incY = -1;
+ float y_expected[] = { -0.318227f, -0.172201f, -0.109343f, 0.698685f, 0.208261f, -0.269065f, 0.175074f, -0.507326f };
+ cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 805) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 805) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { -0.804f, 0.232f, -0.448f, -0.558f, -0.078f, -0.056f, -0.345f, -0.379f, 0.369f, -0.662f, -0.169f, -0.391f, -0.215f, 0.467f, 0.374f, 0.889f, -0.698f, 0.734f, 0.377f, -0.955f, 0.498f, 0.151f, -0.725f, -0.728f, -0.655f, -0.581f, 0.389f, 0.949f, -0.553f, -0.434f, 0.237f, 0.641f };
+ float X[] = { -0.262f, -0.823f, -0.357f, -0.994f, -0.347f, -0.375f };
+ int incX = -1;
+ float Y[] = { -0.683f, -0.87f, -0.708f, 0.071f, 0.575f, -0.575f, 0.845f, 0.032f };
+ int incY = -1;
+ float y_expected[] = { 0.341749f, 0.301992f, -0.306848f, 0.109252f, -0.018347f, -0.747479f, -0.894201f, 0.713246f };
+ cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 806) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 806) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { -0.804f, 0.232f, -0.448f, -0.558f, -0.078f, -0.056f, -0.345f, -0.379f, 0.369f, -0.662f, -0.169f, -0.391f, -0.215f, 0.467f, 0.374f, 0.889f, -0.698f, 0.734f, 0.377f, -0.955f, 0.498f, 0.151f, -0.725f, -0.728f, -0.655f, -0.581f, 0.389f, 0.949f, -0.553f, -0.434f, 0.237f, 0.641f };
+ float X[] = { -0.262f, -0.823f, -0.357f, -0.994f, -0.347f, -0.375f };
+ int incX = -1;
+ float Y[] = { -0.683f, -0.87f, -0.708f, 0.071f, 0.575f, -0.575f, 0.845f, 0.032f };
+ int incY = -1;
+ float y_expected[] = { -0.562773f, -0.455143f, -0.213881f, -0.466169f, -0.183683f, 0.097891f, -0.451416f, 0.052586f };
+ cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 807) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 807) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { -0.919, -0.002, 0.105, -0.338, -0.358, -0.715, -0.157, 0.307, 0.334, 0.121, 0.366, 0.029, -0.006, -0.662, -0.314, 0.061, -0.322, -0.865, -0.586, 0.556, 0.507, 0.581, 0.855, -0.09, 0.836, -0.788, -0.209, -0.694, -0.695, 0.11, -0.234, 0.17 };
+ double X[] = { 0.356, -0.76, -0.96, 0.437, -0.849, 0.397, -0.382, -0.826 };
+ int incX = -1;
+ double Y[] = { 0.288, -0.832, 0.889, 0.576, -0.809, 0.4 };
+ int incY = -1;
+ double y_expected[] = { 0.3241775, -0.6761577, 0.8458527, 0.5705165, -0.8597295, 0.4268499 };
+ cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 808) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 808) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { -0.919, -0.002, 0.105, -0.338, -0.358, -0.715, -0.157, 0.307, 0.334, 0.121, 0.366, 0.029, -0.006, -0.662, -0.314, 0.061, -0.322, -0.865, -0.586, 0.556, 0.507, 0.581, 0.855, -0.09, 0.836, -0.788, -0.209, -0.694, -0.695, 0.11, -0.234, 0.17 };
+ double X[] = { 0.356, -0.76, -0.96, 0.437, -0.849, 0.397, -0.382, -0.826 };
+ int incX = -1;
+ double Y[] = { 0.288, -0.832, 0.889, 0.576, -0.809, 0.4 };
+ int incY = -1;
+ double y_expected[] = { 0.4026074, -0.8033768, 0.7510795, 0.5671044, -0.8162255, 0.3349099 };
+ cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 809) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 809) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ double A[] = { 0.511, -0.707, -0.906, 0.345, -0.524, -0.933, 0.154, -0.529, -0.651, -0.851, 0.104, 0.532, -0.297, 0.477, 0.511, 0.469, -0.888, -0.789, 0.656, 0.288, -0.749, 0.961, 0.571, 0.539, 0.465, 0.647, 0.653, -0.994, -0.515, 0.297, 0.35, -0.707 };
+ double X[] = { -0.991, 0.658, -0.909, -0.99, -0.517, -0.071 };
+ int incX = -1;
+ double Y[] = { 0.451, 0.351, -0.113, -0.62, 0.983, 0.511, 0.142, -0.186 };
+ int incY = -1;
+ double y_expected[] = { 0.560921, -1.094193, -0.210397, -0.613323, 3.018979, 0.641612, 0.384166, 1.11801 };
+ cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 810) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 810) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ double A[] = { 0.511, -0.707, -0.906, 0.345, -0.524, -0.933, 0.154, -0.529, -0.651, -0.851, 0.104, 0.532, -0.297, 0.477, 0.511, 0.469, -0.888, -0.789, 0.656, 0.288, -0.749, 0.961, 0.571, 0.539, 0.465, 0.647, 0.653, -0.994, -0.515, 0.297, 0.35, -0.707 };
+ double X[] = { -0.991, 0.658, -0.909, -0.99, -0.517, -0.071 };
+ int incX = -1;
+ double Y[] = { 0.451, 0.351, -0.113, -0.62, 0.983, 0.511, 0.142, -0.186 };
+ int incY = -1;
+ double y_expected[] = { -0.435541, 0.015793, -0.926518, 1.122561, 1.671751, -0.257493, 0.187543, 1.066818 };
+ cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 811) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 811) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { 0.534, 0.67, -0.621, 0.143, -0.794, 0.073, 0.414, -0.9, 0.155, -0.368, 0.122, -0.583, 0.03, 0.646, -0.768, -0.892, -0.741, -0.397, 0.626, 0.004, -0.515, 0.355, 0.196, -0.989, -0.982, 0.985, 0.445, 0.63, -0.849, -0.528, 0.146, -0.319 };
+ double X[] = { -0.199, -0.259, 0.386, -0.131, -0.867, 0.888 };
+ int incX = -1;
+ double Y[] = { 0.106, 0.874, 0.962, 0.636, -0.759, 0.415, -0.053, 0.315 };
+ int incY = -1;
+ double y_expected[] = { -0.139603, -0.250546, -0.3107376, -0.1144656, 0.2181809, -0.0877031, 0.0149724, -0.0224571 };
+ cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 812) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 812) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int M = 3;
+ int N = 4;
+ int KL = 1;
+ int KU = 1;
+ int lda = 4;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { 0.534, 0.67, -0.621, 0.143, -0.794, 0.073, 0.414, -0.9, 0.155, -0.368, 0.122, -0.583, 0.03, 0.646, -0.768, -0.892, -0.741, -0.397, 0.626, 0.004, -0.515, 0.355, 0.196, -0.989, -0.982, 0.985, 0.445, 0.63, -0.849, -0.528, 0.146, -0.319 };
+ double X[] = { -0.199, -0.259, 0.386, -0.131, -0.867, 0.888 };
+ int incX = -1;
+ double Y[] = { 0.106, 0.874, 0.962, 0.636, -0.759, 0.415, -0.053, 0.315 };
+ int incY = -1;
+ double y_expected[] = { -0.1642353, -0.2575697, -0.3610975, -0.1305629, 0.1713576, -0.2514988, 0.0195631, -0.0648656 };
+ cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 813) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 813) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_gemm.c b/gsl-1.9/cblas/test_gemm.c
new file mode 100644
index 0000000..aafa4f3
--- /dev/null
+++ b/gsl-1.9/cblas/test_gemm.c
@@ -0,0 +1,1399 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_gemm (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ float A[] = { 0.199f, 0.237f, 0.456f, 0.377f };
+ int lda = 4;
+ float B[] = { 0.842f, -0.734f, 0.323f, -0.957f, -0.303f, -0.873f, -0.871f, -0.819f };
+ int ldb = 2;
+ float C[] = { 0.498f, -0.925f };
+ int ldc = 2;
+ float C_expected[] = { -0.222426f, -1.07973f };
+ cblas_sgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "sgemm(case 1466)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ float A[] = { -0.83f, 0.922f, -0.228f, -0.003f };
+ int lda = 1;
+ float B[] = { 0.072f, 0.345f, 0.944f, -0.39f, -0.577f, 0.656f, -0.693f, -0.453f };
+ int ldb = 4;
+ float C[] = { 0.583f, 0.522f };
+ int ldc = 1;
+ float C_expected[] = { 0.044268f, 1.24311f };
+ cblas_sgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "sgemm(case 1467)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha = 0.1f;
+ float beta = 0.1f;
+ float A[] = { -0.838f, 0.622f, -0.494f, 0.304f };
+ int lda = 4;
+ float B[] = { 0.147f, 0.134f, 0.169f, 0.734f, -0.7f, 0.541f, -0.794f, -0.256f };
+ int ldb = 4;
+ float C[] = { -0.632f, -0.559f };
+ int ldc = 2;
+ float C_expected[] = { -0.0532188f, 0.0678514f };
+ cblas_sgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "sgemm(case 1468)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha = 0.1f;
+ float beta = 0.1f;
+ float A[] = { -0.937f, 0.635f, 0.596f, -0.51f };
+ int lda = 1;
+ float B[] = { -0.688f, -0.265f, 0.049f, 0.133f, -0.918f, -0.147f, 0.977f, -0.21f };
+ int ldb = 2;
+ float C[] = { 0.844f, 0.999f };
+ int ldc = 1;
+ float C_expected[] = { 0.0474373f, 0.135125f };
+ cblas_sgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "sgemm(case 1469)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha = -0.3f;
+ float beta = 0.1f;
+ float A[] = { -0.165f, 0.638f, 0.346f, -0.697f };
+ int lda = 1;
+ float B[] = { 0.499f, -0.73f, 0.262f, 0.759f, 0.664f, 0.997f, -0.702f, -0.839f };
+ int ldb = 2;
+ float C[] = { 0.17f, 0.425f };
+ int ldc = 2;
+ float C_expected[] = { -0.224158f, -0.417831f };
+ cblas_sgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "sgemm(case 1470)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha = -0.3f;
+ float beta = 0.1f;
+ float A[] = { -0.603f, -0.714f, -0.893f, 0.046f };
+ int lda = 4;
+ float B[] = { 0.859f, -0.694f, -0.868f, -0.98f, -0.103f, 0.567f, -0.277f, -0.734f };
+ int ldb = 4;
+ float C[] = { 0.517f, -0.622f };
+ int ldc = 1;
+ float C_expected[] = { -0.160575f, -0.0234604f };
+ cblas_sgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "sgemm(case 1471)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha = 0.1f;
+ float beta = 1.0f;
+ float A[] = { -0.087f, -0.047f, -0.051f, -0.615f };
+ int lda = 1;
+ float B[] = { -0.722f, -0.077f, 0.563f, 0.501f, 0.855f, 0.605f, 0.556f, -0.627f };
+ int ldb = 4;
+ float C[] = { -0.181f, -0.89f };
+ int ldc = 2;
+ float C_expected[] = { -0.208039f, -0.864557f };
+ cblas_sgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "sgemm(case 1472)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha = 0.1f;
+ float beta = 1.0f;
+ float A[] = { -0.753f, -0.074f, -0.247f, -0.19f };
+ int lda = 4;
+ float B[] = { 0.061f, 0.743f, 0.22f, -0.682f, 0.733f, 0.417f, 0.772f, 0.665f };
+ int ldb = 2;
+ float C[] = { -0.253f, 0.972f };
+ int ldc = 1;
+ float C_expected[] = { -0.291994f, 0.898164f };
+ cblas_sgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "sgemm(case 1473)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha = 0;
+ double beta = 0;
+ double A[] = { 0.017, 0.191, 0.863, -0.97 };
+ int lda = 4;
+ double B[] = { -0.207, -0.916, -0.278, 0.403, 0.885, 0.409, -0.772, -0.27 };
+ int ldb = 2;
+ double C[] = { -0.274, -0.858 };
+ int ldc = 2;
+ double C_expected[] = { 0.0, 0.0 };
+ cblas_dgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dgemm(case 1474)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha = 0;
+ double beta = 0;
+ double A[] = { 0.571, 0.081, 0.109, 0.988 };
+ int lda = 1;
+ double B[] = { -0.048, -0.753, -0.8, -0.89, -0.535, -0.017, -0.018, -0.544 };
+ int ldb = 4;
+ double C[] = { -0.876, -0.792 };
+ int ldc = 1;
+ double C_expected[] = { 0.0, 0.0 };
+ cblas_dgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dgemm(case 1475)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha = -0.3;
+ double beta = 1;
+ double A[] = { 0.939, 0.705, 0.977, 0.4 };
+ int lda = 4;
+ double B[] = { -0.089, -0.822, 0.937, 0.159, 0.789, -0.413, -0.172, 0.88 };
+ int ldb = 4;
+ double C[] = { -0.619, 0.063 };
+ int ldc = 2;
+ double C_expected[] = { -0.7137904, -0.1270986 };
+ cblas_dgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dgemm(case 1476)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha = -0.3;
+ double beta = 1;
+ double A[] = { -0.795, 0.81, 0.388, 0.09 };
+ int lda = 1;
+ double B[] = { -0.847, 0.031, -0.938, 0.09, -0.286, -0.478, -0.981, 0.881 };
+ int ldb = 2;
+ double C[] = { -0.242, -0.02 };
+ int ldc = 1;
+ double C_expected[] = { -0.1562981, -0.0026243 };
+ cblas_dgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dgemm(case 1477)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha = -1;
+ double beta = 0;
+ double A[] = { -0.556, 0.532, 0.746, 0.673 };
+ int lda = 1;
+ double B[] = { -0.525, 0.967, 0.687, -0.024, 0.527, 0.485, 0.109, -0.46 };
+ int ldb = 2;
+ double C[] = { -0.495, 0.859 };
+ int ldc = 2;
+ double C_expected[] = { -1.123883, 0.49819 };
+ cblas_dgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dgemm(case 1478)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha = -1;
+ double beta = 0;
+ double A[] = { -0.358, 0.224, -0.941, 0.513 };
+ int lda = 4;
+ double B[] = { -0.201, -0.159, -0.586, -0.016, -0.324, 0.411, 0.115, -0.229 };
+ int ldb = 4;
+ double C[] = { 0.558, 0.596 };
+ int ldc = 1;
+ double C_expected[] = { -0.57956, 0.017636 };
+ cblas_dgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dgemm(case 1479)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha = -0.3;
+ double beta = 1;
+ double A[] = { -0.586, 0.809, 0.709, -0.524 };
+ int lda = 1;
+ double B[] = { 0.768, 0.7, 0.619, -0.478, -0.129, -0.778, -0.432, 0.454 };
+ int ldb = 4;
+ double C[] = { 0.042, 0.252 };
+ int ldc = 2;
+ double C_expected[] = { -0.1996785, 0.5813976 };
+ cblas_dgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dgemm(case 1480)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha = -0.3;
+ double beta = 1;
+ double A[] = { -0.164, 0.522, 0.948, -0.624 };
+ int lda = 4;
+ double B[] = { -0.142, 0.778, 0.359, 0.622, -0.637, -0.757, -0.282, -0.805 };
+ int ldb = 2;
+ double C[] = { -0.09, 0.183 };
+ int ldc = 1;
+ double C_expected[] = { -0.0248334, 0.1884672 };
+ cblas_dgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dgemm(case 1481)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { -0.082f, -0.281f, -0.096f, 0.913f, 0.974f, -0.706f, -0.773f, 0.522f };
+ int lda = 4;
+ float B[] = { 0.745f, -0.664f, 0.352f, -0.733f, 0.304f, -0.555f, -0.493f, -0.089f, 0.188f, 0.631f, 0.235f, 0.152f, -0.299f, -0.731f, -0.686f, -0.332f };
+ int ldb = 2;
+ float C[] = { -0.179f, -0.284f, -0.996f, -0.414f };
+ int ldc = 2;
+ float C_expected[] = { -1.06679f, 1.47116f, 0.599689f, 0.933532f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1482) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1482) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { 0.044f, -0.33f, 0.279f, 0.712f, -0.363f, -0.788f, -0.768f, -0.551f };
+ int lda = 1;
+ float B[] = { 0.138f, 0.927f, -0.178f, -0.864f, 0.888f, 0.844f, -0.199f, 0.706f, -0.034f, 0.483f, 0.499f, 0.664f, 0.648f, 0.324f, 0.97f, 0.609f };
+ int ldb = 4;
+ float C[] = { -0.129f, 0.842f, 0.214f, -0.626f };
+ int ldc = 1;
+ float C_expected[] = { 1.81122f, 1.76205f, 1.0574f, -0.564966f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1483) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1483) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.0f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { 0.812f, -0.471f, 0.241f, 0.795f, 0.439f, 0.131f, -0.636f, 0.531f };
+ int lda = 4;
+ float B[] = { 0.062f, 0.807f, 0.873f, 0.372f, 0.239f, 0.804f, 0.537f, -0.954f, -0.396f, 0.838f, 0.081f, 0.15f, 0.489f, -0.438f, 0.165f, 0.429f };
+ int ldb = 4;
+ float C[] = { 0.868f, 0.329f, -0.509f, 0.724f };
+ int ldc = 2;
+ float C_expected[] = { -0.868f, -0.329f, 0.509f, -0.724f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1484) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1484) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.0f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { 0.832f, 0.198f, 0.794f, -0.522f, -0.319f, 0.578f, 0.332f, 0.746f };
+ int lda = 1;
+ float B[] = { -0.361f, 0.187f, -0.163f, -0.781f, 0.536f, 0.888f, -0.969f, 0.899f, 0.961f, -0.583f, 0.753f, 0.29f, -0.997f, 0.729f, -0.352f, -0.2f };
+ int ldb = 2;
+ float C[] = { 0.864f, 0.735f, -0.074f, -0.228f };
+ int ldc = 1;
+ float C_expected[] = { -0.864f, -0.735f, 0.074f, 0.228f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1485) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1485) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { 0.149f, 0.187f, 0.263f, -0.715f, -0.882f, -0.907f, 0.87f, -0.527f };
+ int lda = 4;
+ float B[] = { -0.915f, -0.249f, -0.986f, -0.799f, -0.136f, 0.712f, 0.964f, 0.799f, -0.569f, 0.686f, 0.603f, 0.758f, 0.161f, -0.698f, -0.263f, -0.256f };
+ int ldb = 4;
+ float C[] = { 0.622f, -0.824f, -0.482f, -0.161f };
+ int ldc = 2;
+ float C_expected[] = { -0.246901f, 0.083044f, 1.25556f, 0.009106f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1486) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1486) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { 0.963f, -0.943f, -0.734f, -0.253f, 0.832f, 0.545f, -0.815f, -0.434f };
+ int lda = 1;
+ float B[] = { 0.23f, -0.211f, 0.906f, 0.232f, -0.339f, 0.597f, -0.919f, 0.793f, 0.535f, 0.526f, 0.119f, 0.053f, 0.751f, 0.044f, 0.752f, -0.469f };
+ int ldb = 2;
+ float C[] = { 0.483f, -0.266f, -0.224f, -0.692f };
+ int ldc = 1;
+ float C_expected[] = { -0.047537f, 0.667177f, 1.02025f, 0.823778f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1487) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1487) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { -0.657f, -0.497f, -0.293f, -0.168f, -0.943f, -0.181f, 0.569f, 0.91f };
+ int lda = 1;
+ float B[] = { -0.047f, 0.796f, -0.913f, 0.998f, 0.365f, 0.467f, -0.627f, -0.523f, 0.885f, 0.234f, -0.494f, 0.071f, -0.361f, -0.154f, -0.055f, -0.32f };
+ int ldb = 2;
+ float C[] = { 0.956f, 0.268f, 0.152f, 0.717f };
+ int ldc = 2;
+ float C_expected[] = { -0.668685f, 0.134477f, -0.715786f, -0.478065f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1488) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1488) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { 0.394f, -0.482f, 0.631f, -0.833f, 0.221f, 0.672f, 0.2f, 0.967f };
+ int lda = 4;
+ float B[] = { 0.708f, 0.695f, 0.111f, -0.912f, 0.376f, 0.606f, -0.997f, -0.741f, 0.349f, 0.543f, 0.372f, -0.563f, 0.129f, -0.295f, -0.672f, -0.95f };
+ int ldb = 4;
+ float C[] = { 0.436f, 0.752f, 0.074f, 0.209f };
+ int ldc = 1;
+ float C_expected[] = { -0.325083f, -0.301952f, -0.283022f, 0.339919f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1489) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1489) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.827f, -0.862f, 0.373f, -0.265f, -0.9f, 0.892f, -0.319f, 0.151f };
+ int lda = 1;
+ float B[] = { 0.603f, 0.816f, -0.511f, 0.831f, -0.36f, -0.954f, -0.978f, 0.485f, 0.675f, 0.186f, 0.463f, 0.144f, 0.851f, -0.458f, 0.766f, -0.213f };
+ int ldb = 4;
+ float C[] = { -0.335f, 0.333f, -0.4f, 0.422f };
+ int ldc = 2;
+ float C_expected[] = { 2.7126f, 0.702111f, 0.437661f, 0.691294f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1490) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1490) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.966f, 0.476f, -0.013f, -0.655f, 0.773f, -0.543f, -0.231f, -0.353f };
+ int lda = 4;
+ float B[] = { -0.684f, 0.144f, 0.018f, -0.77f, -0.688f, 0.909f, -0.094f, -0.938f, -0.757f, 0.574f, -0.479f, 0.473f, 0.0f, 0.064f, -0.168f, 0.858f };
+ int ldb = 2;
+ float C[] = { -0.912f, 0.54f, 0.756f, 0.024f };
+ int ldc = 1;
+ float C_expected[] = { -0.156236f, 0.839112f, -0.230206f, -0.106256f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1491) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1491) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.0f};
+ float beta[2] = {1.0f, 0.0f};
+ float A[] = { 0.66f, -0.113f, -0.663f, -0.856f, 0.614f, -0.344f, -0.964f, -0.532f };
+ int lda = 1;
+ float B[] = { -0.606f, -0.965f, -0.279f, -0.312f, 0.63f, 0.967f, 0.041f, -0.557f, 0.663f, 0.619f, -0.134f, 0.261f, -0.388f, 0.525f, 0.222f, 0.538f };
+ int ldb = 4;
+ float C[] = { 0.114f, -0.376f, -0.851f, -0.682f };
+ int ldc = 2;
+ float C_expected[] = { 0.114f, -0.376f, -0.851f, -0.682f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1492) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1492) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.0f};
+ float beta[2] = {1.0f, 0.0f};
+ float A[] = { 0.212f, -0.752f, 0.679f, 0.49f, -0.029f, -0.488f, 0.567f, 0.374f };
+ int lda = 4;
+ float B[] = { -0.914f, 0.734f, -0.845f, 0.059f, -0.297f, 0.152f, -0.417f, -0.669f, 0.831f, -0.544f, 0.022f, 0.102f, -0.379f, -0.357f, -0.394f, -0.588f };
+ int ldb = 2;
+ float C[] = { -0.584f, 0.373f, 0.235f, 0.521f };
+ int ldc = 1;
+ float C_expected[] = { -0.584f, 0.373f, 0.235f, 0.521f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1493) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1493) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 113;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { 0.135f, 0.128f, 0.909f, -0.963f, 0.299f, -0.944f, 0.944f, 0.942f };
+ int lda = 1;
+ float B[] = { 0.924f, -0.317f, -0.992f, -0.854f, -0.435f, 0.102f, 0.126f, 0.862f, 0.952f, 0.68f, 0.545f, 0.168f, 0.752f, 0.549f, 0.687f, -0.76f };
+ int ldb = 2;
+ float C[] = { -0.369f, -0.33f, 0.849f, -0.632f };
+ int ldc = 2;
+ float C_expected[] = { 0.326537f, 0.37603f, -0.86067f, 0.529817f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1494) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1494) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 113;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { 0.061f, -0.271f, -0.043f, -0.023f, 0.694f, 0.333f, 0.733f, -0.967f };
+ int lda = 4;
+ float B[] = { 0.088f, -0.607f, 0.589f, 0.375f, -0.897f, -0.954f, -0.216f, -0.195f, -0.865f, -0.511f, -0.219f, 0.535f, 0.976f, 0.582f, 0.464f, -0.041f };
+ int ldb = 4;
+ float C[] = { 0.533f, -0.63f, 0.405f, 0.667f };
+ int ldc = 1;
+ float C_expected[] = { -0.459906f, 0.552595f, -0.425391f, -0.533626f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1495) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1495) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 113;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.0f};
+ float beta[2] = {1.0f, 0.0f};
+ float A[] = { -0.676f, -0.116f, 0.707f, -0.256f, -0.893f, -0.966f, 0.159f, -0.246f };
+ int lda = 1;
+ float B[] = { 0.059f, 0.281f, -0.93f, -0.263f, 0.583f, -0.11f, 0.639f, -0.96f, -0.878f, 0.984f, 0.058f, 0.977f, -0.567f, 0.561f, -0.048f, -0.798f };
+ int ldb = 4;
+ float C[] = { 0.362f, -0.808f, 0.428f, -0.112f };
+ int ldc = 2;
+ float C_expected[] = { 0.362f, -0.808f, 0.428f, -0.112f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1496) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1496) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 113;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.0f};
+ float beta[2] = {1.0f, 0.0f};
+ float A[] = { -0.915f, 0.439f, 0.171f, -0.019f, 0.843f, 0.944f, -0.581f, 0.856f };
+ int lda = 4;
+ float B[] = { -0.284f, 0.207f, -0.27f, 0.832f, 0.894f, -0.626f, -0.305f, -0.006f, 0.562f, -0.744f, -0.533f, 0.126f, -0.375f, -0.333f, 0.275f, 0.748f };
+ int ldb = 2;
+ float C[] = { -0.763f, -0.829f, 0.708f, -0.613f };
+ int ldc = 1;
+ float C_expected[] = { -0.763f, -0.829f, 0.708f, -0.613f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1497) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1497) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 113;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { 0.496f, -0.9f, 0.825f, -0.678f, 0.41f, -0.585f, -0.264f, 0.308f };
+ int lda = 1;
+ float B[] = { 0.907f, 0.972f, -0.724f, 0.745f, -0.601f, 0.589f, 0.759f, -0.521f, -0.161f, -0.321f, 0.341f, -0.981f, -0.378f, -0.671f, -0.314f, -0.878f };
+ int ldb = 4;
+ float C[] = { -0.293f, 0.07f, 0.087f, -0.542f };
+ int ldc = 2;
+ float C_expected[] = { 0.10357f, -0.163927f, 0.444626f, -0.0076744f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1498) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1498) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 113;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { -0.225f, -0.629f, -0.939f, -0.836f, -0.841f, -0.794f, 0.836f, -0.65f };
+ int lda = 4;
+ float B[] = { 0.869f, -0.453f, 0.8f, -0.947f, 0.545f, 0.716f, -0.507f, -0.228f, 0.722f, 0.372f, 0.77f, 0.317f, -0.153f, -0.524f, -0.465f, -0.684f };
+ int ldb = 2;
+ float C[] = { -0.896f, 0.91f, -0.973f, -0.269f };
+ int ldc = 1;
+ float C_expected[] = { -1.18974f, -1.0134f, 0.189027f, -1.14494f };
+ cblas_cgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cgemm(case 1499) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cgemm(case 1499) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {1, 0};
+ double beta[2] = {-1, 0};
+ double A[] = { -0.33, 0.457, 0.428, -0.19, 0.86, -0.53, 0.058, -0.942 };
+ int lda = 4;
+ double B[] = { 0.434, 0.653, -0.124, 0.191, -0.112, -0.84, -0.72, 0.075, -0.503, -0.109, 0.3, -0.898, 0.489, 0.384, 0.993, -0.804 };
+ int ldb = 2;
+ double C[] = { -0.792, -0.155, -0.608, -0.243 };
+ int ldc = 2;
+ double C_expected[] = { 0.042563, -0.465908, -0.649991, -1.621116 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1500) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1500) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {1, 0};
+ double beta[2] = {-1, 0};
+ double A[] = { 0.726, -0.438, -0.23, -0.054, -0.019, 0.902, -0.883, -0.235 };
+ int lda = 1;
+ double B[] = { 0.159, -0.18, 0.386, -0.167, 0.971, -0.072, 0.87, -0.839, 0.474, 0.956, -0.235, 0.332, 0.826, -0.056, -0.941, 0.01 };
+ int ldb = 4;
+ double C[] = { -0.799, 0.973, -0.549, -0.177 };
+ int ldc = 1;
+ double C_expected[] = { -0.181084, 0.257841, 2.251901, 1.558195 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1501) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1501) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { 0.109, 0.892, -0.723, 0.793, 0.109, -0.419, -0.534, 0.448 };
+ int lda = 4;
+ double B[] = { -0.875, -0.31, -0.027, 0.067, 0.274, -0.126, -0.548, 0.497, 0.681, 0.388, 0.909, 0.889, 0.982, -0.074, -0.788, 0.233 };
+ int ldb = 4;
+ double C[] = { 0.503, 0.067, 0.239, 0.876 };
+ int ldc = 2;
+ double C_expected[] = { 0.6553584, 0.0864583, 0.2559136, 0.7518389 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1502) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1502) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { 0.334, 0.192, -0.992, -0.168, 0.154, -0.75, -0.797, -0.76 };
+ int lda = 1;
+ double B[] = { -0.82, 0.147, -0.237, 0.68, 0.317, 0.257, -0.406, -0.802, 0.058, 0.012, -0.832, 0.949, -0.263, -0.085, -0.064, 0.492 };
+ int ldb = 2;
+ double C[] = { 0.079, -0.602, -0.392, 0.316 };
+ int ldc = 1;
+ double C_expected[] = { 0.0980569, -0.6430449, -0.539207, 0.4226848 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1503) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1503) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 111;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {0, 0};
+ double beta[2] = {-1, 0};
+ double A[] = { -0.305, -0.698, -0.072, -0.383, 0.364, -0.656, 0.819, 0.194 };
+ int lda = 4;
+ double B[] = { 0.682, 0.498, -0.389, 0.923, -0.853, -0.558, -0.722, -0.085, -0.27, 0.026, -0.107, -0.036, 0.644, -0.327, -0.894, 0.34 };
+ int ldb = 4;
+ double C[] = { 0.981, -0.336, -0.377, -0.41 };
+ int ldc = 2;
+ double C_expected[] = { -0.981, 0.336, 0.377, 0.41 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1504) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1504) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 111;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {0, 0};
+ double beta[2] = {-1, 0};
+ double A[] = { -0.306, -0.709, -0.196, 0.285, 0.873, -0.802, 0.715, -0.179 };
+ int lda = 1;
+ double B[] = { 0.028, 0.109, 0.87, -0.446, 0.735, 0.731, 0.021, -0.186, 0.541, 0.97, -0.333, 0.002, -0.089, -0.01, 0.331, 0.851 };
+ int ldb = 2;
+ double C[] = { 0.902, -0.584, -0.695, -0.607 };
+ int ldc = 1;
+ double C_expected[] = { -0.902, 0.584, 0.695, 0.607 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1505) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1505) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {-1, 0};
+ double beta[2] = {1, 0};
+ double A[] = { 0.517, -0.136, 0.72, -0.237, 0.121, -0.66, 0.005, 0.759 };
+ int lda = 1;
+ double B[] = { -0.606, 0.049, 0.807, -0.236, -0.258, -0.412, 0.75, -0.659, 0.993, -0.029, -0.968, 0.707, -0.362, -0.005, 0.096, -0.241 };
+ int ldb = 2;
+ double C[] = { 0.63, 0.922, 0.025, -0.535 };
+ int ldc = 2;
+ double C_expected[] = { 1.117044, 1.983417, -1.276831, -0.447092 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1506) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1506) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {-1, 0};
+ double beta[2] = {1, 0};
+ double A[] = { 0.064, 0.371, -0.01, -0.262, 0.143, -0.081, 0.1, -0.062 };
+ int lda = 4;
+ double B[] = { -0.749, 0.289, -0.239, -0.226, 0.284, 0.668, 0.305, 0.075, -0.36, 0.166, -0.416, 0.234, -0.267, 0.525, 0.116, -0.561 };
+ int ldb = 4;
+ double C[] = { 0.671, 0.763, 0.444, -0.246 };
+ int ldc = 1;
+ double C_expected[] = { 0.753107, 0.896395, 0.481996, -0.263126 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1507) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1507) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {1, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { -0.956, -0.751, 0.671, -0.633, 0.648, -0.042, 0.948, 0.826 };
+ int lda = 1;
+ double B[] = { 0.921, 0.506, -0.609, 0.817, -0.686, 0.991, 0.616, -0.482, -0.02, -0.34, 0.559, 0.976, 0.431, 0.385, -0.164, -0.778 };
+ int ldb = 4;
+ double C[] = { 0.074, -0.01, 0.165, 0.166 };
+ int ldc = 2;
+ double C_expected[] = { 0.166046, 0.491557, 1.473191, -0.033821 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1508) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1508) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {1, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { -0.698, -0.062, 0.023, 0.704, 0.443, -0.46, 0.541, 0.296 };
+ int lda = 4;
+ double B[] = { 0.787, -0.199, 0.835, -0.276, -0.515, 0.467, -0.76, -0.483, 0.015, -0.394, -0.748, 0.02, 0.573, 0.3, -0.088, -0.238 };
+ int ldb = 2;
+ double C[] = { 0.935, -0.655, -0.797, 0.071 };
+ int ldc = 1;
+ double C_expected[] = { -1.070679, 0.178755, -0.344714, -0.308137 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1509) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1509) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 112;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { -0.202, -0.219, 0.741, 0.527, 0.054, 0.16, -0.359, 0.338 };
+ int lda = 1;
+ double B[] = { -0.872, 0.995, 0.722, 0.618, -0.27, 0.939, -0.743, 0.547, -0.864, 0.376, -0.997, -0.63, 0.887, -0.454, 0.436, -0.039 };
+ int ldb = 4;
+ double C[] = { -0.684, 0.463, -0.386, -0.524 };
+ int ldc = 2;
+ double C_expected[] = { 0.1423153, -0.066679, 0.1175618, 0.0012949 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1510) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1510) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 112;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { -0.855, -0.173, -0.679, 0.824, 0.469, 0.786, 0.757, -0.109 };
+ int lda = 4;
+ double B[] = { 0.483, -0.888, -0.757, 0.551, -0.81, 0.23, -0.078, 0.725, -0.592, 0.394, 0.884, 0.802, -0.813, -0.016, -0.853, 0.783 };
+ int ldb = 2;
+ double C[] = { 0.181, -0.368, -0.864, -0.784 };
+ int ldc = 1;
+ double C_expected[] = { 0.1728438, 0.1183508, 0.2526999, 0.3004174 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1511) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1511) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 113;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {-1, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { 0.446, -0.65, -0.724, 0.014, 0.792, -0.695, -0.81, -0.358 };
+ int lda = 1;
+ double B[] = { -0.08, 0.216, 0.689, 0.699, 0.073, -0.346, 0.821, -0.668, -0.798, 0.869, 0.451, -0.061, -0.41, 0.316, 0.104, -0.514 };
+ int ldb = 2;
+ double C[] = { -0.476, 0.211, -0.912, -0.243 };
+ int ldc = 2;
+ double C_expected[] = { 1.372475, -0.135616, 0.549353, -1.968747 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1512) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1512) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 113;
+ int transB = 111;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {-1, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { 0.669, 0.046, -0.094, 0.666, 0.23, 0.448, -0.795, -0.142 };
+ int lda = 4;
+ double B[] = { 0.037, -0.154, -0.739, 0.905, 0.793, -0.53, -0.34, 0.428, 0.072, -0.263, -0.603, -0.905, 0.681, -0.083, -0.511, -0.337 };
+ int ldb = 4;
+ double C[] = { 0.247, 0.575, -0.836, -0.883 };
+ int ldc = 1;
+ double C_expected[] = { -0.975939, 0.415528, 0.275533, 0.002716 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1513) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1513) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 113;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {0, 0};
+ double beta[2] = {-1, 0};
+ double A[] = { 0.369, 0.506, 0.217, -0.739, -0.395, 0.16, -0.329, -0.954 };
+ int lda = 1;
+ double B[] = { -0.622, -0.945, 0.416, -0.884, 0.797, -0.74, 0.519, -0.789, -0.348, 0.563, -0.398, -0.956, 0.227, 0.84, -0.079, 0.847 };
+ int ldb = 4;
+ double C[] = { 0.833, 0.761, 0.074, -0.448 };
+ int ldc = 2;
+ double C_expected[] = { -0.833, -0.761, -0.074, 0.448 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1514) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1514) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 113;
+ int transB = 112;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {0, 0};
+ double beta[2] = {-1, 0};
+ double A[] = { -0.141, 0.275, 0.717, 0.775, -0.701, -0.689, -0.883, -0.077 };
+ int lda = 4;
+ double B[] = { -0.526, -0.437, 0.133, -0.209, -0.83, 0.328, 0.916, -0.337, 0.762, -0.664, -0.566, 0.955, 0.168, 0.488, -0.172, -0.535 };
+ int ldb = 2;
+ double C[] = { -0.88, 0.945, 0.416, 0.99 };
+ int ldc = 1;
+ double C_expected[] = { 0.88, -0.945, -0.416, -0.99 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1515) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1515) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int transA = 113;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {0, 0.1};
+ double A[] = { -0.534, -0.013, -0.258, -0.31, -0.211, -0.883, -0.89, -0.499 };
+ int lda = 1;
+ double B[] = { -0.185, -0.798, -0.34, 0.716, 0.035, 0.968, -0.26, 0.784, -0.889, -0.344, -0.685, -0.647, -0.764, 0.03, 0.626, -0.989 };
+ int ldb = 4;
+ double C[] = { -0.793, -0.551, 0.182, 0.838 };
+ int ldc = 2;
+ double C_expected[] = { -0.5507177, -0.0286821, 0.2222276, 0.5197398 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1516) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1516) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int transA = 113;
+ int transB = 113;
+ int M = 1;
+ int N = 2;
+ int K = 4;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {0, 0.1};
+ double A[] = { 0.575, -0.128, -0.702, 0.758, 0.383, -0.914, 0.157, 0.368 };
+ int lda = 4;
+ double B[] = { 0.572, -0.841, 0.223, -0.334, -0.823, -0.84, 0.671, -0.871, 0.241, 0.927, -0.344, 0.281, -0.034, -0.104, 0.587, -0.329 };
+ int ldb = 2;
+ double C[] = { -0.612, 0.167, 0.647, 0.447 };
+ int ldc = 1;
+ double C_expected[] = { -0.7876717, 0.0341179, -0.0800018, 0.5717566 };
+ cblas_zgemm(order, transA, transB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zgemm(case 1517) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zgemm(case 1517) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_gemv.c b/gsl-1.9/cblas/test_gemv.c
new file mode 100644
index 0000000..9145168
--- /dev/null
+++ b/gsl-1.9/cblas/test_gemv.c
@@ -0,0 +1,503 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_gemv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int trans = 111;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float beta = -0.3f;
+ float A[] = { -0.805f };
+ float X[] = { -0.965f };
+ int incX = -1;
+ float Y[] = { 0.537f };
+ int incY = -1;
+ float y_expected[] = { 0.615725f };
+ cblas_sgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sgemv(case 774)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float beta = -0.3f;
+ float A[] = { -0.805f };
+ float X[] = { -0.965f };
+ int incX = -1;
+ float Y[] = { 0.537f };
+ int incY = -1;
+ float y_expected[] = { 0.615725f };
+ cblas_sgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sgemv(case 775)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ float A[] = { -0.805f };
+ float X[] = { -0.965f };
+ int incX = -1;
+ float Y[] = { 0.537f };
+ int incY = -1;
+ float y_expected[] = { 0.776825f };
+ cblas_sgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sgemv(case 776)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ float A[] = { -0.805f };
+ float X[] = { -0.965f };
+ int incX = -1;
+ float Y[] = { 0.537f };
+ int incY = -1;
+ float y_expected[] = { 0.776825f };
+ cblas_sgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sgemv(case 777)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha = -0.3;
+ double beta = -1;
+ double A[] = { -0.047 };
+ double X[] = { 0.672 };
+ int incX = -1;
+ double Y[] = { 0.554 };
+ int incY = -1;
+ double y_expected[] = { -0.5445248 };
+ cblas_dgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dgemv(case 778)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha = -0.3;
+ double beta = -1;
+ double A[] = { -0.047 };
+ double X[] = { 0.672 };
+ int incX = -1;
+ double Y[] = { 0.554 };
+ int incY = -1;
+ double y_expected[] = { -0.5445248 };
+ cblas_dgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dgemv(case 779)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha = -1;
+ double beta = 1;
+ double A[] = { -0.047 };
+ double X[] = { 0.672 };
+ int incX = -1;
+ double Y[] = { 0.554 };
+ int incY = -1;
+ double y_expected[] = { 0.585584 };
+ cblas_dgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dgemv(case 780)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha = -1;
+ double beta = 1;
+ double A[] = { -0.047 };
+ double X[] = { 0.672 };
+ int incX = -1;
+ double Y[] = { 0.554 };
+ int incY = -1;
+ double y_expected[] = { 0.585584 };
+ cblas_dgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dgemv(case 781)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { 0.629f, 0.801f };
+ float X[] = { 0.778f, -0.073f };
+ int incX = -1;
+ float Y[] = { -0.976f, -0.682f };
+ int incY = -1;
+ float y_expected[] = { 0.624274f, -0.921216f };
+ cblas_cgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgemv(case 782) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgemv(case 782) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { 0.629f, 0.801f };
+ float X[] = { 0.778f, -0.073f };
+ int incX = -1;
+ float Y[] = { -0.976f, -0.682f };
+ int incY = -1;
+ float y_expected[] = { 0.624274f, -0.921216f };
+ cblas_cgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgemv(case 783) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgemv(case 783) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.629f, 0.801f };
+ float X[] = { 0.778f, -0.073f };
+ int incX = -1;
+ float Y[] = { -0.976f, -0.682f };
+ int incY = -1;
+ float y_expected[] = { -0.216261f, 0.654835f };
+ cblas_cgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgemv(case 784) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgemv(case 784) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.629f, 0.801f };
+ float X[] = { 0.778f, -0.073f };
+ int incX = -1;
+ float Y[] = { -0.976f, -0.682f };
+ int incY = -1;
+ float y_expected[] = { -0.216261f, 0.654835f };
+ cblas_cgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgemv(case 785) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgemv(case 785) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.629f, 0.801f };
+ float X[] = { 0.778f, -0.073f };
+ int incX = -1;
+ float Y[] = { -0.976f, -0.682f };
+ int incY = -1;
+ float y_expected[] = { 0.427909f, 0.150089f };
+ cblas_cgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgemv(case 786) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgemv(case 786) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.629f, 0.801f };
+ float X[] = { 0.778f, -0.073f };
+ int incX = -1;
+ float Y[] = { -0.976f, -0.682f };
+ int incY = -1;
+ float y_expected[] = { 0.427909f, 0.150089f };
+ cblas_cgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgemv(case 787) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgemv(case 787) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { 0.932, -0.724 };
+ double X[] = { 0.334, -0.317 };
+ int incX = -1;
+ double Y[] = { 0.348, 0.07 };
+ int incY = -1;
+ double y_expected[] = { 0.401726, 0.078178 };
+ cblas_zgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgemv(case 788) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgemv(case 788) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { 0.932, -0.724 };
+ double X[] = { 0.334, -0.317 };
+ int incX = -1;
+ double Y[] = { 0.348, 0.07 };
+ int incY = -1;
+ double y_expected[] = { 0.401726, 0.078178 };
+ cblas_zgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgemv(case 789) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgemv(case 789) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {0, 1};
+ double A[] = { 0.932, -0.724 };
+ double X[] = { 0.334, -0.317 };
+ int incX = -1;
+ double Y[] = { 0.348, 0.07 };
+ int incY = -1;
+ double y_expected[] = { -0.040808, 0.517356 };
+ cblas_zgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgemv(case 790) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgemv(case 790) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {0, 1};
+ double A[] = { 0.932, -0.724 };
+ double X[] = { 0.334, -0.317 };
+ int incX = -1;
+ double Y[] = { 0.348, 0.07 };
+ int incY = -1;
+ double y_expected[] = { -0.040808, 0.517356 };
+ cblas_zgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgemv(case 791) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgemv(case 791) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 0};
+ double A[] = { 0.932, -0.724 };
+ double X[] = { 0.334, -0.317 };
+ int incX = -1;
+ double Y[] = { 0.348, 0.07 };
+ int incY = -1;
+ double y_expected[] = { 0.540796, -0.053628 };
+ cblas_zgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgemv(case 792) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgemv(case 792) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 0};
+ double A[] = { 0.932, -0.724 };
+ double X[] = { 0.334, -0.317 };
+ int incX = -1;
+ double Y[] = { 0.348, 0.07 };
+ int incY = -1;
+ double y_expected[] = { 0.540796, -0.053628 };
+ cblas_zgemv(order, trans, M, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgemv(case 793) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgemv(case 793) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_ger.c b/gsl-1.9/cblas/test_ger.c
new file mode 100644
index 0000000..d81fe75
--- /dev/null
+++ b/gsl-1.9/cblas/test_ger.c
@@ -0,0 +1,283 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_ger (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float A[] = { -0.515f };
+ float X[] = { 0.611f };
+ int incX = -1;
+ float Y[] = { -0.082f };
+ int incY = -1;
+ float A_expected[] = { -0.565102f };
+ cblas_sger(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "sger(case 1390)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float A[] = { -0.515f };
+ float X[] = { 0.611f };
+ int incX = -1;
+ float Y[] = { -0.082f };
+ int incY = -1;
+ float A_expected[] = { -0.565102f };
+ cblas_sger(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "sger(case 1391)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha = 1;
+ double A[] = { -0.809 };
+ double X[] = { -0.652 };
+ int incX = -1;
+ double Y[] = { 0.712 };
+ int incY = -1;
+ double A_expected[] = { -1.273224 };
+ cblas_dger(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dger(case 1392)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha = 1;
+ double A[] = { -0.809 };
+ double X[] = { -0.652 };
+ int incX = -1;
+ double Y[] = { 0.712 };
+ int incY = -1;
+ double A_expected[] = { -1.273224 };
+ cblas_dger(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dger(case 1393)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.651f, 0.856f };
+ float X[] = { -0.38f, -0.235f };
+ int incX = -1;
+ float Y[] = { -0.627f, 0.757f };
+ int incY = -1;
+ float A_expected[] = { -0.651f, 0.856f };
+ cblas_cgeru(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cgeru(case 1394) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cgeru(case 1394) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.651f, 0.856f };
+ float X[] = { -0.38f, -0.235f };
+ int incX = -1;
+ float Y[] = { -0.627f, 0.757f };
+ int incY = -1;
+ float A_expected[] = { -0.651f, 0.856f };
+ cblas_cgerc(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cgerc(case 1395) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cgerc(case 1395) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.651f, 0.856f };
+ float X[] = { -0.38f, -0.235f };
+ int incX = -1;
+ float Y[] = { -0.627f, 0.757f };
+ int incY = -1;
+ float A_expected[] = { -0.651f, 0.856f };
+ cblas_cgeru(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cgeru(case 1396) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cgeru(case 1396) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.651f, 0.856f };
+ float X[] = { -0.38f, -0.235f };
+ int incX = -1;
+ float Y[] = { -0.627f, 0.757f };
+ int incY = -1;
+ float A_expected[] = { -0.651f, 0.856f };
+ cblas_cgerc(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cgerc(case 1397) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cgerc(case 1397) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.426, 0.757 };
+ double X[] = { -0.579, -0.155 };
+ int incX = -1;
+ double Y[] = { 0.831, 0.035 };
+ int incY = -1;
+ double A_expected[] = { 0.049724, 0.90607 };
+ cblas_zgeru(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zgeru(case 1398) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zgeru(case 1398) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.426, 0.757 };
+ double X[] = { -0.579, -0.155 };
+ int incX = -1;
+ double Y[] = { 0.831, 0.035 };
+ int incY = -1;
+ double A_expected[] = { 0.060574, 0.86554 };
+ cblas_zgerc(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zgerc(case 1399) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zgerc(case 1399) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.426, 0.757 };
+ double X[] = { -0.579, -0.155 };
+ int incX = -1;
+ double Y[] = { 0.831, 0.035 };
+ int incY = -1;
+ double A_expected[] = { 0.049724, 0.90607 };
+ cblas_zgeru(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zgeru(case 1400) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zgeru(case 1400) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int M = 1;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.426, 0.757 };
+ double X[] = { -0.579, -0.155 };
+ int incX = -1;
+ double Y[] = { 0.831, 0.035 };
+ int incY = -1;
+ double A_expected[] = { 0.060574, 0.86554 };
+ cblas_zgerc(order, M, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zgerc(case 1401) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zgerc(case 1401) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_hbmv.c b/gsl-1.9/cblas/test_hbmv.c
new file mode 100644
index 0000000..dbf4c55
--- /dev/null
+++ b/gsl-1.9/cblas/test_hbmv.c
@@ -0,0 +1,411 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_hbmv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
+ float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
+ int incX = -1;
+ float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
+ int incY = -1;
+ float y_expected[] = { 0.02698f, 0.521724f, -0.379354f, 1.27743f, -0.25427f, -0.043268f };
+ cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1086) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1086) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
+ float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
+ int incX = -1;
+ float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
+ int incY = -1;
+ float y_expected[] = { 0.02698f, 0.521724f, -0.379354f, 1.27743f, -0.25427f, -0.043268f };
+ cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1087) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1087) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
+ float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
+ int incX = -1;
+ float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
+ int incY = -1;
+ float y_expected[] = { -0.06422f, -0.016288f, 0.734206f, 0.108366f, -0.411982f, 0.347068f };
+ cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1088) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1088) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
+ float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
+ int incX = -1;
+ float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
+ int incY = -1;
+ float y_expected[] = { -0.06422f, -0.016288f, 0.734206f, 0.108366f, -0.411982f, 0.347068f };
+ cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1089) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1089) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
+ float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
+ int incX = -1;
+ float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
+ int incY = -1;
+ float y_expected[] = { 0.19354f, 0.056192f, 0.72585f, 0.42717f, -0.2047f, 0.405354f };
+ cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1090) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1090) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
+ float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
+ int incX = -1;
+ float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
+ int incY = -1;
+ float y_expected[] = { 0.19354f, 0.056192f, 0.72585f, 0.42717f, -0.2047f, 0.405354f };
+ cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1091) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1091) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
+ float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
+ int incX = -1;
+ float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
+ int incY = -1;
+ float y_expected[] = { -0.151304f, 0.471592f, -0.507714f, -0.304446f, -1.16395f, -0.299062f };
+ cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1092) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1092) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
+ float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
+ int incX = -1;
+ float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
+ int incY = -1;
+ float y_expected[] = { -0.151304f, 0.471592f, -0.507714f, -0.304446f, -1.16395f, -0.299062f };
+ cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1093) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1093) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
+ double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
+ int incX = -1;
+ double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
+ int incY = -1;
+ double y_expected[] = { -0.902712, -0.524419, -0.307439, -2.167713, 1.059385, 1.104445 };
+ cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1094) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1094) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
+ double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
+ int incX = -1;
+ double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
+ int incY = -1;
+ double y_expected[] = { -0.902712, -0.524419, -0.307439, -2.167713, 1.059385, 1.104445 };
+ cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1095) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1095) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
+ double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
+ int incX = -1;
+ double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
+ int incY = -1;
+ double y_expected[] = { -0.960834, -0.558818, 1.042598, -1.102864, 0.507945, 0.11149 };
+ cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1096) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1096) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
+ double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
+ int incX = -1;
+ double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
+ int incY = -1;
+ double y_expected[] = { -0.960834, -0.558818, 1.042598, -1.102864, 0.507945, 0.11149 };
+ cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1097) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1097) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
+ double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
+ int incX = -1;
+ double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
+ int incY = -1;
+ double y_expected[] = { -1.626828, 0.003954, 0.437012, -2.365106, 0.446715, 0.16323 };
+ cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1098) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1098) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
+ double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
+ int incX = -1;
+ double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
+ int incY = -1;
+ double y_expected[] = { -1.626828, 0.003954, 0.437012, -2.365106, 0.446715, 0.16323 };
+ cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1099) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1099) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
+ double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
+ int incX = -1;
+ double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
+ int incY = -1;
+ double y_expected[] = { -0.097302, -1.204999, 1.168771, -0.822543, 0.734395, 1.379065 };
+ cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1100) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1100) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
+ double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
+ int incX = -1;
+ double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
+ int incY = -1;
+ double y_expected[] = { -0.097302, -1.204999, 1.168771, -0.822543, 0.734395, 1.379065 };
+ cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1101) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1101) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_hemm.c b/gsl-1.9/cblas/test_hemm.c
new file mode 100644
index 0000000..3bc7921
--- /dev/null
+++ b/gsl-1.9/cblas/test_hemm.c
@@ -0,0 +1,427 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_hemm (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { -0.126f, 0.079f };
+ int lda = 1;
+ float B[] = { -0.954f, -0.059f, 0.296f, -0.988f };
+ int ldb = 2;
+ float C[] = { -0.859f, -0.731f, 0.737f, 0.593f };
+ int ldc = 2;
+ float C_expected[] = { 0.0723566f, -0.0738796f, -0.0717488f, 0.0699704f };
+ cblas_chemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "chemm(case 1550) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "chemm(case 1550) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { 0.652f, 0.584f };
+ int lda = 1;
+ float B[] = { -0.983f, -0.734f, -0.422f, -0.825f };
+ int ldb = 1;
+ float C[] = { 0.387f, 0.341f, -0.734f, 0.632f };
+ int ldc = 1;
+ float C_expected[] = { 0.0137568f, -0.0253916f, -0.00941f, -0.100914f };
+ cblas_chemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "chemm(case 1551) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "chemm(case 1551) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { 0.78f, 0.885f, 0.507f, 0.765f, 0.911f, -0.461f, 0.707f, 0.508f };
+ int lda = 2;
+ float B[] = { -0.905f, 0.633f, 0.85f, -0.943f };
+ int ldb = 2;
+ float C[] = { 0.045f, -0.237f, 0.078f, -0.252f };
+ int ldc = 2;
+ float C_expected[] = { 0.589611f, -0.759345f, 0.960095f, -0.09013f };
+ cblas_chemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "chemm(case 1552) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "chemm(case 1552) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { 0.947f, 0.939f, -0.267f, -0.819f, -0.827f, -0.937f, 0.991f, 0.838f };
+ int lda = 2;
+ float B[] = { 0.871f, -0.988f, -0.232f, -0.434f };
+ int ldb = 1;
+ float C[] = { -0.261f, 0.927f, -0.351f, -0.203f };
+ int ldc = 1;
+ float C_expected[] = { 1.0551f, 0.496359f, 0.780145f, -1.67298f };
+ cblas_chemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "chemm(case 1553) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "chemm(case 1553) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { -0.593f, -0.9f };
+ int lda = 1;
+ float B[] = { -0.861f, 0.747f, -0.984f, 0.595f };
+ int ldb = 2;
+ float C[] = { -0.589f, -0.671f, -0.011f, -0.417f };
+ int ldc = 2;
+ float C_expected[] = { -0.510573f, 0.442971f, -0.583512f, 0.352835f };
+ cblas_chemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "chemm(case 1554) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "chemm(case 1554) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { -0.79f, 0.132f };
+ int lda = 1;
+ float B[] = { -0.243f, -0.12f, 0.633f, -0.556f };
+ int ldb = 1;
+ float C[] = { -0.658f, -0.74f, -0.47f, 0.481f };
+ int ldc = 1;
+ float C_expected[] = { -0.19197f, -0.0948f, 0.50007f, -0.43924f };
+ cblas_chemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "chemm(case 1555) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "chemm(case 1555) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { -0.114f, -0.515f, -0.513f, -0.527f, -0.995f, 0.986f, 0.229f, -0.076f };
+ int lda = 2;
+ float B[] = { 0.084f, 0.522f, 0.61f, 0.694f };
+ int ldb = 2;
+ float C[] = { 0.802f, 0.136f, -0.161f, -0.364f };
+ int ldc = 2;
+ float C_expected[] = { 0.269101f, 0.716492f, 0.237088f, 0.0290666f };
+ cblas_chemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "chemm(case 1556) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "chemm(case 1556) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { 0.798f, -0.324f, -0.693f, -0.893f, -0.223f, 0.749f, 0.102f, -0.357f };
+ int lda = 2;
+ float B[] = { -0.572f, -0.569f, -0.391f, -0.938f };
+ int ldb = 1;
+ float C[] = { 0.152f, -0.834f, -0.633f, -0.473f };
+ int ldc = 1;
+ float C_expected[] = { 1.08642f, -0.113853f, 0.234826f, -0.48289f };
+ cblas_chemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "chemm(case 1557) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "chemm(case 1557) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {0, 0.1};
+ double A[] = { -0.359, 0.089 };
+ int lda = 1;
+ double B[] = { -0.451, -0.337, -0.901, -0.871 };
+ int ldb = 2;
+ double C[] = { 0.729, 0.631, 0.364, 0.246 };
+ int ldc = 2;
+ double C_expected[] = { -0.0751983, 0.0890909, -0.0558689, 0.0687459 };
+ cblas_zhemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zhemm(case 1558) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zhemm(case 1558) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {0, 0.1};
+ double beta[2] = {0, 0.1};
+ double A[] = { 0.044, -0.496 };
+ int lda = 1;
+ double B[] = { -0.674, 0.281, 0.366, 0.888 };
+ int ldb = 1;
+ double C[] = { -0.9, 0.919, 0.857, -0.049 };
+ int ldc = 1;
+ double C_expected[] = { -0.0931364, -0.0929656, 0.0009928, 0.0873104 };
+ cblas_zhemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zhemm(case 1559) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zhemm(case 1559) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {0, 0};
+ double beta[2] = {0, 0.1};
+ double A[] = { -0.314, 0.115, 0.114, 0.878, 0.961, -0.224, 0.973, 0.771 };
+ int lda = 2;
+ double B[] = { 0.5, -0.016, -0.5, 0.149 };
+ int ldb = 2;
+ double C[] = { -0.054, 0.064, 0.02, 0.245 };
+ int ldc = 2;
+ double C_expected[] = { -0.0064, -0.0054, -0.0245, 0.002 };
+ cblas_zhemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zhemm(case 1560) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zhemm(case 1560) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {0, 0};
+ double beta[2] = {0, 0.1};
+ double A[] = { 0.186, 0.578, 0.797, -0.957, -0.539, -0.969, -0.21, 0.354 };
+ int lda = 2;
+ double B[] = { 0.641, -0.968, 0.15, -0.569 };
+ int ldb = 1;
+ double C[] = { -0.556, -0.9, 0.197, 0.31 };
+ int ldc = 1;
+ double C_expected[] = { 0.09, -0.0556, -0.031, 0.0197 };
+ cblas_zhemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zhemm(case 1561) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zhemm(case 1561) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ double A[] = { 0.323, 0.641 };
+ int lda = 1;
+ double B[] = { -0.188, 0.091, -0.235, 0.523 };
+ int ldb = 2;
+ double C[] = { 0.919, 0.806, 0.823, -0.94 };
+ int ldc = 2;
+ double C_expected[] = { 0.858276, 0.835393, 0.747095, -0.771071 };
+ cblas_zhemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zhemm(case 1562) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zhemm(case 1562) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ double A[] = { -0.688, 0.915 };
+ int lda = 1;
+ double B[] = { 0.914, -0.204, 0.205, -0.476 };
+ int ldb = 1;
+ double C[] = { 0.27, -0.628, -0.079, 0.507 };
+ int ldc = 1;
+ double C_expected[] = { -0.358832, -0.487648, -0.22004, 0.834488 };
+ cblas_zhemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zhemm(case 1563) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zhemm(case 1563) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {0, 1};
+ double beta[2] = {0, 0.1};
+ double A[] = { 0.681, 0.574, -0.425, -0.64, 0.792, 0.661, -0.009, 0.005 };
+ int lda = 2;
+ double B[] = { -0.221, 0.554, -0.465, -0.95 };
+ int ldb = 2;
+ double C[] = { 0.331, -0.958, -0.826, -0.972 };
+ int ldc = 2;
+ double C_expected[] = { 0.778291, 0.142269, -0.496199, 0.112747 };
+ cblas_zhemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zhemm(case 1564) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zhemm(case 1564) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {0, 1};
+ double beta[2] = {0, 0.1};
+ double A[] = { 0.959, 0.34, -0.23, 0.064, 0.516, -0.275, 0.714, 0.899 };
+ int lda = 2;
+ double B[] = { -0.502, -0.987, -0.134, 0.215 };
+ int ldb = 1;
+ double C[] = { 0.929, 0.181, -0.16, -0.921 };
+ int ldc = 1;
+ double C_expected[] = { 0.986459, -0.371458, -0.320548, -0.059384 };
+ cblas_zhemm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zhemm(case 1565) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zhemm(case 1565) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_hemv.c b/gsl-1.9/cblas/test_hemv.c
new file mode 100644
index 0000000..153f1f2
--- /dev/null
+++ b/gsl-1.9/cblas/test_hemv.c
@@ -0,0 +1,395 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_hemv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.434f, 0.837f };
+ float X[] = { 0.209f, -0.935f };
+ int incX = -1;
+ float Y[] = { 0.346f, -0.412f };
+ int incY = -1;
+ float y_expected[] = { -0.153306f, 0.56399f };
+ cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1070) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1070) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.434f, 0.837f };
+ float X[] = { 0.209f, -0.935f };
+ int incX = -1;
+ float Y[] = { 0.346f, -0.412f };
+ int incY = -1;
+ float y_expected[] = { -0.153306f, 0.56399f };
+ cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1071) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1071) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.434f, 0.837f };
+ float X[] = { 0.209f, -0.935f };
+ int incX = -1;
+ float Y[] = { 0.346f, -0.412f };
+ int incY = -1;
+ float y_expected[] = { -0.153306f, 0.56399f };
+ cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1072) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1072) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.434f, 0.837f };
+ float X[] = { 0.209f, -0.935f };
+ int incX = -1;
+ float Y[] = { 0.346f, -0.412f };
+ int incY = -1;
+ float y_expected[] = { -0.153306f, 0.56399f };
+ cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1073) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1073) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.434f, 0.837f };
+ float X[] = { 0.209f, -0.935f };
+ int incX = -1;
+ float Y[] = { 0.346f, -0.412f };
+ int incY = -1;
+ float y_expected[] = { -0.153306f, 0.56399f };
+ cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1074) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1074) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.434f, 0.837f };
+ float X[] = { 0.209f, -0.935f };
+ int incX = -1;
+ float Y[] = { 0.346f, -0.412f };
+ int incY = -1;
+ float y_expected[] = { -0.153306f, 0.56399f };
+ cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1075) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1075) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.434f, 0.837f };
+ float X[] = { 0.209f, -0.935f };
+ int incX = -1;
+ float Y[] = { 0.346f, -0.412f };
+ int incY = -1;
+ float y_expected[] = { -0.153306f, 0.56399f };
+ cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1076) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1076) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.434f, 0.837f };
+ float X[] = { 0.209f, -0.935f };
+ int incX = -1;
+ float Y[] = { 0.346f, -0.412f };
+ int incY = -1;
+ float y_expected[] = { -0.153306f, 0.56399f };
+ cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1077) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1077) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha[2] = {0, 0};
+ double beta[2] = {1, 0};
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.036, -0.966 };
+ double X[] = { -0.695, 0.886 };
+ int incX = -1;
+ double Y[] = { 0.486, 0.629 };
+ int incY = -1;
+ double y_expected[] = { 0.486, 0.629 };
+ cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1078) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1078) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha[2] = {0, 0};
+ double beta[2] = {1, 0};
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.036, -0.966 };
+ double X[] = { -0.695, 0.886 };
+ int incX = -1;
+ double Y[] = { 0.486, 0.629 };
+ int incY = -1;
+ double y_expected[] = { 0.486, 0.629 };
+ cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1079) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1079) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha[2] = {0, 0};
+ double beta[2] = {1, 0};
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.036, -0.966 };
+ double X[] = { -0.695, 0.886 };
+ int incX = -1;
+ double Y[] = { 0.486, 0.629 };
+ int incY = -1;
+ double y_expected[] = { 0.486, 0.629 };
+ cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1080) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1080) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha[2] = {0, 0};
+ double beta[2] = {1, 0};
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.036, -0.966 };
+ double X[] = { -0.695, 0.886 };
+ int incX = -1;
+ double Y[] = { 0.486, 0.629 };
+ int incY = -1;
+ double y_expected[] = { 0.486, 0.629 };
+ cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1081) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1081) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha[2] = {0, 0};
+ double beta[2] = {1, 0};
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.036, -0.966 };
+ double X[] = { -0.695, 0.886 };
+ int incX = -1;
+ double Y[] = { 0.486, 0.629 };
+ int incY = -1;
+ double y_expected[] = { 0.486, 0.629 };
+ cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1082) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1082) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha[2] = {0, 0};
+ double beta[2] = {1, 0};
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.036, -0.966 };
+ double X[] = { -0.695, 0.886 };
+ int incX = -1;
+ double Y[] = { 0.486, 0.629 };
+ int incY = -1;
+ double y_expected[] = { 0.486, 0.629 };
+ cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1083) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1083) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha[2] = {0, 0};
+ double beta[2] = {1, 0};
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.036, -0.966 };
+ double X[] = { -0.695, 0.886 };
+ int incX = -1;
+ double Y[] = { 0.486, 0.629 };
+ int incY = -1;
+ double y_expected[] = { 0.486, 0.629 };
+ cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1084) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1084) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha[2] = {0, 0};
+ double beta[2] = {1, 0};
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.036, -0.966 };
+ double X[] = { -0.695, 0.886 };
+ int incX = -1;
+ double Y[] = { 0.486, 0.629 };
+ int incY = -1;
+ double y_expected[] = { 0.486, 0.629 };
+ cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1085) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1085) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_her.c b/gsl-1.9/cblas/test_her.c
new file mode 100644
index 0000000..d1478f8
--- /dev/null
+++ b/gsl-1.9/cblas/test_her.c
@@ -0,0 +1,179 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_her (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float A[] = { 0.188f, 0.856f };
+ float X[] = { -0.832f, -0.151f };
+ int incX = -1;
+ float A_expected[] = { 0.903025f, 0.0f };
+ cblas_cher(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cher(case 1410) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cher(case 1410) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float A[] = { 0.188f, 0.856f };
+ float X[] = { -0.832f, -0.151f };
+ int incX = -1;
+ float A_expected[] = { 0.903025f, 0.0f };
+ cblas_cher(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cher(case 1411) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cher(case 1411) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float A[] = { 0.188f, 0.856f };
+ float X[] = { -0.832f, -0.151f };
+ int incX = -1;
+ float A_expected[] = { 0.903025f, 0.0f };
+ cblas_cher(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cher(case 1412) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cher(case 1412) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ float alpha = 1.0f;
+ float A[] = { 0.188f, 0.856f };
+ float X[] = { -0.832f, -0.151f };
+ int incX = -1;
+ float A_expected[] = { 0.903025f, 0.0f };
+ cblas_cher(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cher(case 1413) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cher(case 1413) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ double alpha = 0.1;
+ double A[] = { 0.257, 0.326 };
+ double X[] = { 0.319, -0.009 };
+ int incX = -1;
+ double A_expected[] = { 0.2671842, 0.0 };
+ cblas_zher(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zher(case 1414) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zher(case 1414) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ double alpha = 0.1;
+ double A[] = { 0.257, 0.326 };
+ double X[] = { 0.319, -0.009 };
+ int incX = -1;
+ double A_expected[] = { 0.2671842, 0.0 };
+ cblas_zher(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zher(case 1415) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zher(case 1415) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ double alpha = 0.1;
+ double A[] = { 0.257, 0.326 };
+ double X[] = { 0.319, -0.009 };
+ int incX = -1;
+ double A_expected[] = { 0.2671842, 0.0 };
+ cblas_zher(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zher(case 1416) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zher(case 1416) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ double alpha = 0.1;
+ double A[] = { 0.257, 0.326 };
+ double X[] = { 0.319, -0.009 };
+ int incX = -1;
+ double A_expected[] = { 0.2671842, 0.0 };
+ cblas_zher(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zher(case 1417) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zher(case 1417) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_her2.c b/gsl-1.9/cblas/test_her2.c
new file mode 100644
index 0000000..b1a0fae
--- /dev/null
+++ b/gsl-1.9/cblas/test_her2.c
@@ -0,0 +1,195 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_her2 (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.821f, 0.954f };
+ float X[] = { 0.532f, 0.802f };
+ int incX = -1;
+ float Y[] = { 0.016f, -0.334f };
+ int incY = -1;
+ float A_expected[] = { -0.302288f, 0.0f };
+ cblas_cher2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cher2(case 1450) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cher2(case 1450) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.821f, 0.954f };
+ float X[] = { 0.532f, 0.802f };
+ int incX = -1;
+ float Y[] = { 0.016f, -0.334f };
+ int incY = -1;
+ float A_expected[] = { -0.302288f, 0.0f };
+ cblas_cher2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cher2(case 1451) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cher2(case 1451) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.821f, 0.954f };
+ float X[] = { 0.532f, 0.802f };
+ int incX = -1;
+ float Y[] = { 0.016f, -0.334f };
+ int incY = -1;
+ float A_expected[] = { -0.302288f, 0.0f };
+ cblas_cher2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cher2(case 1452) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cher2(case 1452) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.821f, 0.954f };
+ float X[] = { 0.532f, 0.802f };
+ int incX = -1;
+ float Y[] = { 0.016f, -0.334f };
+ int incY = -1;
+ float A_expected[] = { -0.302288f, 0.0f };
+ cblas_cher2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], flteps, "cher2(case 1453) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], flteps, "cher2(case 1453) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double A[] = { -0.334, 0.286 };
+ double X[] = { -0.14, -0.135 };
+ int incX = -1;
+ double Y[] = { 0.455, 0.358 };
+ int incY = -1;
+ double A_expected[] = { -0.264521, 0.0 };
+ cblas_zher2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zher2(case 1454) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zher2(case 1454) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double A[] = { -0.334, 0.286 };
+ double X[] = { -0.14, -0.135 };
+ int incX = -1;
+ double Y[] = { 0.455, 0.358 };
+ int incY = -1;
+ double A_expected[] = { -0.264521, 0.0 };
+ cblas_zher2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zher2(case 1455) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zher2(case 1455) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double A[] = { -0.334, 0.286 };
+ double X[] = { -0.14, -0.135 };
+ int incX = -1;
+ double Y[] = { 0.455, 0.358 };
+ int incY = -1;
+ double A_expected[] = { -0.264521, 0.0 };
+ cblas_zher2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zher2(case 1456) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zher2(case 1456) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double A[] = { -0.334, 0.286 };
+ double X[] = { -0.14, -0.135 };
+ int incX = -1;
+ double Y[] = { 0.455, 0.358 };
+ int incY = -1;
+ double A_expected[] = { -0.264521, 0.0 };
+ cblas_zher2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[2*i], A_expected[2*i], dbleps, "zher2(case 1457) real");
+ gsl_test_rel(A[2*i+1], A_expected[2*i+1], dbleps, "zher2(case 1457) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_her2k.c b/gsl-1.9/cblas/test_her2k.c
new file mode 100644
index 0000000..9c20962
--- /dev/null
+++ b/gsl-1.9/cblas/test_her2k.c
@@ -0,0 +1,427 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_her2k (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta = -0.3f;
+ float A[] = { 0.178f, 0.545f, -0.491f, 0.979f };
+ int lda = 2;
+ float B[] = { -0.665f, -0.531f, -0.4f, 0.227f };
+ int ldb = 2;
+ float C[] = { 0.115f, -0.193f };
+ int ldc = 1;
+ float C_expected[] = { -0.056236f, 0.0f };
+ cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1646) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1646) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta = -0.3f;
+ float A[] = { -0.808f, 0.447f, 0.145f, -0.226f };
+ int lda = 2;
+ float B[] = { -0.413f, 0.904f, -0.585f, 0.717f };
+ int ldb = 2;
+ float C[] = { -0.725f, -0.244f };
+ int ldc = 1;
+ float C_expected[] = { -0.76435f, 0.0f };
+ cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1647) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1647) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta = -0.3f;
+ float A[] = { 0.337f, -0.737f, -0.993f, 0.69f };
+ int lda = 1;
+ float B[] = { -0.39f, -0.836f, -0.32f, 0.368f };
+ int ldb = 1;
+ float C[] = { 0.844f, -0.763f };
+ int ldc = 1;
+ float C_expected[] = { -2.36596f, 0.0f };
+ cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1648) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1648) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta = -0.3f;
+ float A[] = { 0.386f, -0.465f, 0.719f, -0.378f };
+ int lda = 1;
+ float B[] = { 0.099f, -0.879f, 0.864f, 0.141f };
+ int ldb = 1;
+ float C[] = { -0.599f, -0.47f };
+ int ldc = 1;
+ float C_expected[] = { -1.85003f, 0.0f };
+ cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1649) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1649) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 113;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta = -1.0f;
+ float A[] = { 0.128f, 0.431f, -0.26f, 0.75f };
+ int lda = 1;
+ float B[] = { 0.276f, 0.058f, 0.904f, -0.116f };
+ int ldb = 1;
+ float C[] = { 0.914f, -0.262f };
+ int ldc = 1;
+ float C_expected[] = { 0.604744f, 0.0f };
+ cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1650) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1650) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 113;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta = -1.0f;
+ float A[] = { 0.72f, 0.783f, -0.737f, 0.375f };
+ int lda = 1;
+ float B[] = { 0.531f, 0.167f, 0.203f, -0.221f };
+ int ldb = 1;
+ float C[] = { 0.618f, 0.392f };
+ int ldc = 1;
+ float C_expected[] = { -0.200438f, 0.0f };
+ cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1651) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1651) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 113;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta = -1.0f;
+ float A[] = { -0.372f, -0.735f, -0.711f, 0.051f };
+ int lda = 2;
+ float B[] = { 0.257f, 0.097f, 0.338f, -0.484f };
+ int ldb = 2;
+ float C[] = { -0.142f, -0.197f };
+ int ldc = 1;
+ float C_expected[] = { -0.817394f, 0.0f };
+ cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1652) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1652) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 113;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta = -1.0f;
+ float A[] = { 0.1f, -0.878f, 0.28f, -0.381f };
+ int lda = 2;
+ float B[] = { -0.208f, 0.309f, -0.276f, 0.123f };
+ int ldb = 2;
+ float C[] = { 0.483f, -0.541f };
+ int ldc = 1;
+ float C_expected[] = { -0.03812f, 0.0f };
+ cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1653) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1653) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {1, 0};
+ double beta = 1;
+ double A[] = { 0.515, -0.034, 0.067, 0.66 };
+ int lda = 2;
+ double B[] = { 0.408, -0.85, -0.945, -0.799 };
+ int ldb = 2;
+ double C[] = { -0.918, -0.985 };
+ int ldc = 1;
+ double C_expected[] = { -1.62127, 0.0 };
+ cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1654) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1654) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {1, 0};
+ double beta = 1;
+ double A[] = { -0.009, 0.495, -0.008, -0.973 };
+ int lda = 2;
+ double B[] = { -0.239, -0.373, -0.032, -0.539 };
+ int ldb = 2;
+ double C[] = { 0.443, -0.245 };
+ int ldc = 1;
+ double C_expected[] = { 1.127438, 0.0 };
+ cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1655) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1655) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {1, 0};
+ double beta = 1;
+ double A[] = { 0.531, 0.721, -0.848, 0.826 };
+ int lda = 1;
+ double B[] = { -0.711, -0.2, -0.92, -0.676 };
+ int ldb = 1;
+ double C[] = { -0.447, 0.701 };
+ int ldc = 1;
+ double C_expected[] = { -1.046914, 0.0 };
+ cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1656) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1656) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {1, 0};
+ double beta = 1;
+ double A[] = { 0.68, 0.079, 0.837, -0.814 };
+ int lda = 1;
+ double B[] = { -0.986, 0.024, 0.584, -0.248 };
+ int ldb = 1;
+ double C[] = { 0.477, -0.551 };
+ int ldc = 1;
+ double C_expected[] = { 0.521192, 0.0 };
+ cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1657) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1657) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 113;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {-1, 0};
+ double beta = 0.1;
+ double A[] = { -0.63, 0.787, 0.426, -0.568 };
+ int lda = 1;
+ double B[] = { -0.228, 0.302, 0.83, 0.023 };
+ int ldb = 1;
+ double C[] = { 0.354, -0.85 };
+ int ldc = 1;
+ double C_expected[] = { -1.40826, 0.0 };
+ cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1658) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1658) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 113;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {-1, 0};
+ double beta = 0.1;
+ double A[] = { 0.224, -0.191, 0.46, 0.464 };
+ int lda = 1;
+ double B[] = { -0.815, 0.634, 0.066, -0.873 };
+ int ldb = 1;
+ double C[] = { -0.49, -0.606 };
+ int ldc = 1;
+ double C_expected[] = { 1.307732, 0.0 };
+ cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1659) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1659) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 113;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {-1, 0};
+ double beta = 0.1;
+ double A[] = { 0.943, 0.075, 0.15, -0.141 };
+ int lda = 2;
+ double B[] = { -0.962, 0.422, -0.592, -0.789 };
+ int ldb = 2;
+ double C[] = { 0.728, 0.601 };
+ int ldc = 1;
+ double C_expected[] = { 1.778934, 0.0 };
+ cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1660) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1660) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 113;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {-1, 0};
+ double beta = 0.1;
+ double A[] = { -0.93, -0.386, 0.565, 0.141 };
+ int lda = 2;
+ double B[] = { -0.801, 0.022, 0.558, -0.932 };
+ int ldb = 2;
+ double C[] = { 0.068, 0.501 };
+ int ldc = 1;
+ double C_expected[] = { -1.833792, 0.0 };
+ cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1661) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1661) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_herk.c b/gsl-1.9/cblas/test_herk.c
new file mode 100644
index 0000000..e245553
--- /dev/null
+++ b/gsl-1.9/cblas/test_herk.c
@@ -0,0 +1,395 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_herk (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha = 0.0f;
+ float beta = 0.1f;
+ float A[] = { -0.617f, 0.179f, -0.626f, 0.334f };
+ int lda = 1;
+ float C[] = { 0.346f, -0.903f, 0.022f, -0.839f, -0.715f, 0.049f, -0.338f, 0.149f };
+ int ldc = 2;
+ float C_expected[] = { 0.0346f, 0.0f, 0.0022f, -0.0839f, -0.715f, 0.049f, -0.0338f, 0.0f };
+ cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1598) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1598) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha = 0.0f;
+ float beta = 0.1f;
+ float A[] = { -0.356f, -0.308f, 0.493f, -0.351f };
+ int lda = 2;
+ float C[] = { -0.898f, -0.905f, 0.002f, -0.219f, 0.881f, 0.879f, 0.275f, -0.351f };
+ int ldc = 2;
+ float C_expected[] = { -0.0898f, 0.0f, 0.002f, -0.219f, 0.0881f, 0.0879f, 0.0275f, 0.0f };
+ cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1599) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1599) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 113;
+ int N = 2;
+ int K = 1;
+ float alpha = 0.1f;
+ float beta = 1.0f;
+ float A[] = { -0.103f, -0.951f, -0.601f, -0.041f };
+ int lda = 2;
+ float C[] = { -0.918f, -0.018f, 0.991f, -0.789f, -0.698f, -0.067f, 0.956f, -0.599f };
+ int ldc = 2;
+ float C_expected[] = { -0.826499f, 0.0f, 1.00109f, -0.845733f, -0.698f, -0.067f, 0.992288f, 0.0f };
+ cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1600) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1600) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 113;
+ int N = 2;
+ int K = 1;
+ float alpha = 0.1f;
+ float beta = 1.0f;
+ float A[] = { -0.237f, 0.925f, -0.904f, -0.091f };
+ int lda = 1;
+ float C[] = { -0.572f, 0.915f, 0.398f, 0.222f, 0.016f, 0.288f, -0.078f, -0.507f };
+ int ldc = 2;
+ float C_expected[] = { -0.480821f, 0.0f, 0.398f, 0.222f, 0.0290073f, 0.373777f, 0.0045497f, 0.0f };
+ cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1601) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1601) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha = -0.3f;
+ float beta = 0.0f;
+ float A[] = { 0.963f, -0.23f, -0.435f, 0.289f };
+ int lda = 1;
+ float C[] = { 0.282f, -0.272f, -0.516f, -0.594f, -0.001f, 0.155f, -0.39f, -0.354f };
+ int ldc = 2;
+ float C_expected[] = { -0.294081f, 0.0f, -0.516f, -0.594f, 0.145613f, -0.0534771f, -0.0818238f, 0.0f };
+ cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1602) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1602) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha = -0.3f;
+ float beta = 0.0f;
+ float A[] = { 0.674f, 0.1f, -0.098f, 0.552f };
+ int lda = 2;
+ float C[] = { 0.089f, -0.523f, -0.551f, 0.618f, 0.67f, 0.247f, 0.975f, -0.714f };
+ int ldc = 2;
+ float C_expected[] = { -0.139283f, 0.0f, 0.0032556f, -0.114554f, 0.67f, 0.247f, -0.0942924f, 0.0f };
+ cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1603) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1603) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 113;
+ int N = 2;
+ int K = 1;
+ float alpha = 1.0f;
+ float beta = 0.1f;
+ float A[] = { 0.033f, -0.864f, 0.168f, 0.524f };
+ int lda = 2;
+ float C[] = { 0.788f, 0.016f, -0.436f, 0.749f, -0.89f, -0.87f, 0.421f, -0.203f };
+ int ldc = 2;
+ float C_expected[] = { 0.826385f, 0.0f, -0.436f, 0.749f, -0.536192f, -0.249444f, 0.3449f, 0.0f };
+ cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1604) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1604) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 113;
+ int N = 2;
+ int K = 1;
+ float alpha = 1.0f;
+ float beta = 0.1f;
+ float A[] = { 0.957f, -0.079f, 0.935f, 0.232f };
+ int lda = 1;
+ float C[] = { -0.744f, -0.061f, 0.195f, -0.574f, 0.551f, 0.478f, -0.337f, 0.1f };
+ int ldc = 2;
+ float C_expected[] = { 0.84769f, 0.0f, 0.895967f, -0.353289f, 0.551f, 0.478f, 0.894349f, 0.0f };
+ cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1605) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1605) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha = 1;
+ double beta = 1;
+ double A[] = { 0.934, 0.664, 0.426, 0.263 };
+ int lda = 1;
+ double C[] = { 0.251, -0.97, 0.76, -0.349, 0.152, -0.899, -0.17, 0.707 };
+ int ldc = 2;
+ double C_expected[] = { 1.564252, 0.0, 1.332516, -0.311778, 0.152, -0.899, 0.080645, 0.0 };
+ cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1606) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1606) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha = 1;
+ double beta = 1;
+ double A[] = { 0.16, 0.464, -0.623, 0.776 };
+ int lda = 2;
+ double C[] = { 0.771, -0.449, 0.776, 0.112, -0.134, 0.317, 0.547, -0.551 };
+ int ldc = 2;
+ double C_expected[] = { 1.011896, 0.0, 0.776, 0.112, 0.126384, -0.096232, 1.537305, 0.0 };
+ cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1607) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1607) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 113;
+ int N = 2;
+ int K = 1;
+ double alpha = 0.1;
+ double beta = 1;
+ double A[] = { 0.787, 0.057, -0.49, 0.47 };
+ int lda = 2;
+ double C[] = { -0.758, 0.912, 0.992, -0.356, 0.584, 0.806, 0.965, 0.674 };
+ int ldc = 2;
+ double C_expected[] = { -0.6957382, 0.0, 0.956116, -0.316218, 0.584, 0.806, 1.0111, 0.0 };
+ cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1608) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1608) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 113;
+ int N = 2;
+ int K = 1;
+ double alpha = 0.1;
+ double beta = 1;
+ double A[] = { 0.961, -0.384, 0.165, 0.395 };
+ int lda = 1;
+ double C[] = { -0.186, 0.404, -0.873, 0.09, -0.451, -0.972, -0.203, -0.304 };
+ int ldc = 2;
+ double C_expected[] = { -0.0789023, 0.0, -0.873, 0.09, -0.4503115, -0.9277045, -0.184675, 0.0 };
+ cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1609) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1609) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha = 0;
+ double beta = -0.3;
+ double A[] = { 0.04, 0.608, 0.21, -0.44 };
+ int lda = 1;
+ double C[] = { 0.285, -0.943, 0.581, -0.56, 0.112, 0.529, 0.16, -0.913 };
+ int ldc = 2;
+ double C_expected[] = { -0.0855, 0.0, 0.581, -0.56, -0.0336, -0.1587, -0.048, 0.0 };
+ cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1610) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1610) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha = 0;
+ double beta = -0.3;
+ double A[] = { -0.984, -0.398, -0.379, 0.919 };
+ int lda = 2;
+ double C[] = { -0.44, -0.087, 0.156, -0.945, -0.943, -0.355, 0.577, 0.053 };
+ int ldc = 2;
+ double C_expected[] = { 0.132, 0.0, -0.0468, 0.2835, -0.943, -0.355, -0.1731, 0.0 };
+ cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1611) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1611) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 113;
+ int N = 2;
+ int K = 1;
+ double alpha = 1;
+ double beta = -1;
+ double A[] = { 0.269, -0.428, -0.029, 0.964 };
+ int lda = 2;
+ double C[] = { 0.473, -0.932, -0.689, -0.072, -0.952, -0.862, 0.001, 0.282 };
+ int ldc = 2;
+ double C_expected[] = { -0.217455, 0.0, -0.689, -0.072, 0.531607, 0.615096, 0.929137, 0.0 };
+ cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1612) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1612) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 113;
+ int N = 2;
+ int K = 1;
+ double alpha = 1;
+ double beta = -1;
+ double A[] = { -0.303, -0.037, -0.411, -0.243 };
+ int lda = 1;
+ double C[] = { 0.652, -0.227, -0.849, 0.87, -0.051, -0.535, 0.418, -0.681 };
+ int ldc = 2;
+ double C_expected[] = { -0.558822, 0.0, 0.982524, -0.928422, -0.051, -0.535, -0.19003, 0.0 };
+ cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1613) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1613) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_hpmv.c b/gsl-1.9/cblas/test_hpmv.c
new file mode 100644
index 0000000..a043aad
--- /dev/null
+++ b/gsl-1.9/cblas/test_hpmv.c
@@ -0,0 +1,379 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_hpmv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ int N = 2;
+ float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
+ float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
+ int incX = -1;
+ float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
+ int incY = -1;
+ float y_expected[] = { -0.0627557f, -0.839323f, -0.0877262f, -0.169208f };
+ cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1118) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1118) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ int N = 2;
+ float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
+ float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
+ int incX = -1;
+ float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
+ int incY = -1;
+ float y_expected[] = { -0.0627557f, -0.839323f, -0.0877262f, -0.169208f };
+ cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1119) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1119) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ int N = 2;
+ float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
+ float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
+ int incX = -1;
+ float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
+ int incY = -1;
+ float y_expected[] = { -0.0037603f, -0.816761f, -0.0392456f, -0.121154f };
+ cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1120) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1120) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ int N = 2;
+ float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
+ float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
+ int incX = -1;
+ float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
+ int incY = -1;
+ float y_expected[] = { -0.0037603f, -0.816761f, -0.0392456f, -0.121154f };
+ cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1121) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1121) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ int N = 2;
+ float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
+ float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
+ int incX = -1;
+ float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
+ int incY = -1;
+ float y_expected[] = { -0.0627557f, -0.839323f, -0.0877262f, -0.169208f };
+ cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1122) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1122) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ int N = 2;
+ float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
+ float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
+ int incX = -1;
+ float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
+ int incY = -1;
+ float y_expected[] = { -0.0627557f, -0.839323f, -0.0877262f, -0.169208f };
+ cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1123) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1123) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ int N = 2;
+ float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
+ float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
+ int incX = -1;
+ float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
+ int incY = -1;
+ float y_expected[] = { -0.0037603f, -0.816761f, -0.0392456f, -0.121154f };
+ cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1124) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1124) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 1.0f};
+ int N = 2;
+ float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
+ float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
+ int incX = -1;
+ float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
+ int incY = -1;
+ float y_expected[] = { -0.0037603f, -0.816761f, -0.0392456f, -0.121154f };
+ cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1125) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1125) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ int N = 2;
+ double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
+ double X[] = { 0.67, -0.857, -0.613, -0.927 };
+ int incX = -1;
+ double Y[] = { -0.398, -0.934, -0.204, 0.183 };
+ int incY = -1;
+ double y_expected[] = { 0.745218, -0.60699, -0.37301, -0.983688 };
+ cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1126) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1126) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ int N = 2;
+ double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
+ double X[] = { 0.67, -0.857, -0.613, -0.927 };
+ int incX = -1;
+ double Y[] = { -0.398, -0.934, -0.204, 0.183 };
+ int incY = -1;
+ double y_expected[] = { 0.745218, -0.60699, -0.37301, -0.983688 };
+ cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1127) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1127) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ int N = 2;
+ double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
+ double X[] = { 0.67, -0.857, -0.613, -0.927 };
+ int incX = -1;
+ double Y[] = { -0.398, -0.934, -0.204, 0.183 };
+ int incY = -1;
+ double y_expected[] = { 0.646956, -0.542012, -0.282168, -0.912668 };
+ cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1128) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1128) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ int N = 2;
+ double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
+ double X[] = { 0.67, -0.857, -0.613, -0.927 };
+ int incX = -1;
+ double Y[] = { -0.398, -0.934, -0.204, 0.183 };
+ int incY = -1;
+ double y_expected[] = { 0.646956, -0.542012, -0.282168, -0.912668 };
+ cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1129) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1129) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ int N = 2;
+ double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
+ double X[] = { 0.67, -0.857, -0.613, -0.927 };
+ int incX = -1;
+ double Y[] = { -0.398, -0.934, -0.204, 0.183 };
+ int incY = -1;
+ double y_expected[] = { 0.745218, -0.60699, -0.37301, -0.983688 };
+ cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1130) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1130) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ int N = 2;
+ double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
+ double X[] = { 0.67, -0.857, -0.613, -0.927 };
+ int incX = -1;
+ double Y[] = { -0.398, -0.934, -0.204, 0.183 };
+ int incY = -1;
+ double y_expected[] = { 0.745218, -0.60699, -0.37301, -0.983688 };
+ cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1131) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1131) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ int N = 2;
+ double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
+ double X[] = { 0.67, -0.857, -0.613, -0.927 };
+ int incX = -1;
+ double Y[] = { -0.398, -0.934, -0.204, 0.183 };
+ int incY = -1;
+ double y_expected[] = { 0.646956, -0.542012, -0.282168, -0.912668 };
+ cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1132) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1132) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ int N = 2;
+ double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
+ double X[] = { 0.67, -0.857, -0.613, -0.927 };
+ int incX = -1;
+ double Y[] = { -0.398, -0.934, -0.204, 0.183 };
+ int incY = -1;
+ double y_expected[] = { 0.646956, -0.542012, -0.282168, -0.912668 };
+ cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1133) real");
+ gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1133) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_hpr.c b/gsl-1.9/cblas/test_hpr.c
new file mode 100644
index 0000000..4682b94
--- /dev/null
+++ b/gsl-1.9/cblas/test_hpr.c
@@ -0,0 +1,171 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_hpr (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 2;
+ float alpha = 0.1f;
+ float Ap[] = { -0.273f, -0.499f, -0.305f, -0.277f, 0.238f, -0.369f };
+ float X[] = { 0.638f, -0.905f, 0.224f, 0.182f };
+ int incX = -1;
+ float Ap_expected[] = { -0.26467f, 0.0f, -0.30718f, -0.245116f, 0.360607f, 0.0f };
+ cblas_chpr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], flteps, "chpr(case 1418) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], flteps, "chpr(case 1418) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 2;
+ float alpha = 0.1f;
+ float Ap[] = { -0.273f, -0.499f, -0.305f, -0.277f, 0.238f, -0.369f };
+ float X[] = { 0.638f, -0.905f, 0.224f, 0.182f };
+ int incX = -1;
+ float Ap_expected[] = { -0.26467f, 0.0f, -0.30718f, -0.308884f, 0.360607f, 0.0f };
+ cblas_chpr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], flteps, "chpr(case 1419) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], flteps, "chpr(case 1419) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 2;
+ float alpha = 0.1f;
+ float Ap[] = { -0.273f, -0.499f, -0.305f, -0.277f, 0.238f, -0.369f };
+ float X[] = { 0.638f, -0.905f, 0.224f, 0.182f };
+ int incX = -1;
+ float Ap_expected[] = { -0.26467f, 0.0f, -0.30718f, -0.245116f, 0.360607f, 0.0f };
+ cblas_chpr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], flteps, "chpr(case 1420) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], flteps, "chpr(case 1420) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 2;
+ float alpha = 0.1f;
+ float Ap[] = { -0.273f, -0.499f, -0.305f, -0.277f, 0.238f, -0.369f };
+ float X[] = { 0.638f, -0.905f, 0.224f, 0.182f };
+ int incX = -1;
+ float Ap_expected[] = { -0.26467f, 0.0f, -0.30718f, -0.308884f, 0.360607f, 0.0f };
+ cblas_chpr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], flteps, "chpr(case 1421) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], flteps, "chpr(case 1421) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 2;
+ double alpha = 1;
+ double Ap[] = { 0.265, 0.362, -0.855, 0.035, 0.136, 0.133 };
+ double X[] = { -0.278, -0.686, -0.736, -0.918 };
+ int incX = -1;
+ double Ap_expected[] = { 1.64942, 0.0, -0.020644, -0.214692, 0.68388, 0.0 };
+ cblas_zhpr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], dbleps, "zhpr(case 1422) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], dbleps, "zhpr(case 1422) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 2;
+ double alpha = 1;
+ double Ap[] = { 0.265, 0.362, -0.855, 0.035, 0.136, 0.133 };
+ double X[] = { -0.278, -0.686, -0.736, -0.918 };
+ int incX = -1;
+ double Ap_expected[] = { 1.64942, 0.0, -0.020644, 0.284692, 0.68388, 0.0 };
+ cblas_zhpr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], dbleps, "zhpr(case 1423) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], dbleps, "zhpr(case 1423) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 2;
+ double alpha = 1;
+ double Ap[] = { 0.265, 0.362, -0.855, 0.035, 0.136, 0.133 };
+ double X[] = { -0.278, -0.686, -0.736, -0.918 };
+ int incX = -1;
+ double Ap_expected[] = { 1.64942, 0.0, -0.020644, -0.214692, 0.68388, 0.0 };
+ cblas_zhpr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], dbleps, "zhpr(case 1424) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], dbleps, "zhpr(case 1424) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 2;
+ double alpha = 1;
+ double Ap[] = { 0.265, 0.362, -0.855, 0.035, 0.136, 0.133 };
+ double X[] = { -0.278, -0.686, -0.736, -0.918 };
+ int incX = -1;
+ double Ap_expected[] = { 1.64942, 0.0, -0.020644, 0.284692, 0.68388, 0.0 };
+ cblas_zhpr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], dbleps, "zhpr(case 1425) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], dbleps, "zhpr(case 1425) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_hpr2.c b/gsl-1.9/cblas/test_hpr2.c
new file mode 100644
index 0000000..7fb7dee
--- /dev/null
+++ b/gsl-1.9/cblas/test_hpr2.c
@@ -0,0 +1,187 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_hpr2 (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float Ap[] = { 0.159f, -0.13f };
+ float X[] = { 0.854f, 0.851f };
+ int incX = -1;
+ float Y[] = { 0.526f, -0.267f };
+ int incY = -1;
+ float Ap_expected[] = { -0.284974f, 0.0f };
+ cblas_chpr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], flteps, "chpr2(case 1458) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], flteps, "chpr2(case 1458) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float Ap[] = { 0.159f, -0.13f };
+ float X[] = { 0.854f, 0.851f };
+ int incX = -1;
+ float Y[] = { 0.526f, -0.267f };
+ int incY = -1;
+ float Ap_expected[] = { -0.284974f, 0.0f };
+ cblas_chpr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], flteps, "chpr2(case 1459) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], flteps, "chpr2(case 1459) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float Ap[] = { 0.159f, -0.13f };
+ float X[] = { 0.854f, 0.851f };
+ int incX = -1;
+ float Y[] = { 0.526f, -0.267f };
+ int incY = -1;
+ float Ap_expected[] = { -0.284974f, 0.0f };
+ cblas_chpr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], flteps, "chpr2(case 1460) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], flteps, "chpr2(case 1460) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float Ap[] = { 0.159f, -0.13f };
+ float X[] = { 0.854f, 0.851f };
+ int incX = -1;
+ float Y[] = { 0.526f, -0.267f };
+ int incY = -1;
+ float Ap_expected[] = { -0.284974f, 0.0f };
+ cblas_chpr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], flteps, "chpr2(case 1461) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], flteps, "chpr2(case 1461) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double Ap[] = { 0.772, 0.997 };
+ double X[] = { -0.173, -0.839 };
+ int incX = -1;
+ double Y[] = { 0.941, -0.422 };
+ int incY = -1;
+ double Ap_expected[] = { 0.829742, 0.0 };
+ cblas_zhpr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], dbleps, "zhpr2(case 1462) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], dbleps, "zhpr2(case 1462) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double Ap[] = { 0.772, 0.997 };
+ double X[] = { -0.173, -0.839 };
+ int incX = -1;
+ double Y[] = { 0.941, -0.422 };
+ int incY = -1;
+ double Ap_expected[] = { 0.829742, 0.0 };
+ cblas_zhpr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], dbleps, "zhpr2(case 1463) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], dbleps, "zhpr2(case 1463) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double Ap[] = { 0.772, 0.997 };
+ double X[] = { -0.173, -0.839 };
+ int incX = -1;
+ double Y[] = { 0.941, -0.422 };
+ int incY = -1;
+ double Ap_expected[] = { 0.829742, 0.0 };
+ cblas_zhpr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], dbleps, "zhpr2(case 1464) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], dbleps, "zhpr2(case 1464) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double Ap[] = { 0.772, 0.997 };
+ double X[] = { -0.173, -0.839 };
+ int incX = -1;
+ double Y[] = { 0.941, -0.422 };
+ int incY = -1;
+ double Ap_expected[] = { 0.829742, 0.0 };
+ cblas_zhpr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Ap[2*i], Ap_expected[2*i], dbleps, "zhpr2(case 1465) real");
+ gsl_test_rel(Ap[2*i+1], Ap_expected[2*i+1], dbleps, "zhpr2(case 1465) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_nrm2.c b/gsl-1.9/cblas/test_nrm2.c
new file mode 100644
index 0000000..5c777f6
--- /dev/null
+++ b/gsl-1.9/cblas/test_nrm2.c
@@ -0,0 +1,143 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_nrm2 (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float X[] = { 0.317f };
+ int incX = -1;
+ float expected = 0.0f;
+ float f;
+ f = cblas_snrm2(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "snrm2(case 28)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.071 };
+ int incX = -1;
+ double expected = 0;
+ double f;
+ f = cblas_dnrm2(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dnrm2(case 29)");
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.776f, 0.983f };
+ int incX = -1;
+ float expected = 0.0f;
+ float f;
+ f = cblas_scnrm2(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "scnrm2(case 30)");
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.549, -0.354 };
+ int incX = -1;
+ double expected = 0;
+ double f;
+ f = cblas_dznrm2(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dznrm2(case 31)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.14f, -0.632f };
+ int incX = 1;
+ float expected = 0.647320631527f;
+ float f;
+ f = cblas_snrm2(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "snrm2(case 32)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { 0.696, -0.804 };
+ int incX = 1;
+ double expected = 1.06340584915;
+ double f;
+ f = cblas_dnrm2(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dnrm2(case 33)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.281f, -0.063f, 0.367f, 0.232f };
+ int incX = 1;
+ float expected = 0.521001919382f;
+ float f;
+ f = cblas_scnrm2(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "scnrm2(case 34)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { -0.359, -0.76, -0.906, -0.108 };
+ int incX = 1;
+ double expected = 1.24055672986;
+ double f;
+ f = cblas_dznrm2(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dznrm2(case 35)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.918f, -0.126f };
+ int incX = -1;
+ float expected = 0.0f;
+ float f;
+ f = cblas_snrm2(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "snrm2(case 36)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { 0.217, -0.588 };
+ int incX = -1;
+ double expected = 0;
+ double f;
+ f = cblas_dnrm2(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dnrm2(case 37)");
+ };
+
+
+ {
+ int N = 2;
+ float X[] = { 0.31f, 0.059f, -0.442f, 0.987f };
+ int incX = -1;
+ float expected = 0.0f;
+ float f;
+ f = cblas_scnrm2(N, X, incX);
+ gsl_test_rel(f, expected, flteps, "scnrm2(case 38)");
+ };
+
+
+ {
+ int N = 2;
+ double X[] = { 0.609, 0.615, -0.143, -0.957 };
+ int incX = -1;
+ double expected = 0;
+ double f;
+ f = cblas_dznrm2(N, X, incX);
+ gsl_test_rel(f, expected, dbleps, "dznrm2(case 39)");
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_rot.c b/gsl-1.9/cblas/test_rot.c
new file mode 100644
index 0000000..d2d6ed3
--- /dev/null
+++ b/gsl-1.9/cblas/test_rot.c
@@ -0,0 +1,635 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_rot (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float c = 0.0f;
+ float s = 0.0f;
+ float X[] = { -0.314f };
+ int incX = 1;
+ float Y[] = { -0.406f };
+ int incY = -1;
+ float x_expected[] = { 0.0f };
+ float y_expected[] = { 0.0f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 558)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 559)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = 0.866025403784f;
+ float s = 0.5f;
+ float X[] = { -0.314f };
+ int incX = 1;
+ float Y[] = { -0.406f };
+ int incY = -1;
+ float x_expected[] = { -0.474932f };
+ float y_expected[] = { -0.194606f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 560)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 561)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = 0.0f;
+ float s = -1.0f;
+ float X[] = { -0.314f };
+ int incX = 1;
+ float Y[] = { -0.406f };
+ int incY = -1;
+ float x_expected[] = { 0.406f };
+ float y_expected[] = { -0.314f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 562)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 563)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = -1.0f;
+ float s = 0.0f;
+ float X[] = { -0.314f };
+ int incX = 1;
+ float Y[] = { -0.406f };
+ int incY = -1;
+ float x_expected[] = { 0.314f };
+ float y_expected[] = { 0.406f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 564)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 565)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0;
+ double s = 0;
+ double X[] = { -0.493 };
+ int incX = 1;
+ double Y[] = { -0.014 };
+ int incY = -1;
+ double x_expected[] = { 0.0 };
+ double y_expected[] = { 0.0 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 566)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 567)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0.866025403784;
+ double s = 0.5;
+ double X[] = { -0.493 };
+ int incX = 1;
+ double Y[] = { -0.014 };
+ int incY = -1;
+ double x_expected[] = { -0.433950524066 };
+ double y_expected[] = { 0.234375644347 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 568)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 569)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0;
+ double s = -1;
+ double X[] = { -0.493 };
+ int incX = 1;
+ double Y[] = { -0.014 };
+ int incY = -1;
+ double x_expected[] = { 0.014 };
+ double y_expected[] = { -0.493 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 570)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 571)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = -1;
+ double s = 0;
+ double X[] = { -0.493 };
+ int incX = 1;
+ double Y[] = { -0.014 };
+ int incY = -1;
+ double x_expected[] = { 0.493 };
+ double y_expected[] = { 0.014 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 572)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 573)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = 0.0f;
+ float s = 0.0f;
+ float X[] = { -0.808f };
+ int incX = -1;
+ float Y[] = { -0.511f };
+ int incY = 1;
+ float x_expected[] = { 0.0f };
+ float y_expected[] = { 0.0f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 574)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 575)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = 0.866025403784f;
+ float s = 0.5f;
+ float X[] = { -0.808f };
+ int incX = -1;
+ float Y[] = { -0.511f };
+ int incY = 1;
+ float x_expected[] = { -0.955249f };
+ float y_expected[] = { -0.038539f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 576)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 577)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = 0.0f;
+ float s = -1.0f;
+ float X[] = { -0.808f };
+ int incX = -1;
+ float Y[] = { -0.511f };
+ int incY = 1;
+ float x_expected[] = { 0.511f };
+ float y_expected[] = { -0.808f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 578)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 579)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = -1.0f;
+ float s = 0.0f;
+ float X[] = { -0.808f };
+ int incX = -1;
+ float Y[] = { -0.511f };
+ int incY = 1;
+ float x_expected[] = { 0.808f };
+ float y_expected[] = { 0.511f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 580)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 581)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0;
+ double s = 0;
+ double X[] = { -0.176 };
+ int incX = -1;
+ double Y[] = { -0.165 };
+ int incY = 1;
+ double x_expected[] = { 0.0 };
+ double y_expected[] = { 0.0 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 582)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 583)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0.866025403784;
+ double s = 0.5;
+ double X[] = { -0.176 };
+ int incX = -1;
+ double Y[] = { -0.165 };
+ int incY = 1;
+ double x_expected[] = { -0.234920471066 };
+ double y_expected[] = { -0.0548941916244 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 584)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 585)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0;
+ double s = -1;
+ double X[] = { -0.176 };
+ int incX = -1;
+ double Y[] = { -0.165 };
+ int incY = 1;
+ double x_expected[] = { 0.165 };
+ double y_expected[] = { -0.176 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 586)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 587)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = -1;
+ double s = 0;
+ double X[] = { -0.176 };
+ int incX = -1;
+ double Y[] = { -0.165 };
+ int incY = 1;
+ double x_expected[] = { 0.176 };
+ double y_expected[] = { 0.165 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 588)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 589)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = 0.0f;
+ float s = 0.0f;
+ float X[] = { -0.201f };
+ int incX = -1;
+ float Y[] = { 0.087f };
+ int incY = -1;
+ float x_expected[] = { 0.0f };
+ float y_expected[] = { 0.0f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 590)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 591)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = 0.866025403784f;
+ float s = 0.5f;
+ float X[] = { -0.201f };
+ int incX = -1;
+ float Y[] = { 0.087f };
+ int incY = -1;
+ float x_expected[] = { -0.130571f };
+ float y_expected[] = { 0.175844f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 592)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 593)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = 0.0f;
+ float s = -1.0f;
+ float X[] = { -0.201f };
+ int incX = -1;
+ float Y[] = { 0.087f };
+ int incY = -1;
+ float x_expected[] = { -0.087f };
+ float y_expected[] = { -0.201f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 594)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 595)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float c = -1.0f;
+ float s = 0.0f;
+ float X[] = { -0.201f };
+ int incX = -1;
+ float Y[] = { 0.087f };
+ int incY = -1;
+ float x_expected[] = { 0.201f };
+ float y_expected[] = { -0.087f };
+ cblas_srot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srot(case 596)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srot(case 597)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0;
+ double s = 0;
+ double X[] = { -0.464 };
+ int incX = -1;
+ double Y[] = { 0.7 };
+ int incY = -1;
+ double x_expected[] = { 0.0 };
+ double y_expected[] = { 0.0 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 598)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 599)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0.866025403784;
+ double s = 0.5;
+ double X[] = { -0.464 };
+ int incX = -1;
+ double Y[] = { 0.7 };
+ int incY = -1;
+ double x_expected[] = { -0.051835787356 };
+ double y_expected[] = { 0.838217782649 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 600)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 601)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = 0;
+ double s = -1;
+ double X[] = { -0.464 };
+ int incX = -1;
+ double Y[] = { 0.7 };
+ int incY = -1;
+ double x_expected[] = { -0.7 };
+ double y_expected[] = { -0.464 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 602)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 603)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double c = -1;
+ double s = 0;
+ double X[] = { -0.464 };
+ int incX = -1;
+ double Y[] = { 0.7 };
+ int incY = -1;
+ double x_expected[] = { 0.464 };
+ double y_expected[] = { -0.7 };
+ cblas_drot(N, X, incX, Y, incY, c, s);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drot(case 604)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drot(case 605)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_rotg.c b/gsl-1.9/cblas/test_rotg.c
new file mode 100644
index 0000000..a5a84d3
--- /dev/null
+++ b/gsl-1.9/cblas/test_rotg.c
@@ -0,0 +1,1677 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_rotg (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ float a = -1.5f;
+ float b = -1.5f;
+ float c;
+ float s;
+ float r_expected = -2.12132034356f;
+ float z_expected = 1.41421356237f;
+ float c_expected = 0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 166)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 167)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 168)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 169)");
+ };
+
+
+ {
+ float a = -1.5f;
+ float b = -1.0f;
+ float c;
+ float s;
+ float r_expected = -1.80277563773f;
+ float z_expected = 0.554700196225f;
+ float c_expected = 0.832050294338f;
+ float s_expected = 0.554700196225f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 170)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 171)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 172)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 173)");
+ };
+
+
+ {
+ float a = -1.5f;
+ float b = -0.1f;
+ float c;
+ float s;
+ float r_expected = -1.50332963784f;
+ float z_expected = 0.0665190105238f;
+ float c_expected = 0.997785157857f;
+ float s_expected = 0.0665190105238f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 174)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 175)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 176)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 177)");
+ };
+
+
+ {
+ float a = -1.5f;
+ float b = 0.0f;
+ float c;
+ float s;
+ float r_expected = -1.5f;
+ float z_expected = -0.0f;
+ float c_expected = 1.0f;
+ float s_expected = -0.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 178)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 179)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 180)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 181)");
+ };
+
+
+ {
+ float a = -1.5f;
+ float b = 0.1f;
+ float c;
+ float s;
+ float r_expected = -1.50332963784f;
+ float z_expected = -0.0665190105238f;
+ float c_expected = 0.997785157857f;
+ float s_expected = -0.0665190105238f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 182)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 183)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 184)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 185)");
+ };
+
+
+ {
+ float a = -1.5f;
+ float b = 1.0f;
+ float c;
+ float s;
+ float r_expected = -1.80277563773f;
+ float z_expected = -0.554700196225f;
+ float c_expected = 0.832050294338f;
+ float s_expected = -0.554700196225f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 186)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 187)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 188)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 189)");
+ };
+
+
+ {
+ float a = -1.5f;
+ float b = 1.5f;
+ float c;
+ float s;
+ float r_expected = 2.12132034356f;
+ float z_expected = -1.41421356237f;
+ float c_expected = -0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 190)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 191)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 192)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 193)");
+ };
+
+
+ {
+ float a = -1.0f;
+ float b = -1.5f;
+ float c;
+ float s;
+ float r_expected = -1.80277563773f;
+ float z_expected = 1.80277563773f;
+ float c_expected = 0.554700196225f;
+ float s_expected = 0.832050294338f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 194)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 195)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 196)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 197)");
+ };
+
+
+ {
+ float a = -1.0f;
+ float b = -1.0f;
+ float c;
+ float s;
+ float r_expected = -1.41421356237f;
+ float z_expected = 1.41421356237f;
+ float c_expected = 0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 198)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 199)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 200)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 201)");
+ };
+
+
+ {
+ float a = -1.0f;
+ float b = -0.1f;
+ float c;
+ float s;
+ float r_expected = -1.00498756211f;
+ float z_expected = 0.099503719021f;
+ float c_expected = 0.99503719021f;
+ float s_expected = 0.099503719021f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 202)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 203)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 204)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 205)");
+ };
+
+
+ {
+ float a = -1.0f;
+ float b = 0.0f;
+ float c;
+ float s;
+ float r_expected = -1.0f;
+ float z_expected = -0.0f;
+ float c_expected = 1.0f;
+ float s_expected = -0.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 206)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 207)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 208)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 209)");
+ };
+
+
+ {
+ float a = -1.0f;
+ float b = 0.1f;
+ float c;
+ float s;
+ float r_expected = -1.00498756211f;
+ float z_expected = -0.099503719021f;
+ float c_expected = 0.99503719021f;
+ float s_expected = -0.099503719021f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 210)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 211)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 212)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 213)");
+ };
+
+
+ {
+ float a = -1.0f;
+ float b = 1.0f;
+ float c;
+ float s;
+ float r_expected = 1.41421356237f;
+ float z_expected = -1.41421356237f;
+ float c_expected = -0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 214)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 215)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 216)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 217)");
+ };
+
+
+ {
+ float a = -1.0f;
+ float b = 1.5f;
+ float c;
+ float s;
+ float r_expected = 1.80277563773f;
+ float z_expected = -1.80277563773f;
+ float c_expected = -0.554700196225f;
+ float s_expected = 0.832050294338f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 218)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 219)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 220)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 221)");
+ };
+
+
+ {
+ float a = -0.1f;
+ float b = -1.5f;
+ float c;
+ float s;
+ float r_expected = -1.50332963784f;
+ float z_expected = 15.0332963784f;
+ float c_expected = 0.0665190105238f;
+ float s_expected = 0.997785157857f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 222)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 223)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 224)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 225)");
+ };
+
+
+ {
+ float a = -0.1f;
+ float b = -1.0f;
+ float c;
+ float s;
+ float r_expected = -1.00498756211f;
+ float z_expected = 10.0498756211f;
+ float c_expected = 0.099503719021f;
+ float s_expected = 0.99503719021f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 226)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 227)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 228)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 229)");
+ };
+
+
+ {
+ float a = -0.1f;
+ float b = -0.1f;
+ float c;
+ float s;
+ float r_expected = -0.141421356237f;
+ float z_expected = 1.41421356237f;
+ float c_expected = 0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 230)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 231)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 232)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 233)");
+ };
+
+
+ {
+ float a = -0.1f;
+ float b = 0.0f;
+ float c;
+ float s;
+ float r_expected = -0.1f;
+ float z_expected = -0.0f;
+ float c_expected = 1.0f;
+ float s_expected = -0.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 234)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 235)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 236)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 237)");
+ };
+
+
+ {
+ float a = -0.1f;
+ float b = 0.1f;
+ float c;
+ float s;
+ float r_expected = 0.141421356237f;
+ float z_expected = -1.41421356237f;
+ float c_expected = -0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 238)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 239)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 240)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 241)");
+ };
+
+
+ {
+ float a = -0.1f;
+ float b = 1.0f;
+ float c;
+ float s;
+ float r_expected = 1.00498756211f;
+ float z_expected = -10.0498756211f;
+ float c_expected = -0.099503719021f;
+ float s_expected = 0.99503719021f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 242)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 243)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 244)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 245)");
+ };
+
+
+ {
+ float a = -0.1f;
+ float b = 1.5f;
+ float c;
+ float s;
+ float r_expected = 1.50332963784f;
+ float z_expected = -15.0332963784f;
+ float c_expected = -0.0665190105238f;
+ float s_expected = 0.997785157857f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 246)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 247)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 248)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 249)");
+ };
+
+
+ {
+ float a = 0.0f;
+ float b = -1.5f;
+ float c;
+ float s;
+ float r_expected = -1.5f;
+ float z_expected = 1.0f;
+ float c_expected = -0.0f;
+ float s_expected = 1.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 250)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 251)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 252)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 253)");
+ };
+
+
+ {
+ float a = 0.0f;
+ float b = -1.0f;
+ float c;
+ float s;
+ float r_expected = -1.0f;
+ float z_expected = 1.0f;
+ float c_expected = -0.0f;
+ float s_expected = 1.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 254)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 255)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 256)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 257)");
+ };
+
+
+ {
+ float a = 0.0f;
+ float b = -0.1f;
+ float c;
+ float s;
+ float r_expected = -0.1f;
+ float z_expected = 1.0f;
+ float c_expected = -0.0f;
+ float s_expected = 1.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 258)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 259)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 260)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 261)");
+ };
+
+
+ {
+ float a = 0.0f;
+ float b = 0.0f;
+ float c;
+ float s;
+ float r_expected = 0.0f;
+ float z_expected = 0.0f;
+ float c_expected = 1.0f;
+ float s_expected = 0.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 262)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 263)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 264)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 265)");
+ };
+
+
+ {
+ float a = 0.0f;
+ float b = 0.1f;
+ float c;
+ float s;
+ float r_expected = 0.1f;
+ float z_expected = 1.0f;
+ float c_expected = 0.0f;
+ float s_expected = 1.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 266)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 267)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 268)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 269)");
+ };
+
+
+ {
+ float a = 0.0f;
+ float b = 1.0f;
+ float c;
+ float s;
+ float r_expected = 1.0f;
+ float z_expected = 1.0f;
+ float c_expected = 0.0f;
+ float s_expected = 1.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 270)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 271)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 272)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 273)");
+ };
+
+
+ {
+ float a = 0.0f;
+ float b = 1.5f;
+ float c;
+ float s;
+ float r_expected = 1.5f;
+ float z_expected = 1.0f;
+ float c_expected = 0.0f;
+ float s_expected = 1.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 274)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 275)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 276)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 277)");
+ };
+
+
+ {
+ float a = 0.1f;
+ float b = -1.5f;
+ float c;
+ float s;
+ float r_expected = -1.50332963784f;
+ float z_expected = -15.0332963784f;
+ float c_expected = -0.0665190105238f;
+ float s_expected = 0.997785157857f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 278)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 279)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 280)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 281)");
+ };
+
+
+ {
+ float a = 0.1f;
+ float b = -1.0f;
+ float c;
+ float s;
+ float r_expected = -1.00498756211f;
+ float z_expected = -10.0498756211f;
+ float c_expected = -0.099503719021f;
+ float s_expected = 0.99503719021f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 282)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 283)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 284)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 285)");
+ };
+
+
+ {
+ float a = 0.1f;
+ float b = -0.1f;
+ float c;
+ float s;
+ float r_expected = -0.141421356237f;
+ float z_expected = -1.41421356237f;
+ float c_expected = -0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 286)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 287)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 288)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 289)");
+ };
+
+
+ {
+ float a = 0.1f;
+ float b = 0.0f;
+ float c;
+ float s;
+ float r_expected = 0.1f;
+ float z_expected = 0.0f;
+ float c_expected = 1.0f;
+ float s_expected = 0.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 290)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 291)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 292)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 293)");
+ };
+
+
+ {
+ float a = 0.1f;
+ float b = 0.1f;
+ float c;
+ float s;
+ float r_expected = 0.141421356237f;
+ float z_expected = 1.41421356237f;
+ float c_expected = 0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 294)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 295)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 296)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 297)");
+ };
+
+
+ {
+ float a = 0.1f;
+ float b = 1.0f;
+ float c;
+ float s;
+ float r_expected = 1.00498756211f;
+ float z_expected = 10.0498756211f;
+ float c_expected = 0.099503719021f;
+ float s_expected = 0.99503719021f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 298)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 299)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 300)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 301)");
+ };
+
+
+ {
+ float a = 0.1f;
+ float b = 1.5f;
+ float c;
+ float s;
+ float r_expected = 1.50332963784f;
+ float z_expected = 15.0332963784f;
+ float c_expected = 0.0665190105238f;
+ float s_expected = 0.997785157857f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 302)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 303)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 304)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 305)");
+ };
+
+
+ {
+ float a = 1.0f;
+ float b = -1.5f;
+ float c;
+ float s;
+ float r_expected = -1.80277563773f;
+ float z_expected = -1.80277563773f;
+ float c_expected = -0.554700196225f;
+ float s_expected = 0.832050294338f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 306)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 307)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 308)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 309)");
+ };
+
+
+ {
+ float a = 1.0f;
+ float b = -1.0f;
+ float c;
+ float s;
+ float r_expected = -1.41421356237f;
+ float z_expected = -1.41421356237f;
+ float c_expected = -0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 310)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 311)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 312)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 313)");
+ };
+
+
+ {
+ float a = 1.0f;
+ float b = -0.1f;
+ float c;
+ float s;
+ float r_expected = 1.00498756211f;
+ float z_expected = -0.099503719021f;
+ float c_expected = 0.99503719021f;
+ float s_expected = -0.099503719021f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 314)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 315)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 316)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 317)");
+ };
+
+
+ {
+ float a = 1.0f;
+ float b = 0.0f;
+ float c;
+ float s;
+ float r_expected = 1.0f;
+ float z_expected = 0.0f;
+ float c_expected = 1.0f;
+ float s_expected = 0.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 318)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 319)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 320)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 321)");
+ };
+
+
+ {
+ float a = 1.0f;
+ float b = 0.1f;
+ float c;
+ float s;
+ float r_expected = 1.00498756211f;
+ float z_expected = 0.099503719021f;
+ float c_expected = 0.99503719021f;
+ float s_expected = 0.099503719021f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 322)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 323)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 324)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 325)");
+ };
+
+
+ {
+ float a = 1.0f;
+ float b = 1.0f;
+ float c;
+ float s;
+ float r_expected = 1.41421356237f;
+ float z_expected = 1.41421356237f;
+ float c_expected = 0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 326)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 327)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 328)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 329)");
+ };
+
+
+ {
+ float a = 1.0f;
+ float b = 1.5f;
+ float c;
+ float s;
+ float r_expected = 1.80277563773f;
+ float z_expected = 1.80277563773f;
+ float c_expected = 0.554700196225f;
+ float s_expected = 0.832050294338f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 330)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 331)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 332)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 333)");
+ };
+
+
+ {
+ float a = 1.5f;
+ float b = -1.5f;
+ float c;
+ float s;
+ float r_expected = -2.12132034356f;
+ float z_expected = -1.41421356237f;
+ float c_expected = -0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 334)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 335)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 336)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 337)");
+ };
+
+
+ {
+ float a = 1.5f;
+ float b = -1.0f;
+ float c;
+ float s;
+ float r_expected = 1.80277563773f;
+ float z_expected = -0.554700196225f;
+ float c_expected = 0.832050294338f;
+ float s_expected = -0.554700196225f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 338)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 339)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 340)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 341)");
+ };
+
+
+ {
+ float a = 1.5f;
+ float b = -0.1f;
+ float c;
+ float s;
+ float r_expected = 1.50332963784f;
+ float z_expected = -0.0665190105238f;
+ float c_expected = 0.997785157857f;
+ float s_expected = -0.0665190105238f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 342)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 343)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 344)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 345)");
+ };
+
+
+ {
+ float a = 1.5f;
+ float b = 0.0f;
+ float c;
+ float s;
+ float r_expected = 1.5f;
+ float z_expected = 0.0f;
+ float c_expected = 1.0f;
+ float s_expected = 0.0f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 346)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 347)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 348)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 349)");
+ };
+
+
+ {
+ float a = 1.5f;
+ float b = 0.1f;
+ float c;
+ float s;
+ float r_expected = 1.50332963784f;
+ float z_expected = 0.0665190105238f;
+ float c_expected = 0.997785157857f;
+ float s_expected = 0.0665190105238f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 350)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 351)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 352)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 353)");
+ };
+
+
+ {
+ float a = 1.5f;
+ float b = 1.0f;
+ float c;
+ float s;
+ float r_expected = 1.80277563773f;
+ float z_expected = 0.554700196225f;
+ float c_expected = 0.832050294338f;
+ float s_expected = 0.554700196225f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 354)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 355)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 356)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 357)");
+ };
+
+
+ {
+ float a = 1.5f;
+ float b = 1.5f;
+ float c;
+ float s;
+ float r_expected = 2.12132034356f;
+ float z_expected = 1.41421356237f;
+ float c_expected = 0.707106781187f;
+ float s_expected = 0.707106781187f;
+ cblas_srotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, flteps, "srotg(case 358)");
+ gsl_test_rel(b, z_expected, flteps, "srotg(case 359)");
+ gsl_test_rel(c, c_expected, flteps, "srotg(case 360)");
+ gsl_test_rel(s, s_expected, flteps, "srotg(case 361)");
+ };
+
+
+ {
+ double a = -1.5;
+ double b = -1.5;
+ double c;
+ double s;
+ double r_expected = -2.12132034356;
+ double z_expected = 1.41421356237;
+ double c_expected = 0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 362)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 363)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 364)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 365)");
+ };
+
+
+ {
+ double a = -1.5;
+ double b = -1;
+ double c;
+ double s;
+ double r_expected = -1.80277563773;
+ double z_expected = 0.554700196225;
+ double c_expected = 0.832050294338;
+ double s_expected = 0.554700196225;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 366)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 367)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 368)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 369)");
+ };
+
+
+ {
+ double a = -1.5;
+ double b = -0.1;
+ double c;
+ double s;
+ double r_expected = -1.50332963784;
+ double z_expected = 0.0665190105238;
+ double c_expected = 0.997785157857;
+ double s_expected = 0.0665190105238;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 370)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 371)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 372)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 373)");
+ };
+
+
+ {
+ double a = -1.5;
+ double b = 0;
+ double c;
+ double s;
+ double r_expected = -1.5;
+ double z_expected = -0;
+ double c_expected = 1;
+ double s_expected = -0;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 374)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 375)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 376)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 377)");
+ };
+
+
+ {
+ double a = -1.5;
+ double b = 0.1;
+ double c;
+ double s;
+ double r_expected = -1.50332963784;
+ double z_expected = -0.0665190105238;
+ double c_expected = 0.997785157857;
+ double s_expected = -0.0665190105238;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 378)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 379)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 380)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 381)");
+ };
+
+
+ {
+ double a = -1.5;
+ double b = 1;
+ double c;
+ double s;
+ double r_expected = -1.80277563773;
+ double z_expected = -0.554700196225;
+ double c_expected = 0.832050294338;
+ double s_expected = -0.554700196225;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 382)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 383)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 384)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 385)");
+ };
+
+
+ {
+ double a = -1.5;
+ double b = 1.5;
+ double c;
+ double s;
+ double r_expected = 2.12132034356;
+ double z_expected = -1.41421356237;
+ double c_expected = -0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 386)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 387)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 388)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 389)");
+ };
+
+
+ {
+ double a = -1;
+ double b = -1.5;
+ double c;
+ double s;
+ double r_expected = -1.80277563773;
+ double z_expected = 1.80277563773;
+ double c_expected = 0.554700196225;
+ double s_expected = 0.832050294338;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 390)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 391)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 392)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 393)");
+ };
+
+
+ {
+ double a = -1;
+ double b = -1;
+ double c;
+ double s;
+ double r_expected = -1.41421356237;
+ double z_expected = 1.41421356237;
+ double c_expected = 0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 394)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 395)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 396)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 397)");
+ };
+
+
+ {
+ double a = -1;
+ double b = -0.1;
+ double c;
+ double s;
+ double r_expected = -1.00498756211;
+ double z_expected = 0.099503719021;
+ double c_expected = 0.99503719021;
+ double s_expected = 0.099503719021;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 398)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 399)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 400)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 401)");
+ };
+
+
+ {
+ double a = -1;
+ double b = 0;
+ double c;
+ double s;
+ double r_expected = -1;
+ double z_expected = -0;
+ double c_expected = 1;
+ double s_expected = -0;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 402)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 403)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 404)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 405)");
+ };
+
+
+ {
+ double a = -1;
+ double b = 0.1;
+ double c;
+ double s;
+ double r_expected = -1.00498756211;
+ double z_expected = -0.099503719021;
+ double c_expected = 0.99503719021;
+ double s_expected = -0.099503719021;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 406)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 407)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 408)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 409)");
+ };
+
+
+ {
+ double a = -1;
+ double b = 1;
+ double c;
+ double s;
+ double r_expected = 1.41421356237;
+ double z_expected = -1.41421356237;
+ double c_expected = -0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 410)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 411)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 412)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 413)");
+ };
+
+
+ {
+ double a = -1;
+ double b = 1.5;
+ double c;
+ double s;
+ double r_expected = 1.80277563773;
+ double z_expected = -1.80277563773;
+ double c_expected = -0.554700196225;
+ double s_expected = 0.832050294338;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 414)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 415)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 416)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 417)");
+ };
+
+
+ {
+ double a = -0.1;
+ double b = -1.5;
+ double c;
+ double s;
+ double r_expected = -1.50332963784;
+ double z_expected = 15.0332963784;
+ double c_expected = 0.0665190105238;
+ double s_expected = 0.997785157857;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 418)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 419)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 420)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 421)");
+ };
+
+
+ {
+ double a = -0.1;
+ double b = -1;
+ double c;
+ double s;
+ double r_expected = -1.00498756211;
+ double z_expected = 10.0498756211;
+ double c_expected = 0.099503719021;
+ double s_expected = 0.99503719021;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 422)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 423)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 424)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 425)");
+ };
+
+
+ {
+ double a = -0.1;
+ double b = -0.1;
+ double c;
+ double s;
+ double r_expected = -0.141421356237;
+ double z_expected = 1.41421356237;
+ double c_expected = 0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 426)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 427)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 428)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 429)");
+ };
+
+
+ {
+ double a = -0.1;
+ double b = 0;
+ double c;
+ double s;
+ double r_expected = -0.1;
+ double z_expected = -0;
+ double c_expected = 1;
+ double s_expected = -0;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 430)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 431)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 432)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 433)");
+ };
+
+
+ {
+ double a = -0.1;
+ double b = 0.1;
+ double c;
+ double s;
+ double r_expected = 0.141421356237;
+ double z_expected = -1.41421356237;
+ double c_expected = -0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 434)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 435)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 436)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 437)");
+ };
+
+
+ {
+ double a = -0.1;
+ double b = 1;
+ double c;
+ double s;
+ double r_expected = 1.00498756211;
+ double z_expected = -10.0498756211;
+ double c_expected = -0.099503719021;
+ double s_expected = 0.99503719021;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 438)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 439)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 440)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 441)");
+ };
+
+
+ {
+ double a = -0.1;
+ double b = 1.5;
+ double c;
+ double s;
+ double r_expected = 1.50332963784;
+ double z_expected = -15.0332963784;
+ double c_expected = -0.0665190105238;
+ double s_expected = 0.997785157857;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 442)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 443)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 444)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 445)");
+ };
+
+
+ {
+ double a = 0;
+ double b = -1.5;
+ double c;
+ double s;
+ double r_expected = -1.5;
+ double z_expected = 1;
+ double c_expected = -0;
+ double s_expected = 1;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 446)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 447)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 448)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 449)");
+ };
+
+
+ {
+ double a = 0;
+ double b = -1;
+ double c;
+ double s;
+ double r_expected = -1;
+ double z_expected = 1;
+ double c_expected = -0;
+ double s_expected = 1;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 450)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 451)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 452)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 453)");
+ };
+
+
+ {
+ double a = 0;
+ double b = -0.1;
+ double c;
+ double s;
+ double r_expected = -0.1;
+ double z_expected = 1;
+ double c_expected = -0;
+ double s_expected = 1;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 454)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 455)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 456)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 457)");
+ };
+
+
+ {
+ double a = 0;
+ double b = 0;
+ double c;
+ double s;
+ double r_expected = 0;
+ double z_expected = 0;
+ double c_expected = 1;
+ double s_expected = 0;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 458)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 459)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 460)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 461)");
+ };
+
+
+ {
+ double a = 0;
+ double b = 0.1;
+ double c;
+ double s;
+ double r_expected = 0.1;
+ double z_expected = 1;
+ double c_expected = 0;
+ double s_expected = 1;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 462)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 463)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 464)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 465)");
+ };
+
+
+ {
+ double a = 0;
+ double b = 1;
+ double c;
+ double s;
+ double r_expected = 1;
+ double z_expected = 1;
+ double c_expected = 0;
+ double s_expected = 1;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 466)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 467)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 468)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 469)");
+ };
+
+
+ {
+ double a = 0;
+ double b = 1.5;
+ double c;
+ double s;
+ double r_expected = 1.5;
+ double z_expected = 1;
+ double c_expected = 0;
+ double s_expected = 1;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 470)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 471)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 472)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 473)");
+ };
+
+
+ {
+ double a = 0.1;
+ double b = -1.5;
+ double c;
+ double s;
+ double r_expected = -1.50332963784;
+ double z_expected = -15.0332963784;
+ double c_expected = -0.0665190105238;
+ double s_expected = 0.997785157857;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 474)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 475)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 476)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 477)");
+ };
+
+
+ {
+ double a = 0.1;
+ double b = -1;
+ double c;
+ double s;
+ double r_expected = -1.00498756211;
+ double z_expected = -10.0498756211;
+ double c_expected = -0.099503719021;
+ double s_expected = 0.99503719021;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 478)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 479)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 480)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 481)");
+ };
+
+
+ {
+ double a = 0.1;
+ double b = -0.1;
+ double c;
+ double s;
+ double r_expected = -0.141421356237;
+ double z_expected = -1.41421356237;
+ double c_expected = -0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 482)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 483)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 484)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 485)");
+ };
+
+
+ {
+ double a = 0.1;
+ double b = 0;
+ double c;
+ double s;
+ double r_expected = 0.1;
+ double z_expected = 0;
+ double c_expected = 1;
+ double s_expected = 0;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 486)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 487)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 488)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 489)");
+ };
+
+
+ {
+ double a = 0.1;
+ double b = 0.1;
+ double c;
+ double s;
+ double r_expected = 0.141421356237;
+ double z_expected = 1.41421356237;
+ double c_expected = 0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 490)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 491)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 492)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 493)");
+ };
+
+
+ {
+ double a = 0.1;
+ double b = 1;
+ double c;
+ double s;
+ double r_expected = 1.00498756211;
+ double z_expected = 10.0498756211;
+ double c_expected = 0.099503719021;
+ double s_expected = 0.99503719021;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 494)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 495)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 496)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 497)");
+ };
+
+
+ {
+ double a = 0.1;
+ double b = 1.5;
+ double c;
+ double s;
+ double r_expected = 1.50332963784;
+ double z_expected = 15.0332963784;
+ double c_expected = 0.0665190105238;
+ double s_expected = 0.997785157857;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 498)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 499)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 500)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 501)");
+ };
+
+
+ {
+ double a = 1;
+ double b = -1.5;
+ double c;
+ double s;
+ double r_expected = -1.80277563773;
+ double z_expected = -1.80277563773;
+ double c_expected = -0.554700196225;
+ double s_expected = 0.832050294338;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 502)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 503)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 504)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 505)");
+ };
+
+
+ {
+ double a = 1;
+ double b = -1;
+ double c;
+ double s;
+ double r_expected = -1.41421356237;
+ double z_expected = -1.41421356237;
+ double c_expected = -0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 506)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 507)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 508)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 509)");
+ };
+
+
+ {
+ double a = 1;
+ double b = -0.1;
+ double c;
+ double s;
+ double r_expected = 1.00498756211;
+ double z_expected = -0.099503719021;
+ double c_expected = 0.99503719021;
+ double s_expected = -0.099503719021;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 510)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 511)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 512)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 513)");
+ };
+
+
+ {
+ double a = 1;
+ double b = 0;
+ double c;
+ double s;
+ double r_expected = 1;
+ double z_expected = 0;
+ double c_expected = 1;
+ double s_expected = 0;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 514)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 515)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 516)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 517)");
+ };
+
+
+ {
+ double a = 1;
+ double b = 0.1;
+ double c;
+ double s;
+ double r_expected = 1.00498756211;
+ double z_expected = 0.099503719021;
+ double c_expected = 0.99503719021;
+ double s_expected = 0.099503719021;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 518)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 519)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 520)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 521)");
+ };
+
+
+ {
+ double a = 1;
+ double b = 1;
+ double c;
+ double s;
+ double r_expected = 1.41421356237;
+ double z_expected = 1.41421356237;
+ double c_expected = 0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 522)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 523)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 524)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 525)");
+ };
+
+
+ {
+ double a = 1;
+ double b = 1.5;
+ double c;
+ double s;
+ double r_expected = 1.80277563773;
+ double z_expected = 1.80277563773;
+ double c_expected = 0.554700196225;
+ double s_expected = 0.832050294338;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 526)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 527)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 528)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 529)");
+ };
+
+
+ {
+ double a = 1.5;
+ double b = -1.5;
+ double c;
+ double s;
+ double r_expected = -2.12132034356;
+ double z_expected = -1.41421356237;
+ double c_expected = -0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 530)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 531)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 532)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 533)");
+ };
+
+
+ {
+ double a = 1.5;
+ double b = -1;
+ double c;
+ double s;
+ double r_expected = 1.80277563773;
+ double z_expected = -0.554700196225;
+ double c_expected = 0.832050294338;
+ double s_expected = -0.554700196225;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 534)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 535)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 536)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 537)");
+ };
+
+
+ {
+ double a = 1.5;
+ double b = -0.1;
+ double c;
+ double s;
+ double r_expected = 1.50332963784;
+ double z_expected = -0.0665190105238;
+ double c_expected = 0.997785157857;
+ double s_expected = -0.0665190105238;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 538)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 539)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 540)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 541)");
+ };
+
+
+ {
+ double a = 1.5;
+ double b = 0;
+ double c;
+ double s;
+ double r_expected = 1.5;
+ double z_expected = 0;
+ double c_expected = 1;
+ double s_expected = 0;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 542)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 543)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 544)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 545)");
+ };
+
+
+ {
+ double a = 1.5;
+ double b = 0.1;
+ double c;
+ double s;
+ double r_expected = 1.50332963784;
+ double z_expected = 0.0665190105238;
+ double c_expected = 0.997785157857;
+ double s_expected = 0.0665190105238;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 546)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 547)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 548)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 549)");
+ };
+
+
+ {
+ double a = 1.5;
+ double b = 1;
+ double c;
+ double s;
+ double r_expected = 1.80277563773;
+ double z_expected = 0.554700196225;
+ double c_expected = 0.832050294338;
+ double s_expected = 0.554700196225;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 550)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 551)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 552)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 553)");
+ };
+
+
+ {
+ double a = 1.5;
+ double b = 1.5;
+ double c;
+ double s;
+ double r_expected = 2.12132034356;
+ double z_expected = 1.41421356237;
+ double c_expected = 0.707106781187;
+ double s_expected = 0.707106781187;
+ cblas_drotg(&a, &b, &c, &s);
+ gsl_test_rel(a, r_expected, dbleps, "drotg(case 554)");
+ gsl_test_rel(b, z_expected, dbleps, "drotg(case 555)");
+ gsl_test_rel(c, c_expected, dbleps, "drotg(case 556)");
+ gsl_test_rel(s, s_expected, dbleps, "drotg(case 557)");
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_rotm.c b/gsl-1.9/cblas/test_rotm.c
new file mode 100644
index 0000000..98783c5
--- /dev/null
+++ b/gsl-1.9/cblas/test_rotm.c
@@ -0,0 +1,1511 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_rotm (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float h[] = { -1.0f, -4.44982e+03f, -15.5826f, 7.091334e+04f, 2.95912e+04f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { -3.956017e+04f };
+ float y_expected[] = { -1.657054e+04f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 654)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 655)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, 15.9728f, 6.400638e+03f, 1.733082e-05f, 1.524511e-04f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { -0.0340097f };
+ float y_expected[] = { -218.182f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 656)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 657)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 1.0f, 5.688411e+04f, 5.914789e+03f, 0.00210473f, 0.0231019f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { -1.93462e+03f };
+ float y_expected[] = { 0.0210629f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 658)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 659)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -2.0f, -0.582083f, 0.00103161f, -3.429851e-05f, 7.411469e-05f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { -0.034f };
+ float y_expected[] = { -0.56f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 660)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 661)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -1.0f, 115.163f, -6.715448e+04f, -258.695f, -16.2552f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { 140.954f };
+ float y_expected[] = { 2.292355e+03f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 662)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 663)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, -3.314862e+03f, -442.976f, -214.586f, -25.9716f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { 120.134f };
+ float y_expected[] = { 14.5012f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 664)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 665)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 1.0f, -1.177304e+03f, -1.236662e-04f, -0.186585f, 1.15841f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { 39.4683f };
+ float y_expected[] = { -0.614711f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 666)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 667)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -2.0f, -88.9796f, 0.808226f, 1.106582e-05f, -0.00862288f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { -0.034f };
+ float y_expected[] = { -0.56f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 668)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 669)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -1.0f, -0.00225865f, 8.338551e+04f, -1.98282f, -2.409905e-05f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { 1.11046f };
+ float y_expected[] = { -2.835107e+03f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 670)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 671)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, 0.258779f, 74.2802f, 0.923299f, 4.847128e+03f };
+ float X[] = { -0.034f };
+ int incX = 1;
+ float Y[] = { -0.56f };
+ int incY = -1;
+ float x_expected[] = { -0.551048f };
+ float y_expected[] = { -3.08553f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 672)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 673)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, -8.00850735044, 0.0204647351647, 1.898461360078e-04, -4.32701487194 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { -6.72728115497 };
+ double y_expected[] = { 3.09369795149 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 674)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 675)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, 1.230610998905e+04, 210.056650134, 9.20757074452, 2.072879691524e+03 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { -5.70658279935 };
+ double y_expected[] = { 175.736586112 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 676)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 677)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 1.0, -1.244580625511e+03, 1.11154682624, 2.269384716089e-05, -0.0143785338883 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { -1.046158725429e+03 };
+ double y_expected[] = { -0.829776862405 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 678)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 679)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -2.0, 293.927527276, -2.614737743134e+03, 10.3164975867, -7.947030813329e+03 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { 0.84 };
+ double y_expected[] = { -0.711 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 680)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 681)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, -0.0178609251786, 0.00983044958941, 105.944529127, 1.687350579234e-05 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { -75.3415633866 };
+ double y_expected[] = { 0.00824558059248 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 682)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 683)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, 6.241999071283e-05, 2.495425882445e+03, 304.604891146, 1.604644714854e+04 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { -215.734077605 };
+ double y_expected[] = { 2.095446741254e+03 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 684)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 685)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 1.0, -0.058097639487, 8.386083625428e+03, -10.5233229994, 184.653245391 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { -0.759802017169 };
+ double y_expected[] = { -132.128457473 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 686)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 687)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -2.0, -92.8754629217, 1.467547244529e-04, -3.197881072301e-04, -1.89874629713 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { 0.84 };
+ double y_expected[] = { -0.711 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 688)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 689)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, -0.0961996230646, -2.248344186185e-05, -316.856396787, 1.663969157848e+03 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { 225.204090432 };
+ double y_expected[] = { -1.183082090116e+03 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 690)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 691)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, -201.862043128, 4.999906166451e-04, -0.0653365534487, 586.454083328 };
+ double X[] = { 0.84 };
+ int incX = 1;
+ double Y[] = { -0.711 };
+ int incY = -1;
+ double x_expected[] = { 0.886454289502 };
+ double y_expected[] = { -0.710580007882 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 692)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 693)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -1.0f, 162.86f, 1.379231e-04f, 9.67285f, 0.929218f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { 106.173f };
+ float y_expected[] = { 0.358765f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 694)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 695)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, 537.387f, -21.6404f, -1.017074e+03f, -1.730546e-05f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { -391.961f };
+ float y_expected[] = { -13.2258f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 696)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 697)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 1.0f, -1.339977e-05f, 0.00522784f, 2.020352e-05f, -0.0654088f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { 0.385992f };
+ float y_expected[] = { -0.654248f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 698)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 699)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -2.0f, -50.922f, 31.5261f, -0.194913f, 0.206417f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { 0.629f };
+ float y_expected[] = { 0.386f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 700)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 701)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -1.0f, 1.15659f, 2.599832e+04f, 435.891f, 1.546671e+03f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { 168.981f };
+ float y_expected[] = { 1.694996e+04f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 702)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 703)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, 3.359889e-04f, -0.00134822f, -12.9136f, -5.655622e+04f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { -4.35566f };
+ float y_expected[] = { 0.385152f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 704)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 705)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 1.0f, 2.75119e-05f, 1.70314f, 18.4063f, 185.731f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { 0.386017f };
+ float y_expected[] = { 71.063f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 706)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 707)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -2.0f, -1.031009e-04f, -3.378602e+04f, 7.869358e-05f, 157.303f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { 0.629f };
+ float y_expected[] = { 0.386f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 708)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 709)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -1.0f, 0.00207419f, -89.9374f, -1.40414f, -25.1433f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { -0.540694f };
+ float y_expected[] = { -66.276f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 710)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 711)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, -4.972562e+04f, 3.65698e-05f, 632.116f, 0.195207f };
+ float X[] = { 0.629f };
+ int incX = -1;
+ float Y[] = { 0.386f };
+ int incY = 1;
+ float x_expected[] = { 244.626f };
+ float y_expected[] = { 0.386023f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 712)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 713)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, 8.64768339859, -105.906731008, -347.053994991, -1.28802789909 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { 218.021288159 };
+ double y_expected[] = { 72.2119146942 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 714)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 715)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, 0.926057152065, 3.315158944851e-04, -1.203638835886e+03, 0.00197484344868 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { 775.673049147 };
+ double y_expected[] = { -0.645223441713 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 716)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 717)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 1.0, -9.404298701289e-05, -0.00380843381223, -0.0767212569647, -3.66628238398 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { -0.644936615027 };
+ double y_expected[] = { 3.03875213767 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 718)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 719)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -2.0, 0.0900662226146, 0.00250500071094, 6.46624826995, -2.159443948633e-05 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { -0.674 };
+ double y_expected[] = { -0.645 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 720)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 721)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, 8.011686652935e+03, -23.8989526115, -1.104879849207e+04, 0.108740065261 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { 1.726598223305e+03 };
+ double y_expected[] = { 16.0377567181 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 722)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 723)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, 5.162681717012e-05, 48.059409562, -4.701209666609e+04, -6.80333644488e+04 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { 3.032212834963e+04 };
+ double y_expected[] = { -33.0370420448 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 724)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 725)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 1.0, -5.554806445579e-04, 5.101973060197e+04, -5.932040237374e+03, 3.91045757161 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { -0.644625606046 };
+ double y_expected[] = { -1.84824513369 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 726)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 727)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -2.0, -1.697234884626e-05, 101.466514367, 5.772202675851e+03, -6.884724590773e-04 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { -0.674 };
+ double y_expected[] = { -0.645 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 728)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 729)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, -0.0199779342753, 13.013123509, -17.8393347684, 0.129333249919 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { 11.5198360534 };
+ double y_expected[] = { -8.85426519126 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 730)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 731)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, -6.673799053773e+04, 587.759435538, 3.493966594965e+04, 2.098374142331e-05 };
+ double X[] = { -0.674 };
+ int incX = -1;
+ double Y[] = { -0.645 };
+ int incY = 1;
+ double x_expected[] = { -2.253675853752e+04 };
+ double y_expected[] = { -396.794859553 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 732)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 733)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -1.0f, 0.070033f, 0.034824f, -0.00740144f, -0.153474f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { -0.00701131f };
+ float y_expected[] = { 0.0119423f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 734)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 735)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, 7.618016e-04f, -0.00396806f, -92.8408f, -0.0018571f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { 9.4516f };
+ float y_expected[] = { -0.10256f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 736)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 737)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 1.0f, -5.833806e+03f, 0.00265668f, -587.573f, 0.0972416f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { 647.449f };
+ float y_expected[] = { 0.100984f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 738)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 739)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -2.0f, -8.93339e+04f, -5.16022e-05f, 2.589784e-05f, -7.52586f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { -0.111f };
+ float y_expected[] = { -0.103f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 740)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 741)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -1.0f, 0.125135f, 0.00586453f, 1.100694e-05f, -0.0137436f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { -0.0138912f };
+ float y_expected[] = { 7.64631e-04f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 742)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 743)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, -0.0996414f, 0.00505806f, 1.321441e-05f, 1.151406e-04f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { -0.111001f };
+ float y_expected[] = { -0.103561f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 744)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 745)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 1.0f, 8.18165f, 169.902f, -1.453316e-05f, 1.539957e+03f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { -1.01116f };
+ float y_expected[] = { -158.505f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 746)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 747)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -2.0f, 1.827623e-04f, -0.0528808f, 24.7305f, 328.39f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { -0.111f };
+ float y_expected[] = { -0.103f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 748)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 749)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { -1.0f, -0.0876053f, 7.858704e+04f, -4.758389e+03f, -0.0114841f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { 490.124f };
+ float y_expected[] = { -8.72316e+03f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 750)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 751)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float h[] = { 0.0f, 0.00192188f, -1.031412e-05f, -0.00123957f, 0.312197f };
+ float X[] = { -0.111f };
+ int incX = -1;
+ float Y[] = { -0.103f };
+ int incY = -1;
+ float x_expected[] = { -0.110872f };
+ float y_expected[] = { -0.102999f };
+ cblas_srotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "srotm(case 752)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "srotm(case 753)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, -0.0253351881542, -0.105247702585, -7.18405641016, -5.409804811228e+04 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 0.21037864911 };
+ double y_expected[] = { 1.622920078085e+03 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 754)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 755)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, 8.503080247483e+03, -6.186691885896e-05, -0.201279925805, -5.810746179529e-05 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 0.209038397774 };
+ double y_expected[] = { -0.0300125589845 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 756)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 757)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 1.0, 0.351101212426, 64.9574703355, 3.015315809025e-05, -5.291308403203e-04 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 0.0412735461225 };
+ double y_expected[] = { -0.202984126075 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 758)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 759)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -2.0, 0.0220262018719, -0.00311338149392, -70.6413298654, 31.8952671416 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 0.203 };
+ double y_expected[] = { -0.03 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 760)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 761)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, 1.549812806922e+04, -4.868519165134e+04, -5.230242596804e+04, 1.58043443456e+04 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 4.715192777093e+03 };
+ double y_expected[] = { -1.035722423559e+04 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 762)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 763)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, -3.30917942895, -0.0100316602276, -0.0222191220411, -0.0881815578726 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 0.203666573661 };
+ double y_expected[] = { -0.0320364270262 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 764)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 765)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 1.0, 5.68327898035, 1.646867755046e-04, -0.106527931872, -28.2458905362 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 1.12370563301 };
+ double y_expected[] = { 0.644376716086 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 766)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 767)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -2.0, 2.20585352008, 1.117638462348e+03, -0.116329468158, 0.00362096329059 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 0.203 };
+ double y_expected[] = { -0.03 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 768)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 769)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { -1.0, -0.00182683798892, -2.288460066516e-05, -37.55844708, -9.54075659826e-05 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 1.12638256429 };
+ double y_expected[] = { -1.783346955549e-06 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 770)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 771)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double h[] = { 0.0, 1.02690456955e-04, -20.1292302013, -1.703870486677e-04, 5.17477399477 };
+ double X[] = { 0.203 };
+ int incX = -1;
+ double Y[] = { -0.03 };
+ int incY = -1;
+ double x_expected[] = { 0.203005111611 };
+ double y_expected[] = { -4.11623373087 };
+ cblas_drotm(N, X, incX, Y, incY, h);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "drotm(case 772)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "drotm(case 773)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_rotmg.c b/gsl-1.9/cblas/test_rotmg.c
new file mode 100644
index 0000000..0a31250
--- /dev/null
+++ b/gsl-1.9/cblas/test_rotmg.c
@@ -0,0 +1,167 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_rotmg (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ float d1 = -1630.28519312f;
+ float d2 = 44320.1964703f;
+ float b1 = 1274.7681352f;
+ float b2 = 0.983006912864f;
+ float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
+ float d1_expected = 0.0f;
+ float d2_expected = 0.0f;
+ float b1_expected = 0.0f;
+ float h0_expected = -1.0f;
+ float h11_expected = 0.0f;
+ float h21_expected = 0.0f;
+ float h12_expected = 0.0f;
+ float h22_expected = 0.0f;
+ cblas_srotmg(&d1, &d2, &b1, b2, h);
+ gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 606)");
+ gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 607)");
+ gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 608)");
+ gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 609)");
+ gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 610)");
+ gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 611)");
+ gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 612)");
+ gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 613)");
+ };
+
+
+ {
+ double d1 = 0.0890831089656;
+ double d2 = 24998.3892082;
+ double b1 = 34657.8864443;
+ double b2 = 1.27708980357;
+ double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
+ double d1_expected = 0.0890491788526;
+ double d2_expected = 24988.8677829;
+ double b1_expected = 34671.0920237;
+ double h0_expected = 0;
+ double h11_expected = -999.1;
+ double h21_expected = -3.6848461767e-05;
+ double h12_expected = 10.34036867;
+ double h22_expected = -999.4;
+ cblas_drotmg(&d1, &d2, &b1, b2, h);
+ gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 614)");
+ gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 615)");
+ gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 616)");
+ gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 617)");
+ gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 618)");
+ gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 619)");
+ gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 620)");
+ gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 621)");
+ };
+
+
+ {
+ float d1 = 0.00100326116366f;
+ float d2 = -1.20359225232f;
+ float b1 = -7.45489498808f;
+ float b2 = 0.159616854019f;
+ float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
+ float d1_expected = 0.00222932574734f;
+ float d2_expected = -2.67447728926f;
+ float b1_expected = -3.35491869218f;
+ float h0_expected = 0.0f;
+ float h11_expected = -999.1f;
+ float h21_expected = 0.0214110130692f;
+ float h12_expected = 25.6863620142f;
+ float h22_expected = -999.4f;
+ cblas_srotmg(&d1, &d2, &b1, b2, h);
+ gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 622)");
+ gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 623)");
+ gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 624)");
+ gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 625)");
+ gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 626)");
+ gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 627)");
+ gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 628)");
+ gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 629)");
+ };
+
+
+ {
+ double d1 = -49.1978123005;
+ double d2 = 0.228703451277;
+ double b1 = 1.8901039144;
+ double b2 = 7081.47754386;
+ double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
+ double d1_expected = 0;
+ double d2_expected = 0;
+ double b1_expected = 0;
+ double h0_expected = -1;
+ double h11_expected = 0;
+ double h21_expected = 0;
+ double h12_expected = 0;
+ double h22_expected = 0;
+ cblas_drotmg(&d1, &d2, &b1, b2, h);
+ gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 630)");
+ gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 631)");
+ gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 632)");
+ gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 633)");
+ gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 634)");
+ gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 635)");
+ gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 636)");
+ gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 637)");
+ };
+
+
+ {
+ float d1 = 0.00760694276009f;
+ float d2 = -1.07649167228f;
+ float b1 = -22584.0076391f;
+ float b2 = -0.00305597817159f;
+ float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
+ float d1_expected = 0.00760694276011f;
+ float d2_expected = -1.07649167228f;
+ float b1_expected = -22584.007639f;
+ float h0_expected = 0.0f;
+ float h11_expected = -999.1f;
+ float h21_expected = -1.35316026298e-07f;
+ float h12_expected = -1.91491615001e-05f;
+ float h22_expected = -999.4f;
+ cblas_srotmg(&d1, &d2, &b1, b2, h);
+ gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 638)");
+ gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 639)");
+ gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 640)");
+ gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 641)");
+ gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 642)");
+ gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 643)");
+ gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 644)");
+ gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 645)");
+ };
+
+
+ {
+ double d1 = 0.000283076346391;
+ double d2 = 20.1907649901;
+ double b1 = -0.274927034914;
+ double b2 = 18.6645358259;
+ double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
+ double d1_expected = 20.1907649287;
+ double d2_expected = 0.00028307634553;
+ double b1_expected = 18.6645358827;
+ double h0_expected = 1;
+ double h11_expected = -2.06514743478e-07;
+ double h21_expected = -999.2;
+ double h12_expected = -999.3;
+ double h22_expected = -0.0147299154652;
+ cblas_drotmg(&d1, &d2, &b1, b2, h);
+ gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 646)");
+ gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 647)");
+ gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 648)");
+ gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 649)");
+ gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 650)");
+ gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 651)");
+ gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 652)");
+ gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 653)");
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_sbmv.c b/gsl-1.9/cblas/test_sbmv.c
new file mode 100644
index 0000000..a79fe22
--- /dev/null
+++ b/gsl-1.9/cblas/test_sbmv.c
@@ -0,0 +1,395 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_sbmv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
+ float X[] = { -0.542f, 0.606f, 0.727f };
+ int incX = -1;
+ float Y[] = { 0.755f, 0.268f, -0.99f };
+ int incY = -1;
+ float y_expected[] = { -0.236236f, -0.215242f, 0.266757f };
+ cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1102)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
+ float X[] = { -0.542f, 0.606f, 0.727f };
+ int incX = -1;
+ float Y[] = { 0.755f, 0.268f, -0.99f };
+ int incY = -1;
+ float y_expected[] = { -0.236236f, -0.215242f, 0.266757f };
+ cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1103)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
+ float X[] = { -0.542f, 0.606f, 0.727f };
+ int incX = -1;
+ float Y[] = { 0.755f, 0.268f, -0.99f };
+ int incY = -1;
+ float y_expected[] = { 0.187592f, -0.01232f, -0.040176f };
+ cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1104)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
+ float X[] = { -0.542f, 0.606f, 0.727f };
+ int incX = -1;
+ float Y[] = { 0.755f, 0.268f, -0.99f };
+ int incY = -1;
+ float y_expected[] = { 0.187592f, -0.01232f, -0.040176f };
+ cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1105)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
+ float X[] = { -0.542f, 0.606f, 0.727f };
+ int incX = -1;
+ float Y[] = { 0.755f, 0.268f, -0.99f };
+ int incY = -1;
+ float y_expected[] = { 0.187592f, -0.01232f, -0.040176f };
+ cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1106)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
+ float X[] = { -0.542f, 0.606f, 0.727f };
+ int incX = -1;
+ float Y[] = { 0.755f, 0.268f, -0.99f };
+ int incY = -1;
+ float y_expected[] = { 0.187592f, -0.01232f, -0.040176f };
+ cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1107)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
+ float X[] = { -0.542f, 0.606f, 0.727f };
+ int incX = -1;
+ float Y[] = { 0.755f, 0.268f, -0.99f };
+ int incY = -1;
+ float y_expected[] = { -0.236236f, -0.215242f, 0.266757f };
+ cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1108)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha = 1.0f;
+ float beta = 0.0f;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
+ float X[] = { -0.542f, 0.606f, 0.727f };
+ int incX = -1;
+ float Y[] = { 0.755f, 0.268f, -0.99f };
+ int incY = -1;
+ float y_expected[] = { -0.236236f, -0.215242f, 0.266757f };
+ cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1109)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha = 0;
+ double beta = 1;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
+ double X[] = { 0.166, 0.808, 0.723 };
+ int incX = -1;
+ double Y[] = { 0.9, 0.99, -0.578 };
+ int incY = -1;
+ double y_expected[] = { 0.9, 0.99, -0.578 };
+ cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1110)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha = 0;
+ double beta = 1;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
+ double X[] = { 0.166, 0.808, 0.723 };
+ int incX = -1;
+ double Y[] = { 0.9, 0.99, -0.578 };
+ int incY = -1;
+ double y_expected[] = { 0.9, 0.99, -0.578 };
+ cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1111)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha = 0;
+ double beta = 1;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
+ double X[] = { 0.166, 0.808, 0.723 };
+ int incX = -1;
+ double Y[] = { 0.9, 0.99, -0.578 };
+ int incY = -1;
+ double y_expected[] = { 0.9, 0.99, -0.578 };
+ cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1112)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha = 0;
+ double beta = 1;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
+ double X[] = { 0.166, 0.808, 0.723 };
+ int incX = -1;
+ double Y[] = { 0.9, 0.99, -0.578 };
+ int incY = -1;
+ double y_expected[] = { 0.9, 0.99, -0.578 };
+ cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1113)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha = 0;
+ double beta = 1;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
+ double X[] = { 0.166, 0.808, 0.723 };
+ int incX = -1;
+ double Y[] = { 0.9, 0.99, -0.578 };
+ int incY = -1;
+ double y_expected[] = { 0.9, 0.99, -0.578 };
+ cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1114)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha = 0;
+ double beta = 1;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
+ double X[] = { 0.166, 0.808, 0.723 };
+ int incX = -1;
+ double Y[] = { 0.9, 0.99, -0.578 };
+ int incY = -1;
+ double y_expected[] = { 0.9, 0.99, -0.578 };
+ cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1115)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha = 0;
+ double beta = 1;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
+ double X[] = { 0.166, 0.808, 0.723 };
+ int incX = -1;
+ double Y[] = { 0.9, 0.99, -0.578 };
+ int incY = -1;
+ double y_expected[] = { 0.9, 0.99, -0.578 };
+ cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1116)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha = 0;
+ double beta = 1;
+ int N = 3;
+ int k = 1;
+ int lda = 3;
+ double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
+ double X[] = { 0.166, 0.808, 0.723 };
+ int incX = -1;
+ double Y[] = { 0.9, 0.99, -0.578 };
+ int incY = -1;
+ double y_expected[] = { 0.9, 0.99, -0.578 };
+ cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1117)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_scal.c b/gsl-1.9/cblas/test_scal.c
new file mode 100644
index 0000000..a7cdd4b
--- /dev/null
+++ b/gsl-1.9/cblas/test_scal.c
@@ -0,0 +1,911 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_scal (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float alpha = 0.0f;
+ float X[] = { 0.651f };
+ int incX = -1;
+ float expected[] = { 0.651f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 112)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 0.1f;
+ float X[] = { 0.651f };
+ int incX = -1;
+ float expected[] = { 0.651f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 113)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha = 1.0f;
+ float X[] = { 0.651f };
+ int incX = -1;
+ float expected[] = { 0.651f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 114)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha = 0;
+ double X[] = { 0.686 };
+ int incX = -1;
+ double expected[] = { 0.686 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 115)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha = 0.1;
+ double X[] = { 0.686 };
+ int incX = -1;
+ double expected[] = { 0.686 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 116)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha = 1;
+ double X[] = { 0.686 };
+ int incX = -1;
+ double expected[] = { 0.686 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 117)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {0.0f, 0.0f};
+ float X[] = { 0.986f, -0.775f };
+ int incX = -1;
+ float expected[] = { 0.986f, -0.775f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 118) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 118) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {0.1f, 0.0f};
+ float X[] = { 0.986f, -0.775f };
+ int incX = -1;
+ float expected[] = { 0.986f, -0.775f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 119) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 119) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {1.0f, 0.0f};
+ float X[] = { 0.986f, -0.775f };
+ int incX = -1;
+ float expected[] = { 0.986f, -0.775f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 120) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 120) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {0.0f, 0.1f};
+ float X[] = { 0.986f, -0.775f };
+ int incX = -1;
+ float expected[] = { 0.986f, -0.775f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 121) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 121) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {0.1f, 0.2f};
+ float X[] = { 0.986f, -0.775f };
+ int incX = -1;
+ float expected[] = { 0.986f, -0.775f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 122) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 122) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float alpha[2] = {1.0f, 0.3f};
+ float X[] = { 0.986f, -0.775f };
+ int incX = -1;
+ float expected[] = { 0.986f, -0.775f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 123) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 123) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {0, 0};
+ double X[] = { 0.454, -0.478 };
+ int incX = -1;
+ double expected[] = { 0.454, -0.478 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 124) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 124) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {0.1, 0};
+ double X[] = { 0.454, -0.478 };
+ int incX = -1;
+ double expected[] = { 0.454, -0.478 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 125) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 125) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {1, 0};
+ double X[] = { 0.454, -0.478 };
+ int incX = -1;
+ double expected[] = { 0.454, -0.478 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 126) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 126) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {0, 0.1};
+ double X[] = { 0.454, -0.478 };
+ int incX = -1;
+ double expected[] = { 0.454, -0.478 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 127) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 127) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {0.1, 0.2};
+ double X[] = { 0.454, -0.478 };
+ int incX = -1;
+ double expected[] = { 0.454, -0.478 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 128) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 128) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double alpha[2] = {1, 0.3};
+ double X[] = { 0.454, -0.478 };
+ int incX = -1;
+ double expected[] = { 0.454, -0.478 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 129) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 129) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha = 0.0f;
+ float X[] = { 0.389f, -0.236f };
+ int incX = 1;
+ float expected[] = { 0.0f, -0.0f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 130)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha = 0.1f;
+ float X[] = { 0.389f, -0.236f };
+ int incX = 1;
+ float expected[] = { 0.0389f, -0.0236f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 131)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha = 1.0f;
+ float X[] = { 0.389f, -0.236f };
+ int incX = 1;
+ float expected[] = { 0.389f, -0.236f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 132)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha = 0;
+ double X[] = { -0.429, -0.183 };
+ int incX = 1;
+ double expected[] = { -0.0, -0.0 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 133)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha = 0.1;
+ double X[] = { -0.429, -0.183 };
+ int incX = 1;
+ double expected[] = { -0.0429, -0.0183 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 134)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha = 1;
+ double X[] = { -0.429, -0.183 };
+ int incX = 1;
+ double expected[] = { -0.429, -0.183 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 135)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {0.0f, 0.0f};
+ float X[] = { -0.603f, 0.239f, 0.339f, -0.58f };
+ int incX = 1;
+ float expected[] = { -0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 136) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 136) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {0.1f, 0.0f};
+ float X[] = { -0.603f, 0.239f, 0.339f, -0.58f };
+ int incX = 1;
+ float expected[] = { -0.0603f, 0.0239f, 0.0339f, -0.058f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 137) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 137) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {1.0f, 0.0f};
+ float X[] = { -0.603f, 0.239f, 0.339f, -0.58f };
+ int incX = 1;
+ float expected[] = { -0.603f, 0.239f, 0.339f, -0.58f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 138) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 138) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float X[] = { -0.603f, 0.239f, 0.339f, -0.58f };
+ int incX = 1;
+ float expected[] = { -0.0239f, -0.0603f, 0.058f, 0.0339f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 139) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 139) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {0.1f, 0.2f};
+ float X[] = { -0.603f, 0.239f, 0.339f, -0.58f };
+ int incX = 1;
+ float expected[] = { -0.1081f, -0.0967f, 0.1499f, 0.0098f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 140) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 140) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {1.0f, 0.3f};
+ float X[] = { -0.603f, 0.239f, 0.339f, -0.58f };
+ int incX = 1;
+ float expected[] = { -0.6747f, 0.0581f, 0.513f, -0.4783f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 141) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 141) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {0, 0};
+ double X[] = { -0.956, 0.613, 0.443, 0.503 };
+ int incX = 1;
+ double expected[] = { -0.0, 0.0, 0.0, 0.0 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 142) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 142) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {0.1, 0};
+ double X[] = { -0.956, 0.613, 0.443, 0.503 };
+ int incX = 1;
+ double expected[] = { -0.0956, 0.0613, 0.0443, 0.0503 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 143) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 143) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {1, 0};
+ double X[] = { -0.956, 0.613, 0.443, 0.503 };
+ int incX = 1;
+ double expected[] = { -0.956, 0.613, 0.443, 0.503 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 144) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 144) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {0, 0.1};
+ double X[] = { -0.956, 0.613, 0.443, 0.503 };
+ int incX = 1;
+ double expected[] = { -0.0613, -0.0956, -0.0503, 0.0443 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 145) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 145) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {0.1, 0.2};
+ double X[] = { -0.956, 0.613, 0.443, 0.503 };
+ int incX = 1;
+ double expected[] = { -0.2182, -0.1299, -0.0563, 0.1389 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 146) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 146) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {1, 0.3};
+ double X[] = { -0.956, 0.613, 0.443, 0.503 };
+ int incX = 1;
+ double expected[] = { -1.1399, 0.3262, 0.2921, 0.6359 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 147) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 147) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha = 0.0f;
+ float X[] = { 0.629f, -0.419f };
+ int incX = -1;
+ float expected[] = { 0.629f, -0.419f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 148)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha = 0.1f;
+ float X[] = { 0.629f, -0.419f };
+ int incX = -1;
+ float expected[] = { 0.629f, -0.419f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 149)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha = 1.0f;
+ float X[] = { 0.629f, -0.419f };
+ int incX = -1;
+ float expected[] = { 0.629f, -0.419f };
+ cblas_sscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], flteps, "sscal(case 150)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha = 0;
+ double X[] = { 0.398, -0.656 };
+ int incX = -1;
+ double expected[] = { 0.398, -0.656 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 151)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha = 0.1;
+ double X[] = { 0.398, -0.656 };
+ int incX = -1;
+ double expected[] = { 0.398, -0.656 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 152)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha = 1;
+ double X[] = { 0.398, -0.656 };
+ int incX = -1;
+ double expected[] = { 0.398, -0.656 };
+ cblas_dscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], expected[i], dbleps, "dscal(case 153)");
+ }
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {0.0f, 0.0f};
+ float X[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ int incX = -1;
+ float expected[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 154) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 154) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {0.1f, 0.0f};
+ float X[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ int incX = -1;
+ float expected[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 155) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 155) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {1.0f, 0.0f};
+ float X[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ int incX = -1;
+ float expected[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 156) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 156) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float X[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ int incX = -1;
+ float expected[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 157) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 157) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {0.1f, 0.2f};
+ float X[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ int incX = -1;
+ float expected[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 158) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 158) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ float alpha[2] = {1.0f, 0.3f};
+ float X[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ int incX = -1;
+ float expected[] = { 0.736f, 0.331f, -0.318f, 0.622f };
+ cblas_cscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], flteps, "cscal(case 159) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], flteps, "cscal(case 159) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {0, 0};
+ double X[] = { 0.521, -0.811, 0.556, -0.147 };
+ int incX = -1;
+ double expected[] = { 0.521, -0.811, 0.556, -0.147 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 160) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 160) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {0.1, 0};
+ double X[] = { 0.521, -0.811, 0.556, -0.147 };
+ int incX = -1;
+ double expected[] = { 0.521, -0.811, 0.556, -0.147 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 161) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 161) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {1, 0};
+ double X[] = { 0.521, -0.811, 0.556, -0.147 };
+ int incX = -1;
+ double expected[] = { 0.521, -0.811, 0.556, -0.147 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 162) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 162) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {0, 0.1};
+ double X[] = { 0.521, -0.811, 0.556, -0.147 };
+ int incX = -1;
+ double expected[] = { 0.521, -0.811, 0.556, -0.147 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 163) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 163) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {0.1, 0.2};
+ double X[] = { 0.521, -0.811, 0.556, -0.147 };
+ int incX = -1;
+ double expected[] = { 0.521, -0.811, 0.556, -0.147 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 164) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 164) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 2;
+ double alpha[2] = {1, 0.3};
+ double X[] = { 0.521, -0.811, 0.556, -0.147 };
+ int incX = -1;
+ double expected[] = { 0.521, -0.811, 0.556, -0.147 };
+ cblas_zscal(N, alpha, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], expected[2*i], dbleps, "zscal(case 165) real");
+ gsl_test_rel(X[2*i+1], expected[2*i+1], dbleps, "zscal(case 165) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_spmv.c b/gsl-1.9/cblas/test_spmv.c
new file mode 100644
index 0000000..d49b48b
--- /dev/null
+++ b/gsl-1.9/cblas/test_spmv.c
@@ -0,0 +1,363 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_spmv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha = 0.1f;
+ float beta = -0.3f;
+ int N = 2;
+ float A[] = { -0.174f, 0.878f, 0.478f };
+ float X[] = { 0.503f, 0.313f };
+ int incX = -1;
+ float Y[] = { -0.565f, -0.109f };
+ int incY = -1;
+ float y_expected[] = { 0.221025f, 0.0714172f };
+ cblas_sspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sspmv(case 1134)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha = 0.1f;
+ float beta = -0.3f;
+ int N = 2;
+ float A[] = { -0.174f, 0.878f, 0.478f };
+ float X[] = { 0.503f, 0.313f };
+ int incX = -1;
+ float Y[] = { -0.565f, -0.109f };
+ int incY = -1;
+ float y_expected[] = { 0.221025f, 0.0714172f };
+ cblas_sspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sspmv(case 1135)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha = 0.1f;
+ float beta = -0.3f;
+ int N = 2;
+ float A[] = { -0.174f, 0.878f, 0.478f };
+ float X[] = { 0.503f, 0.313f };
+ int incX = -1;
+ float Y[] = { -0.565f, -0.109f };
+ int incY = -1;
+ float y_expected[] = { 0.221025f, 0.0714172f };
+ cblas_sspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sspmv(case 1136)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha = 0.1f;
+ float beta = -0.3f;
+ int N = 2;
+ float A[] = { -0.174f, 0.878f, 0.478f };
+ float X[] = { 0.503f, 0.313f };
+ int incX = -1;
+ float Y[] = { -0.565f, -0.109f };
+ int incY = -1;
+ float y_expected[] = { 0.221025f, 0.0714172f };
+ cblas_sspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sspmv(case 1137)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha = 0.1f;
+ float beta = -0.3f;
+ int N = 2;
+ float A[] = { -0.174f, 0.878f, 0.478f };
+ float X[] = { 0.503f, 0.313f };
+ int incX = -1;
+ float Y[] = { -0.565f, -0.109f };
+ int incY = -1;
+ float y_expected[] = { 0.221025f, 0.0714172f };
+ cblas_sspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sspmv(case 1138)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha = 0.1f;
+ float beta = -0.3f;
+ int N = 2;
+ float A[] = { -0.174f, 0.878f, 0.478f };
+ float X[] = { 0.503f, 0.313f };
+ int incX = -1;
+ float Y[] = { -0.565f, -0.109f };
+ int incY = -1;
+ float y_expected[] = { 0.221025f, 0.0714172f };
+ cblas_sspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sspmv(case 1139)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha = 0.1f;
+ float beta = -0.3f;
+ int N = 2;
+ float A[] = { -0.174f, 0.878f, 0.478f };
+ float X[] = { 0.503f, 0.313f };
+ int incX = -1;
+ float Y[] = { -0.565f, -0.109f };
+ int incY = -1;
+ float y_expected[] = { 0.221025f, 0.0714172f };
+ cblas_sspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sspmv(case 1140)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha = 0.1f;
+ float beta = -0.3f;
+ int N = 2;
+ float A[] = { -0.174f, 0.878f, 0.478f };
+ float X[] = { 0.503f, 0.313f };
+ int incX = -1;
+ float Y[] = { -0.565f, -0.109f };
+ int incY = -1;
+ float y_expected[] = { 0.221025f, 0.0714172f };
+ cblas_sspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "sspmv(case 1141)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha = -1;
+ double beta = 0.1;
+ int N = 2;
+ double A[] = { -0.181, -0.071, -0.038 };
+ double X[] = { -0.015, 0.132 };
+ int incX = -1;
+ double Y[] = { -0.449, -0.219 };
+ int incY = -1;
+ double y_expected[] = { -0.036098, 9.27e-04 };
+ cblas_dspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dspmv(case 1142)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha = -1;
+ double beta = 0.1;
+ int N = 2;
+ double A[] = { -0.181, -0.071, -0.038 };
+ double X[] = { -0.015, 0.132 };
+ int incX = -1;
+ double Y[] = { -0.449, -0.219 };
+ int incY = -1;
+ double y_expected[] = { -0.036098, 9.27e-04 };
+ cblas_dspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dspmv(case 1143)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha = -1;
+ double beta = 0.1;
+ int N = 2;
+ double A[] = { -0.181, -0.071, -0.038 };
+ double X[] = { -0.015, 0.132 };
+ int incX = -1;
+ double Y[] = { -0.449, -0.219 };
+ int incY = -1;
+ double y_expected[] = { -0.036098, 9.27e-04 };
+ cblas_dspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dspmv(case 1144)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha = -1;
+ double beta = 0.1;
+ int N = 2;
+ double A[] = { -0.181, -0.071, -0.038 };
+ double X[] = { -0.015, 0.132 };
+ int incX = -1;
+ double Y[] = { -0.449, -0.219 };
+ int incY = -1;
+ double y_expected[] = { -0.036098, 9.27e-04 };
+ cblas_dspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dspmv(case 1145)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha = -1;
+ double beta = 0.1;
+ int N = 2;
+ double A[] = { -0.181, -0.071, -0.038 };
+ double X[] = { -0.015, 0.132 };
+ int incX = -1;
+ double Y[] = { -0.449, -0.219 };
+ int incY = -1;
+ double y_expected[] = { -0.036098, 9.27e-04 };
+ cblas_dspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dspmv(case 1146)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha = -1;
+ double beta = 0.1;
+ int N = 2;
+ double A[] = { -0.181, -0.071, -0.038 };
+ double X[] = { -0.015, 0.132 };
+ int incX = -1;
+ double Y[] = { -0.449, -0.219 };
+ int incY = -1;
+ double y_expected[] = { -0.036098, 9.27e-04 };
+ cblas_dspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dspmv(case 1147)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha = -1;
+ double beta = 0.1;
+ int N = 2;
+ double A[] = { -0.181, -0.071, -0.038 };
+ double X[] = { -0.015, 0.132 };
+ int incX = -1;
+ double Y[] = { -0.449, -0.219 };
+ int incY = -1;
+ double y_expected[] = { -0.036098, 9.27e-04 };
+ cblas_dspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dspmv(case 1148)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha = -1;
+ double beta = 0.1;
+ int N = 2;
+ double A[] = { -0.181, -0.071, -0.038 };
+ double X[] = { -0.015, 0.132 };
+ int incX = -1;
+ double Y[] = { -0.449, -0.219 };
+ int incY = -1;
+ double y_expected[] = { -0.036098, 9.27e-04 };
+ cblas_dspmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dspmv(case 1149)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_spr.c b/gsl-1.9/cblas/test_spr.c
new file mode 100644
index 0000000..36891bd
--- /dev/null
+++ b/gsl-1.9/cblas/test_spr.c
@@ -0,0 +1,163 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_spr (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 2;
+ float alpha = -0.3f;
+ float Ap[] = { -0.764f, -0.257f, -0.064f };
+ float X[] = { 0.455f, -0.285f };
+ int incX = -1;
+ float Ap_expected[] = { -0.788367f, -0.218097f, -0.126108f };
+ cblas_sspr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], flteps, "sspr(case 1426)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 2;
+ float alpha = -0.3f;
+ float Ap[] = { -0.764f, -0.257f, -0.064f };
+ float X[] = { 0.455f, -0.285f };
+ int incX = -1;
+ float Ap_expected[] = { -0.788367f, -0.218097f, -0.126108f };
+ cblas_sspr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], flteps, "sspr(case 1427)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 2;
+ float alpha = -0.3f;
+ float Ap[] = { -0.764f, -0.257f, -0.064f };
+ float X[] = { 0.455f, -0.285f };
+ int incX = -1;
+ float Ap_expected[] = { -0.788367f, -0.218097f, -0.126108f };
+ cblas_sspr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], flteps, "sspr(case 1428)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 2;
+ float alpha = -0.3f;
+ float Ap[] = { -0.764f, -0.257f, -0.064f };
+ float X[] = { 0.455f, -0.285f };
+ int incX = -1;
+ float Ap_expected[] = { -0.788367f, -0.218097f, -0.126108f };
+ cblas_sspr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], flteps, "sspr(case 1429)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 2;
+ double alpha = -1;
+ double Ap[] = { 0.819, 0.175, -0.809 };
+ double X[] = { -0.645, -0.222 };
+ int incX = -1;
+ double Ap_expected[] = { 0.769716, 0.03181, -1.225025 };
+ cblas_dspr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], dbleps, "dspr(case 1430)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 2;
+ double alpha = -1;
+ double Ap[] = { 0.819, 0.175, -0.809 };
+ double X[] = { -0.645, -0.222 };
+ int incX = -1;
+ double Ap_expected[] = { 0.769716, 0.03181, -1.225025 };
+ cblas_dspr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], dbleps, "dspr(case 1431)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 2;
+ double alpha = -1;
+ double Ap[] = { 0.819, 0.175, -0.809 };
+ double X[] = { -0.645, -0.222 };
+ int incX = -1;
+ double Ap_expected[] = { 0.769716, 0.03181, -1.225025 };
+ cblas_dspr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], dbleps, "dspr(case 1432)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 2;
+ double alpha = -1;
+ double Ap[] = { 0.819, 0.175, -0.809 };
+ double X[] = { -0.645, -0.222 };
+ int incX = -1;
+ double Ap_expected[] = { 0.769716, 0.03181, -1.225025 };
+ cblas_dspr(order, uplo, N, alpha, X, incX, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], dbleps, "dspr(case 1433)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_spr2.c b/gsl-1.9/cblas/test_spr2.c
new file mode 100644
index 0000000..cf0c39b
--- /dev/null
+++ b/gsl-1.9/cblas/test_spr2.c
@@ -0,0 +1,179 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_spr2 (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 2;
+ float alpha = -1.0f;
+ float Ap[] = { 0.493f, -0.175f, -0.831f };
+ float X[] = { -0.163f, 0.489f };
+ int incX = -1;
+ float Y[] = { 0.154f, 0.769f };
+ int incY = -1;
+ float Ap_expected[] = { -0.259082f, -0.124959f, -0.780796f };
+ cblas_sspr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], flteps, "sspr2(case 1442)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 2;
+ float alpha = -1.0f;
+ float Ap[] = { 0.493f, -0.175f, -0.831f };
+ float X[] = { -0.163f, 0.489f };
+ int incX = -1;
+ float Y[] = { 0.154f, 0.769f };
+ int incY = -1;
+ float Ap_expected[] = { -0.259082f, -0.124959f, -0.780796f };
+ cblas_sspr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], flteps, "sspr2(case 1443)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 2;
+ float alpha = -1.0f;
+ float Ap[] = { 0.493f, -0.175f, -0.831f };
+ float X[] = { -0.163f, 0.489f };
+ int incX = -1;
+ float Y[] = { 0.154f, 0.769f };
+ int incY = -1;
+ float Ap_expected[] = { -0.259082f, -0.124959f, -0.780796f };
+ cblas_sspr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], flteps, "sspr2(case 1444)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 2;
+ float alpha = -1.0f;
+ float Ap[] = { 0.493f, -0.175f, -0.831f };
+ float X[] = { -0.163f, 0.489f };
+ int incX = -1;
+ float Y[] = { 0.154f, 0.769f };
+ int incY = -1;
+ float Ap_expected[] = { -0.259082f, -0.124959f, -0.780796f };
+ cblas_sspr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], flteps, "sspr2(case 1445)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 2;
+ double alpha = 0;
+ double Ap[] = { 0.938, 0.342, 0.74 };
+ double X[] = { 0.216, -0.566 };
+ int incX = -1;
+ double Y[] = { -0.845, 0.282 };
+ int incY = -1;
+ double Ap_expected[] = { 0.938, 0.342, 0.74 };
+ cblas_dspr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], dbleps, "dspr2(case 1446)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 2;
+ double alpha = 0;
+ double Ap[] = { 0.938, 0.342, 0.74 };
+ double X[] = { 0.216, -0.566 };
+ int incX = -1;
+ double Y[] = { -0.845, 0.282 };
+ int incY = -1;
+ double Ap_expected[] = { 0.938, 0.342, 0.74 };
+ cblas_dspr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], dbleps, "dspr2(case 1447)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 2;
+ double alpha = 0;
+ double Ap[] = { 0.938, 0.342, 0.74 };
+ double X[] = { 0.216, -0.566 };
+ int incX = -1;
+ double Y[] = { -0.845, 0.282 };
+ int incY = -1;
+ double Ap_expected[] = { 0.938, 0.342, 0.74 };
+ cblas_dspr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], dbleps, "dspr2(case 1448)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 2;
+ double alpha = 0;
+ double Ap[] = { 0.938, 0.342, 0.74 };
+ double X[] = { 0.216, -0.566 };
+ int incX = -1;
+ double Y[] = { -0.845, 0.282 };
+ int incY = -1;
+ double Ap_expected[] = { 0.938, 0.342, 0.74 };
+ cblas_dspr2(order, uplo, N, alpha, X, incX, Y, incY, Ap);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(Ap[i], Ap_expected[i], dbleps, "dspr2(case 1449)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_swap.c b/gsl-1.9/cblas/test_swap.c
new file mode 100644
index 0000000..accf822
--- /dev/null
+++ b/gsl-1.9/cblas/test_swap.c
@@ -0,0 +1,311 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_swap (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int N = 1;
+ float X[] = { 0.539f };
+ int incX = 1;
+ float Y[] = { -0.262f };
+ int incY = -1;
+ float expected1[] = { -0.262f };
+ float expected2[] = { 0.539f };
+ cblas_sswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected1[i], flteps, "sswap(case 88)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected2[i], flteps, "sswap(case 89)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.906 };
+ int incX = 1;
+ double Y[] = { 0.373 };
+ int incY = -1;
+ double expected1[] = { 0.373 };
+ double expected2[] = { 0.906 };
+ cblas_dswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected1[i], dbleps, "dswap(case 90)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected2[i], dbleps, "dswap(case 91)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { -0.316f, -0.529f };
+ int incX = 1;
+ float Y[] = { -0.313f, 0.363f };
+ int incY = -1;
+ float expected1[] = { -0.313f, 0.363f };
+ float expected2[] = { -0.316f, -0.529f };
+ cblas_cswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected1[2*i], flteps, "cswap(case 92) real");
+ gsl_test_rel(X[2*i+1], expected1[2*i+1], flteps, "cswap(case 92) imag");
+ };
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected2[2*i], flteps, "cswap(case 93) real");
+ gsl_test_rel(Y[2*i+1], expected2[2*i+1], flteps, "cswap(case 93) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.512, -0.89 };
+ int incX = 1;
+ double Y[] = { -0.225, -0.511 };
+ int incY = -1;
+ double expected1[] = { -0.225, -0.511 };
+ double expected2[] = { 0.512, -0.89 };
+ cblas_zswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected1[2*i], dbleps, "zswap(case 94) real");
+ gsl_test_rel(X[2*i+1], expected1[2*i+1], dbleps, "zswap(case 94) imag");
+ };
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected2[2*i], dbleps, "zswap(case 95) real");
+ gsl_test_rel(Y[2*i+1], expected2[2*i+1], dbleps, "zswap(case 95) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.336f };
+ int incX = -1;
+ float Y[] = { -0.431f };
+ int incY = 1;
+ float expected1[] = { -0.431f };
+ float expected2[] = { 0.336f };
+ cblas_sswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected1[i], flteps, "sswap(case 96)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected2[i], flteps, "sswap(case 97)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { 0.764 };
+ int incX = -1;
+ double Y[] = { -0.293 };
+ int incY = 1;
+ double expected1[] = { -0.293 };
+ double expected2[] = { 0.764 };
+ cblas_dswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected1[i], dbleps, "dswap(case 98)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected2[i], dbleps, "dswap(case 99)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { -0.239f, 0.361f };
+ int incX = -1;
+ float Y[] = { 0.149f, 0.347f };
+ int incY = 1;
+ float expected1[] = { 0.149f, 0.347f };
+ float expected2[] = { -0.239f, 0.361f };
+ cblas_cswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected1[2*i], flteps, "cswap(case 100) real");
+ gsl_test_rel(X[2*i+1], expected1[2*i+1], flteps, "cswap(case 100) imag");
+ };
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected2[2*i], flteps, "cswap(case 101) real");
+ gsl_test_rel(Y[2*i+1], expected2[2*i+1], flteps, "cswap(case 101) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.171, -0.936 };
+ int incX = -1;
+ double Y[] = { 0.495, -0.835 };
+ int incY = 1;
+ double expected1[] = { 0.495, -0.835 };
+ double expected2[] = { -0.171, -0.936 };
+ cblas_zswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected1[2*i], dbleps, "zswap(case 102) real");
+ gsl_test_rel(X[2*i+1], expected1[2*i+1], dbleps, "zswap(case 102) imag");
+ };
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected2[2*i], dbleps, "zswap(case 103) real");
+ gsl_test_rel(Y[2*i+1], expected2[2*i+1], dbleps, "zswap(case 103) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { -0.405f };
+ int incX = -1;
+ float Y[] = { -0.213f };
+ int incY = -1;
+ float expected1[] = { -0.213f };
+ float expected2[] = { -0.405f };
+ cblas_sswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected1[i], flteps, "sswap(case 104)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected2[i], flteps, "sswap(case 105)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.761 };
+ int incX = -1;
+ double Y[] = { -0.585 };
+ int incY = -1;
+ double expected1[] = { -0.585 };
+ double expected2[] = { -0.761 };
+ cblas_dswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], expected1[i], dbleps, "dswap(case 106)");
+ }
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], expected2[i], dbleps, "dswap(case 107)");
+ }
+ };
+ };
+
+
+ {
+ int N = 1;
+ float X[] = { 0.853f, 0.146f };
+ int incX = -1;
+ float Y[] = { 0.009f, -0.178f };
+ int incY = -1;
+ float expected1[] = { 0.009f, -0.178f };
+ float expected2[] = { 0.853f, 0.146f };
+ cblas_cswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected1[2*i], flteps, "cswap(case 108) real");
+ gsl_test_rel(X[2*i+1], expected1[2*i+1], flteps, "cswap(case 108) imag");
+ };
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected2[2*i], flteps, "cswap(case 109) real");
+ gsl_test_rel(Y[2*i+1], expected2[2*i+1], flteps, "cswap(case 109) imag");
+ };
+ };
+ };
+
+
+ {
+ int N = 1;
+ double X[] = { -0.228, 0.386 };
+ int incX = -1;
+ double Y[] = { 0.988, -0.084 };
+ int incY = -1;
+ double expected1[] = { 0.988, -0.084 };
+ double expected2[] = { -0.228, 0.386 };
+ cblas_zswap(N, X, incX, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], expected1[2*i], dbleps, "zswap(case 110) real");
+ gsl_test_rel(X[2*i+1], expected1[2*i+1], dbleps, "zswap(case 110) imag");
+ };
+ };
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[2*i], expected2[2*i], dbleps, "zswap(case 111) real");
+ gsl_test_rel(Y[2*i+1], expected2[2*i+1], dbleps, "zswap(case 111) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_symm.c b/gsl-1.9/cblas/test_symm.c
new file mode 100644
index 0000000..88a672a
--- /dev/null
+++ b/gsl-1.9/cblas/test_symm.c
@@ -0,0 +1,827 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_symm (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha = -0.3f;
+ float beta = -1.0f;
+ float A[] = { -0.581f };
+ int lda = 1;
+ float B[] = { 0.157f, 0.451f };
+ int ldb = 2;
+ float C[] = { -0.869f, -0.871f };
+ int ldc = 2;
+ float C_expected[] = { 0.896365f, 0.949609f };
+ cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1518)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha = -0.3f;
+ float beta = -1.0f;
+ float A[] = { 0.874f };
+ int lda = 1;
+ float B[] = { 0.085f, 0.069f };
+ int ldb = 1;
+ float C[] = { -0.495f, -0.828f };
+ int ldc = 1;
+ float C_expected[] = { 0.472713f, 0.809908f };
+ cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1519)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha = -1.0f;
+ float beta = 0.0f;
+ float A[] = { -0.671f, -0.343f, 0.6f, 0.177f };
+ int lda = 2;
+ float B[] = { 0.043f, 0.01f };
+ int ldb = 2;
+ float C[] = { 0.988f, 0.478f };
+ int ldc = 2;
+ float C_expected[] = { 0.032283f, 0.012979f };
+ cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1520)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha = -1.0f;
+ float beta = 0.0f;
+ float A[] = { 0.069f, 0.096f, 0.139f, -0.044f };
+ int lda = 2;
+ float B[] = { -0.448f, 0.07f };
+ int ldb = 1;
+ float C[] = { 0.361f, 0.995f };
+ int ldc = 1;
+ float C_expected[] = { 0.021182f, 0.065352f };
+ cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1521)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha = 0.0f;
+ float beta = -0.3f;
+ float A[] = { 0.745f };
+ int lda = 1;
+ float B[] = { -0.269f, 0.448f };
+ int ldb = 2;
+ float C[] = { -0.986f, 0.2f };
+ int ldc = 2;
+ float C_expected[] = { 0.2958f, -0.06f };
+ cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1522)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha = 0.0f;
+ float beta = -0.3f;
+ float A[] = { 0.96f };
+ int lda = 1;
+ float B[] = { 0.392f, -0.07f };
+ int ldb = 1;
+ float C[] = { -0.235f, 0.554f };
+ int ldc = 1;
+ float C_expected[] = { 0.0705f, -0.1662f };
+ cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1523)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha = -0.3f;
+ float beta = 0.1f;
+ float A[] = { -0.839f, 0.498f, -0.215f, -0.314f };
+ int lda = 2;
+ float B[] = { -0.66f, 0.593f };
+ int ldb = 2;
+ float C[] = { -0.806f, 0.525f };
+ int ldc = 2;
+ float C_expected[] = { -0.208474f, 0.0657906f };
+ cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1524)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha = -0.3f;
+ float beta = 0.1f;
+ float A[] = { 0.994f, -0.117f, -0.639f, 0.925f };
+ int lda = 2;
+ float B[] = { -0.478f, 0.147f };
+ int ldb = 1;
+ float C[] = { -0.814f, 0.316f };
+ int ldc = 1;
+ float C_expected[] = { 0.0662993f, -0.0259703f };
+ cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1525)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha = -0.3;
+ double beta = 1;
+ double A[] = { -0.981 };
+ int lda = 1;
+ double B[] = { -0.823, 0.83 };
+ int ldb = 2;
+ double C[] = { 0.991, 0.382 };
+ int ldc = 2;
+ double C_expected[] = { 0.7487911, 0.626269 };
+ cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1526)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha = -0.3;
+ double beta = 1;
+ double A[] = { -0.248 };
+ int lda = 1;
+ double B[] = { 0.74, 0.068 };
+ int ldb = 1;
+ double C[] = { -0.905, 0.742 };
+ int ldc = 1;
+ double C_expected[] = { -0.849944, 0.7470592 };
+ cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1527)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha = -1;
+ double beta = 1;
+ double A[] = { 0.591, -0.01, -0.192, -0.376 };
+ int lda = 2;
+ double B[] = { 0.561, 0.946 };
+ int ldb = 2;
+ double C[] = { 0.763, 0.189 };
+ int ldc = 2;
+ double C_expected[] = { 0.440909, 0.550306 };
+ cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1528)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha = -1;
+ double beta = 1;
+ double A[] = { -0.786, 0.87, 0.222, -0.043 };
+ int lda = 2;
+ double B[] = { -0.503, -0.526 };
+ int ldb = 1;
+ double C[] = { -0.027, -0.391 };
+ int ldc = 1;
+ double C_expected[] = { -0.305586, -0.301952 };
+ cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1529)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha = 0.1;
+ double beta = 0.1;
+ double A[] = { -0.468 };
+ int lda = 1;
+ double B[] = { -0.881, 0.692 };
+ int ldb = 2;
+ double C[] = { -0.812, -0.395 };
+ int ldc = 2;
+ double C_expected[] = { -0.0399692, -0.0718856 };
+ cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1530)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha = 0.1;
+ double beta = 0.1;
+ double A[] = { 0.849 };
+ int lda = 1;
+ double B[] = { -0.887, 0.518 };
+ int ldb = 1;
+ double C[] = { 0.414, -0.251 };
+ int ldc = 1;
+ double C_expected[] = { -0.0339063, 0.0188782 };
+ cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1531)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha = -1;
+ double beta = 1;
+ double A[] = { 0.457, 0.624, 0.807, 0.349 };
+ int lda = 2;
+ double B[] = { -0.609, 0.03 };
+ int ldb = 2;
+ double C[] = { 0.719, -0.624 };
+ int ldc = 2;
+ double C_expected[] = { 0.973103, -0.143007 };
+ cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1532)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha = -1;
+ double beta = 1;
+ double A[] = { -0.133, -0.117, -0.163, 0.795 };
+ int lda = 2;
+ double B[] = { -0.882, 0.549 };
+ int ldb = 1;
+ double C[] = { 0.715, -0.327 };
+ int ldc = 1;
+ double C_expected[] = { 0.661927, -0.866649 };
+ cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1533)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {1.0f, 0.0f};
+ float A[] = { 0.476f, 0.816f };
+ int lda = 1;
+ float B[] = { 0.282f, 0.852f, -0.891f, -0.588f };
+ int ldb = 2;
+ float C[] = { 0.9f, 0.486f, -0.78f, -0.637f };
+ int ldc = 2;
+ float C_expected[] = { 1.461f, -0.149664f, -0.835692f, 0.369944f };
+ cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1534) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1534) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {1.0f, 0.0f};
+ float A[] = { 0.048f, 0.172f };
+ int lda = 1;
+ float B[] = { 0.786f, 0.783f, 0.809f, -0.569f };
+ int ldb = 1;
+ float C[] = { -0.227f, -0.215f, 0.881f, 0.233f };
+ int ldc = 1;
+ float C_expected[] = { -0.130052f, -0.387776f, 0.7443f, 0.121164f };
+ cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1535) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1535) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { -0.495f, -0.012f, 0.843f, -0.986f, -0.243f, 0.833f, 0.921f, 0.004f };
+ int lda = 2;
+ float B[] = { 0.876f, 0.612f, 0.805f, -0.57f };
+ int ldb = 2;
+ float C[] = { 0.938f, -0.24f, -0.874f, -0.062f };
+ int ldc = 2;
+ float C_expected[] = { 1.82769f, 0.628319f, 0.93157f, 1.21158f };
+ cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1536) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1536) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { -0.812f, 0.83f, 0.705f, 0.15f, -0.463f, 0.901f, -0.547f, -0.483f };
+ int lda = 2;
+ float B[] = { -0.808f, -0.664f, 0.352f, -0.102f };
+ int ldb = 1;
+ float C[] = { -0.64f, 0.399f, 0.896f, -0.163f };
+ int ldc = 1;
+ float C_expected[] = { -0.631906f, 0.496142f, 0.697798f, 1.62656f };
+ cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1537) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1537) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { 0.342f, -0.906f };
+ int lda = 1;
+ float B[] = { 0.676f, 0.863f, -0.517f, -0.138f };
+ int ldb = 2;
+ float C[] = { 0.274f, 0.388f, -0.271f, 0.205f };
+ int ldc = 2;
+ float C_expected[] = { -1.40107f, 0.59131f, 0.096842f, -0.692206f };
+ cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1538) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1538) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { 0.418f, 0.354f };
+ int lda = 1;
+ float B[] = { -0.74f, 0.018f, 0.395f, 0.248f };
+ int ldb = 1;
+ float C[] = { -0.162f, 0.175f, -0.853f, 0.652f };
+ int ldc = 1;
+ float C_expected[] = { 0.140692f, 0.092436f, -0.729318f, -1.09649f };
+ cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1539) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1539) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { 0.12f, 0.496f, 0.313f, -0.136f, 0.987f, 0.532f, 0.58f, -0.687f };
+ int lda = 2;
+ float B[] = { -0.587f, 0.278f, 0.857f, 0.136f };
+ int ldb = 2;
+ float C[] = { 0.162f, 0.249f, -0.665f, 0.456f };
+ int ldc = 2;
+ float C_expected[] = { -0.22769f, -0.0269913f, 0.0502096f, 0.0841558f };
+ cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1540) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1540) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ float alpha[2] = {-0.3f, 0.1f};
+ float beta[2] = {0.0f, 0.1f};
+ float A[] = { 0.579f, -0.859f, 0.192f, -0.737f, 0.396f, -0.498f, 0.751f, -0.379f };
+ int lda = 2;
+ float B[] = { 0.84f, -0.755f, -0.019f, -0.063f };
+ int ldb = 1;
+ float C[] = { 0.04f, 0.639f, -0.876f, -0.778f };
+ int ldc = 1;
+ float C_expected[] = { 0.115459f, 0.329813f, 0.288206f, 0.110315f };
+ cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1541) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1541) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {0, 0};
+ double beta[2] = {0, 0};
+ double A[] = { 0.511, -0.486 };
+ int lda = 1;
+ double B[] = { 0.985, -0.923, -0.234, -0.756 };
+ int ldb = 2;
+ double C[] = { -0.16, 0.049, 0.618, -0.349 };
+ int ldc = 2;
+ double C_expected[] = { 0.0, 0.0, 0.0, 0.0 };
+ cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1542) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1542) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {0, 0};
+ double beta[2] = {0, 0};
+ double A[] = { 0.46, -0.816 };
+ int lda = 1;
+ double B[] = { 0.404, 0.113, -0.904, -0.627 };
+ int ldb = 1;
+ double C[] = { 0.114, 0.318, 0.636, -0.839 };
+ int ldc = 1;
+ double C_expected[] = { 0.0, 0.0, 0.0, 0.0 };
+ cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1543) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1543) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {-1, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { -0.835, 0.344, 0.975, 0.634, 0.312, -0.659, -0.624, -0.175 };
+ int lda = 2;
+ double B[] = { -0.707, -0.846, 0.825, -0.661 };
+ int ldb = 2;
+ double C[] = { 0.352, -0.499, 0.267, 0.548 };
+ int ldc = 2;
+ double C_expected[] = { -2.160518, -0.156877, 0.648536, 0.867299 };
+ cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1544) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1544) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {-1, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { -0.409, 0.013, -0.308, -0.317, -0.535, -0.697, -0.385, 0.119 };
+ int lda = 2;
+ double B[] = { 0.299, -0.233, 0.093, 0.664 };
+ int ldb = 1;
+ double C[] = { 0.699, 0.47, -0.347, -0.182 };
+ int ldc = 1;
+ double C_expected[] = { -0.550491, 0.249777, 0.559487, 0.348221 };
+ cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1545) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1545) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ double A[] = { -0.151, 0.635 };
+ int lda = 1;
+ double B[] = { 0.711, -0.869, 0.153, 0.647 };
+ int ldb = 2;
+ double C[] = { -0.299, 0.43, -0.307, 0.133 };
+ int ldc = 2;
+ double C_expected[] = { 0.014454, 0.283704, -0.566948, -0.307542 };
+ cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1546) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1546) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 1};
+ double A[] = { 0.793, -0.543 };
+ int lda = 1;
+ double B[] = { 0.054, -0.045, 0.989, 0.453 };
+ int ldb = 1;
+ double C[] = { 0.443, -0.641, -0.809, -0.83 };
+ int ldc = 1;
+ double C_expected[] = { 0.659387, 0.377993, 1.860256, -0.986798 };
+ cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1547) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1547) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {-1, 0};
+ double A[] = { -0.432, -0.293, -0.819, 0.44, -0.818, -0.258, -0.836, 0.683 };
+ int lda = 2;
+ double B[] = { -0.259, -0.878, 0.161, 0.744 };
+ int ldb = 2;
+ double C[] = { 0.436, -0.655, -0.61, -0.875 };
+ int ldc = 2;
+ double C_expected[] = { -0.521112, 0.460053, -0.04741, 1.148005 };
+ cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1548) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1548) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int M = 1;
+ int N = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {-1, 0};
+ double A[] = { -0.656, 0.378, -0.688, 0.676, 0.967, -0.804, 0.455, -0.425 };
+ int lda = 2;
+ double B[] = { 0.791, -0.947, -0.945, -0.444 };
+ int ldb = 1;
+ double C[] = { 0.014, -0.814, -0.091, -0.417 };
+ int ldc = 1;
+ double C_expected[] = { 0.775374, 1.400882, -0.431711, 1.802857 };
+ cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1549) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1549) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_symv.c b/gsl-1.9/cblas/test_symv.c
new file mode 100644
index 0000000..923a0f5
--- /dev/null
+++ b/gsl-1.9/cblas/test_symv.c
@@ -0,0 +1,379 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_symv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha = 1.0f;
+ float beta = -1.0f;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.428f };
+ float X[] = { -0.34f };
+ int incX = -1;
+ float Y[] = { -0.888f };
+ int incY = -1;
+ float y_expected[] = { 1.03352f };
+ cblas_ssymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssymv(case 1054)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ float alpha = 1.0f;
+ float beta = -1.0f;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.428f };
+ float X[] = { -0.34f };
+ int incX = -1;
+ float Y[] = { -0.888f };
+ int incY = -1;
+ float y_expected[] = { 1.03352f };
+ cblas_ssymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssymv(case 1055)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha = 1.0f;
+ float beta = -1.0f;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.428f };
+ float X[] = { -0.34f };
+ int incX = -1;
+ float Y[] = { -0.888f };
+ int incY = -1;
+ float y_expected[] = { 1.03352f };
+ cblas_ssymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssymv(case 1056)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ float alpha = 1.0f;
+ float beta = -1.0f;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.428f };
+ float X[] = { -0.34f };
+ int incX = -1;
+ float Y[] = { -0.888f };
+ int incY = -1;
+ float y_expected[] = { 1.03352f };
+ cblas_ssymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssymv(case 1057)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha = 1.0f;
+ float beta = -1.0f;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.428f };
+ float X[] = { -0.34f };
+ int incX = -1;
+ float Y[] = { -0.888f };
+ int incY = -1;
+ float y_expected[] = { 1.03352f };
+ cblas_ssymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssymv(case 1058)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ float alpha = 1.0f;
+ float beta = -1.0f;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.428f };
+ float X[] = { -0.34f };
+ int incX = -1;
+ float Y[] = { -0.888f };
+ int incY = -1;
+ float y_expected[] = { 1.03352f };
+ cblas_ssymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssymv(case 1059)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha = 1.0f;
+ float beta = -1.0f;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.428f };
+ float X[] = { -0.34f };
+ int incX = -1;
+ float Y[] = { -0.888f };
+ int incY = -1;
+ float y_expected[] = { 1.03352f };
+ cblas_ssymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssymv(case 1060)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ float alpha = 1.0f;
+ float beta = -1.0f;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.428f };
+ float X[] = { -0.34f };
+ int incX = -1;
+ float Y[] = { -0.888f };
+ int incY = -1;
+ float y_expected[] = { 1.03352f };
+ cblas_ssymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], flteps, "ssymv(case 1061)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha = 0;
+ double beta = -0.3;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.544 };
+ double X[] = { -0.601 };
+ int incX = -1;
+ double Y[] = { -0.852 };
+ int incY = -1;
+ double y_expected[] = { 0.2556 };
+ cblas_dsymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsymv(case 1062)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ double alpha = 0;
+ double beta = -0.3;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.544 };
+ double X[] = { -0.601 };
+ int incX = -1;
+ double Y[] = { -0.852 };
+ int incY = -1;
+ double y_expected[] = { 0.2556 };
+ cblas_dsymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsymv(case 1063)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha = 0;
+ double beta = -0.3;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.544 };
+ double X[] = { -0.601 };
+ int incX = -1;
+ double Y[] = { -0.852 };
+ int incY = -1;
+ double y_expected[] = { 0.2556 };
+ cblas_dsymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsymv(case 1064)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ double alpha = 0;
+ double beta = -0.3;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.544 };
+ double X[] = { -0.601 };
+ int incX = -1;
+ double Y[] = { -0.852 };
+ int incY = -1;
+ double y_expected[] = { 0.2556 };
+ cblas_dsymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsymv(case 1065)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha = 0;
+ double beta = -0.3;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.544 };
+ double X[] = { -0.601 };
+ int incX = -1;
+ double Y[] = { -0.852 };
+ int incY = -1;
+ double y_expected[] = { 0.2556 };
+ cblas_dsymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsymv(case 1066)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ double alpha = 0;
+ double beta = -0.3;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.544 };
+ double X[] = { -0.601 };
+ int incX = -1;
+ double Y[] = { -0.852 };
+ int incY = -1;
+ double y_expected[] = { 0.2556 };
+ cblas_dsymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsymv(case 1067)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha = 0;
+ double beta = -0.3;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.544 };
+ double X[] = { -0.601 };
+ int incX = -1;
+ double Y[] = { -0.852 };
+ int incY = -1;
+ double y_expected[] = { 0.2556 };
+ cblas_dsymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsymv(case 1068)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ double alpha = 0;
+ double beta = -0.3;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.544 };
+ double X[] = { -0.601 };
+ int incX = -1;
+ double Y[] = { -0.852 };
+ int incY = -1;
+ double y_expected[] = { 0.2556 };
+ cblas_dsymv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(Y[i], y_expected[i], dbleps, "dsymv(case 1069)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_syr.c b/gsl-1.9/cblas/test_syr.c
new file mode 100644
index 0000000..fc7b397
--- /dev/null
+++ b/gsl-1.9/cblas/test_syr.c
@@ -0,0 +1,171 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_syr (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ float alpha = 0.1f;
+ float A[] = { -0.291f };
+ float X[] = { 0.845f };
+ int incX = -1;
+ float A_expected[] = { -0.219597f };
+ cblas_ssyr(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "ssyr(case 1402)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ float alpha = 0.1f;
+ float A[] = { -0.291f };
+ float X[] = { 0.845f };
+ int incX = -1;
+ float A_expected[] = { -0.219597f };
+ cblas_ssyr(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "ssyr(case 1403)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ float alpha = 0.1f;
+ float A[] = { -0.291f };
+ float X[] = { 0.845f };
+ int incX = -1;
+ float A_expected[] = { -0.219597f };
+ cblas_ssyr(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "ssyr(case 1404)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ float alpha = 0.1f;
+ float A[] = { -0.291f };
+ float X[] = { 0.845f };
+ int incX = -1;
+ float A_expected[] = { -0.219597f };
+ cblas_ssyr(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "ssyr(case 1405)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ double alpha = -0.3;
+ double A[] = { -0.65 };
+ double X[] = { -0.891 };
+ int incX = -1;
+ double A_expected[] = { -0.8881643 };
+ cblas_dsyr(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dsyr(case 1406)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ double alpha = -0.3;
+ double A[] = { -0.65 };
+ double X[] = { -0.891 };
+ int incX = -1;
+ double A_expected[] = { -0.8881643 };
+ cblas_dsyr(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dsyr(case 1407)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ double alpha = -0.3;
+ double A[] = { -0.65 };
+ double X[] = { -0.891 };
+ int incX = -1;
+ double A_expected[] = { -0.8881643 };
+ cblas_dsyr(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dsyr(case 1408)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ double alpha = -0.3;
+ double A[] = { -0.65 };
+ double X[] = { -0.891 };
+ int incX = -1;
+ double A_expected[] = { -0.8881643 };
+ cblas_dsyr(order, uplo, N, alpha, X, incX, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dsyr(case 1409)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_syr2.c b/gsl-1.9/cblas/test_syr2.c
new file mode 100644
index 0000000..5f214f1
--- /dev/null
+++ b/gsl-1.9/cblas/test_syr2.c
@@ -0,0 +1,187 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_syr2 (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ float alpha = 0.0f;
+ float A[] = { 0.862f };
+ float X[] = { 0.823f };
+ int incX = -1;
+ float Y[] = { 0.699f };
+ int incY = -1;
+ float A_expected[] = { 0.862f };
+ cblas_ssyr2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "ssyr2(case 1434)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ float alpha = 0.0f;
+ float A[] = { 0.862f };
+ float X[] = { 0.823f };
+ int incX = -1;
+ float Y[] = { 0.699f };
+ int incY = -1;
+ float A_expected[] = { 0.862f };
+ cblas_ssyr2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "ssyr2(case 1435)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ float alpha = 0.0f;
+ float A[] = { 0.862f };
+ float X[] = { 0.823f };
+ int incX = -1;
+ float Y[] = { 0.699f };
+ int incY = -1;
+ float A_expected[] = { 0.862f };
+ cblas_ssyr2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "ssyr2(case 1436)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ float alpha = 0.0f;
+ float A[] = { 0.862f };
+ float X[] = { 0.823f };
+ int incX = -1;
+ float Y[] = { 0.699f };
+ int incY = -1;
+ float A_expected[] = { 0.862f };
+ cblas_ssyr2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], flteps, "ssyr2(case 1437)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ double alpha = 0;
+ double A[] = { -0.824 };
+ double X[] = { 0.684 };
+ int incX = -1;
+ double Y[] = { 0.965 };
+ int incY = -1;
+ double A_expected[] = { -0.824 };
+ cblas_dsyr2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dsyr2(case 1438)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ double alpha = 0;
+ double A[] = { -0.824 };
+ double X[] = { 0.684 };
+ int incX = -1;
+ double Y[] = { 0.965 };
+ int incY = -1;
+ double A_expected[] = { -0.824 };
+ cblas_dsyr2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dsyr2(case 1439)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int N = 1;
+ int lda = 1;
+ double alpha = 0;
+ double A[] = { -0.824 };
+ double X[] = { 0.684 };
+ int incX = -1;
+ double Y[] = { 0.965 };
+ int incY = -1;
+ double A_expected[] = { -0.824 };
+ cblas_dsyr2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dsyr2(case 1440)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int N = 1;
+ int lda = 1;
+ double alpha = 0;
+ double A[] = { -0.824 };
+ double X[] = { 0.684 };
+ int incX = -1;
+ double Y[] = { 0.965 };
+ int incY = -1;
+ double A_expected[] = { -0.824 };
+ cblas_dsyr2(order, uplo, N, alpha, X, incX, Y, incY, A, lda);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(A[i], A_expected[i], dbleps, "dsyr2(case 1441)");
+ }
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_syr2k.c b/gsl-1.9/cblas/test_syr2k.c
new file mode 100644
index 0000000..8955d0e
--- /dev/null
+++ b/gsl-1.9/cblas/test_syr2k.c
@@ -0,0 +1,827 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_syr2k (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha = 0.1f;
+ float beta = 1.0f;
+ float A[] = { -0.915f, 0.445f };
+ int lda = 2;
+ float B[] = { 0.213f, -0.194f };
+ int ldb = 2;
+ float C[] = { -0.117f };
+ int ldc = 1;
+ float C_expected[] = { -0.173245f };
+ cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1614)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha = 0.1f;
+ float beta = 1.0f;
+ float A[] = { 0.089f, -0.889f };
+ int lda = 2;
+ float B[] = { -0.384f, 0.518f };
+ int ldb = 2;
+ float C[] = { 0.069f };
+ int ldc = 1;
+ float C_expected[] = { -0.0299356f };
+ cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1615)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha = 0.1f;
+ float beta = 1.0f;
+ float A[] = { 0.492f, 0.021f };
+ int lda = 1;
+ float B[] = { -0.804f, -0.912f };
+ int ldb = 1;
+ float C[] = { -0.851f };
+ int ldc = 1;
+ float C_expected[] = { -0.933944f };
+ cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1616)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha = 0.1f;
+ float beta = 1.0f;
+ float A[] = { -0.376f, 0.689f };
+ int lda = 1;
+ float B[] = { 0.21f, 0.406f };
+ int ldb = 1;
+ float C[] = { -0.581f };
+ int ldc = 1;
+ float C_expected[] = { -0.540845f };
+ cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1617)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ float alpha = 1.0f;
+ float beta = -0.3f;
+ float A[] = { 0.629f, -0.883f };
+ int lda = 1;
+ float B[] = { -0.165f, 0.02f };
+ int ldb = 1;
+ float C[] = { 0.236f };
+ int ldc = 1;
+ float C_expected[] = { -0.31369f };
+ cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1618)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ float alpha = 1.0f;
+ float beta = -0.3f;
+ float A[] = { 0.412f, -0.411f };
+ int lda = 1;
+ float B[] = { 0.313f, 0.301f };
+ int ldb = 1;
+ float C[] = { 0.222f };
+ int ldc = 1;
+ float C_expected[] = { -0.05611f };
+ cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1619)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ float alpha = 1.0f;
+ float beta = -0.3f;
+ float A[] = { -0.02f, 0.593f };
+ int lda = 2;
+ float B[] = { -0.144f, 0.846f };
+ int ldb = 2;
+ float C[] = { -0.645f };
+ int ldc = 1;
+ float C_expected[] = { 1.20262f };
+ cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1620)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ float alpha = 1.0f;
+ float beta = -0.3f;
+ float A[] = { 0.253f, 0.937f };
+ int lda = 2;
+ float B[] = { 0.24f, -0.27f };
+ int ldb = 2;
+ float C[] = { 0.128f };
+ int ldc = 1;
+ float C_expected[] = { -0.42294f };
+ cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1621)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha = 0.1;
+ double beta = 0;
+ double A[] = { -0.225, 0.857 };
+ int lda = 2;
+ double B[] = { -0.933, 0.994 };
+ int ldb = 2;
+ double C[] = { 0.177 };
+ int ldc = 1;
+ double C_expected[] = { 0.2123566 };
+ cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1622)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha = 0.1;
+ double beta = 0;
+ double A[] = { -0.955, 0.112 };
+ int lda = 2;
+ double B[] = { -0.695, 0.719 };
+ int ldb = 2;
+ double C[] = { 0.069 };
+ int ldc = 1;
+ double C_expected[] = { 0.1488506 };
+ cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1623)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha = 0.1;
+ double beta = 0;
+ double A[] = { 0.216, 0.911 };
+ int lda = 1;
+ double B[] = { -0.074, -0.256 };
+ int ldb = 1;
+ double C[] = { -0.621 };
+ int ldc = 1;
+ double C_expected[] = { -0.04984 };
+ cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1624)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha = 0.1;
+ double beta = 0;
+ double A[] = { -0.343, -0.381 };
+ int lda = 1;
+ double B[] = { -0.433, -0.087 };
+ int ldb = 1;
+ double C[] = { -0.889 };
+ int ldc = 1;
+ double C_expected[] = { 0.0363332 };
+ cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1625)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ double alpha = 1;
+ double beta = -1;
+ double A[] = { -0.633, 0.219 };
+ int lda = 1;
+ double B[] = { 0.817, -0.683 };
+ int ldb = 1;
+ double C[] = { -0.294 };
+ int ldc = 1;
+ double C_expected[] = { -1.039476 };
+ cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1626)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ double alpha = 1;
+ double beta = -1;
+ double A[] = { -0.887, -0.43 };
+ int lda = 1;
+ double B[] = { 0.557, 0.912 };
+ int ldb = 1;
+ double C[] = { 0.831 };
+ int ldc = 1;
+ double C_expected[] = { -2.603438 };
+ cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1627)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ double alpha = 1;
+ double beta = -1;
+ double A[] = { 0.397, -0.173 };
+ int lda = 2;
+ double B[] = { 0.155, -0.99 };
+ int ldb = 2;
+ double C[] = { 0.621 };
+ int ldc = 1;
+ double C_expected[] = { -0.15539 };
+ cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1628)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ double alpha = 1;
+ double beta = -1;
+ double A[] = { 0.833, -0.52 };
+ int lda = 2;
+ double B[] = { 0.28, 0.481 };
+ int ldb = 2;
+ double C[] = { 0.455 };
+ int ldc = 1;
+ double C_expected[] = { -0.48876 };
+ cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1629)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { -0.248f, -0.037f, -0.124f, 0.998f };
+ int lda = 2;
+ float B[] = { -0.608f, -0.115f, -0.718f, -0.551f };
+ int ldb = 2;
+ float C[] = { 0.187f, -0.329f };
+ int ldc = 1;
+ float C_expected[] = { 0.119445f, 0.157092f };
+ cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1630) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1630) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { 0.068f, 0.751f, -0.449f, -0.598f };
+ int lda = 2;
+ float B[] = { 0.616f, 0.805f, -0.635f, 0.773f };
+ int ldb = 2;
+ float C[] = { -0.287f, 0.917f };
+ int ldc = 1;
+ float C_expected[] = { -0.110002f, 0.0369404f };
+ cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1631) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1631) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { -0.396f, -0.603f, -0.131f, -0.288f };
+ int lda = 1;
+ float B[] = { -0.64f, -0.444f, -0.085f, 0.936f };
+ int ldb = 1;
+ float C[] = { 0.375f, -0.434f };
+ int ldc = 1;
+ float C_expected[] = { -0.0927216f, 0.0532822f };
+ cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1632) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1632) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { 0.655f, 0.16f, 0.45f, -0.747f };
+ int lda = 1;
+ float B[] = { 0.923f, 0.432f, -0.986f, 0.259f };
+ int ldb = 1;
+ float C[] = { 0.752f, 0.576f };
+ int ldc = 1;
+ float C_expected[] = { -0.256746f, 0.0570436f };
+ cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1633) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1633) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { -0.765f, 0.487f, 0.7f, 0.768f };
+ int lda = 1;
+ float B[] = { -0.529f, 0.056f, -0.584f, 0.928f };
+ int ldb = 1;
+ float C[] = { -0.426f, 0.836f };
+ int ldc = 1;
+ float C_expected[] = { 0.019875f, -0.148818f };
+ cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1634) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1634) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { 0.25f, 0.489f, 0.8f, -0.642f };
+ int lda = 1;
+ float B[] = { -0.732f, -0.856f, -0.654f, 0.591f };
+ int ldb = 1;
+ float C[] = { -0.101f, 0.322f };
+ int ldc = 1;
+ float C_expected[] = { -0.064144f, 0.0183612f };
+ cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1635) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1635) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { -0.579f, -0.971f, 0.521f, -0.824f };
+ int lda = 2;
+ float B[] = { -0.227f, 0.907f, 0.457f, -0.274f };
+ int ldb = 2;
+ float C[] = { 0.21f, -0.718f };
+ int ldc = 1;
+ float C_expected[] = { 0.164812f, 0.20489f };
+ cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1636) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1636) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ float alpha[2] = {0.0f, 0.1f};
+ float beta[2] = {0.0f, 0.0f};
+ float A[] = { -0.83f, -0.512f, -0.667f, -0.436f };
+ int lda = 2;
+ float B[] = { -0.443f, 0.82f, -0.259f, -0.618f };
+ int ldb = 2;
+ float C[] = { 0.583f, 0.668f };
+ int ldc = 1;
+ float C_expected[] = { -0.0142692f, 0.138167f };
+ cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1637) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1637) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {0, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { -0.315, 0.03, 0.281, 0.175 };
+ int lda = 2;
+ double B[] = { -0.832, -0.964, 0.291, 0.476 };
+ int ldb = 2;
+ double C[] = { -0.341, 0.743 };
+ int ldc = 1;
+ double C_expected[] = { 0.028, -0.257 };
+ cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1638) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1638) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {0, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { -0.159, -0.489, -0.11, 0.611 };
+ int lda = 2;
+ double B[] = { -0.285, -0.048, -0.673, -0.492 };
+ int ldb = 2;
+ double C[] = { 0.496, -0.626 };
+ int ldc = 1;
+ double C_expected[] = { -0.0862, 0.2374 };
+ cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1639) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1639) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {0, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { 0.796, 0.872, -0.919, 0.748 };
+ int lda = 1;
+ double B[] = { -0.945, 0.915, -0.252, -0.276 };
+ int ldb = 1;
+ double C[] = { 0.07, -0.957 };
+ int ldc = 1;
+ double C_expected[] = { 0.0747, 0.2941 };
+ cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1640) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1640) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {0, 0};
+ double beta[2] = {-0.3, 0.1};
+ double A[] = { 0.984, 0.526, 0.284, 0.806 };
+ int lda = 1;
+ double B[] = { -0.509, -0.178, 0.188, -0.221 };
+ int ldb = 1;
+ double C[] = { -0.388, 0.795 };
+ int ldc = 1;
+ double C_expected[] = { 0.0369, -0.2773 };
+ cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1641) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1641) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 0.1};
+ double A[] = { 0.628, 0.846, -0.645, 0.032 };
+ int lda = 1;
+ double B[] = { 0.545, -0.54, 0.493, -0.035 };
+ int ldb = 1;
+ double C[] = { -0.16, -0.06 };
+ int ldc = 1;
+ double C_expected[] = { 0.97047, 0.304602 };
+ cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1642) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1642) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 0.1};
+ double A[] = { -0.556, -0.946, 0.177, -0.859 };
+ int lda = 1;
+ double B[] = { 0.423, -0.91, 0.736, -0.251 };
+ int ldb = 1;
+ double C[] = { -0.478, 0.519 };
+ int ldc = 1;
+ double C_expected[] = { -2.41467, -1.189498 };
+ cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1643) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1643) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 0.1};
+ double A[] = { -0.582, 0.09, -0.176, 0.784 };
+ int lda = 2;
+ double B[] = { 0.687, -0.859, 0.945, 0.756 };
+ int ldb = 2;
+ double C[] = { -0.663, -0.186 };
+ int ldc = 1;
+ double C_expected[] = { -2.144496, 2.272884 };
+ cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1644) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1644) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 112;
+ int N = 1;
+ int K = 2;
+ double alpha[2] = {1, 0};
+ double beta[2] = {0, 0.1};
+ double A[] = { 0.231, -0.452, -0.112, -0.837 };
+ int lda = 2;
+ double B[] = { -0.258, 0.464, -0.224, 0.893 };
+ int ldb = 2;
+ double C[] = { -0.448, 0.046 };
+ int ldc = 1;
+ double C_expected[] = { 1.840718, 0.577744 };
+ cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1645) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1645) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_syrk.c b/gsl-1.9/cblas/test_syrk.c
new file mode 100644
index 0000000..21531d5
--- /dev/null
+++ b/gsl-1.9/cblas/test_syrk.c
@@ -0,0 +1,763 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_syrk (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha = -1.0f;
+ float beta = 0.1f;
+ float A[] = { 0.412f, -0.229f };
+ int lda = 1;
+ float C[] = { 0.628f, -0.664f, -0.268f, 0.096f };
+ int ldc = 2;
+ float C_expected[] = { -0.106944f, 0.027948f, -0.268f, -0.042841f };
+ cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1566)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha = -1.0f;
+ float beta = 0.1f;
+ float A[] = { 0.101f, -0.653f };
+ int lda = 2;
+ float C[] = { 0.432f, 0.107f, -0.952f, -0.532f };
+ int ldc = 2;
+ float C_expected[] = { 0.032999f, 0.107f, -0.029247f, -0.479609f };
+ cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1567)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ float alpha = 1.0f;
+ float beta = 0.1f;
+ float A[] = { 0.79f, 0.595f };
+ int lda = 2;
+ float C[] = { 0.257f, 0.183f, -0.021f, -0.053f };
+ int ldc = 2;
+ float C_expected[] = { 0.6498f, 0.48835f, -0.021f, 0.348725f };
+ cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1568)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ float alpha = 1.0f;
+ float beta = 0.1f;
+ float A[] = { -0.181f, -0.654f };
+ int lda = 1;
+ float C[] = { -0.4f, 0.615f, 0.147f, -0.163f };
+ int ldc = 2;
+ float C_expected[] = { -0.007239f, 0.615f, 0.133074f, 0.411416f };
+ cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1569)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha = 0.0f;
+ float beta = -1.0f;
+ float A[] = { -0.191f, 0.584f };
+ int lda = 1;
+ float C[] = { -0.719f, -0.681f, -0.003f, 0.544f };
+ int ldc = 2;
+ float C_expected[] = { 0.719f, -0.681f, 0.003f, -0.544f };
+ cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1570)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha = 0.0f;
+ float beta = -1.0f;
+ float A[] = { 0.788f, 0.041f };
+ int lda = 2;
+ float C[] = { 0.029f, 0.365f, 0.739f, -0.769f };
+ int ldc = 2;
+ float C_expected[] = { -0.029f, -0.365f, 0.739f, 0.769f };
+ cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1571)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ float alpha = -0.3f;
+ float beta = -1.0f;
+ float A[] = { 0.733f, 0.678f };
+ int lda = 2;
+ float C[] = { -0.941f, 0.96f, 0.07f, -0.295f };
+ int ldc = 2;
+ float C_expected[] = { 0.779813f, 0.96f, -0.219092f, 0.157095f };
+ cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1572)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ float alpha = -0.3f;
+ float beta = -1.0f;
+ float A[] = { -0.87f, 0.675f };
+ int lda = 1;
+ float C[] = { -0.602f, -0.432f, -0.984f, 0.384f };
+ int ldc = 2;
+ float C_expected[] = { 0.37493f, 0.608175f, -0.984f, -0.520687f };
+ cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1573)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha = 0.1;
+ double beta = -0.3;
+ double A[] = { 0.169, -0.875 };
+ int lda = 1;
+ double C[] = { 0.159, 0.277, 0.865, 0.346 };
+ int ldc = 2;
+ double C_expected[] = { -0.0448439, -0.0978875, 0.865, -0.0272375 };
+ cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1574)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha = 0.1;
+ double beta = -0.3;
+ double A[] = { 0.536, -0.725 };
+ int lda = 2;
+ double C[] = { 0.154, -0.445, -0.841, -0.91 };
+ int ldc = 2;
+ double C_expected[] = { -0.0174704, -0.445, 0.21344, 0.3255625 };
+ cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1575)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ double alpha = 0;
+ double beta = -1;
+ double A[] = { -0.07, 0.8 };
+ int lda = 2;
+ double C[] = { 0.823, -0.88, -0.136, 0.793 };
+ int ldc = 2;
+ double C_expected[] = { -0.823, 0.88, -0.136, -0.793 };
+ cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1576)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ double alpha = 0;
+ double beta = -1;
+ double A[] = { -0.058, 0.649 };
+ int lda = 1;
+ double C[] = { -0.187, 0.294, -0.004, -0.933 };
+ int ldc = 2;
+ double C_expected[] = { 0.187, 0.294, 0.004, 0.933 };
+ cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1577)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha = 1;
+ double beta = -1;
+ double A[] = { 0.263, -0.289 };
+ int lda = 1;
+ double C[] = { 0.554, -0.679, 0.993, 0.758 };
+ int ldc = 2;
+ double C_expected[] = { -0.484831, -0.679, -1.069007, -0.674479 };
+ cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1578)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha = 1;
+ double beta = -1;
+ double A[] = { -0.265, -0.837 };
+ int lda = 2;
+ double C[] = { -0.994, 0.967, -0.34, -0.069 };
+ int ldc = 2;
+ double C_expected[] = { 1.064225, -0.745195, -0.34, 0.769569 };
+ cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1579)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ double alpha = -0.3;
+ double beta = 1;
+ double A[] = { -0.464, 0.394 };
+ int lda = 2;
+ double C[] = { -0.45, -0.447, 0.649, 0.055 };
+ int ldc = 2;
+ double C_expected[] = { -0.5145888, -0.447, 0.7038448, 0.0084292 };
+ cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1580)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ double alpha = -0.3;
+ double beta = 1;
+ double A[] = { 0.815, 0.168 };
+ int lda = 1;
+ double C[] = { 0.817, -0.957, -0.395, -0.382 };
+ int ldc = 2;
+ double C_expected[] = { 0.6177325, -0.998076, -0.395, -0.3904672 };
+ cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1581)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha[2] = {0.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.447f, -0.507f, -0.425f, 0.701f };
+ int lda = 1;
+ float C[] = { 0.16f, -0.245f, 0.922f, -0.437f, 0.24f, 0.008f, -0.095f, 0.749f };
+ int ldc = 2;
+ float C_expected[] = { -0.0235f, 0.0895f, -0.2329f, 0.2233f, 0.24f, 0.008f, -0.0464f, -0.2342f };
+ cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1582) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1582) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha[2] = {0.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { -0.421f, -0.435f, -0.914f, -0.493f };
+ int lda = 2;
+ float C[] = { -0.761f, -0.38f, 0.043f, -0.999f, 0.779f, 0.238f, 0.082f, 0.394f };
+ int ldc = 2;
+ float C_expected[] = { 0.2663f, 0.0379f, 0.043f, -0.999f, -0.2575f, 0.0065f, -0.064f, -0.11f };
+ cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1583) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1583) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.827f, -0.896f, 0.417f, 0.865f };
+ int lda = 2;
+ float C[] = { -0.349f, -0.31f, 0.972f, 0.794f, -0.906f, -0.595f, -0.089f, -0.333f };
+ int ldc = 2;
+ float C_expected[] = { 0.254587f, 1.54008f, -1.4909f, -0.482723f, -0.906f, -0.595f, 0.634336f, -0.63041f };
+ cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1584) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1584) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ float alpha[2] = {-1.0f, 0.0f};
+ float beta[2] = {-0.3f, 0.1f};
+ float A[] = { 0.607f, 0.747f, -0.889f, 0.333f };
+ int lda = 1;
+ float C[] = { 0.244f, 0.564f, 0.009f, 0.578f, -0.827f, 0.558f, -0.337f, 0.731f };
+ int ldc = 2;
+ float C_expected[] = { 0.05996f, -1.05166f, 0.009f, 0.578f, 0.980674f, 0.211852f, -0.651432f, 0.339074f };
+ cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1585) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1585) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { 0.784f, -0.281f, -0.88f, 0.479f };
+ int lda = 1;
+ float C[] = { 0.491f, 0.531f, 0.805f, -0.097f, 0.728f, 0.674f, -0.705f, -0.754f };
+ int ldc = 2;
+ float C_expected[] = { 0.004695f, 0.050392f, 0.805f, -0.097f, -1.22932f, 1.35082f, 1.29896f, -1.54804f };
+ cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1586) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1586) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ float alpha[2] = {1.0f, 0.0f};
+ float beta[2] = {0.0f, 1.0f};
+ float A[] = { 0.272f, -0.146f, 0.155f, 0.038f };
+ int lda = 2;
+ float C[] = { 0.533f, -0.41f, -0.904f, 0.301f, -0.836f, 0.57f, -0.374f, -0.293f };
+ int ldc = 2;
+ float C_expected[] = { 0.462668f, 0.453576f, -0.253292f, -0.916294f, -0.836f, 0.57f, 0.315581f, -0.36222f };
+ cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1587) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1587) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { -0.055f, -0.127f, -0.896f, -0.625f };
+ int lda = 2;
+ float C[] = { -0.619f, 0.511f, -0.877f, 0.557f, -0.801f, -0.437f, -0.922f, 0.332f };
+ int ldc = 2;
+ float C_expected[] = { 0.60503f, -0.524104f, -0.877f, 0.557f, 0.652833f, 0.406905f, -0.198f, 0.080191f };
+ cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1588) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1588) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ float alpha[2] = {0.0f, 1.0f};
+ float beta[2] = {-1.0f, 0.0f};
+ float A[] = { -0.528f, 0.759f, -0.079f, 0.952f };
+ int lda = 1;
+ float C[] = { 0.775f, 0.855f, 0.786f, 0.525f, 0.85f, 0.044f, 0.658f, 0.947f };
+ int ldc = 2;
+ float C_expected[] = { 0.026504f, -1.1523f, -0.223383f, -1.20586f, 0.85f, 0.044f, -0.507584f, -1.84706f };
+ cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1589) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1589) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ double A[] = { -0.049, -0.687, -0.434, 0.294 };
+ int lda = 1;
+ double C[] = { 0.937, -0.113, 0.796, 0.293, 0.876, -0.199, -0.757, -0.103 };
+ int ldc = 2;
+ double C_expected[] = { 0.467432, -0.045674, 1.019244, 0.576752, 0.876, -0.199, -0.65508, -0.358192 };
+ cblas_zsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyrk(case 1590) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyrk(case 1590) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha[2] = {1, 0};
+ double beta[2] = {1, 0};
+ double A[] = { 0.359, -0.364, 0.926, -0.69 };
+ int lda = 2;
+ double C[] = { 0.306, 0.249, 0.28, 0.229, 0.866, 0.092, 0.886, -0.283 };
+ int ldc = 2;
+ double C_expected[] = { 0.302385, -0.012352, 0.28, 0.229, 0.947274, -0.492774, 1.267376, -1.56088 };
+ cblas_zsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyrk(case 1591) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyrk(case 1591) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 121;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {0, 0};
+ double A[] = { 0.607, 0.555, -0.85, 0.831 };
+ int lda = 2;
+ double C[] = { 0.069, 0.368, 0.551, -0.912, -0.243, -0.063, -0.924, 0.192 };
+ int ldc = 2;
+ double C_expected[] = { -0.0855042, -0.1960886, 0.2898798, -0.1075156, -0.243, -0.063, 0.1316883, 0.4270039 };
+ cblas_zsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyrk(case 1592) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyrk(case 1592) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 121;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {0, 0};
+ double A[] = { 0.427, 0.86, -0.136, 0.002 };
+ int lda = 1;
+ double C[] = { 0.398, -0.47, 0.011, -0.547, -0.106, 0.016, 0.681, 0.246 };
+ int ldc = 2;
+ double C_expected[] = { 0.0937373, -0.2760591, 0.011, -0.547, 0.0295482, 0.0288526, -0.0054932, 0.0020124 };
+ cblas_zsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyrk(case 1593) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyrk(case 1593) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { 0.718, 0.023, 0.355, -0.492 };
+ int lda = 1;
+ double C[] = { -0.637, -0.727, -0.475, -0.776, 0.802, -0.55, -0.837, 0.222 };
+ int ldc = 2;
+ double C_expected[] = { -0.7948013, -0.6854089, -0.475, -0.776, 0.7566473, -0.4198521, -0.7672563, 0.3151921 };
+ cblas_zsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyrk(case 1594) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyrk(case 1594) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 111;
+ int N = 2;
+ int K = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { 0.209, 0.139, -0.202, -0.223 };
+ int lda = 2;
+ double C[] = { -0.695, 0.524, 0.212, -0.88, -0.752, 0.291, 0.684, -0.124 };
+ int ldc = 2;
+ double C_expected[] = { -0.7081182, 0.5090054, 0.2228348, -0.8587166, -0.752, 0.291, 0.6776683, -0.1519201 };
+ cblas_zsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyrk(case 1595) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyrk(case 1595) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int uplo = 122;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { -0.365, -0.624, 0.632, 0.348 };
+ int lda = 2;
+ double C[] = { 0.877, 0.927, -0.377, 0.967, 0.008, 0.292, -0.779, 0.794 };
+ int ldc = 2;
+ double C_expected[] = { 0.9082933, 0.7647289, -0.377, 0.967, 0.0641972, 0.4470636, -0.9064832, 0.6898704 };
+ cblas_zsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyrk(case 1596) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyrk(case 1596) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int uplo = 122;
+ int trans = 112;
+ int N = 2;
+ int K = 1;
+ double alpha[2] = {-0.3, 0.1};
+ double beta[2] = {1, 0};
+ double A[] = { -0.067, -0.586, 0.208, 0.331 };
+ int lda = 1;
+ double C[] = { 0.584, -0.454, 0.93, 0.782, 0.489, -0.278, 0.081, -0.919 };
+ int ldc = 2;
+ double C_expected[] = { 0.6778197, -0.5114479, 0.8903975, 0.8432225, 0.489, -0.278, 0.0871195, -0.9669385 };
+ cblas_zsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
+ {
+ int i;
+ for (i = 0; i < 4; i++) {
+ gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyrk(case 1597) real");
+ gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyrk(case 1597) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_tbmv.c b/gsl-1.9/cblas/test_tbmv.c
new file mode 100644
index 0000000..abd349f
--- /dev/null
+++ b/gsl-1.9/cblas/test_tbmv.c
@@ -0,0 +1,1819 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_tbmv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.439f, -0.484f, -0.952f, -0.508f, 0.381f, -0.889f, -0.192f, -0.279f, -0.155f };
+ float X[] = { -0.089f, -0.688f, -0.203f };
+ int incX = -1;
+ float x_expected[] = { 0.017088f, 0.315595f, 0.243875f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 894)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.439f, -0.484f, -0.952f, -0.508f, 0.381f, -0.889f, -0.192f, -0.279f, -0.155f };
+ float X[] = { -0.089f, -0.688f, -0.203f };
+ int incX = -1;
+ float x_expected[] = { -0.089f, -0.721909f, 0.129992f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 895)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.439f, -0.484f, -0.952f, -0.508f, 0.381f, -0.889f, -0.192f, -0.279f, -0.155f };
+ float X[] = { -0.089f, -0.688f, -0.203f };
+ int incX = -1;
+ float x_expected[] = { 0.156927f, -0.159004f, 0.098252f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 896)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.439f, -0.484f, -0.952f, -0.508f, 0.381f, -0.889f, -0.192f, -0.279f, -0.155f };
+ float X[] = { -0.089f, -0.688f, -0.203f };
+ int incX = -1;
+ float x_expected[] = { 0.043096f, -0.584876f, -0.203f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 897)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.439f, -0.484f, -0.952f, -0.508f, 0.381f, -0.889f, -0.192f, -0.279f, -0.155f };
+ float X[] = { -0.089f, -0.688f, -0.203f };
+ int incX = -1;
+ float x_expected[] = { 0.024831f, -0.24504f, 0.447756f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 898)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.439f, -0.484f, -0.952f, -0.508f, 0.381f, -0.889f, -0.192f, -0.279f, -0.155f };
+ float X[] = { -0.089f, -0.688f, -0.203f };
+ int incX = -1;
+ float x_expected[] = { -0.089f, -0.670912f, 0.146504f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 899)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.439f, -0.484f, -0.952f, -0.508f, 0.381f, -0.889f, -0.192f, -0.279f, -0.155f };
+ float X[] = { -0.089f, -0.688f, -0.203f };
+ int incX = -1;
+ float x_expected[] = { -0.24504f, 0.447756f, -0.089117f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 900)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.439f, -0.484f, -0.952f, -0.508f, 0.381f, -0.889f, -0.192f, -0.279f, -0.155f };
+ float X[] = { -0.089f, -0.688f, -0.203f };
+ int incX = -1;
+ float x_expected[] = { -0.351128f, -0.589748f, -0.203f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 901)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.94f, -0.091f, 0.984f, -0.276f, -0.342f, -0.484f, -0.665f, -0.2f, 0.349f };
+ float X[] = { 0.023f, -0.501f, -0.562f };
+ int incX = -1;
+ float x_expected[] = { 0.156047f, 0.189418f, -0.52828f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 902)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.94f, -0.091f, 0.984f, -0.276f, -0.342f, -0.484f, -0.665f, -0.2f, 0.349f };
+ float X[] = { 0.023f, -0.501f, -0.562f };
+ int incX = -1;
+ float x_expected[] = { 0.194342f, -0.449858f, -0.562f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 903)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.94f, -0.091f, 0.984f, -0.276f, -0.342f, -0.484f, -0.665f, -0.2f, 0.349f };
+ float X[] = { 0.023f, -0.501f, -0.562f };
+ int incX = -1;
+ float x_expected[] = { -0.0046f, 0.156047f, 0.189418f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 904)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.94f, -0.091f, 0.984f, -0.276f, -0.342f, -0.484f, -0.665f, -0.2f, 0.349f };
+ float X[] = { 0.023f, -0.501f, -0.562f };
+ int incX = -1;
+ float x_expected[] = { 0.023f, -0.516295f, -0.423724f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 905)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.94f, -0.091f, 0.984f, -0.276f, -0.342f, -0.484f, -0.665f, -0.2f, 0.349f };
+ float X[] = { 0.023f, -0.501f, -0.562f };
+ int incX = -1;
+ float x_expected[] = { 0.328565f, 0.326454f, 0.051142f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 906)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.94f, -0.091f, 0.984f, -0.276f, -0.342f, -0.484f, -0.665f, -0.2f, 0.349f };
+ float X[] = { 0.023f, -0.501f, -0.562f };
+ int incX = -1;
+ float x_expected[] = { 0.356165f, -0.345888f, -0.562f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 907)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.94f, -0.091f, 0.984f, -0.276f, -0.342f, -0.484f, -0.665f, -0.2f, 0.349f };
+ float X[] = { 0.023f, -0.501f, -0.562f };
+ int incX = -1;
+ float x_expected[] = { -0.015295f, 0.13041f, -0.482689f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 908)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.94f, -0.091f, 0.984f, -0.276f, -0.342f, -0.484f, -0.665f, -0.2f, 0.349f };
+ float X[] = { 0.023f, -0.501f, -0.562f };
+ int incX = -1;
+ float x_expected[] = { 0.023f, -0.508866f, -0.516409f };
+ cblas_stbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbmv(case 909)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.566, 0.955, -0.086, -0.856, 0.177, 0.974, -0.652, -0.884, 0.77 };
+ double X[] = { -0.77, -0.818, 0.337 };
+ int incX = -1;
+ double x_expected[] = { 0.50204, 0.563918, -0.590448 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 910)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.566, 0.955, -0.086, -0.856, 0.177, 0.974, -0.652, -0.884, 0.77 };
+ double X[] = { -0.77, -0.818, 0.337 };
+ int incX = -1;
+ double x_expected[] = { -0.77, -0.95429, -0.44419 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 911)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.566, 0.955, -0.086, -0.856, 0.177, 0.974, -0.652, -0.884, 0.77 };
+ double X[] = { -0.77, -0.818, 0.337 };
+ int incX = -1;
+ double x_expected[] = { 1.214016, -0.433258, 0.321835 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 912)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.566, 0.955, -0.086, -0.856, 0.177, 0.974, -0.652, -0.884, 0.77 };
+ double X[] = { -0.77, -0.818, 0.337 };
+ int incX = -1;
+ double x_expected[] = { -0.236664, -1.106472, 0.337 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 913)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.566, 0.955, -0.086, -0.856, 0.177, 0.974, -0.652, -0.884, 0.77 };
+ double X[] = { -0.77, -0.818, 0.337 };
+ int incX = -1;
+ double x_expected[] = { 0.68068, 0.357254, 1.022043 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 914)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.566, 0.955, -0.086, -0.856, 0.177, 0.974, -0.652, -0.884, 0.77 };
+ double X[] = { -0.77, -0.818, 0.337 };
+ int incX = -1;
+ double x_expected[] = { -0.77, -0.31596, 1.037208 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 915)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.566, 0.955, -0.086, -0.856, 0.177, 0.974, -0.652, -0.884, 0.77 };
+ double X[] = { -0.77, -0.818, 0.337 };
+ int incX = -1;
+ double x_expected[] = { 0.357254, 1.022043, 0.190742 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 916)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.566, 0.955, -0.086, -0.856, 0.177, 0.974, -0.652, -0.884, 0.77 };
+ double X[] = { -0.77, -0.818, 0.337 };
+ int incX = -1;
+ double x_expected[] = { -0.914786, -0.496165, 0.337 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 917)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.188, 0.6, -0.743, -0.803, 0.449, -0.681, -0.464, -0.029, 0.553 };
+ double X[] = { -0.851, 0.481, 0.155 };
+ int incX = -1;
+ double x_expected[] = { 0.610833, -0.293243, 0.02914 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 918)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.188, 0.6, -0.743, -0.803, 0.449, -0.681, -0.464, -0.029, 0.553 };
+ double X[] = { -0.851, 0.481, 0.155 };
+ int incX = -1;
+ double x_expected[] = { -0.635031, 0.574, 0.155 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 919)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.188, 0.6, -0.743, -0.803, 0.449, -0.681, -0.464, -0.029, 0.553 };
+ double X[] = { -0.851, 0.481, 0.155 };
+ int incX = -1;
+ double x_expected[] = { 0.024679, 0.610833, -0.293243 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 920)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.188, 0.6, -0.743, -0.803, 0.449, -0.681, -0.464, -0.029, 0.553 };
+ double X[] = { -0.851, 0.481, 0.155 };
+ int incX = -1;
+ double x_expected[] = { -0.851, 0.875864, -0.231243 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 921)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.188, 0.6, -0.743, -0.803, 0.449, -0.681, -0.464, -0.029, 0.553 };
+ double X[] = { -0.851, 0.481, 0.155 };
+ int incX = -1;
+ double x_expected[] = { -0.198505, 0.091504, 0.093 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 922)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.188, 0.6, -0.743, -0.803, 0.449, -0.681, -0.464, -0.029, 0.553 };
+ double X[] = { -0.851, 0.481, 0.155 };
+ int incX = -1;
+ double x_expected[] = { -1.074184, 0.356535, 0.155 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 923)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.188, 0.6, -0.743, -0.803, 0.449, -0.681, -0.464, -0.029, 0.553 };
+ double X[] = { -0.851, 0.481, 0.155 };
+ int incX = -1;
+ double x_expected[] = { 0.394864, -0.768342, 0.31774 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 924)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.188, 0.6, -0.743, -0.803, 0.449, -0.681, -0.464, -0.029, 0.553 };
+ double X[] = { -0.851, 0.481, 0.155 };
+ int incX = -1;
+ double x_expected[] = { -0.851, 0.098901, 0.4436 };
+ cblas_dtbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbmv(case 925)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.824f, -0.45f, -0.987f, 0.758f, 0.42f, -0.357f, 0.147f, -0.191f, 0.88f, 0.63f, 0.155f, -0.573f, 0.224f, 0.146f, 0.501f, -0.889f, 0.456f, 0.796f };
+ float X[] = { -0.46f, 0.069f, 0.308f, -0.003f, -0.236f, 0.605f };
+ int incX = -1;
+ float x_expected[] = { -0.113114f, -0.051704f, -0.403567f, -0.288349f, -0.223936f, 0.841145f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 926) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 926) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.824f, -0.45f, -0.987f, 0.758f, 0.42f, -0.357f, 0.147f, -0.191f, 0.88f, 0.63f, 0.155f, -0.573f, 0.224f, 0.146f, 0.501f, -0.889f, 0.456f, 0.796f };
+ float X[] = { -0.46f, 0.069f, 0.308f, -0.003f, -0.236f, 0.605f };
+ int incX = -1;
+ float x_expected[] = { -0.46f, 0.069f, -0.14027f, -0.23208f, -0.537722f, 0.841425f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 927) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 927) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.824f, -0.45f, -0.987f, 0.758f, 0.42f, -0.357f, 0.147f, -0.191f, 0.88f, 0.63f, 0.155f, -0.573f, 0.224f, 0.146f, 0.501f, -0.889f, 0.456f, 0.796f };
+ float X[] = { -0.46f, 0.069f, 0.308f, -0.003f, -0.236f, 0.605f };
+ int incX = -1;
+ float x_expected[] = { -0.099689f, 0.487805f, 0.353793f, 0.325411f, -0.225658f, -0.776023f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 928) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 928) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.824f, -0.45f, -0.987f, 0.758f, 0.42f, -0.357f, 0.147f, -0.191f, 0.88f, 0.63f, 0.155f, -0.573f, 0.224f, 0.146f, 0.501f, -0.889f, 0.456f, 0.796f };
+ float X[] = { -0.46f, 0.069f, 0.308f, -0.003f, -0.236f, 0.605f };
+ int incX = -1;
+ float x_expected[] = { -0.39057f, 0.113296f, 0.388863f, 0.131011f, -0.236f, 0.605f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 929) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 929) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.824f, -0.45f, -0.987f, 0.758f, 0.42f, -0.357f, 0.147f, -0.191f, 0.88f, 0.63f, 0.155f, -0.573f, 0.224f, 0.146f, 0.501f, -0.889f, 0.456f, 0.796f };
+ float X[] = { -0.46f, 0.069f, 0.308f, -0.003f, -0.236f, 0.605f };
+ int incX = -1;
+ float x_expected[] = { -0.169119f, 0.443509f, 0.159816f, 0.139696f, -0.180955f, -0.835292f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 930) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 930) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.824f, -0.45f, -0.987f, 0.758f, 0.42f, -0.357f, 0.147f, -0.191f, 0.88f, 0.63f, 0.155f, -0.573f, 0.224f, 0.146f, 0.501f, -0.889f, 0.456f, 0.796f };
+ float X[] = { -0.46f, 0.069f, 0.308f, -0.003f, -0.236f, 0.605f };
+ int incX = -1;
+ float x_expected[] = { -0.46f, 0.069f, 0.194886f, -0.054704f, -0.191297f, 0.545731f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 931) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 931) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.824f, -0.45f, -0.987f, 0.758f, 0.42f, -0.357f, 0.147f, -0.191f, 0.88f, 0.63f, 0.155f, -0.573f, 0.224f, 0.146f, 0.501f, -0.889f, 0.456f, 0.796f };
+ float X[] = { -0.46f, 0.069f, 0.308f, -0.003f, -0.236f, 0.605f };
+ int incX = -1;
+ float x_expected[] = { 0.159816f, 0.139696f, -0.180955f, -0.835292f, 0.077786f, 0.60472f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 932) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 932) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.824f, -0.45f, -0.987f, 0.758f, 0.42f, -0.357f, 0.147f, -0.191f, 0.88f, 0.63f, 0.155f, -0.573f, 0.224f, 0.146f, 0.501f, -0.889f, 0.456f, 0.796f };
+ float X[] = { -0.46f, 0.069f, 0.308f, -0.003f, -0.236f, 0.605f };
+ int incX = -1;
+ float x_expected[] = { -0.18707f, 0.2604f, 0.082342f, -0.779023f, -0.236f, 0.605f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 933) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 933) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.814f, 0.043f, -0.755f, -0.094f, 0.876f, 0.257f, 0.406f, 0.491f, -0.27f, -0.787f, 0.545f, 0.732f, -0.512f, -0.085f, 0.234f, 0.001f, -0.225f, -0.002f };
+ float X[] = { 0.411f, -0.308f, -0.912f, 0.811f, -0.894f, -0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.647885f, 0.621535f, -0.104407f, 0.05309f, 0.732704f, 0.055982f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 934) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 934) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.814f, 0.043f, -0.755f, -0.094f, 0.876f, 0.257f, 0.406f, 0.491f, -0.27f, -0.787f, 0.545f, 0.732f, -0.512f, -0.085f, 0.234f, 0.001f, -0.225f, -0.002f };
+ float X[] = { 0.411f, -0.308f, -0.912f, 0.811f, -0.894f, -0.116f };
+ int incX = -1;
+ float x_expected[] = { 1.2955f, 0.190774f, -0.247934f, 0.982616f, -0.894f, -0.116f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 935) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 935) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.814f, 0.043f, -0.755f, -0.094f, 0.876f, 0.257f, 0.406f, 0.491f, -0.27f, -0.787f, 0.545f, 0.732f, -0.512f, -0.085f, 0.234f, 0.001f, -0.225f, -0.002f };
+ float X[] = { 0.411f, -0.308f, -0.912f, 0.811f, -0.894f, -0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.096482f, -0.071661f, 0.647885f, 0.621535f, -0.104407f, 0.05309f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 936) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 936) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.814f, 0.043f, -0.755f, -0.094f, 0.876f, 0.257f, 0.406f, 0.491f, -0.27f, -0.787f, 0.545f, 0.732f, -0.512f, -0.085f, 0.234f, 0.001f, -0.225f, -0.002f };
+ float X[] = { 0.411f, -0.308f, -0.912f, 0.811f, -0.894f, -0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.411f, -0.308f, -1.14861f, 0.933761f, -1.66247f, -0.234526f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 937) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 937) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.814f, 0.043f, -0.755f, -0.094f, 0.876f, 0.257f, 0.406f, 0.491f, -0.27f, -0.787f, 0.545f, 0.732f, -0.512f, -0.085f, 0.234f, 0.001f, -0.225f, -0.002f };
+ float X[] = { 0.411f, -0.308f, -0.912f, 0.811f, -0.894f, -0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.632361f, -0.409373f, 0.578489f, 0.012724f, 0.664066f, 0.171616f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 938) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 938) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.814f, 0.043f, -0.755f, -0.094f, 0.876f, 0.257f, 0.406f, 0.491f, -0.27f, -0.787f, 0.545f, 0.732f, -0.512f, -0.085f, 0.234f, 0.001f, -0.225f, -0.002f };
+ float X[] = { 0.411f, -0.308f, -0.912f, 0.811f, -0.894f, -0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.946879f, -0.645712f, -1.21801f, 0.32495f, -0.894f, -0.116f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 939) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 939) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.814f, 0.043f, -0.755f, -0.094f, 0.876f, 0.257f, 0.406f, 0.491f, -0.27f, -0.787f, 0.545f, 0.732f, -0.512f, -0.085f, 0.234f, 0.001f, -0.225f, -0.002f };
+ float X[] = { 0.411f, -0.308f, -0.912f, 0.811f, -0.894f, -0.116f };
+ int incX = -1;
+ float x_expected[] = { -0.236612f, 0.122761f, -1.12184f, -0.358823f, 1.4975f, -0.470595f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 940) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 940) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.814f, 0.043f, -0.755f, -0.094f, 0.876f, 0.257f, 0.406f, 0.491f, -0.27f, -0.787f, 0.545f, 0.732f, -0.512f, -0.085f, 0.234f, 0.001f, -0.225f, -0.002f };
+ float X[] = { 0.411f, -0.308f, -0.912f, 0.811f, -0.894f, -0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.411f, -0.308f, -1.26537f, 0.570703f, -0.129206f, -0.642577f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 941) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 941) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.675f, 0.047f, 0.695f, 0.724f, -0.438f, 0.991f, -0.188f, -0.06f, -0.093f, 0.302f, 0.842f, -0.753f, 0.465f, -0.972f, -0.058f, 0.988f, 0.093f, 0.164f };
+ float X[] = { 0.065f, -0.082f, -0.746f, 0.775f, 0.694f, -0.954f };
+ int incX = -1;
+ float x_expected[] = { 0.413357f, 0.178267f, -0.114618f, -1.35595f, -0.513288f, 0.611332f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 942) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 942) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.675f, 0.047f, 0.695f, 0.724f, -0.438f, 0.991f, -0.188f, -0.06f, -0.093f, 0.302f, 0.842f, -0.753f, 0.465f, -0.972f, -0.058f, 0.988f, 0.093f, 0.164f };
+ float X[] = { 0.065f, -0.082f, -0.746f, 0.775f, 0.694f, -0.954f };
+ int incX = -1;
+ float x_expected[] = { 0.368428f, 0.071217f, -0.954366f, -0.390486f, 0.694f, -0.954f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 943) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 943) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.675f, 0.047f, 0.695f, 0.724f, -0.438f, 0.991f, -0.188f, -0.06f, -0.093f, 0.302f, 0.842f, -0.753f, 0.465f, -0.972f, -0.058f, 0.988f, 0.093f, 0.164f };
+ float X[] = { 0.065f, -0.082f, -0.746f, 0.775f, 0.694f, -0.954f };
+ int incX = -1;
+ float x_expected[] = { -0.084786f, -0.059464f, 0.413357f, 0.178267f, -0.114618f, -1.35595f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 944) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 944) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.675f, 0.047f, 0.695f, 0.724f, -0.438f, 0.991f, -0.188f, -0.06f, -0.093f, 0.302f, 0.842f, -0.753f, 0.465f, -0.972f, -0.058f, 0.988f, 0.093f, 0.164f };
+ float X[] = { 0.065f, -0.082f, -0.746f, 0.775f, 0.694f, -0.954f };
+ int incX = -1;
+ float x_expected[] = { 0.065f, -0.082f, -0.636071f, 0.80005f, 0.787748f, -1.14446f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 945) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 945) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.675f, 0.047f, 0.695f, 0.724f, -0.438f, 0.991f, -0.188f, -0.06f, -0.093f, 0.302f, 0.842f, -0.753f, 0.465f, -0.972f, -0.058f, 0.988f, 0.093f, 0.164f };
+ float X[] = { 0.065f, -0.082f, -0.746f, 0.775f, 0.694f, -0.954f };
+ int incX = -1;
+ float x_expected[] = { -1.18498f, -0.424201f, 0.230196f, 0.374209f, -0.208366f, -1.16549f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 946) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 946) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.675f, 0.047f, 0.695f, 0.724f, -0.438f, 0.991f, -0.188f, -0.06f, -0.093f, 0.302f, 0.842f, -0.753f, 0.465f, -0.972f, -0.058f, 0.988f, 0.093f, 0.164f };
+ float X[] = { 0.065f, -0.082f, -0.746f, 0.775f, 0.694f, -0.954f };
+ int incX = -1;
+ float x_expected[] = { -1.03519f, -0.446737f, -0.819232f, 0.995992f, 0.694f, -0.954f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 947) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 947) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.675f, 0.047f, 0.695f, 0.724f, -0.438f, 0.991f, -0.188f, -0.06f, -0.093f, 0.302f, 0.842f, -0.753f, 0.465f, -0.972f, -0.058f, 0.988f, 0.093f, 0.164f };
+ float X[] = { 0.065f, -0.082f, -0.746f, 0.775f, 0.694f, -0.954f };
+ int incX = -1;
+ float x_expected[] = { 0.109929f, 0.02505f, 0.062939f, -0.202464f, -0.470658f, 1.69006f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 948) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 948) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.675f, 0.047f, 0.695f, 0.724f, -0.438f, 0.991f, -0.188f, -0.06f, -0.093f, 0.302f, 0.842f, -0.753f, 0.465f, -0.972f, -0.058f, 0.988f, 0.093f, 0.164f };
+ float X[] = { 0.065f, -0.082f, -0.746f, 0.775f, 0.694f, -0.954f };
+ int incX = -1;
+ float x_expected[] = { 0.065f, -0.082f, -0.776809f, 0.762996f, 0.73663f, 0.124729f };
+ cblas_ctbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbmv(case 949) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbmv(case 949) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.212, 0.612, 0.189, -0.046, -0.124, 0.82, 0.753, 0.727, 0.331, 0.116, 0.504, -0.673, -0.888, -0.277, -0.361, -0.909, 0.982, -0.124 };
+ double X[] = { 0.064, 0.169, -0.81, -0.779, -0.641, -0.103 };
+ int incX = -1;
+ double x_expected[] = { -0.010019, -0.1678, -0.042017, -1.112094, 0.010004, -0.480427 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 950) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 950) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.212, 0.612, 0.189, -0.046, -0.124, 0.82, 0.753, 0.727, 0.331, 0.116, 0.504, -0.673, -0.888, -0.277, -0.361, -0.909, 0.982, -0.124 };
+ double X[] = { 0.064, 0.169, -0.81, -0.779, -0.641, -0.103 };
+ int incX = -1;
+ double x_expected[] = { 0.064, 0.169, -0.80842, -0.715637, -0.829924, -0.212971 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 951) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 951) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.212, 0.612, 0.189, -0.046, -0.124, 0.82, 0.753, 0.727, 0.331, 0.116, 0.504, -0.673, -0.888, -0.277, -0.361, -0.909, 0.982, -0.124 };
+ double X[] = { 0.064, 0.169, -0.81, -0.779, -0.641, -0.103 };
+ int incX = -1;
+ double x_expected[] = { 0.634014, 0.796937, -0.585538, -0.895375, -0.125887, 0.010019 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 952) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 952) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.212, 0.612, 0.189, -0.046, -0.124, 0.82, 0.753, 0.727, 0.331, 0.116, 0.504, -0.673, -0.888, -0.277, -0.361, -0.909, 0.982, -0.124 };
+ double X[] = { 0.064, 0.169, -0.81, -0.779, -0.641, -0.103 };
+ int incX = -1;
+ double x_expected[] = { 0.567497, 1.085122, -1.217792, -1.322566, -0.641, -0.103 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 953) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 953) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.212, 0.612, 0.189, -0.046, -0.124, 0.82, 0.753, 0.727, 0.331, 0.116, 0.504, -0.673, -0.888, -0.277, -0.361, -0.909, 0.982, -0.124 };
+ double X[] = { 0.064, 0.169, -0.81, -0.779, -0.641, -0.103 };
+ int incX = -1;
+ double x_expected[] = { 0.130517, -0.119185, -0.187765, -0.519609, -0.169484, -1.165438 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 954) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 954) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.212, 0.612, 0.189, -0.046, -0.124, 0.82, 0.753, 0.727, 0.331, 0.116, 0.504, -0.673, -0.888, -0.277, -0.361, -0.909, 0.982, -0.124 };
+ double X[] = { 0.064, 0.169, -0.81, -0.779, -0.641, -0.103 };
+ int incX = -1;
+ double x_expected[] = { 0.064, 0.169, -0.820019, -0.9468, -0.684597, -1.278457 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 955) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 955) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.212, 0.612, 0.189, -0.046, -0.124, 0.82, 0.753, 0.727, 0.331, 0.116, 0.504, -0.673, -0.888, -0.277, -0.361, -0.909, 0.982, -0.124 };
+ double X[] = { 0.064, 0.169, -0.81, -0.779, -0.641, -0.103 };
+ int incX = -1;
+ double x_expected[] = { -0.187765, -0.519609, -0.169484, -1.165438, 0.198928, -0.370456 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 956) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 956) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.212, 0.612, 0.189, -0.046, -0.124, 0.82, 0.753, 0.727, 0.331, 0.116, 0.504, -0.673, -0.888, -0.277, -0.361, -0.909, 0.982, -0.124 };
+ double X[] = { 0.064, 0.169, -0.81, -0.779, -0.641, -0.103 };
+ int incX = -1;
+ double x_expected[] = { -0.113746, -0.182809, -0.935887, -0.768981, -0.641, -0.103 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 957) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 957) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.374, -0.308, 0.792, 0.884, -0.794, -0.055, -0.281, 0.527, 0.246, 0.762, 0.853, 0.891, -0.231, 0.384, 0.373, -0.717, -0.957, -0.338 };
+ double X[] = { 0.884, 0.636, 0.921, 0.282, -0.649, 0.188 };
+ int incX = -1;
+ double x_expected[] = { -0.436746, 0.963714, -1.087615, -0.018695, 0.30063, 0.12958 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 958) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 958) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.374, -0.308, 0.792, 0.884, -0.794, -0.055, -0.281, 0.527, 0.246, 0.762, 0.853, 0.891, -0.231, 0.384, 0.373, -0.717, -0.957, -0.338 };
+ double X[] = { 0.884, 0.636, 0.921, 0.282, -0.649, 0.188 };
+ int incX = -1;
+ double x_expected[] = { 0.895682, 1.407174, 0.2408, -0.14282, -0.649, 0.188 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 959) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 959) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.374, -0.308, 0.792, 0.884, -0.794, -0.055, -0.281, 0.527, 0.246, 0.762, 0.853, 0.891, -0.231, 0.384, 0.373, -0.717, -0.957, -0.338 };
+ double X[] = { 0.884, 0.636, 0.921, 0.282, -0.649, 0.188 };
+ int incX = -1;
+ double x_expected[] = { 0.785744, -0.3966, -0.436746, 0.963714, -1.087615, -0.018695 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 960) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 960) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.374, -0.308, 0.792, 0.884, -0.794, -0.055, -0.281, 0.527, 0.246, 0.762, 0.853, 0.891, -0.231, 0.384, 0.373, -0.717, -0.957, -0.338 };
+ double X[] = { 0.884, 0.636, 0.921, 0.282, -0.649, 0.188 };
+ int incX = -1;
+ double x_expected[] = { 0.884, 0.636, 0.472572, 0.47454, -1.056415, 0.594125 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 961) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 961) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.374, -0.308, 0.792, 0.884, -0.794, -0.055, -0.281, 0.527, 0.246, 0.762, 0.853, 0.891, -0.231, 0.384, 0.373, -0.717, -0.957, -0.338 };
+ double X[] = { 0.884, 0.636, 0.921, 0.282, -0.649, 0.188 };
+ int incX = -1;
+ double x_expected[] = { 0.464705, -0.108078, 0.094975, 0.376323, -0.6802, -0.42482 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 962) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 962) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.374, -0.308, 0.792, 0.884, -0.794, -0.055, -0.281, 0.527, 0.246, 0.762, 0.853, 0.891, -0.231, 0.384, 0.373, -0.717, -0.957, -0.338 };
+ double X[] = { 0.884, 0.636, 0.921, 0.282, -0.649, 0.188 };
+ int incX = -1;
+ double x_expected[] = { 0.562961, 0.924522, 1.004293, -0.112851, -0.649, 0.188 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 963) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 963) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.374, -0.308, 0.792, 0.884, -0.794, -0.055, -0.281, 0.527, 0.246, 0.762, 0.853, 0.891, -0.231, 0.384, 0.373, -0.717, -0.957, -0.338 };
+ double X[] = { 0.884, 0.636, 0.921, 0.282, -0.649, 0.188 };
+ int incX = -1;
+ double x_expected[] = { -0.448428, 0.19254, -0.674583, 1.236189, 0.780774, 1.167088 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 964) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 964) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.374, -0.308, 0.792, 0.884, -0.794, -0.055, -0.281, 0.527, 0.246, 0.762, 0.853, 0.891, -0.231, 0.384, 0.373, -0.717, -0.957, -0.338 };
+ double X[] = { 0.884, 0.636, 0.921, 0.282, -0.649, 0.188 };
+ int incX = -1;
+ double x_expected[] = { 0.884, 0.636, 0.653832, 1.112064, -0.168856, 1.225508 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 965) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 965) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.002, 0.95, -0.363, 0.084, -0.646, 0.816, -0.407, 0.099, -0.02, -0.906, -0.874, 0.191, -0.328, -0.968, 0.79, 0.826, -0.795, 0.277 };
+ double X[] = { -0.591, -0.084, 0.707, 0.945, 0.326, 0.428 };
+ int incX = -1;
+ double x_expected[] = { -0.59515, 0.077106, -0.27658, -0.637356, 0.407252, -0.308844 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 966) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 966) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.002, 0.95, -0.363, 0.084, -0.646, 0.816, -0.407, 0.099, -0.02, -0.906, -0.874, 0.191, -0.328, -0.968, 0.79, 0.826, -0.795, 0.277 };
+ double X[] = { -0.591, -0.084, 0.707, 0.945, 0.326, 0.428 };
+ int incX = -1;
+ double x_expected[] = { -1.46131, 0.537642, 0.624614, 0.762252, 0.326, 0.428 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 967) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 967) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.002, 0.95, -0.363, 0.084, -0.646, 0.816, -0.407, 0.099, -0.02, -0.906, -0.874, 0.191, -0.328, -0.968, 0.79, 0.826, -0.795, 0.277 };
+ double X[] = { -0.591, -0.084, 0.707, 0.945, 0.326, 0.428 };
+ int incX = -1;
+ double x_expected[] = { -0.536274, 0.421806, -0.59515, 0.077106, -0.27658, -0.637356 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 968) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 968) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.002, 0.95, -0.363, 0.084, -0.646, 0.816, -0.407, 0.099, -0.02, -0.906, -0.874, 0.191, -0.328, -0.968, 0.79, 0.826, -0.795, 0.277 };
+ double X[] = { -0.591, -0.084, 0.707, 0.945, 0.326, 0.428 };
+ int incX = -1;
+ double x_expected[] = { -0.591, -0.084, 0.98216, 0.400464, 0.131806, -0.026608 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 969) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 969) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.002, 0.95, -0.363, 0.084, -0.646, 0.816, -0.407, 0.099, -0.02, -0.906, -0.874, 0.191, -0.328, -0.968, 0.79, 0.826, -0.795, 0.277 };
+ double X[] = { -0.591, -0.084, 0.707, 0.945, 0.326, 0.428 };
+ int incX = -1;
+ double x_expected[] = { -1.68293, 0.796222, -0.96062, 0.415172, -0.082386, -0.182748 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 970) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 970) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.002, 0.95, -0.363, 0.084, -0.646, 0.816, -0.407, 0.099, -0.02, -0.906, -0.874, 0.191, -0.328, -0.968, 0.79, 0.826, -0.795, 0.277 };
+ double X[] = { -0.591, -0.084, 0.707, 0.945, 0.326, 0.428 };
+ int incX = -1;
+ double x_expected[] = { -1.737656, 0.290416, 0.61669, 0.73853, 0.326, 0.428 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 971) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 971) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.002, 0.95, -0.363, 0.084, -0.646, 0.816, -0.407, 0.099, -0.02, -0.906, -0.874, 0.191, -0.328, -0.968, 0.79, 0.826, -0.795, 0.277 };
+ double X[] = { -0.591, -0.084, 0.707, 0.945, 0.326, 0.428 };
+ int incX = -1;
+ double x_expected[] = { 0.27516, -0.544536, -0.10627, -0.988374, 0.229991, -0.711267 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 972) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 972) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.002, 0.95, -0.363, 0.084, -0.646, 0.816, -0.407, 0.099, -0.02, -0.906, -0.874, 0.191, -0.328, -0.968, 0.79, 0.826, -0.795, 0.277 };
+ double X[] = { -0.591, -0.084, 0.707, 0.945, 0.326, 0.428 };
+ int incX = -1;
+ double x_expected[] = { -0.591, -0.084, 0.794924, 0.411234, 0.148739, 0.025577 };
+ cblas_ztbmv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbmv(case 973) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbmv(case 973) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_tbsv.c b/gsl-1.9/cblas/test_tbsv.c
new file mode 100644
index 0000000..2d9d290
--- /dev/null
+++ b/gsl-1.9/cblas/test_tbsv.c
@@ -0,0 +1,1819 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_tbsv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f };
+ float X[] = { -0.305f, 0.61f, -0.831f };
+ int incX = -1;
+ float x_expected[] = { -0.354651f, -2.40855f, 0.481076f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1230)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f };
+ float X[] = { -0.305f, 0.61f, -0.831f };
+ int incX = -1;
+ float x_expected[] = { -0.305f, 0.84973f, -1.00859f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1231)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f };
+ float X[] = { -0.305f, 0.61f, -0.831f };
+ int incX = -1;
+ float x_expected[] = { -2.71619f, -1.09055f, -3.97608f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1232)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f };
+ float X[] = { -0.305f, 0.61f, -0.831f };
+ int incX = -1;
+ float x_expected[] = { -0.56589f, 0.303361f, -0.831f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1233)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f };
+ float X[] = { -0.305f, 0.61f, -0.831f };
+ int incX = -1;
+ float x_expected[] = { 1.30901f, -0.656172f, -5.13458f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1234)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f };
+ float X[] = { -0.305f, 0.61f, -0.831f };
+ int incX = -1;
+ float x_expected[] = { -0.305f, 0.8723f, -0.509121f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1235)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f };
+ float X[] = { -0.305f, 0.61f, -0.831f };
+ int incX = -1;
+ float x_expected[] = { 0.524539f, -0.961964f, 1.22026f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1236)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f };
+ float X[] = { -0.305f, 0.61f, -0.831f };
+ int incX = -1;
+ float x_expected[] = { -0.920972f, 0.783679f, -0.831f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1237)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f };
+ float X[] = { 0.144f, 0.635f, 0.116f };
+ int incX = -1;
+ float x_expected[] = { 16.8676f, 17.3503f, 5.27273f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1238)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f };
+ float X[] = { 0.144f, 0.635f, 0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.209676f, 0.54278f, 0.116f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1239)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f };
+ float X[] = { 0.144f, 0.635f, 0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.212077f, -5.01482f, -1.14722f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1240)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f };
+ float X[] = { 0.144f, 0.635f, 0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.144f, 0.615848f, 0.242249f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1241)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f };
+ float X[] = { 0.144f, 0.635f, 0.116f };
+ int incX = -1;
+ float x_expected[] = { 1.28844f, -5.49514f, 0.145912f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1242)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f };
+ float X[] = { 0.144f, 0.635f, 0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.0563823f, 0.65878f, 0.116f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1243)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f };
+ float X[] = { 0.144f, 0.635f, 0.116f };
+ int incX = -1;
+ float x_expected[] = { 1.08271f, -3.73662f, 140.301f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1244)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f };
+ float X[] = { 0.144f, 0.635f, 0.116f };
+ int incX = -1;
+ float x_expected[] = { 0.144f, 0.652424f, -0.402677f };
+ cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1245)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 };
+ double X[] = { 0.332, 0.588, 0.252 };
+ int incX = -1;
+ double x_expected[] = { -0.967930029155, 0.138412575592, 0.506166027443 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1246)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 };
+ double X[] = { 0.332, 0.588, 0.252 };
+ int incX = -1;
+ double x_expected[] = { 0.332, 0.819736, 0.615143048 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1247)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 };
+ double X[] = { 0.332, 0.588, 0.252 };
+ int incX = -1;
+ double x_expected[] = { -0.364842154056, -0.326531140246, -0.568848758465 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1248)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 };
+ double X[] = { 0.332, 0.588, 0.252 };
+ int incX = -1;
+ double x_expected[] = { 0.588397988, 0.747516, 0.252 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1249)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 };
+ double X[] = { 0.332, 0.588, 0.252 };
+ int incX = -1;
+ double x_expected[] = { -0.550580431177, -0.571849444278, 0.248263427151 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1250)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 };
+ double X[] = { 0.332, 0.588, 0.252 };
+ int incX = -1;
+ double x_expected[] = { 0.332, 0.701876, 0.696287508 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1251)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 };
+ double X[] = { 0.332, 0.588, 0.252 };
+ int incX = -1;
+ double x_expected[] = { 1.50217883761, -1.21382140588, 0.407108239095 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1252)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 };
+ double X[] = { 0.332, 0.588, 0.252 };
+ int incX = -1;
+ double x_expected[] = { 0.820345928, 0.699636, 0.252 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1253)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.199, 0.303, -0.705, -0.013, -0.678, 0.547, 0.756, -0.177, -0.079 };
+ double X[] = { 0.58, 0.558, -0.54 };
+ int incX = -1;
+ double x_expected[] = { 18.994209959, 20.323927329, 2.7135678392 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1254)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.199, 0.303, -0.705, -0.013, -0.678, 0.547, 0.756, -0.177, -0.079 };
+ double X[] = { 0.58, 0.558, -0.54 };
+ int incX = -1;
+ double x_expected[] = { 1.06925836, 0.72162, -0.54 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1255)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.199, 0.303, -0.705, -0.013, -0.678, 0.547, 0.756, -0.177, -0.079 };
+ double X[] = { 0.58, 0.558, -0.54 };
+ int incX = -1;
+ double x_expected[] = { -3.27683615819, -4.47682615869, -1.97425326753 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1256)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.199, 0.303, -0.705, -0.013, -0.678, 0.547, 0.756, -0.177, -0.079 };
+ double X[] = { 0.58, 0.558, -0.54 };
+ int incX = -1;
+ double x_expected[] = { 0.58, 0.11952, -0.53844624 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1257)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.199, 0.303, -0.705, -0.013, -0.678, 0.547, 0.756, -0.177, -0.079 };
+ double X[] = { 0.58, 0.558, -0.54 };
+ int incX = -1;
+ double x_expected[] = { -6.6461072986, -0.788837290809, -1.78217821782 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1258)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.199, 0.303, -0.705, -0.013, -0.678, 0.547, 0.756, -0.177, -0.079 };
+ double X[] = { 0.58, 0.558, -0.54 };
+ int incX = -1;
+ double x_expected[] = { 0.16345912, 0.55098, -0.54 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1259)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.199, 0.303, -0.705, -0.013, -0.678, 0.547, 0.756, -0.177, -0.079 };
+ double X[] = { 0.58, 0.558, -0.54 };
+ int incX = -1;
+ double x_expected[] = { 0.767195767196, -82.9352869353, -123.564783625 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1260)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.199, 0.303, -0.705, -0.013, -0.678, 0.547, 0.756, -0.177, -0.079 };
+ double X[] = { 0.58, 0.558, -0.54 };
+ int incX = -1;
+ double x_expected[] = { 0.58, 0.95124, -0.82822572 };
+ cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1261)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.975f, -0.667f, 0.813f, -0.962f, -0.961f, 0.226f, -0.503f, 0.809f, 0.81f, -0.162f, -0.027f, -0.044f, 0.212f, 0.563f, 0.446f, -0.392f, 0.798f, -0.07f };
+ float X[] = { 0.11f, 0.787f, -0.826f, 0.809f, -0.437f, 0.592f };
+ int incX = -1;
+ float x_expected[] = { 1.28871f, 0.289887f, 1.76043f, 1.27481f, 1.56506f, -2.35181f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1262) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1262) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.975f, -0.667f, 0.813f, -0.962f, -0.961f, 0.226f, -0.503f, 0.809f, 0.81f, -0.162f, -0.027f, -0.044f, 0.212f, 0.563f, 0.446f, -0.392f, 0.798f, -0.07f };
+ float X[] = { 0.11f, 0.787f, -0.826f, 0.809f, -0.437f, 0.592f };
+ int incX = -1;
+ float x_expected[] = { 0.11f, 0.787f, -1.04259f, 0.18935f, 0.228474f, -0.564917f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1263) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1263) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.975f, -0.667f, 0.813f, -0.962f, -0.961f, 0.226f, -0.503f, 0.809f, 0.81f, -0.162f, -0.027f, -0.044f, 0.212f, 0.563f, 0.446f, -0.392f, 0.798f, -0.07f };
+ float X[] = { 0.11f, 0.787f, -0.826f, 0.809f, -0.437f, 0.592f };
+ int incX = -1;
+ float x_expected[] = { -0.0906249f, 3.09442f, -1.60036f, 1.28475f, -0.582941f, 0.0383898f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1264) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1264) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.975f, -0.667f, 0.813f, -0.962f, -0.961f, 0.226f, -0.503f, 0.809f, 0.81f, -0.162f, -0.027f, -0.044f, 0.212f, 0.563f, 0.446f, -0.392f, 0.798f, -0.07f };
+ float X[] = { 0.11f, 0.787f, -0.826f, 0.809f, -0.437f, 0.592f };
+ int incX = -1;
+ float x_expected[] = { 1.05233f, 0.79657f, -0.566883f, 1.46031f, -0.437f, 0.592f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1265) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1265) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.975f, -0.667f, 0.813f, -0.962f, -0.961f, 0.226f, -0.503f, 0.809f, 0.81f, -0.162f, -0.027f, -0.044f, 0.212f, 0.563f, 0.446f, -0.392f, 0.798f, -0.07f };
+ float X[] = { 0.11f, 0.787f, -0.826f, 0.809f, -0.437f, 0.592f };
+ int incX = -1;
+ float x_expected[] = { -0.735844f, 1.11782f, -0.28244f, 1.16117f, -0.66707f, 0.938302f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1266) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1266) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.975f, -0.667f, 0.813f, -0.962f, -0.961f, 0.226f, -0.503f, 0.809f, 0.81f, -0.162f, -0.027f, -0.044f, 0.212f, 0.563f, 0.446f, -0.392f, 0.798f, -0.07f };
+ float X[] = { 0.11f, 0.787f, -0.826f, 0.809f, -0.437f, 0.592f };
+ int incX = -1;
+ float x_expected[] = { 0.11f, 0.787f, -0.406239f, 0.580226f, -0.171935f, 1.2125f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1267) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1267) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.975f, -0.667f, 0.813f, -0.962f, -0.961f, 0.226f, -0.503f, 0.809f, 0.81f, -0.162f, -0.027f, -0.044f, 0.212f, 0.563f, 0.446f, -0.392f, 0.798f, -0.07f };
+ float X[] = { 0.11f, 0.787f, -0.826f, 0.809f, -0.437f, 0.592f };
+ int incX = -1;
+ float x_expected[] = { 1.70081f, 2.20477f, 1.32753f, -0.522112f, 0.0223652f, -0.62248f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1268) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1268) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { -0.975f, -0.667f, 0.813f, -0.962f, -0.961f, 0.226f, -0.503f, 0.809f, 0.81f, -0.162f, -0.027f, -0.044f, 0.212f, 0.563f, 0.446f, -0.392f, 0.798f, -0.07f };
+ float X[] = { 0.11f, 0.787f, -0.826f, 0.809f, -0.437f, 0.592f };
+ int incX = -1;
+ float x_expected[] = { 0.967596f, 0.693563f, -1.04022f, -0.09269f, -0.437f, 0.592f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1269) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1269) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.33f, -0.236f, 0.267f, -0.139f, 0.25f, 0.509f, 0.86f, -0.089f, -0.018f, -0.847f, 0.424f, -0.573f, 0.097f, -0.663f, 0.65f, -0.811f, 0.283f, 0.032f };
+ float X[] = { -0.509f, 0.608f, 0.021f, -0.848f, -0.134f, 0.179f };
+ int incX = -1;
+ float x_expected[] = { -1.11985f, 0.801655f, 0.273814f, -1.09438f, -0.52531f, 0.166748f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1270) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1270) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.33f, -0.236f, 0.267f, -0.139f, 0.25f, 0.509f, 0.86f, -0.089f, -0.018f, -0.847f, 0.424f, -0.573f, 0.097f, -0.663f, 0.65f, -0.811f, 0.283f, 0.032f };
+ float X[] = { -0.509f, 0.608f, 0.021f, -0.848f, -0.134f, 0.179f };
+ int incX = -1;
+ float x_expected[] = { 0.266087f, 0.618557f, 0.031897f, -0.914419f, -0.134f, 0.179f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1271) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1271) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.33f, -0.236f, 0.267f, -0.139f, 0.25f, 0.509f, 0.86f, -0.089f, -0.018f, -0.847f, 0.424f, -0.573f, 0.097f, -0.663f, 0.65f, -0.811f, 0.283f, 0.032f };
+ float X[] = { -0.509f, 0.608f, 0.021f, -0.848f, -0.134f, 0.179f };
+ int incX = -1;
+ float x_expected[] = { -0.762749f, -0.016292f, 1.59299f, 0.158751f, -4.75603f, -1.78591f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1272) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1272) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.33f, -0.236f, 0.267f, -0.139f, 0.25f, 0.509f, 0.86f, -0.089f, -0.018f, -0.847f, 0.424f, -0.573f, 0.097f, -0.663f, 0.65f, -0.811f, 0.283f, 0.032f };
+ float X[] = { -0.509f, 0.608f, 0.021f, -0.848f, -0.134f, 0.179f };
+ int incX = -1;
+ float x_expected[] = { -0.509f, 0.608f, -0.332731f, -1.24444f, 0.262904f, 1.21961f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1273) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1273) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.33f, -0.236f, 0.267f, -0.139f, 0.25f, 0.509f, 0.86f, -0.089f, -0.018f, -0.847f, 0.424f, -0.573f, 0.097f, -0.663f, 0.65f, -0.811f, 0.283f, 0.032f };
+ float X[] = { -0.509f, 0.608f, 0.021f, -0.848f, -0.134f, 0.179f };
+ int incX = -1;
+ float x_expected[] = { -1.76046f, 0.0455463f, 1.38348f, 0.700097f, -0.669451f, 0.321896f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1274) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1274) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.33f, -0.236f, 0.267f, -0.139f, 0.25f, 0.509f, 0.86f, -0.089f, -0.018f, -0.847f, 0.424f, -0.573f, 0.097f, -0.663f, 0.65f, -0.811f, 0.283f, 0.032f };
+ float X[] = { -0.509f, 0.608f, 0.021f, -0.848f, -0.134f, 0.179f };
+ int incX = -1;
+ float x_expected[] = { 0.151523f, 0.78611f, 0.120309f, -1.01387f, -0.134f, 0.179f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1275) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1275) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.33f, -0.236f, 0.267f, -0.139f, 0.25f, 0.509f, 0.86f, -0.089f, -0.018f, -0.847f, 0.424f, -0.573f, 0.097f, -0.663f, 0.65f, -0.811f, 0.283f, 0.032f };
+ float X[] = { -0.509f, 0.608f, 0.021f, -0.848f, -0.134f, 0.179f };
+ int incX = -1;
+ float x_expected[] = { -1.00779f, -0.620278f, 0.81164f, -1.90759f, -1.32022f, 1.48356f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1276) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1276) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.33f, -0.236f, 0.267f, -0.139f, 0.25f, 0.509f, 0.86f, -0.089f, -0.018f, -0.847f, 0.424f, -0.573f, 0.097f, -0.663f, 0.65f, -0.811f, 0.283f, 0.032f };
+ float X[] = { -0.509f, 0.608f, 0.021f, -0.848f, -0.134f, 0.179f };
+ int incX = -1;
+ float x_expected[] = { -0.509f, 0.608f, -0.503138f, -1.26818f, 0.176615f, 0.447668f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1277) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1277) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.041f, -0.61f, 0.099f, -0.393f, 0.357f, -0.984f, -0.576f, -0.342f, -0.903f, -0.083f, -0.157f, -0.694f, 0.768f, 0.688f, 0.203f, -0.079f, 0.298f, -0.424f };
+ float X[] = { -0.037f, -0.599f, 0.959f, -0.499f, 0.296f, 0.034f };
+ int incX = -1;
+ float x_expected[] = { -0.613838f, -1.13321f, -1.34847f, 0.0432903f, 0.0879552f, -0.479334f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1278) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1278) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.041f, -0.61f, 0.099f, -0.393f, 0.357f, -0.984f, -0.576f, -0.342f, -0.903f, -0.083f, -0.157f, -0.694f, 0.768f, 0.688f, 0.203f, -0.079f, 0.298f, -0.424f };
+ float X[] = { -0.037f, -0.599f, 0.959f, -0.499f, 0.296f, 0.034f };
+ int incX = -1;
+ float x_expected[] = { 0.76323f, -1.23595f, 0.943058f, -0.618694f, 0.296f, 0.034f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1279) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1279) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.041f, -0.61f, 0.099f, -0.393f, 0.357f, -0.984f, -0.576f, -0.342f, -0.903f, -0.083f, -0.157f, -0.694f, 0.768f, 0.688f, 0.203f, -0.079f, 0.298f, -0.424f };
+ float X[] = { -0.037f, -0.599f, 0.959f, -0.499f, 0.296f, 0.034f };
+ int incX = -1;
+ float x_expected[] = { -1.15557f, -2.50103f, -3.85402f, -1.04833f, 0.414582f, 5.91218f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1280) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1280) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.041f, -0.61f, 0.099f, -0.393f, 0.357f, -0.984f, -0.576f, -0.342f, -0.903f, -0.083f, -0.157f, -0.694f, 0.768f, 0.688f, 0.203f, -0.079f, 0.298f, -0.424f };
+ float X[] = { -0.037f, -0.599f, 0.959f, -0.499f, 0.296f, 0.034f };
+ int incX = -1;
+ float x_expected[] = { -0.037f, -0.599f, 1.39953f, -0.064424f, 1.0801f, -0.481747f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1281) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1281) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.041f, -0.61f, 0.099f, -0.393f, 0.357f, -0.984f, -0.576f, -0.342f, -0.903f, -0.083f, -0.157f, -0.694f, 0.768f, 0.688f, 0.203f, -0.079f, 0.298f, -0.424f };
+ float X[] = { -0.037f, -0.599f, 0.959f, -0.499f, 0.296f, 0.034f };
+ int incX = -1;
+ float x_expected[] = { -3.0802f, -9.09377f, -1.05845f, 0.99239f, 0.259763f, -0.687744f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1282) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1282) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.041f, -0.61f, 0.099f, -0.393f, 0.357f, -0.984f, -0.576f, -0.342f, -0.903f, -0.083f, -0.157f, -0.694f, 0.768f, 0.688f, 0.203f, -0.079f, 0.298f, -0.424f };
+ float X[] = { -0.037f, -0.599f, 0.959f, -0.499f, 0.296f, 0.034f };
+ int incX = -1;
+ float x_expected[] = { -0.513897f, 0.632031f, 1.14112f, -0.580648f, 0.296f, 0.034f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1283) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1283) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.041f, -0.61f, 0.099f, -0.393f, 0.357f, -0.984f, -0.576f, -0.342f, -0.903f, -0.083f, -0.157f, -0.694f, 0.768f, 0.688f, 0.203f, -0.079f, 0.298f, -0.424f };
+ float X[] = { -0.037f, -0.599f, 0.959f, -0.499f, 0.296f, 0.034f };
+ int incX = -1;
+ float x_expected[] = { 0.360899f, -0.456643f, -2.31803f, 0.257877f, 1.56928f, -0.922115f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1284) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1284) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ float A[] = { 0.041f, -0.61f, 0.099f, -0.393f, 0.357f, -0.984f, -0.576f, -0.342f, -0.903f, -0.083f, -0.157f, -0.694f, 0.768f, 0.688f, 0.203f, -0.079f, 0.298f, -0.424f };
+ float X[] = { -0.037f, -0.599f, 0.959f, -0.499f, 0.296f, 0.034f };
+ int incX = -1;
+ float x_expected[] = { -0.037f, -0.599f, 0.875872f, -1.03683f, -0.198184f, -0.207572f };
+ cblas_ctbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctbsv(case 1285) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctbsv(case 1285) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.474, 0.715, 0.061, 0.532, 0.004, -0.318, 0.37, -0.692, -0.166, 0.039, -0.946, 0.857, -0.922, -0.491, 0.012, -0.217, -0.674, -0.429 };
+ double X[] = { -0.123, 0.122, 0.981, 0.321, 0.942, 0.98 };
+ int incX = -1;
+ double x_expected[] = { 0.0490338308139, -0.158433417494, 0.261604043488, 1.28058846321, 1.77633350191, -1.07039599422 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1286) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1286) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.474, 0.715, 0.061, 0.532, 0.004, -0.318, 0.37, -0.692, -0.166, 0.039, -0.946, 0.857, -0.922, -0.491, 0.012, -0.217, -0.674, -0.429 };
+ double X[] = { -0.123, 0.122, 0.981, 0.321, 0.942, 0.98 };
+ int incX = -1;
+ double x_expected[] = { -0.123, 0.122, 0.96534, 0.346049, 1.067212328, 0.445330131 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1287) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1287) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.474, 0.715, 0.061, 0.532, 0.004, -0.318, 0.37, -0.692, -0.166, 0.039, -0.946, 0.857, -0.922, -0.491, 0.012, -0.217, -0.674, -0.429 };
+ double X[] = { -0.123, 0.122, 0.981, 0.321, 0.942, 0.98 };
+ int incX = -1;
+ double x_expected[] = { 72.7437666278, 10.4206532927, -4.34946941374, -14.8012581742, 2.01859491883, -1.53922125931 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1288) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1288) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.474, 0.715, 0.061, 0.532, 0.004, -0.318, 0.37, -0.692, -0.166, 0.039, -0.946, 0.857, -0.922, -0.491, 0.012, -0.217, -0.674, -0.429 };
+ double X[] = { -0.123, 0.122, 0.981, 0.321, 0.942, 0.98 };
+ int incX = -1;
+ double x_expected[] = { -0.464775024, 0.662224708, -0.0457, 0.610264, 0.942, 0.98 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1289) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1289) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.474, 0.715, 0.061, 0.532, 0.004, -0.318, 0.37, -0.692, -0.166, 0.039, -0.946, 0.857, -0.922, -0.491, 0.012, -0.217, -0.674, -0.429 };
+ double X[] = { -0.123, 0.122, 0.981, 0.321, 0.942, 0.98 };
+ int incX = -1;
+ double x_expected[] = { -0.591747295323, -0.534096923761, -4.60251824353, 1.70172936273, -4.94687072873, -3.32536493524 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1290) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1290) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.474, 0.715, 0.061, 0.532, 0.004, -0.318, 0.37, -0.692, -0.166, 0.039, -0.946, 0.857, -0.922, -0.491, 0.012, -0.217, -0.674, -0.429 };
+ double X[] = { -0.123, 0.122, 0.981, 0.321, 0.942, 0.98 };
+ int incX = -1;
+ double x_expected[] = { -0.123, 0.122, 0.807692, 0.373091, 0.384974988, 1.400879194 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1291) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1291) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.474, 0.715, 0.061, 0.532, 0.004, -0.318, 0.37, -0.692, -0.166, 0.039, -0.946, 0.857, -0.922, -0.491, 0.012, -0.217, -0.674, -0.429 };
+ double X[] = { -0.123, 0.122, 0.981, 0.321, 0.942, 0.98 };
+ int incX = -1;
+ double x_expected[] = { -0.129998778267, -0.116630230861, 0.993340886904, 0.530739563688, 1.55891621291, -0.284019181928 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1292) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1292) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.474, 0.715, 0.061, 0.532, 0.004, -0.318, 0.37, -0.692, -0.166, 0.039, -0.946, 0.857, -0.922, -0.491, 0.012, -0.217, -0.674, -0.429 };
+ double X[] = { -0.123, 0.122, 0.981, 0.321, 0.942, 0.98 };
+ int incX = -1;
+ double x_expected[] = { 0.107496032, 0.025821594, 1.444898, -0.239924, 0.942, 0.98 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1293) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1293) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.872, -0.841, 0.108, -0.744, 0.231, -0.513, -0.973, 0.087, 0.348, 0.196, 0.447, 0.307, 0.632, -0.949, 0.322, 0.277, 0.282, 0.831 };
+ double X[] = { -0.373, 0.566, 0.92, 0.627, 0.293, -0.434 };
+ int incX = -1;
+ double x_expected[] = { -0.825842176606, 0.212941473892, -0.548817434511, -0.703261551538, 0.0746069436827, 0.425751789407 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1294) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1294) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.872, -0.841, 0.108, -0.744, 0.231, -0.513, -0.973, 0.087, 0.348, 0.196, 0.447, 0.307, 0.632, -0.949, 0.322, 0.277, 0.282, 0.831 };
+ double X[] = { -0.373, 0.566, 0.92, 0.627, 0.293, -0.434 };
+ int incX = -1;
+ double x_expected[] = { -0.619710352, 0.018225936, 1.211252, 0.891864, 0.293, -0.434 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1295) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1295) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.872, -0.841, 0.108, -0.744, 0.231, -0.513, -0.973, 0.087, 0.348, 0.196, 0.447, 0.307, 0.632, -0.949, 0.322, 0.277, 0.282, 0.831 };
+ double X[] = { -0.373, 0.566, 0.92, 0.627, 0.293, -0.434 };
+ int incX = -1;
+ double x_expected[] = { 0.203289119964, 1.58288482537, -1.7720160159, 0.479463518178, -0.511241930019, -1.79333888299 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1296) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1296) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.872, -0.841, 0.108, -0.744, 0.231, -0.513, -0.973, 0.087, 0.348, 0.196, 0.447, 0.307, 0.632, -0.949, 0.322, 0.277, 0.282, 0.831 };
+ double X[] = { -0.373, 0.566, 0.92, 0.627, 0.293, -0.434 };
+ int incX = -1;
+ double x_expected[] = { -0.373, 0.566, 0.618602, -0.084689, 0.887531803, -0.570220771 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1297) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1297) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.872, -0.841, 0.108, -0.744, 0.231, -0.513, -0.973, 0.087, 0.348, 0.196, 0.447, 0.307, 0.632, -0.949, 0.322, 0.277, 0.282, 0.831 };
+ double X[] = { -0.373, 0.566, 0.92, 0.627, 0.293, -0.434 };
+ int incX = -1;
+ double x_expected[] = { 1.72799012007, 13.4612400765, 4.46126528205, -0.0212528722047, 0.627282377919, 0.302760084926 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1298) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1298) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.872, -0.841, 0.108, -0.744, 0.231, -0.513, -0.973, 0.087, 0.348, 0.196, 0.447, 0.307, 0.632, -0.949, 0.322, 0.277, 0.282, 0.831 };
+ double X[] = { -0.373, 0.566, 0.92, 0.627, 0.293, -0.434 };
+ int incX = -1;
+ double x_expected[] = { -1.280839615, 1.560525655, 1.167331, 0.179227, 0.293, -0.434 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1299) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1299) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.872, -0.841, 0.108, -0.744, 0.231, -0.513, -0.973, 0.087, 0.348, 0.196, 0.447, 0.307, 0.632, -0.949, 0.322, 0.277, 0.282, 0.831 };
+ double X[] = { -0.373, 0.566, 0.92, 0.627, 0.293, -0.434 };
+ int incX = -1;
+ double x_expected[] = { -0.594503951847, 0.00287302167266, -1.08185265666, -0.859860374254, 0.0331027077244, 1.28233265933 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1300) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1300) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { -0.872, -0.841, 0.108, -0.744, 0.231, -0.513, -0.973, 0.087, 0.348, 0.196, 0.447, 0.307, 0.632, -0.949, 0.322, 0.277, 0.282, 0.831 };
+ double X[] = { -0.373, 0.566, 0.92, 0.627, 0.293, -0.434 };
+ int incX = -1;
+ double x_expected[] = { -0.373, 0.566, 1.16074, 0.50314, -0.20669608, 0.37525144 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1301) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1301) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.404, 0.667, 0.861, 0.22, 0.298, -0.858, -0.682, -0.969, 0.327, -0.86, 0.125, 0.606, -0.143, -0.865, -0.036, 0.23, -0.776, 0.079 };
+ double X[] = { 0.028, -0.804, 0.582, -0.078, -0.126, 0.459 };
+ int incX = -1;
+ double x_expected[] = { 0.0654496252357, 0.224007771015, -0.752486084395, -0.554870892947, -0.587163401057, 0.166737652215 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1302) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1302) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.404, 0.667, 0.861, 0.22, 0.298, -0.858, -0.682, -0.969, 0.327, -0.86, 0.125, 0.606, -0.143, -0.865, -0.036, 0.23, -0.776, 0.079 };
+ double X[] = { 0.028, -0.804, 0.582, -0.078, -0.126, 0.459 };
+ int incX = -1;
+ double x_expected[] = { -0.595558802, -1.147174647, 0.589506, -0.500919, -0.126, 0.459 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1303) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1303) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.404, 0.667, 0.861, 0.22, 0.298, -0.858, -0.682, -0.969, 0.327, -0.86, 0.125, 0.606, -0.143, -0.865, -0.036, 0.23, -0.776, 0.079 };
+ double X[] = { 0.028, -0.804, 0.582, -0.078, -0.126, 0.459 };
+ int incX = -1;
+ double x_expected[] = { 3.39346077201, 0.652889512141, -2.33602680355, -2.7859245153, -5.04672104102, -0.334110541026 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1304) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1304) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.404, 0.667, 0.861, 0.22, 0.298, -0.858, -0.682, -0.969, 0.327, -0.86, 0.125, 0.606, -0.143, -0.865, -0.036, 0.23, -0.776, 0.079 };
+ double X[] = { 0.028, -0.804, 0.582, -0.078, -0.126, 0.459 };
+ int incX = -1;
+ double x_expected[] = { 0.028, -0.804, -0.109456, -0.217192, -0.41110804, 0.41693792 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1305) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1305) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.404, 0.667, 0.861, 0.22, 0.298, -0.858, -0.682, -0.969, 0.327, -0.86, 0.125, 0.606, -0.143, -0.865, -0.036, 0.23, -0.776, 0.079 };
+ double X[] = { 0.028, -0.804, 0.582, -0.078, -0.126, 0.459 };
+ int incX = -1;
+ double x_expected[] = { 7.16970224467, -0.772071373678, 0.833386981173, -0.673826630129, -0.26524050899, 0.465327628365 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1306) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1306) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.404, 0.667, 0.861, 0.22, 0.298, -0.858, -0.682, -0.969, 0.327, -0.86, 0.125, 0.606, -0.143, -0.865, -0.036, 0.23, -0.776, 0.079 };
+ double X[] = { 0.028, -0.804, 0.582, -0.078, -0.126, 0.459 };
+ int incX = -1;
+ double x_expected[] = { 0.471459157, -1.566755859, 0.940839, 0.357132, -0.126, 0.459 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1307) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1307) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.404, 0.667, 0.861, 0.22, 0.298, -0.858, -0.682, -0.969, 0.327, -0.86, 0.125, 0.606, -0.143, -0.865, -0.036, 0.23, -0.776, 0.079 };
+ double X[] = { 0.028, -0.804, 0.582, -0.078, -0.126, 0.459 };
+ int incX = -1;
+ double x_expected[] = { -0.909961830373, 0.118063054039, -0.0169425582229, -1.00055409731, -1.37205489923, 0.994032418785 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1308) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1308) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 3;
+ int K = 1;
+ int lda = 3;
+ double A[] = { 0.404, 0.667, 0.861, 0.22, 0.298, -0.858, -0.682, -0.969, 0.327, -0.86, 0.125, 0.606, -0.143, -0.865, -0.036, 0.23, -0.776, 0.079 };
+ double X[] = { 0.028, -0.804, 0.582, -0.078, -0.126, 0.459 };
+ int incX = -1;
+ double x_expected[] = { 0.028, -0.804, -0.118596, 0.160828, -0.059271004, 0.294435972 };
+ cblas_ztbsv(order, uplo, trans, diag, N, K, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 3; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztbsv(case 1309) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztbsv(case 1309) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_tpmv.c b/gsl-1.9/cblas/test_tpmv.c
new file mode 100644
index 0000000..9b3f1b7
--- /dev/null
+++ b/gsl-1.9/cblas/test_tpmv.c
@@ -0,0 +1,1659 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_tpmv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.587f, 0.14f, 0.841f };
+ float X[] = { -0.213f, 0.885f };
+ int incX = -1;
+ float x_expected[] = { -0.179133f, -0.549315f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 974)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.587f, 0.14f, 0.841f };
+ float X[] = { -0.213f, 0.885f };
+ int incX = -1;
+ float x_expected[] = { -0.213f, 0.85518f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 975)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.587f, 0.14f, 0.841f };
+ float X[] = { -0.213f, 0.885f };
+ int incX = -1;
+ float x_expected[] = { -0.055233f, -0.519495f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 976)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.587f, 0.14f, 0.841f };
+ float X[] = { -0.213f, 0.885f };
+ int incX = -1;
+ float x_expected[] = { -0.0891f, 0.885f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 977)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.587f, 0.14f, 0.841f };
+ float X[] = { -0.213f, 0.885f };
+ int incX = -1;
+ float x_expected[] = { -0.179133f, -0.549315f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 978)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.587f, 0.14f, 0.841f };
+ float X[] = { -0.213f, 0.885f };
+ int incX = -1;
+ float x_expected[] = { -0.213f, 0.85518f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 979)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.587f, 0.14f, 0.841f };
+ float X[] = { -0.213f, 0.885f };
+ int incX = -1;
+ float x_expected[] = { -0.055233f, -0.519495f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 980)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.587f, 0.14f, 0.841f };
+ float X[] = { -0.213f, 0.885f };
+ int incX = -1;
+ float x_expected[] = { -0.0891f, 0.885f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 981)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.765f, 0.968f, -0.956f };
+ float X[] = { 0.243f, -0.274f };
+ int incX = -1;
+ float x_expected[] = { -0.49754f, 0.20961f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 982)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.765f, 0.968f, -0.956f };
+ float X[] = { 0.243f, -0.274f };
+ int incX = -1;
+ float x_expected[] = { -0.022232f, -0.274f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 983)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.765f, 0.968f, -0.956f };
+ float X[] = { 0.243f, -0.274f };
+ int incX = -1;
+ float x_expected[] = { -0.232308f, 0.444834f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 984)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.765f, 0.968f, -0.956f };
+ float X[] = { 0.243f, -0.274f };
+ int incX = -1;
+ float x_expected[] = { 0.243f, -0.038776f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 985)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.765f, 0.968f, -0.956f };
+ float X[] = { 0.243f, -0.274f };
+ int incX = -1;
+ float x_expected[] = { -0.49754f, 0.20961f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 986)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.765f, 0.968f, -0.956f };
+ float X[] = { 0.243f, -0.274f };
+ int incX = -1;
+ float x_expected[] = { -0.022232f, -0.274f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 987)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.765f, 0.968f, -0.956f };
+ float X[] = { 0.243f, -0.274f };
+ int incX = -1;
+ float x_expected[] = { -0.232308f, 0.444834f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 988)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.765f, 0.968f, -0.956f };
+ float X[] = { 0.243f, -0.274f };
+ int incX = -1;
+ float x_expected[] = { 0.243f, -0.038776f };
+ cblas_stpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpmv(case 989)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.393, -0.221, 0.356 };
+ double X[] = { -0.062, -0.221 };
+ int incX = -1;
+ double x_expected[] = { -0.022072, -0.073151 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 990)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.393, -0.221, 0.356 };
+ double X[] = { -0.062, -0.221 };
+ int incX = -1;
+ double x_expected[] = { -0.062, -0.207298 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 991)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.393, -0.221, 0.356 };
+ double X[] = { -0.062, -0.221 };
+ int incX = -1;
+ double x_expected[] = { 0.026769, -0.086853 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 992)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.393, -0.221, 0.356 };
+ double X[] = { -0.062, -0.221 };
+ int incX = -1;
+ double x_expected[] = { -0.013159, -0.221 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 993)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.393, -0.221, 0.356 };
+ double X[] = { -0.062, -0.221 };
+ int incX = -1;
+ double x_expected[] = { -0.022072, -0.073151 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 994)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.393, -0.221, 0.356 };
+ double X[] = { -0.062, -0.221 };
+ int incX = -1;
+ double x_expected[] = { -0.062, -0.207298 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 995)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.393, -0.221, 0.356 };
+ double X[] = { -0.062, -0.221 };
+ int incX = -1;
+ double x_expected[] = { 0.026769, -0.086853 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 996)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.393, -0.221, 0.356 };
+ double X[] = { -0.062, -0.221 };
+ int incX = -1;
+ double x_expected[] = { -0.013159, -0.221 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 997)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.694, 0.501, 0.019 };
+ double X[] = { -0.928, 0.365 };
+ int incX = -1;
+ double x_expected[] = { 0.165233, 0.25331 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 998)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.694, 0.501, 0.019 };
+ double X[] = { -0.928, 0.365 };
+ int incX = -1;
+ double x_expected[] = { -0.745135, 0.365 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 999)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.694, 0.501, 0.019 };
+ double X[] = { -0.928, 0.365 };
+ int incX = -1;
+ double x_expected[] = { -0.017632, -0.211618 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 1000)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.694, 0.501, 0.019 };
+ double X[] = { -0.928, 0.365 };
+ int incX = -1;
+ double x_expected[] = { -0.928, -0.099928 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 1001)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.694, 0.501, 0.019 };
+ double X[] = { -0.928, 0.365 };
+ int incX = -1;
+ double x_expected[] = { 0.165233, 0.25331 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 1002)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.694, 0.501, 0.019 };
+ double X[] = { -0.928, 0.365 };
+ int incX = -1;
+ double x_expected[] = { -0.745135, 0.365 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 1003)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.694, 0.501, 0.019 };
+ double X[] = { -0.928, 0.365 };
+ int incX = -1;
+ double x_expected[] = { -0.017632, -0.211618 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 1004)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.694, 0.501, 0.019 };
+ double X[] = { -0.928, 0.365 };
+ int incX = -1;
+ double x_expected[] = { -0.928, -0.099928 };
+ cblas_dtpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpmv(case 1005)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { 0.362f, -0.849f, -0.612f, -0.718f, 0.503f, -0.923f };
+ float X[] = { 0.904f, 0.461f, -0.367f, 0.153f };
+ int incX = -1;
+ float x_expected[] = { 0.880215f, -0.602509f, -0.225207f, -0.564235f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1006) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1006) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { 0.362f, -0.849f, -0.612f, -0.718f, 0.503f, -0.923f };
+ float X[] = { 0.904f, 0.461f, -0.367f, 0.153f };
+ int incX = -1;
+ float x_expected[] = { 0.904f, 0.461f, -0.58925f, -0.778204f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1007) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1007) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { 0.362f, -0.849f, -0.612f, -0.718f, 0.503f, -0.923f };
+ float X[] = { 0.904f, 0.461f, -0.367f, 0.153f };
+ int incX = -1;
+ float x_expected[] = { 1.21467f, -0.432639f, -0.002957f, 0.366969f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1008) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1008) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { 0.362f, -0.849f, -0.612f, -0.718f, 0.503f, -0.923f };
+ float X[] = { 0.904f, 0.461f, -0.367f, 0.153f };
+ int incX = -1;
+ float x_expected[] = { 1.23846f, 0.63087f, -0.367f, 0.153f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1009) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1009) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { 0.362f, -0.849f, -0.612f, -0.718f, 0.503f, -0.923f };
+ float X[] = { 0.904f, 0.461f, -0.367f, 0.153f };
+ int incX = -1;
+ float x_expected[] = { 0.880215f, -0.602509f, -0.225207f, -0.564235f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1010) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1010) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { 0.362f, -0.849f, -0.612f, -0.718f, 0.503f, -0.923f };
+ float X[] = { 0.904f, 0.461f, -0.367f, 0.153f };
+ int incX = -1;
+ float x_expected[] = { 0.904f, 0.461f, -0.58925f, -0.778204f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1011) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1011) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { 0.362f, -0.849f, -0.612f, -0.718f, 0.503f, -0.923f };
+ float X[] = { 0.904f, 0.461f, -0.367f, 0.153f };
+ int incX = -1;
+ float x_expected[] = { 1.21467f, -0.432639f, -0.002957f, 0.366969f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1012) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1012) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { 0.362f, -0.849f, -0.612f, -0.718f, 0.503f, -0.923f };
+ float X[] = { 0.904f, 0.461f, -0.367f, 0.153f };
+ int incX = -1;
+ float x_expected[] = { 1.23846f, 0.63087f, -0.367f, 0.153f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1013) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1013) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.876f, -0.697f, -0.519f, -0.223f, 0.526f, -0.077f };
+ float X[] = { 0.338f, -0.807f, 0.444f, -0.748f };
+ int incX = -1;
+ float x_expected[] = { -0.281591f, -0.161308f, -0.9103f, 0.34578f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1014) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1014) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.876f, -0.697f, -0.519f, -0.223f, 0.526f, -0.077f };
+ float X[] = { 0.338f, -0.807f, 0.444f, -0.748f };
+ int incX = -1;
+ float x_expected[] = { -0.05924f, -0.5178f, 0.444f, -0.748f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1015) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1015) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.876f, -0.697f, -0.519f, -0.223f, 0.526f, -0.077f };
+ float X[] = { 0.338f, -0.807f, 0.444f, -0.748f };
+ int incX = -1;
+ float x_expected[] = { 0.115649f, -0.450508f, -1.26568f, 0.689239f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1016) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1016) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.876f, -0.697f, -0.519f, -0.223f, 0.526f, -0.077f };
+ float X[] = { 0.338f, -0.807f, 0.444f, -0.748f };
+ int incX = -1;
+ float x_expected[] = { 0.338f, -0.807f, 0.088617f, -0.404541f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1017) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1017) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.876f, -0.697f, -0.519f, -0.223f, 0.526f, -0.077f };
+ float X[] = { 0.338f, -0.807f, 0.444f, -0.748f };
+ int incX = -1;
+ float x_expected[] = { -0.281591f, -0.161308f, -0.9103f, 0.34578f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1018) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1018) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.876f, -0.697f, -0.519f, -0.223f, 0.526f, -0.077f };
+ float X[] = { 0.338f, -0.807f, 0.444f, -0.748f };
+ int incX = -1;
+ float x_expected[] = { -0.05924f, -0.5178f, 0.444f, -0.748f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1019) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1019) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.876f, -0.697f, -0.519f, -0.223f, 0.526f, -0.077f };
+ float X[] = { 0.338f, -0.807f, 0.444f, -0.748f };
+ int incX = -1;
+ float x_expected[] = { 0.115649f, -0.450508f, -1.26568f, 0.689239f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1020) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1020) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.876f, -0.697f, -0.519f, -0.223f, 0.526f, -0.077f };
+ float X[] = { 0.338f, -0.807f, 0.444f, -0.748f };
+ int incX = -1;
+ float x_expected[] = { 0.338f, -0.807f, 0.088617f, -0.404541f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1021) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1021) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { 0.869f, -0.091f, -0.859f, 0.008f, -0.921f, -0.321f };
+ float X[] = { -0.122f, -0.364f, 0.602f, -0.96f };
+ int incX = -1;
+ float x_expected[] = { -0.295592f, 1.11591f, 0.610498f, -0.779458f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1022) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1022) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { 0.869f, -0.091f, -0.859f, 0.008f, -0.921f, -0.321f };
+ float X[] = { -0.122f, -0.364f, 0.602f, -0.96f };
+ int incX = -1;
+ float x_expected[] = { -0.646798f, 0.455824f, 0.602f, -0.96f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1023) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1023) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { 0.869f, -0.091f, -0.859f, 0.008f, -0.921f, -0.321f };
+ float X[] = { -0.122f, -0.364f, 0.602f, -0.96f };
+ int incX = -1;
+ float x_expected[] = { 0.229206f, 0.296082f, 0.712384f, -0.465806f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1024) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1024) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { 0.869f, -0.091f, -0.859f, 0.008f, -0.921f, -0.321f };
+ float X[] = { -0.122f, -0.364f, 0.602f, -0.96f };
+ int incX = -1;
+ float x_expected[] = { -0.122f, -0.364f, 0.703886f, -0.646348f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1025) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1025) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { 0.869f, -0.091f, -0.859f, 0.008f, -0.921f, -0.321f };
+ float X[] = { -0.122f, -0.364f, 0.602f, -0.96f };
+ int incX = -1;
+ float x_expected[] = { -0.295592f, 1.11591f, 0.610498f, -0.779458f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1026) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1026) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { 0.869f, -0.091f, -0.859f, 0.008f, -0.921f, -0.321f };
+ float X[] = { -0.122f, -0.364f, 0.602f, -0.96f };
+ int incX = -1;
+ float x_expected[] = { -0.646798f, 0.455824f, 0.602f, -0.96f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1027) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1027) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { 0.869f, -0.091f, -0.859f, 0.008f, -0.921f, -0.321f };
+ float X[] = { -0.122f, -0.364f, 0.602f, -0.96f };
+ int incX = -1;
+ float x_expected[] = { 0.229206f, 0.296082f, 0.712384f, -0.465806f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1028) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1028) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { 0.869f, -0.091f, -0.859f, 0.008f, -0.921f, -0.321f };
+ float X[] = { -0.122f, -0.364f, 0.602f, -0.96f };
+ int incX = -1;
+ float x_expected[] = { -0.122f, -0.364f, 0.703886f, -0.646348f };
+ cblas_ctpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpmv(case 1029) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpmv(case 1029) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.254, 0.263, -0.271, -0.595, -0.182, -0.672 };
+ double X[] = { -0.042, -0.705, -0.255, -0.854 };
+ int incX = -1;
+ double x_expected[] = { -0.466116, 0.156534, -0.248261, -0.067936 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1030) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1030) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.254, 0.263, -0.271, -0.595, -0.182, -0.672 };
+ double X[] = { -0.042, -0.705, -0.255, -0.854 };
+ int incX = -1;
+ double x_expected[] = { -0.042, -0.705, -0.663093, -0.637955 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1031) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1031) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.254, 0.263, -0.271, -0.595, -0.182, -0.672 };
+ double X[] = { -0.042, -0.705, -0.255, -0.854 };
+ int incX = -1;
+ double x_expected[] = { -0.905141, 0.539693, 0.159832, -0.283981 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1032) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1032) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.254, 0.263, -0.271, -0.595, -0.182, -0.672 };
+ double X[] = { -0.042, -0.705, -0.255, -0.854 };
+ int incX = -1;
+ double x_expected[] = { -0.481025, -0.321841, -0.255, -0.854 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1033) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1033) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.254, 0.263, -0.271, -0.595, -0.182, -0.672 };
+ double X[] = { -0.042, -0.705, -0.255, -0.854 };
+ int incX = -1;
+ double x_expected[] = { -0.466116, 0.156534, -0.248261, -0.067936 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1034) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1034) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.254, 0.263, -0.271, -0.595, -0.182, -0.672 };
+ double X[] = { -0.042, -0.705, -0.255, -0.854 };
+ int incX = -1;
+ double x_expected[] = { -0.042, -0.705, -0.663093, -0.637955 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1035) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1035) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.254, 0.263, -0.271, -0.595, -0.182, -0.672 };
+ double X[] = { -0.042, -0.705, -0.255, -0.854 };
+ int incX = -1;
+ double x_expected[] = { -0.905141, 0.539693, 0.159832, -0.283981 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1036) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1036) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.254, 0.263, -0.271, -0.595, -0.182, -0.672 };
+ double X[] = { -0.042, -0.705, -0.255, -0.854 };
+ int incX = -1;
+ double x_expected[] = { -0.481025, -0.321841, -0.255, -0.854 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1037) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1037) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.421, -0.407, -0.595, -0.387, 0.884, -0.498 };
+ double X[] = { -0.008, 0.904, -0.689, -0.679 };
+ int incX = -1;
+ double x_expected[] = { 0.590302, 1.473768, -0.566422, -0.005436 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1038) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1038) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.421, -0.407, -0.595, -0.387, 0.884, -0.498 };
+ double X[] = { -0.008, 0.904, -0.689, -0.679 };
+ int incX = -1;
+ double x_expected[] = { 0.139182, 1.574648, -0.689, -0.679 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1039) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1039) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.421, -0.407, -0.595, -0.387, 0.884, -0.498 };
+ double X[] = { -0.008, 0.904, -0.689, -0.679 };
+ int incX = -1;
+ double x_expected[] = { 0.44312, 0.80312, -0.211814, -0.54022 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1040) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1040) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.421, -0.407, -0.595, -0.387, 0.884, -0.498 };
+ double X[] = { -0.008, 0.904, -0.689, -0.679 };
+ int incX = -1;
+ double x_expected[] = { -0.008, 0.904, -0.334392, -1.213784 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1041) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1041) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.421, -0.407, -0.595, -0.387, 0.884, -0.498 };
+ double X[] = { -0.008, 0.904, -0.689, -0.679 };
+ int incX = -1;
+ double x_expected[] = { 0.590302, 1.473768, -0.566422, -0.005436 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1042) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1042) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.421, -0.407, -0.595, -0.387, 0.884, -0.498 };
+ double X[] = { -0.008, 0.904, -0.689, -0.679 };
+ int incX = -1;
+ double x_expected[] = { 0.139182, 1.574648, -0.689, -0.679 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1043) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1043) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.421, -0.407, -0.595, -0.387, 0.884, -0.498 };
+ double X[] = { -0.008, 0.904, -0.689, -0.679 };
+ int incX = -1;
+ double x_expected[] = { 0.44312, 0.80312, -0.211814, -0.54022 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1044) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1044) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.421, -0.407, -0.595, -0.387, 0.884, -0.498 };
+ double X[] = { -0.008, 0.904, -0.689, -0.679 };
+ int incX = -1;
+ double x_expected[] = { -0.008, 0.904, -0.334392, -1.213784 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1045) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1045) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { -0.743, -0.078, 0.77, 0.505, 0.157, -0.986 };
+ double X[] = { -0.641, 0.565, -0.406, -0.948 };
+ int incX = -1;
+ double x_expected[] = { -1.449087, -1.068251, 0.375602, 0.672696 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1046) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1046) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { -0.743, -0.078, 0.77, 0.505, 0.157, -0.986 };
+ double X[] = { -0.641, 0.565, -0.406, -0.948 };
+ int incX = -1;
+ double x_expected[] = { -1.43236, 0.04007, -0.406, -0.948 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1047) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1047) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { -0.743, -0.078, 0.77, 0.505, 0.157, -0.986 };
+ double X[] = { -0.641, 0.565, -0.406, -0.948 };
+ int incX = -1;
+ double x_expected[] = { -0.657727, -0.543321, 0.167357, 1.431451 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1048) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1048) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { -0.743, -0.078, 0.77, 0.505, 0.157, -0.986 };
+ double X[] = { -0.641, 0.565, -0.406, -0.948 };
+ int incX = -1;
+ double x_expected[] = { -0.641, 0.565, -0.614245, -0.189245 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1049) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1049) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { -0.743, -0.078, 0.77, 0.505, 0.157, -0.986 };
+ double X[] = { -0.641, 0.565, -0.406, -0.948 };
+ int incX = -1;
+ double x_expected[] = { -1.449087, -1.068251, 0.375602, 0.672696 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1050) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1050) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { -0.743, -0.078, 0.77, 0.505, 0.157, -0.986 };
+ double X[] = { -0.641, 0.565, -0.406, -0.948 };
+ int incX = -1;
+ double x_expected[] = { -1.43236, 0.04007, -0.406, -0.948 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1051) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1051) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { -0.743, -0.078, 0.77, 0.505, 0.157, -0.986 };
+ double X[] = { -0.641, 0.565, -0.406, -0.948 };
+ int incX = -1;
+ double x_expected[] = { -0.657727, -0.543321, 0.167357, 1.431451 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1052) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1052) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { -0.743, -0.078, 0.77, 0.505, 0.157, -0.986 };
+ double X[] = { -0.641, 0.565, -0.406, -0.948 };
+ int incX = -1;
+ double x_expected[] = { -0.641, 0.565, -0.614245, -0.189245 };
+ cblas_ztpmv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpmv(case 1053) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpmv(case 1053) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_tpsv.c b/gsl-1.9/cblas/test_tpsv.c
new file mode 100644
index 0000000..1fbb895
--- /dev/null
+++ b/gsl-1.9/cblas/test_tpsv.c
@@ -0,0 +1,1659 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_tpsv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.31929f, 0.360168f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1310)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.144f, -0.04432f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1311)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.417992f, -0.0839895f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1312)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.12704f, 0.032f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1313)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.31929f, 0.360168f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1314)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.144f, -0.04432f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1315)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.417992f, -0.0839895f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1316)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.12704f, 0.032f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1317)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.417992f, -0.0839895f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1318)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.12704f, 0.032f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1319)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.31929f, 0.360168f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1320)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.144f, -0.04432f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1321)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.417992f, -0.0839895f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1322)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.12704f, 0.032f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1323)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.31929f, 0.360168f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1324)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.381f, 0.53f, 0.451f };
+ float X[] = { 0.144f, 0.032f };
+ int incX = -1;
+ float x_expected[] = { 0.144f, -0.04432f };
+ cblas_stpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "stpsv(case 1325)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { 1.67142857143, 1.42438631791 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1326)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { -0.702, -1.150996 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1327)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { 4.76584842388, -1.86197183099 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1328)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { -1.163378, -0.661 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1329)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { 1.67142857143, 1.42438631791 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1330)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { -0.702, -1.150996 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1331)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { 4.76584842388, -1.86197183099 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1332)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { -1.163378, -0.661 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1333)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { 4.76584842388, -1.86197183099 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1334)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { -1.163378, -0.661 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1335)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { 1.67142857143, 1.42438631791 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1336)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { -0.702, -1.150996 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1337)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { 4.76584842388, -1.86197183099 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1338)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { -1.163378, -0.661 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1339)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { 1.67142857143, 1.42438631791 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1340)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.355, -0.698, -0.42 };
+ double X[] = { -0.702, -0.661 };
+ int incX = -1;
+ double x_expected[] = { -0.702, -1.150996 };
+ cblas_dtpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtpsv(case 1341)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -1.05533f, 0.0529057f, -3.93625f, 1.36003f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1342) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1342) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -0.133f, 0.998f, 0.818576f, 0.163438f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1343) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1343) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -2.48362f, 1.13085f, -1.67581f, -0.273264f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1344) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1344) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { 0.431924f, 0.679112f, -0.072f, 0.642f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1345) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1345) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -1.05533f, 0.0529057f, -3.93625f, 1.36003f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1346) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1346) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -0.133f, 0.998f, 0.818576f, 0.163438f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1347) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1347) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -2.48362f, 1.13085f, -1.67581f, -0.273264f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1348) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1348) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { 0.431924f, 0.679112f, -0.072f, 0.642f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1349) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1349) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -2.48362f, 1.13085f, -1.67581f, -0.273264f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1350) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1350) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { 0.431924f, 0.679112f, -0.072f, 0.642f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1351) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1351) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -1.05533f, 0.0529057f, -3.93625f, 1.36003f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1352) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1352) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -0.133f, 0.998f, 0.818576f, 0.163438f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1353) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1353) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -2.48362f, 1.13085f, -1.67581f, -0.273264f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1354) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1354) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { 0.431924f, 0.679112f, -0.072f, 0.642f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1355) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1355) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -1.05533f, 0.0529057f, -3.93625f, 1.36003f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1356) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1356) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -0.133f, 0.998f, 0.818576f, 0.163438f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1357) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1357) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { 2.15867f, 1.69498f, 1.69471f, 0.104738f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1358) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1358) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -0.613252f, 0.561896f, -0.072f, 0.642f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1359) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1359) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { 1.00465f, 0.327432f, 3.44853f, 2.273f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1360) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1360) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -0.133f, 0.998f, -0.806168f, -0.053086f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1361) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1361) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { 2.15867f, 1.69498f, 1.69471f, 0.104738f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1362) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1362) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -0.613252f, 0.561896f, -0.072f, 0.642f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1363) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1363) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { 1.00465f, 0.327432f, 3.44853f, 2.273f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1364) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1364) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ float A[] = { -0.019f, -0.38f, 0.588f, 0.814f, 0.173f, -0.937f };
+ float X[] = { -0.133f, 0.998f, -0.072f, 0.642f };
+ int incX = -1;
+ float x_expected[] = { -0.133f, 0.998f, -0.806168f, -0.053086f };
+ cblas_ctpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctpsv(case 1365) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctpsv(case 1365) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.430509772467, -0.0927067365535, -0.611144484555, 0.999982608216 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1366) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1366) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.344, -0.143, -0.795928, -0.523879 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1367) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1367) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 1.00136463678, -1.84591534629, -1.12140892769, 0.696784840869 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1368) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1368) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 1.707508, -0.042521, -0.668, -0.945 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1369) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1369) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.430509772467, -0.0927067365535, -0.611144484555, 0.999982608216 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1370) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1370) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.344, -0.143, -0.795928, -0.523879 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1371) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1371) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 1.00136463678, -1.84591534629, -1.12140892769, 0.696784840869 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1372) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1372) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 1.707508, -0.042521, -0.668, -0.945 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1373) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1373) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 1.00136463678, -1.84591534629, -1.12140892769, 0.696784840869 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1374) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1374) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 1.707508, -0.042521, -0.668, -0.945 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1375) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1375) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.430509772467, -0.0927067365535, -0.611144484555, 0.999982608216 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1376) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1376) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.344, -0.143, -0.795928, -0.523879 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1377) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1377) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 1.00136463678, -1.84591534629, -1.12140892769, 0.696784840869 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1378) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1378) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 1.707508, -0.042521, -0.668, -0.945 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1379) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1379) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.430509772467, -0.0927067365535, -0.611144484555, 0.999982608216 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1380) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1380) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.344, -0.143, -0.795928, -0.523879 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1381) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1381) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { -1.47384781823, -0.286556198408, 1.03098932879, -0.824698794397 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1382) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1382) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { -0.016172, 1.175911, -0.668, -0.945 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1383) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1383) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.369363905801, -0.239798891331, 1.1759505739, -1.40027235656 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1384) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1384) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.344, -0.143, -1.05676, -1.151335 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1385) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1385) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { -1.47384781823, -0.286556198408, 1.03098932879, -0.824698794397 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1386) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1386) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { -0.016172, 1.175911, -0.668, -0.945 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1387) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1387) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.369363905801, -0.239798891331, 1.1759505739, -1.40027235656 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1388) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1388) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 2;
+ double A[] = { 0.052, 0.875, 0.751, -0.912, 0.832, -0.153 };
+ double X[] = { 0.344, -0.143, -0.668, -0.945 };
+ int incX = -1;
+ double x_expected[] = { 0.344, -0.143, -1.05676, -1.151335 };
+ cblas_ztpsv(order, uplo, trans, diag, N, A, X, incX);
+ {
+ int i;
+ for (i = 0; i < 2; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztpsv(case 1389) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztpsv(case 1389) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_trmm.c b/gsl-1.9/cblas/test_trmm.c
new file mode 100644
index 0000000..26fab2b
--- /dev/null
+++ b/gsl-1.9/cblas/test_trmm.c
@@ -0,0 +1,3947 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_trmm (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.18f, 0.199f, 0.122f, -0.547f };
+ int lda = 2;
+ float B[] = { -0.874f, -0.383f, 0.458f, 0.124f, -0.221f, -0.107f };
+ int ldb = 3;
+ float B_expected[] = { 0.0397932f, 0.0338757f, -0.0183441f, 0.0203484f, -0.0362661f, -0.0175587f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1662)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.195f, -0.453f, -0.579f, 0.697f };
+ int lda = 2;
+ float B[] = { 0.736f, 0.131f, 0.533f, 0.692f, -0.672f, -0.435f };
+ int ldb = 3;
+ float B_expected[] = { -0.126757f, -0.130625f, -0.219017f, -0.2076f, 0.2016f, 0.1305f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1663)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.53f, 0.787f, 0.889f, -0.379f };
+ int lda = 2;
+ float B[] = { -0.355f, 0.002f, 0.266f, 0.972f, 0.712f, -0.353f };
+ int ldb = 3;
+ float B_expected[] = { -0.056445f, 3.18e-04f, 0.042294f, 0.205195f, 0.080421f, -0.111078f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1664)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.198f, -0.673f, 0.792f, 0.781f };
+ int lda = 2;
+ float B[] = { 0.901f, 0.719f, -0.339f, -0.36f, 0.539f, 0.192f };
+ int ldb = 3;
+ float B_expected[] = { -0.2703f, -0.2157f, 0.1017f, -0.106078f, -0.332534f, 0.0229464f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1665)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.522f, 0.851f, 0.586f, 0.196f };
+ int lda = 2;
+ float B[] = { 0.335f, 0.617f, 0.118f, -0.143f, 0.677f, 0.456f };
+ int ldb = 2;
+ float B_expected[] = { -0.0560076f, -0.0362796f, 0.0436182f, 0.0084084f, 0.0258534f, -0.0268128f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1666)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.006f, -0.613f, -0.966f, -0.758f };
+ int lda = 2;
+ float B[] = { 0.64f, -0.723f, -0.765f, 0.801f, 0.376f, 0.91f };
+ int ldb = 2;
+ float B_expected[] = { -0.401525f, 0.2169f, 0.46163f, -0.2403f, 0.150918f, -0.273f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1667)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.738f, 0.913f, -0.227f, 0.787f };
+ int lda = 2;
+ float B[] = { 0.194f, 0.988f, -0.274f, -0.652f, -0.281f, -0.359f };
+ int ldb = 2;
+ float B_expected[] = { -0.0429516f, -0.286403f, 0.0606636f, 0.228986f, 0.0622134f, 0.161726f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1668)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.952f, 0.598f, 0.25f, -0.508f };
+ int lda = 2;
+ float B[] = { 0.036f, 0.745f, -0.606f, 0.215f, 0.943f, -0.933f };
+ int ldb = 2;
+ float B_expected[] = { -0.0108f, -0.229958f, 0.1818f, 0.0442164f, -0.2829f, 0.110726f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1669)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.251f, 0.372f, -0.168f, 0.217f, -0.179f, 0.863f, -0.057f, 0.256f, 0.093f };
+ int lda = 3;
+ float B[] = { -0.727f, -0.461f, 0.162f, 0.579f, -0.305f, -0.735f };
+ int ldb = 3;
+ float B_expected[] = { -0.0547431f, 0.0563775f, 0.0781923f, 0.0435987f, -0.0809949f, 0.128653f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1670)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.014f, 0.204f, 0.163f, 0.842f, -0.918f, -0.748f, -0.859f, -0.463f, 0.292f };
+ int lda = 3;
+ float B[] = { -0.587f, -0.625f, -0.994f, 0.681f, -0.577f, -0.434f };
+ int ldb = 3;
+ float B_expected[] = { 0.1761f, 0.223424f, 0.186654f, -0.2043f, 0.131423f, -0.0325797f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1671)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.682f, -0.71f, 0.475f, -0.59f, -0.748f, 0.548f, 0.245f, 0.761f, -0.4f };
+ int lda = 3;
+ float B[] = { 0.565f, 0.967f, -0.969f, 0.184f, 0.349f, -0.552f };
+ int ldb = 3;
+ float B_expected[] = { 0.357979f, 0.438217f, -0.11628f, 0.139991f, 0.204337f, -0.06624f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1672)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.617f, -0.998f, -0.97f, 0.364f, 0.09f, 0.588f, -0.263f, 0.584f, 0.463f };
+ int lda = 3;
+ float B[] = { 0.773f, 0.074f, -0.388f, 0.825f, -0.608f, 0.788f };
+ int ldb = 3;
+ float B_expected[] = { -0.270594f, 0.0457776f, 0.1164f, -0.118933f, 0.0443424f, -0.2364f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1673)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.217f, -0.672f, -0.378f, -0.005f, -0.586f, -0.426f, 0.765f, -0.239f, -0.145f };
+ int lda = 3;
+ float B[] = { 0.01f, 0.387f, -0.953f, -0.374f, -0.673f, -0.724f };
+ int ldb = 2;
+ float B_expected[] = { -6.51e-04f, -0.0251937f, -0.167522f, -0.0651687f, -0.0999006f, -0.147126f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1674)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.962f, 0.515f, 0.292f, 0.354f, -0.366f, 0.455f, 0.134f, -0.564f, -0.303f };
+ int lda = 3;
+ float B[] = { -0.337f, 0.718f, -0.866f, -0.454f, -0.439f, -0.668f };
+ int ldb = 2;
+ float B_expected[] = { 0.1011f, -0.2154f, 0.295589f, 0.0599484f, -0.0012798f, 0.0947196f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1675)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.228f, -0.097f, 0.205f, 0.875f, -0.162f, 0.542f, -0.839f, -0.935f, 0.2f };
+ int lda = 3;
+ float B[] = { -0.125f, -0.676f, 0.181f, 0.741f, 0.216f, 0.766f };
+ int ldb = 2;
+ float B_expected[] = { -0.0165669f, -0.0717843f, -0.026325f, -0.088539f, -0.01296f, -0.04596f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1676)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.854f, -0.502f, 0.591f, -0.934f, -0.729f, 0.063f, 0.352f, 0.126f, -0.905f };
+ int lda = 3;
+ float B[] = { -0.626f, -0.694f, -0.889f, -0.251f, -0.42f, -0.353f };
+ int ldb = 2;
+ float B_expected[] = { 0.128383f, 0.232986f, 0.274638f, 0.0819717f, 0.126f, 0.1059f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1677)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.755f, 0.12f, 0.525f, 0.917f };
+ int lda = 2;
+ float B[] = { -0.927f, -0.813f, 0.624f, -0.366f, -0.864f, -0.046f };
+ int ldb = 3;
+ float B_expected[] = { 0.0699885f, 0.0613815f, -0.047112f, -0.0446862f, -0.0889848f, 0.0032698f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1678)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.444f, 0.515f, 0.081f, -0.69f };
+ int lda = 2;
+ float B[] = { 0.571f, -0.098f, -0.226f, -0.587f, 0.788f, -0.629f };
+ int ldb = 3;
+ float B_expected[] = { 0.0571f, -0.0098f, -0.0226f, -0.0292935f, 0.073753f, -0.074539f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1679)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.954f, 0.651f, -0.982f, 0.388f };
+ int lda = 2;
+ float B[] = { -0.927f, -0.281f, -0.918f, -0.527f, -0.652f, -0.393f };
+ int ldb = 3;
+ float B_expected[] = { 0.140187f, 0.0908338f, 0.12617f, -0.0204476f, -0.0252976f, -0.0152484f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1680)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { 0.811f, 0.852f, 0.224f, 0.443f };
+ int lda = 2;
+ float B[] = { -0.493f, -0.497f, -0.605f, 0.433f, -0.082f, -0.077f };
+ int ldb = 3;
+ float B_expected[] = { -0.0396008f, -0.0515368f, -0.0622248f, 0.0433f, -0.0082f, -0.0077f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1681)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.777f, 0.812f, 0.254f, 0.97f };
+ int lda = 2;
+ float B[] = { -0.509f, 0.171f, 0.986f, -0.644f, -0.97f, 0.814f };
+ int ldb = 2;
+ float B_expected[] = { 0.0395493f, 0.0036584f, -0.0766122f, -0.0374236f, 0.075369f, 0.05432f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1682)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { 0.962f, 0.912f, -0.238f, -0.336f };
+ int lda = 2;
+ float B[] = { -0.666f, 0.066f, -0.176f, 0.402f, 0.286f, -0.703f };
+ int ldb = 2;
+ float B_expected[] = { -0.0666f, 0.0224508f, -0.0176f, 0.0443888f, 0.0286f, -0.0771068f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1683)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { 0.859f, -0.547f, 0.076f, 0.542f };
+ int lda = 2;
+ float B[] = { 0.402f, 0.945f, -0.242f, -0.062f, 0.714f, 0.468f };
+ int ldb = 2;
+ float B_expected[] = { -0.0171597f, 0.051219f, -0.0173964f, -0.0033604f, 0.035733f, 0.0253656f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1684)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.779f, 0.435f, 0.612f, -0.723f };
+ int lda = 2;
+ float B[] = { 0.512f, -0.987f, -0.167f, 0.047f, -0.701f, -0.25f };
+ int ldb = 2;
+ float B_expected[] = { 0.0082655f, -0.0987f, -0.0146555f, 0.0047f, -0.080975f, -0.025f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1685)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.757f, 0.396f, -0.927f, -0.558f, -0.289f, -0.66f, 0.83f, 0.363f, -0.13f };
+ int lda = 3;
+ float B[] = { 0.041f, 0.333f, -0.682f, 0.193f, 0.581f, 0.963f };
+ int ldb = 3;
+ float B_expected[] = { 0.0733045f, 0.0353883f, 0.008866f, -0.0808726f, -0.0803489f, -0.012519f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1686)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.75f, 0.674f, -0.576f, 0.376f, -0.46f, -0.813f, 0.419f, 0.792f, 0.226f };
+ int lda = 3;
+ float B[] = { 0.511f, -0.544f, 0.938f, -0.126f, -0.873f, 0.118f };
+ int ldb = 3;
+ float B_expected[] = { -0.0395944f, -0.130659f, 0.0938f, -0.078237f, -0.0968934f, 0.0118f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1687)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.045f, -0.809f, 0.654f, 0.611f, -0.038f, -0.105f, -0.946f, 0.474f, -0.097f };
+ int lda = 3;
+ float B[] = { -0.625f, -0.123f, -0.48f, -0.088f, -0.757f, 0.974f };
+ int ldb = 3;
+ float B_expected[] = { 0.0028125f, -0.0377201f, 0.0579508f, 3.96e-04f, -0.0025002f, -0.0370048f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1688)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { 0.713f, 0.781f, 0.084f, -0.498f, 0.692f, 0.125f, 0.706f, -0.118f, -0.907f };
+ int lda = 3;
+ float B[] = { 0.442f, -0.563f, 0.065f, -0.18f, 0.63f, -0.328f };
+ int ldb = 3;
+ float B_expected[] = { 0.0442f, -0.0783116f, 0.0443486f, -0.018f, 0.071964f, -0.052942f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1689)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.442f, 0.566f, 0.064f, 0.962f, -0.669f, 0.416f, 0.761f, -0.359f, 0.863f };
+ int lda = 3;
+ float B[] = { 0.261f, -0.659f, -0.536f, 0.694f, -0.305f, -0.675f };
+ int ldb = 2;
+ float B_expected[] = { -0.0863099f, 0.0445231f, 0.0468079f, -0.0221961f, -0.0263215f, -0.0582525f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1690)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { 0.386f, 0.643f, -0.028f, -0.758f, -0.63f, -0.043f, 0.666f, -0.088f, 0.382f };
+ int lda = 3;
+ float B[] = { -0.241f, 0.766f, 0.656f, -0.977f, 0.274f, 0.565f };
+ int ldb = 2;
+ float B_expected[] = { -0.0555764f, 0.188286f, 0.0631888f, -0.102672f, 0.0274f, 0.0565f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1691)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.855f, -0.587f, 0.062f, 0.372f, 0.48f, -0.63f, -0.786f, -0.437f, -0.431f };
+ int lda = 3;
+ float B[] = { 0.116f, 0.534f, 0.043f, 0.73f, 0.945f, 0.528f };
+ int ldb = 2;
+ float B_expected[] = { -0.009918f, -0.045657f, -0.0047452f, 0.0036942f, -0.0427193f, -0.065436f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1692)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 0.1f;
+ float A[] = { -0.068f, 0.119f, -0.244f, -0.05f, 0.685f, 0.752f, -0.059f, -0.935f, -0.571f };
+ int lda = 3;
+ float B[] = { -0.753f, -0.319f, 0.164f, 0.979f, 0.885f, -0.822f };
+ int ldb = 2;
+ float B_expected[] = { -0.0753f, -0.0319f, 0.0074393f, 0.0941039f, 0.119206f, -7.956e-04f };
+ cblas_strmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strmm(case 1693)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.174, -0.308, 0.997, -0.484 };
+ int lda = 2;
+ double B[] = { -0.256, -0.178, 0.098, 0.004, 0.97, -0.408 };
+ int ldb = 3;
+ double B_expected[] = { 0.0137328, 0.0989196, -0.0428148, 5.808e-04, 0.140844, -0.0592416 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1694)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.722, -0.372, 0.466, -0.831 };
+ int lda = 2;
+ double B[] = { 0.322, -0.183, 0.849, -0.051, -0.343, -0.98 };
+ int ldb = 3;
+ double B_expected[] = { -0.1022916, 0.0166212, -0.364068, 0.0153, 0.1029, 0.294 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1695)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { -0.656, -0.066, 0.582, 0.141 };
+ int lda = 2;
+ double B[] = { 0.73, 0.407, 0.721, 0.086, -0.294, 0.941 };
+ int ldb = 3;
+ double B_expected[] = { 0.143664, 0.0800976, 0.1418928, -0.1310958, -0.058626, -0.1656909 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1696)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { -0.341, 0.386, -0.578, 0.863 };
+ int lda = 2;
+ double B[] = { -0.306, -0.047, -0.162, -0.784, 0.472, 0.137 };
+ int ldb = 3;
+ double B_expected[] = { 0.0918, 0.0141, 0.0486, 0.1821396, -0.1497498, -0.0691908 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1697)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.844, -0.832, 0.179, -0.775 };
+ int lda = 2;
+ double B[] = { -0.415, -0.547, -0.023, 0.42, 0.917, 0.485 };
+ int ldb = 2;
+ double B_expected[] = { 0.1344519, -0.1271775, -0.0167304, 0.09765, -0.2582289, 0.1127625 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1698)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.239, 0.34, 0.964, -0.575 };
+ int lda = 2;
+ double B[] = { 0.762, -0.038, -0.8, 0.626, -0.701, 0.639 };
+ int ldb = 2;
+ double B_expected[] = { -0.2176104, 0.0114, 0.0589608, -0.1878, 0.0255012, -0.1917 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1699)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.785, -0.0, -0.592, -0.661 };
+ int lda = 2;
+ double B[] = { -0.215, 0.953, 0.527, -0.418, -0.675, 0.283 };
+ int ldb = 2;
+ double B_expected[] = { 0.0506325, 0.1889799, -0.1241085, -0.0828894, 0.1589625, 0.0561189 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1700)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { -0.423, -0.807, -0.683, -0.225 };
+ int lda = 2;
+ double B[] = { 0.149, -0.129, 0.149, -0.234, 0.275, 0.658 };
+ int ldb = 2;
+ double B_expected[] = { -0.0447, 0.0747729, -0.0447, 0.1062729, -0.0825, -0.1308225 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1701)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { -0.276, 0.434, 0.917, 0.682, -0.32, 0.557, -0.302, 0.989, -0.043 };
+ int lda = 3;
+ double B[] = { -0.943, 0.839, 0.759, 0.752, 0.807, 0.288 };
+ int ldb = 3;
+ double B_expected[] = { -0.0780804, 0.2033226, 0.1290135, 0.0622656, -0.0204384, -0.3380097 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1702)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { -0.731, -0.953, -0.666, 0.684, 0.38, 0.419, -0.361, 0.378, -0.423 };
+ int lda = 3;
+ double B[] = { -0.983, 0.479, -0.136, 0.048, 0.745, -0.408 };
+ int ldb = 3;
+ double B_expected[] = { 0.2949, -0.4247397, -0.2158137, -0.0144, -0.2097768, 0.0383439 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1703)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { -0.953, -0.983, 0.237, 0.128, -0.378, 0.607, 0.41, 0.418, -0.221 };
+ int lda = 3;
+ double B[] = { -0.561, -0.114, -0.148, 0.488, 0.146, -0.688 };
+ int ldb = 3;
+ double B_expected[] = { -0.1378083, 0.0056316, -0.0098124, 0.2185368, 0.1028316, -0.0456144 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1704)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.277, -0.587, 0.885, -0.933, -0.582, 0.528, 0.268, -0.804, 0.62 };
+ int lda = 3;
+ double B[] = { -0.831, -0.319, -0.547, -0.577, 0.295, -0.31 };
+ int ldb = 3;
+ double B_expected[] = { 0.2039907, -0.0362364, 0.1641, 0.2805945, -0.163272, 0.093 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1705)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.256, 0.554, 0.342, 0.318, -0.824, -0.119, -0.399, -0.653, -0.83 };
+ int lda = 3;
+ double B[] = { -0.577, 0.861, -0.439, -0.916, 0.452, -0.168 };
+ int ldb = 2;
+ double B_expected[] = { 0.0443136, -0.0661248, -0.053475, -0.3085746, -0.042519, -0.1182147 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1706)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.837, -0.03, 0.552, -0.43, 0.841, 0.035, 0.7, 0.637, 0.095 };
+ int lda = 3;
+ double B[] = { -0.82, -0.362, -0.252, -0.062, -0.942, -0.299 };
+ int ldb = 2;
+ double B_expected[] = { 0.246, 0.1086, -0.03018, -0.028098, 0.5029572, 0.1775682 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1707)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { -0.074, 0.49, 0.802, -0.454, 0.626, 0.123, -0.959, 0.971, 0.75 };
+ int lda = 3;
+ double B[] = { -0.545, -0.107, 0.096, 0.183, 0.185, -0.218 };
+ int ldb = 2;
+ double B_expected[] = { -0.070722, 0.0231744, -0.0248553, -0.0263232, -0.041625, 0.04905 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1708)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -0.3;
+ double A[] = { 0.048, 0.148, 0.834, -0.98, -0.009, -0.727, 0.241, 0.276, 0.518 };
+ int lda = 3;
+ double B[] = { -0.664, -0.136, -0.793, -0.742, 0.126, -0.131 };
+ int ldb = 2;
+ double B_expected[] = { 0.202884, 0.106521, 0.2653806, 0.1940289, -0.0378, 0.0393 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1709)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.427, 0.495, 0.282, 0.158 };
+ int lda = 2;
+ double B[] = { 0.899, -0.375, 0.376, -0.831, 0.431, -0.387 };
+ int ldb = 3;
+ double B_expected[] = { 0.0383873, -0.0160125, 0.0160552, 0.0313707, -0.0117527, 0.0124974 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1710)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.632, -0.174, 0.608, -0.669 };
+ int lda = 2;
+ double B[] = { -0.335, 0.535, -0.978, 0.31, 0.023, -0.853 };
+ int ldb = 3;
+ double B_expected[] = { -0.0335, 0.0535, -0.0978, 0.036829, -0.007009, -0.0682828 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1711)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { -0.779, -0.73, 0.343, -0.665 };
+ int lda = 2;
+ double B[] = { -0.976, -0.2, 0.661, -0.975, -0.965, -0.861 };
+ int ldb = 3;
+ double B_expected[] = { 0.0425879, -0.0175195, -0.0810242, 0.0648375, 0.0641725, 0.0572565 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1712)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { -0.127, -0.634, -0.384, -0.815 };
+ int lda = 2;
+ double B[] = { -0.348, 0.748, 0.893, 0.91, 0.153, -0.408 };
+ int ldb = 3;
+ double B_expected[] = { -0.069744, 0.0689248, 0.1049672, 0.091, 0.0153, -0.0408 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1713)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { -0.603, -0.617, 0.402, -0.918 };
+ int lda = 2;
+ double B[] = { 0.051, -0.096, 0.476, 0.377, 0.931, 0.291 };
+ int ldb = 2;
+ double B_expected[] = { -0.0030753, 0.010863, -0.0287028, -0.0154734, -0.0561393, 0.0107124 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1714)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.67, -0.475, 0.032, -0.036 };
+ int lda = 2;
+ double B[] = { -0.19, 0.829, 0.942, 0.885, 0.087, 0.321 };
+ int ldb = 2;
+ double B_expected[] = { -0.019, 0.082292, 0.0942, 0.0915144, 0.0087, 0.0323784 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1715)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { -0.64, 0.595, 0.642, -0.921 };
+ int lda = 2;
+ double B[] = { -0.278, -0.83, 0.922, -0.701, -0.598, -0.232 };
+ int ldb = 2;
+ double B_expected[] = { -0.031593, 0.076443, -0.1007175, 0.0645621, 0.024468, 0.0213672 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1716)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.842, 0.625, 0.967, 0.341 };
+ int lda = 2;
+ double B[] = { -0.679, -0.846, -0.921, 0.672, 0.292, 0.752 };
+ int ldb = 2;
+ double B_expected[] = { -0.120775, -0.0846, -0.0501, 0.0672, 0.0762, 0.0752 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1717)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { -0.612, 0.593, 0.113, -0.658, 0.703, -0.023, -0.384, 0.439, 0.958 };
+ int lda = 3;
+ double B[] = { -0.858, -0.559, 0.499, -0.114, 0.57, 0.847 };
+ int ldb = 3;
+ double B_expected[] = { 0.0249996, -0.0404454, 0.0478042, 0.0503489, 0.0381229, 0.0811426 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1718)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.844, 0.205, -0.692, -0.401, -0.823, 0.342, -0.384, 0.344, 0.18 };
+ int lda = 3;
+ double B[] = { 0.823, -0.181, 0.141, 0.932, 0.097, -0.636 };
+ int ldb = 3;
+ double B_expected[] = { 0.0688323, -0.0132778, 0.0141, 0.1391997, -0.0120512, -0.0636 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1719)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.065, 0.678, 0.044, -0.472, 0.932, -0.388, 0.432, -0.167, -0.277 };
+ int lda = 3;
+ double B[] = { 0.675, -0.468, -0.564, 0.71, -0.624, 0.023 };
+ int ldb = 3;
+ double B_expected[] = { 0.0043875, -0.0754776, 0.0525984, 0.004615, -0.0916688, 0.0404557 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1720)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.649, -0.171, -0.462, 0.593, 0.131, -0.317, -0.254, -0.948, 0.002 };
+ int lda = 3;
+ double B[] = { -0.519, -0.501, -0.024, -0.767, -0.591, -0.738 };
+ int ldb = 3;
+ double B_expected[] = { -0.0519, -0.0808767, 0.0582774, -0.0767, -0.1045831, 0.0017086 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1721)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { -0.023, -0.872, -0.313, -0.698, 0.06, -0.838, -0.455, -0.715, -0.257 };
+ int lda = 3;
+ double B[] = { -0.17, -0.184, -0.243, 0.907, -0.423, 0.665 };
+ int ldb = 2;
+ double B_expected[] = { 0.0365989, -0.0931429, 0.0287865, -0.0421055, 0.0108711, -0.0170905 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1722)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.792, 0.338, -0.155, 0.009, 0.485, -0.633, -0.08, -0.579, 0.223 };
+ int lda = 3;
+ double B[] = { -0.19, 0.201, 0.685, 0.663, 0.302, -0.506 };
+ int ldb = 2;
+ double B_expected[] = { -0.0207995, 0.0247447, 0.0510142, 0.0955974, 0.0302, -0.0506 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1723)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { -0.076, 0.103, -0.021, -0.866, 0.777, 0.723, 0.378, 0.98, -0.32 };
+ int lda = 3;
+ double B[] = { 0.739, -0.996, 0.182, 0.626, 0.291, -0.267 };
+ int ldb = 2;
+ double B_expected[] = { -0.0056164, 0.0075696, 0.0217531, 0.0383814, 0.0022947, 0.0558954 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1724)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = 0.1;
+ double A[] = { 0.469, 0.822, -0.619, 0.953, -0.706, 0.318, 0.559, -0.68, -0.208 };
+ int lda = 3;
+ double B[] = { 0.362, 0.719, -0.661, -0.504, 0.595, -0.771 };
+ int ldb = 2;
+ double B_expected[] = { 0.0362, 0.0719, -0.0363436, 0.0087018, 0.0160724, -0.1376333 };
+ cblas_dtrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrmm(case 1725)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.023f, 0.762f, -0.687f, -0.039f, -0.459f, 0.047f, 0.189f, 0.33f };
+ int lda = 2;
+ float B[] = { 0.827f, -0.561f, 0.641f, -0.229f, -0.884f, -0.533f, -0.624f, -0.138f, 0.073f, 0.924f, -0.501f, -0.164f };
+ int ldb = 3;
+ float B_expected[] = { -0.831767f, -0.762219f, -0.14564f, 0.143926f, -0.764269f, 0.529142f, 0.072396f, 0.232002f, 0.291123f, -0.198726f, 0.040569f, 0.196326f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1726) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1726) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.24f, 0.581f, 0.06f, 0.064f, 0.981f, 0.792f, 0.242f, -0.529f };
+ int lda = 2;
+ float B[] = { -0.649f, -0.774f, -0.43f, -0.447f, -0.266f, 0.285f, 0.787f, 0.274f, 0.449f, -0.912f, 0.435f, 0.601f };
+ int ldb = 3;
+ float B_expected[] = { 0.619316f, 0.707192f, 0.344692f, 0.472984f, 0.278364f, -0.3489f, -0.787f, -0.274f, -0.449f, 0.912f, -0.435f, -0.601f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1727) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1727) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.68f, -0.728f, -0.59f, -0.434f, -0.936f, 0.915f, 0.236f, -0.118f };
+ int lda = 2;
+ float B[] = { 0.461f, 0.48f, 0.224f, 0.215f, -0.419f, -0.525f, 0.113f, -0.582f, 0.468f, 0.269f, 0.943f, -0.587f };
+ int ldb = 3;
+ float B_expected[] = { -0.66292f, 0.009208f, -0.30884f, 0.016872f, 0.66712f, 0.051968f, 0.912704f, 0.178151f, 0.264199f, -0.01198f, -1.02584f, 0.141791f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1728) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1728) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.699f, -0.709f, -0.775f, 0.779f, 0.5f, 0.774f, -0.399f, -0.843f };
+ int lda = 2;
+ float B[] = { 0.538f, 0.556f, -0.186f, -0.678f, -0.413f, -0.612f, -0.216f, -0.519f, -0.344f, -0.578f, -0.938f, -0.848f };
+ int ldb = 3;
+ float B_expected[] = { -0.538f, -0.556f, 0.186f, 0.678f, 0.413f, 0.612f, 0.377344f, -0.175412f, -0.087772f, 1.06096f, 0.670812f, 1.47366f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1729) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1729) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.527f, 0.318f, -0.224f, 0.547f, -0.765f, -0.469f, 0.233f, 0.023f };
+ int lda = 2;
+ float B[] = { 0.54f, -0.418f, -0.892f, -0.118f, -0.296f, 0.019f, 0.786f, -0.145f, 0.136f, 0.472f, 0.731f, 0.333f };
+ int ldb = 2;
+ float B_expected[] = { -1.04454f, -0.460052f, 0.205122f, 0.04801f, 0.831329f, 0.341824f, -0.186473f, 0.015707f, 0.481462f, 0.305592f, -0.162664f, -0.094402f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1730) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1730) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.109f, -0.852f, 0.395f, 0.871f, 0.378f, -0.493f, 0.51f, 0.973f };
+ int lda = 2;
+ float B[] = { -0.867f, -0.758f, 0.687f, -0.596f, -0.912f, -0.561f, -0.389f, 0.21f, -0.561f, 0.132f, 0.689f, 0.653f };
+ int ldb = 2;
+ float B_expected[] = { 0.901142f, 1.32198f, -0.687f, 0.596f, 0.955512f, 0.289843f, 0.389f, -0.21f, -0.021371f, -0.039157f, -0.689f, -0.653f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1731) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1731) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.686f, 0.349f, 0.299f, -0.462f, 0.009f, -0.693f, -0.478f, -0.617f };
+ int lda = 2;
+ float B[] = { -0.409f, 0.986f, -0.854f, 0.346f, 0.444f, -0.659f, 0.027f, 0.007f, 0.842f, -0.473f, 0.825f, 0.866f };
+ int ldb = 2;
+ float B_expected[] = { 0.624688f, -0.533655f, -0.954935f, -0.845302f, -0.534575f, 0.297118f, 0.180289f, 0.422174f, -0.742689f, 0.03062f, -0.173204f, 1.4534f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1732) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1732) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.286f, 0.661f, 0.372f, 0.28f, 0.482f, 0.267f, -0.436f, 0.844f };
+ int lda = 2;
+ float B[] = { 0.0f, -0.513f, 0.91f, 0.109f, 0.587f, -0.183f, 0.112f, 0.362f, -0.256f, -0.518f, -0.933f, 0.066f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.513f, -1.05364f, 0.081836f, -0.587f, 0.183f, -0.381604f, -0.458284f, 0.256f, 0.518f, 0.883192f, 0.198376f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1733) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1733) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.678f, 0.717f, 0.228f, 0.001f, -0.16f, -0.387f, -0.281f, -0.002f, 0.623f, 0.162f, -0.594f, 0.632f, 0.566f, 0.352f, -0.411f, 0.574f, 0.314f, -0.139f };
+ int lda = 3;
+ float B[] = { -0.823f, -0.042f, 0.171f, -0.928f, 0.66f, 0.965f, 0.472f, 0.006f, -0.083f, 0.937f, -0.814f, 0.9f };
+ int ldb = 3;
+ float B_expected[] = { 0.52788f, 0.618567f, -0.069267f, 0.560841f, -0.941723f, -1.19579f, -0.315714f, -0.342492f, 0.095893f, -0.572145f, 0.746576f, 0.396912f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1734) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1734) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.346f, 0.915f, -0.227f, -0.066f, -0.166f, -0.921f, -0.373f, 0.312f, -0.824f, 0.699f, -0.114f, -0.152f, 0.862f, -0.077f, 0.221f, -0.757f, -0.413f, -0.494f };
+ int lda = 3;
+ float B[] = { -0.02f, -0.247f, -0.62f, 0.651f, -0.07f, -0.491f, 0.042f, 0.936f, 0.272f, -0.582f, 0.012f, -0.534f };
+ int ldb = 3;
+ float B_expected[] = { 0.02f, 0.247f, 0.631762f, -0.708389f, 0.124535f, 0.411552f, -0.042f, -0.936f, -0.324242f, 0.797244f, -0.747612f, 0.703054f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1735) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1735) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.493f, -0.882f, -0.82f, 0.627f, 0.301f, -0.903f, -0.092f, 0.787f, -0.426f, -0.854f, -0.993f, 0.118f, 0.615f, 0.362f, -0.238f, -0.076f, 0.817f, -0.286f };
+ int lda = 3;
+ float B[] = { 0.395f, 0.074f, -0.191f, -0.548f, 0.858f, 0.323f, -0.734f, 0.612f, 0.895f, 0.849f, 0.811f, 0.402f };
+ int ldb = 3;
+ float B_expected[] = { -0.730125f, -0.024468f, 0.566282f, -0.25448f, -0.793364f, -0.018503f, -0.504384f, -1.51274f, -0.18131f, 1.28332f, -0.777559f, -0.096488f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1736) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1736) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.033f, -0.383f, 0.116f, 0.797f, -0.99f, 0.765f, 0.915f, 0.002f, 0.228f, 0.077f, 0.597f, -0.454f, -0.629f, 0.424f, -0.89f, 0.339f, -0.484f, 0.169f };
+ int lda = 3;
+ float B[] = { -0.377f, -0.451f, -0.464f, -0.673f, 0.231f, -0.712f, -0.457f, -0.588f, 0.373f, -0.754f, -0.468f, 0.433f };
+ int ldb = 3;
+ float B_expected[] = { 0.643625f, 0.521931f, 0.428222f, -0.038989f, -0.231f, 0.712f, 0.003417f, 1.74795f, -0.642733f, 1.29802f, 0.468f, -0.433f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1737) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1737) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.946f, -0.007f, 0.677f, -0.923f, 0.651f, -0.685f, 0.591f, 0.135f, 0.171f, 0.979f, -0.029f, -0.008f, -0.049f, 0.174f, 0.578f, 0.388f, 0.187f, -0.479f };
+ int lda = 3;
+ float B[] = { -0.607f, -0.907f, -0.156f, -0.141f, -0.254f, 0.364f, 0.209f, 0.955f, 0.93f, 0.962f, 0.494f, 0.079f };
+ int ldb = 2;
+ float B_expected[] = { 0.580571f, 0.853773f, 0.148563f, 0.132294f, 0.636082f, 0.804404f, 0.972367f, -0.263525f, -0.534225f, 0.214911f, 0.087341f, -0.390994f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1738) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1738) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.203f, -0.791f, -0.415f, -0.56f, 0.782f, -0.691f, -0.441f, 0.545f, -0.09f, 0.595f, -0.438f, 0.952f, 0.88f, 0.944f, -0.55f, -0.762f, -0.035f, -0.949f };
+ int lda = 3;
+ float B[] = { -0.035f, 0.448f, 0.487f, -0.108f, -0.482f, -0.708f, -0.317f, 0.816f, -0.547f, 0.22f, -0.654f, 0.57f };
+ int ldb = 2;
+ float B_expected[] = { 0.035f, -0.448f, -0.487f, 0.108f, 0.710725f, 0.924643f, 0.472907f, -1.12904f, 1.27511f, -1.33788f, -0.672654f, -0.727442f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1739) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1739) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { -0.09f, 0.742f, 0.081f, 0.459f, -0.54f, 0.04f, 0.574f, -0.858f, 0.704f, 0.686f, -0.9f, -0.519f, 0.538f, -0.934f, 0.467f, 0.376f, 0.149f, 0.322f };
+ int lda = 3;
+ float B[] = { 0.307f, 0.294f, -0.428f, -0.7f, 0.496f, 0.167f, -0.611f, 0.904f, -0.846f, -0.411f, 0.29f, 0.004f };
+ int ldb = 2;
+ float B_expected[] = { -0.191025f, -0.630625f, 0.063267f, 0.452361f, -0.782713f, -1.2668f, 1.30921f, -0.06316f, -0.006288f, 0.333651f, -0.041922f, -0.093976f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1740) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1740) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-1.0f, 0.0f};
+ float A[] = { 0.434f, 0.691f, 0.983f, -0.481f, -0.156f, -0.117f, -0.231f, 0.526f, 0.935f, 0.417f, -0.142f, -0.541f, 0.529f, 0.014f, 0.266f, 0.086f, 0.666f, 0.033f };
+ int lda = 3;
+ float B[] = { 0.972f, -0.219f, -0.735f, -0.967f, 0.084f, -0.355f, -0.152f, -0.156f, 0.267f, 0.928f, 0.708f, -0.267f };
+ int ldb = 2;
+ float B_expected[] = { -0.950741f, 0.784376f, 1.10114f, 1.08842f, -0.548134f, 0.631223f, 0.396983f, 0.501114f, -0.267f, -0.928f, -0.708f, 0.267f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1741) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1741) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.25f, -0.779f, -0.138f, -0.017f, -0.319f, -0.555f, 0.674f, -0.256f };
+ int lda = 2;
+ float B[] = { -0.651f, -0.525f, 0.409f, -0.932f, 0.359f, 0.321f, 0.419f, 0.027f, 0.67f, 0.328f, 0.446f, -0.615f };
+ int ldb = 3;
+ float B_expected[] = { 0.0100296f, -0.216136f, 0.257045f, -0.0571445f, -0.0121016f, 0.124004f, -0.110514f, 0.0386878f, -0.1561f, -0.0050383f, 0.028185f, 0.183634f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1742) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1742) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.012f, 0.978f, 0.617f, -0.361f, -0.349f, 0.712f, 0.008f, 0.305f };
+ int lda = 2;
+ float B[] = { -0.771f, -0.335f, -0.565f, 0.866f, -0.516f, -0.869f, -0.097f, -0.711f, 0.308f, 0.207f, -0.459f, 0.766f };
+ int ldb = 3;
+ float B_expected[] = { 0.2648f, 0.0234f, 0.0829f, -0.3163f, 0.2417f, 0.2091f, 0.272029f, 0.122445f, -0.176135f, -0.256384f, 0.285714f, -0.233939f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1743) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1743) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.063f, -0.605f, 0.473f, 0.763f, 0.548f, -0.167f, -0.825f, 0.011f };
+ int lda = 2;
+ float B[] = { -0.262f, 0.135f, -0.333f, -0.671f, 0.91f, 0.874f, 0.305f, -0.255f, 0.882f, 0.883f, 0.088f, -0.473f };
+ int ldb = 3;
+ float B_expected[] = { -0.0627538f, 0.0344746f, -0.131779f, -0.149516f, -0.0442507f, 0.307921f, 0.053273f, -0.089001f, 0.293086f, 0.141896f, -0.0189002f, -0.124098f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1744) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1744) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.493f, -0.852f, -0.567f, 0.21f, 0.168f, 0.666f, -0.328f, 0.803f };
+ int lda = 2;
+ float B[] = { 0.24f, -0.578f, 0.293f, -0.233f, -0.348f, -0.853f, -0.145f, 0.192f, -0.785f, -0.72f, -0.508f, 0.023f };
+ int ldb = 3;
+ float B_expected[] = { 0.037901f, 0.201471f, -0.104515f, 0.327095f, 0.253345f, 0.311373f, 0.0243f, -0.0721f, 0.3075f, 0.1375f, 0.1501f, -0.0577f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1745) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1745) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.089f, -0.135f, 0.987f, 0.936f, 0.353f, 0.638f, 0.845f, 0.343f };
+ int lda = 2;
+ float B[] = { 0.744f, 0.445f, 0.835f, 0.273f, 0.702f, 0.03f, -0.618f, 0.141f, -0.303f, -0.399f, 0.63f, -0.037f };
+ int ldb = 2;
+ float B_expected[] = { 0.0158468f, 0.0413994f, -0.292082f, -0.285588f, 0.0272724f, 0.0233892f, 0.0660084f, -0.143882f, 0.0004278f, -0.0256146f, -0.19286f, 0.114065f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1746) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1746) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.187f, -0.741f, 0.287f, -0.599f, -0.293f, -0.297f, 0.778f, -0.056f };
+ int lda = 2;
+ float B[] = { -0.335f, -0.713f, 0.081f, -0.589f, -0.256f, -0.809f, -0.473f, 0.418f, 0.646f, -0.447f, -0.147f, 0.314f };
+ int ldb = 2;
+ float B_expected[] = { 0.1718f, 0.1804f, 0.0378414f, 0.0809182f, 0.1577f, 0.2171f, 0.118373f, -0.283147f, -0.1491f, 0.1987f, 0.1154f, -0.122836f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1747) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1747) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.259f, -0.645f, -0.09f, 0.709f, 0.729f, -0.023f, -0.792f, 0.03f };
+ int lda = 2;
+ float B[] = { 0.904f, -0.402f, 0.753f, 0.104f, 0.38f, 0.944f, -0.715f, -0.378f, -0.16f, 0.254f, -0.68f, 0.183f };
+ int ldb = 2;
+ float B_expected[] = { 0.185924f, -0.0771597f, 0.185827f, -0.0420162f, -0.156592f, 0.373034f, -0.201079f, -0.0256158f, 0.0051007f, 0.152025f, -0.143387f, 0.102908f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1748) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1748) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.938f, 0.25f, -0.509f, 0.377f, -0.063f, 0.166f, 0.227f, -0.24f };
+ int lda = 2;
+ float B[] = { 0.756f, -0.08f, -0.657f, -0.837f, -0.714f, 0.781f, 0.239f, -0.953f, 0.26f, 0.696f, -0.183f, 0.668f };
+ int ldb = 2;
+ float B_expected[] = { -0.431623f, 0.111093f, 0.2808f, 0.1854f, 0.007293f, -0.454491f, 0.0236f, 0.3098f, -0.059093f, -0.075968f, -0.0119f, -0.2187f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1749) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1749) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.055f, -0.682f, 0.361f, 0.521f, -0.192f, -0.664f, -0.167f, 0.731f, -0.668f, 0.983f, 0.608f, 0.533f, -0.513f, -0.781f, 0.878f, 0.875f, 0.804f, -0.179f };
+ int lda = 3;
+ float B[] = { -0.038f, -0.787f, -0.209f, -0.686f, -0.073f, -0.662f, 0.938f, -0.301f, -0.871f, 0.699f, 0.561f, 0.823f };
+ int ldb = 3;
+ float B_expected[] = { 0.224558f, -0.0087435f, -0.317863f, 0.168822f, 0.105075f, 0.138035f, 0.256887f, 0.377119f, 0.113231f, 0.136832f, -0.235636f, -0.108546f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1750) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1750) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.397f, -0.154f, -0.944f, -0.137f, 0.65f, -0.49f, -0.883f, 0.273f, -0.137f, 0.655f, 0.531f, 0.676f, 0.052f, 0.03f, -0.602f, 0.002f, 0.005f, 0.984f };
+ int lda = 3;
+ float B[] = { -0.446f, 0.091f, 0.793f, -0.221f, 0.386f, 0.354f, -0.063f, 0.105f, -0.128f, 0.189f, -0.079f, 0.749f };
+ int ldb = 3;
+ float B_expected[] = { 0.216958f, -0.149634f, -0.25039f, 0.0074932f, -0.1512f, -0.0676f, -0.166784f, -0.100965f, 0.14955f, -0.227622f, -0.0512f, -0.2326f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1751) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1751) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.976f, -0.488f, -0.762f, -0.057f, 0.812f, 0.006f, 0.06f, -0.271f, 0.832f, -0.232f, 0.188f, -0.466f, -0.051f, -0.745f, 0.909f, -0.091f, -0.559f, 0.595f };
+ int lda = 3;
+ float B[] = { 0.644f, -0.584f, 0.456f, 0.443f, -0.909f, 0.43f, 0.771f, -0.075f, -0.408f, 0.303f, 0.03f, 0.529f };
+ int ldb = 3;
+ float B_expected[] = { 0.24849f, -0.168067f, -0.114085f, 0.0202884f, 0.0152508f, 0.284926f, 0.267034f, 0.0120048f, 0.0596364f, -0.0643158f, 0.284594f, 0.0837608f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1752) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1752) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.924f, -0.247f, -0.131f, 0.932f, -0.415f, 0.454f, -0.539f, 0.693f, -0.725f, -0.601f, 0.565f, 0.002f, -0.118f, 0.626f, -0.968f, 0.874f, 0.156f, -0.227f };
+ int lda = 3;
+ float B[] = { 0.793f, -0.15f, -0.967f, 0.821f, 0.37f, -0.572f, -0.156f, 0.106f, -0.877f, -0.297f, 0.448f, -0.576f };
+ int ldb = 3;
+ float B_expected[] = { -0.2229f, 0.1243f, 0.242003f, -0.564467f, -0.0068716f, 0.568213f, 0.0362f, -0.0474f, 0.306136f, 0.0520352f, -0.336053f, 0.500406f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1753) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1753) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.671f, 0.477f, 0.227f, 0.685f, -0.648f, 0.277f, -0.295f, -0.632f, 0.509f, -0.798f, 0.875f, 0.89f, -0.34f, -0.786f, -0.453f, 0.511f, -0.189f, 0.385f };
+ int lda = 3;
+ float B[] = { -0.895f, -0.148f, 0.934f, 0.229f, 0.958f, -0.55f, 0.49f, 0.586f, -0.871f, 0.618f, -0.0f, -0.543f };
+ int ldb = 2;
+ float B_expected[] = { 0.162976f, 0.110656f, -0.12507f, -0.0587256f, 0.138701f, 0.543589f, -0.313677f, 0.0534812f, 0.067207f, 0.12831f, -0.0729792f, -0.0098826f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1754) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1754) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.438f, -0.618f, 0.524f, 0.525f, -0.268f, -0.502f, -0.685f, 0.28f, 0.508f, 0.664f, -0.492f, 0.772f, -0.997f, 0.693f, 0.63f, -0.328f, -0.521f, -0.869f };
+ int lda = 3;
+ float B[] = { 0.527f, 0.999f, -0.078f, 0.599f, 0.004f, -0.615f, -0.281f, -0.328f, 0.456f, -0.666f, 0.309f, -0.69f };
+ int ldb = 2;
+ float B_expected[] = { -0.45115f, -0.650085f, -0.277633f, -0.456478f, 0.0965652f, 0.362528f, 0.1802f, 0.227951f, -0.0702f, 0.2454f, -0.0237f, 0.2379f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1755) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1755) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.454f, 0.517f, -0.794f, -0.181f, 0.292f, 0.954f, -0.93f, -0.128f, 0.123f, -0.997f, 0.325f, -0.317f, -0.988f, 0.732f, 0.637f, 0.457f, -0.665f, 0.529f };
+ int lda = 3;
+ float B[] = { -0.055f, 0.803f, -0.981f, -0.627f, 0.147f, -0.656f, -0.824f, -0.366f, -0.445f, -0.151f, 0.686f, -0.368f };
+ int ldb = 2;
+ float B_expected[] = { 0.156354f, 0.078881f, -0.208608f, 0.143709f, 0.219569f, 0.211768f, -0.204943f, -0.415655f, 0.191227f, 0.0071854f, 0.136999f, 0.0773624f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1756) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1756) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.623f, -0.129f, -0.419f, -0.006f, 0.21f, -0.165f, 0.218f, 0.915f, 0.736f, 0.07f, 0.502f, -0.809f, 0.242f, -0.015f, 0.67f, -0.956f, 0.153f, 0.365f };
+ int lda = 3;
+ float B[] = { -0.927f, 0.383f, -0.471f, 0.443f, -0.731f, -0.949f, -0.142f, -0.65f, 0.159f, -0.624f, -0.822f, 0.107f };
+ int ldb = 2;
+ float B_expected[] = { 0.2398f, -0.2076f, 0.097f, -0.18f, 0.212478f, 0.297146f, 0.065877f, 0.255638f, 0.359717f, -0.0280276f, 0.426852f, -0.164392f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1757) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1757) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.628f, -0.771f, 0.827f, -0.979f, 0.395f, -0.166f, 0.88f, 0.958f };
+ int lda = 2;
+ float B[] = { 0.297f, 0.49f, 0.425f, -0.386f, 0.672f, 0.992f, -0.077f, 0.761f, 0.393f, -0.605f, -0.273f, 0.725f };
+ int ldb = 3;
+ float B_expected[] = { 0.177165f, -0.0328107f, -0.0662201f, -0.167954f, 0.366541f, -0.0872256f, -0.2721f, -0.389113f, -0.0674816f, 0.293174f, -0.249446f, -0.709453f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1758) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1758) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.876f, 0.752f, -0.148f, 0.972f, -0.508f, -0.752f, -0.861f, 0.074f };
+ int lda = 2;
+ float B[] = { 0.878f, -0.987f, -0.896f, 0.519f, -0.355f, -0.117f, 0.329f, 0.068f, -0.644f, 0.344f, -0.187f, -0.343f };
+ int ldb = 3;
+ float B_expected[] = { -0.1647f, 0.3839f, 0.2169f, -0.2453f, 0.1182f, -0.0004f, 0.292026f, 0.115771f, -0.111733f, -0.342122f, 0.0725176f, -0.0306312f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1759) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1759) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.072f, -0.966f, 0.648f, 0.43f, -0.623f, -0.221f, -0.622f, 0.977f };
+ int lda = 2;
+ float B[] = { 0.0f, 0.028f, 0.857f, -0.171f, -0.933f, 0.159f, 0.315f, -0.297f, -0.864f, 0.519f, -0.601f, -0.119f };
+ int ldb = 3;
+ float B_expected[] = { 0.0216306f, -0.0927642f, -0.225266f, -0.0253344f, 0.0408658f, 0.302549f, 0.158132f, -0.0117036f, -0.365472f, -0.0519459f, -0.143387f, -0.172603f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1760) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1760) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.903f, -0.972f, -0.812f, 0.605f, 0.085f, -0.025f, -0.443f, 0.518f };
+ int lda = 2;
+ float B[] = { -0.725f, -0.451f, 0.779f, 0.969f, 0.25f, 0.021f, 0.029f, -0.382f, 0.022f, 0.957f, 0.704f, 0.832f };
+ int ldb = 3;
+ float B_expected[] = { 0.26217f, 0.073525f, -0.332173f, -0.239574f, -0.097644f, -0.003892f, 0.0295f, 0.1175f, -0.1023f, -0.2849f, -0.2944f, -0.1792f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1761) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1761) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.322f, -0.981f, 0.193f, -0.604f, 0.87f, -0.384f, 0.463f, -0.502f };
+ int lda = 2;
+ float B[] = { -0.447f, 0.21f, 0.928f, -0.496f, 0.889f, -0.354f, -0.258f, -0.149f, 0.98f, -0.958f, 0.106f, -0.579f };
+ int ldb = 2;
+ float B_expected[] = { 0.0692355f, 0.14563f, -0.0874638f, -0.0532654f, -0.116915f, -0.289728f, -0.242902f, 0.136003f, -0.314257f, -0.318533f, -0.400862f, 0.357622f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1762) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1762) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.924f, -0.553f, 0.985f, -0.793f, 0.406f, 0.741f, -0.956f, 0.945f };
+ int lda = 2;
+ float B[] = { 0.736f, -0.81f, 0.028f, 0.474f, 0.14f, -0.03f, -0.756f, 0.923f, -0.515f, 0.532f, -0.321f, 0.326f };
+ int ldb = 2;
+ float B_expected[] = { -0.1398f, 0.3166f, 0.122042f, 0.0927314f, -0.039f, 0.023f, 0.135709f, -0.314263f, 0.1013f, -0.2111f, -0.0515973f, -0.29067f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1763) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1763) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.04f, -0.41f, -0.643f, 0.988f, 0.86f, -0.281f, -0.017f, 0.389f };
+ int lda = 2;
+ float B[] = { 0.204f, 0.524f, -0.558f, -0.736f, 0.26f, -0.202f, -0.757f, 0.346f, 0.917f, 0.541f, -0.108f, -0.965f };
+ int ldb = 2;
+ float B_expected[] = { 0.059601f, -0.396251f, 0.060088f, -0.096554f, -0.338942f, -0.0950055f, -0.073098f, -0.071831f, 0.208251f, -0.444353f, 0.106223f, -0.05488f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1764) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1764) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.375f, 0.153f, -0.343f, -0.742f, 0.563f, 0.473f, 0.451f, -0.433f };
+ int lda = 2;
+ float B[] = { -0.804f, -0.016f, -0.715f, -0.902f, -0.89f, 0.155f, -0.408f, 0.419f, 0.078f, -0.691f, -0.717f, -0.637f };
+ int ldb = 2;
+ float B_expected[] = { -0.0094443f, 0.0821961f, 0.3047f, 0.1991f, 0.347432f, -0.0186595f, 0.0805f, -0.1665f, -0.138523f, 0.381015f, 0.2788f, 0.1194f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1765) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1765) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.867f, -0.597f, -0.577f, 0.735f, 0.827f, -0.104f, -0.861f, -0.802f, -0.288f, 0.293f, 0.593f, 0.228f, -0.469f, 0.942f, 0.193f, 0.591f, 0.241f, 0.382f };
+ int lda = 3;
+ float B[] = { -0.812f, -0.874f, -0.18f, -0.81f, 0.023f, 0.352f, 0.559f, 0.237f, -0.835f, 0.037f, -0.762f, 0.782f };
+ int ldb = 3;
+ float B_expected[] = { -0.331628f, -0.278177f, -0.0214727f, -0.156013f, -0.0496067f, -0.0088131f, 0.119788f, -0.469291f, -0.0804714f, -0.263663f, -0.0824792f, -0.132356f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1766) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1766) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.258f, -0.812f, -0.858f, -0.107f, -0.151f, 0.785f, 0.717f, 0.992f, -0.649f, -0.242f, -0.454f, 0.916f, 0.86f, 0.834f, -0.244f, 0.391f, 0.818f, -0.714f };
+ int lda = 3;
+ float B[] = { 0.163f, 0.441f, 0.54f, 0.679f, 0.071f, -0.76f, 0.345f, -0.956f, 0.654f, -0.217f, -0.892f, 0.106f };
+ int ldb = 3;
+ float B_expected[] = { 0.296566f, -0.0905963f, -0.0393822f, -0.306541f, 0.0547f, 0.2351f, -0.0059345f, 0.0071855f, -0.402014f, -0.049978f, 0.257f, -0.121f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1767) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1767) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.525f, 0.182f, 0.851f, -0.348f, -0.046f, 0.839f, -0.045f, -0.149f, -0.992f, 0.588f, -0.01f, -0.409f, 0.527f, 0.263f, -0.509f, -0.026f, 0.284f, 0.507f };
+ int lda = 3;
+ float B[] = { 0.909f, 0.216f, 0.38f, 0.198f, -0.412f, -0.102f, -0.456f, 0.079f, 0.504f, -0.782f, -0.88f, 0.079f };
+ int ldb = 3;
+ float B_expected[] = { -0.149757f, 0.0672651f, 0.129501f, 0.054878f, -0.0469462f, 0.0277224f, 0.0550599f, -0.0598423f, 0.244521f, -0.217471f, 0.0955519f, -0.37895f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1768) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1768) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.893f, -0.758f, 0.145f, 0.623f, -0.018f, -0.733f, -0.144f, -0.192f, 0.53f, 0.773f, -0.771f, 0.36f, 0.932f, -0.771f, 0.997f, -0.671f, 0.574f, -0.771f };
+ int lda = 3;
+ float B[] = { 0.592f, 0.985f, -0.62f, -0.095f, -0.344f, -0.607f, 0.759f, 0.085f, -0.609f, 0.068f, -0.084f, -0.575f };
+ int ldb = 3;
+ float B_expected[] = { -0.2761f, -0.2363f, 0.280628f, -0.052484f, 0.306154f, -0.187624f, -0.2362f, 0.0504f, 0.200236f, -0.133908f, 0.0536278f, 0.0659354f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1769) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1769) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.503f, -0.057f, -0.581f, -0.77f, -0.907f, -0.843f, 0.56f, -0.554f, 0.054f, 0.988f, 0.868f, -0.627f, 0.645f, -0.246f, -0.958f, 0.66f, 0.956f, 0.99f };
+ int lda = 3;
+ float B[] = { 0.282f, -0.442f, 0.564f, -0.691f, -0.743f, 0.113f, -0.395f, 0.312f, -0.167f, -0.568f, 0.508f, 0.912f };
+ int ldb = 2;
+ float B_expected[] = { 0.180092f, 0.260648f, -0.045069f, -0.102868f, -0.0964434f, -0.432702f, -0.0404678f, 0.280779f, 0.254359f, 0.0411062f, -0.453454f, 0.0281672f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1770) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1770) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { -0.851f, 0.296f, -0.683f, -0.53f, 0.38f, -0.837f, 0.977f, 0.189f, -0.624f, -0.664f, 0.73f, -0.882f, 0.105f, -0.868f, 0.362f, -0.006f, -0.435f, 0.757f };
+ int lda = 3;
+ float B[] = { -0.259f, -0.091f, 0.606f, -0.983f, -0.238f, 0.057f, 0.358f, 0.18f, -0.71f, 0.058f, 0.511f, 0.717f };
+ int ldb = 2;
+ float B_expected[] = { 0.241746f, 0.119591f, -0.0907286f, 0.148899f, 0.141237f, -0.0716576f, -0.205866f, -0.078918f, 0.2072f, -0.0884f, -0.225f, -0.164f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1771) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1771) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.956f, 0.972f, 0.771f, 0.187f, 0.948f, 0.303f, -0.854f, 0.123f, 0.704f, 0.152f, 0.347f, 0.595f, -0.865f, 0.75f, -0.041f, -0.572f, 0.749f, 0.216f };
+ int lda = 3;
+ float B[] = { -0.821f, -0.098f, 0.347f, -0.639f, 0.314f, -0.009f, -0.725f, 0.45f, 0.536f, 0.801f, 0.431f, 0.936f };
+ int ldb = 2;
+ float B_expected[] = { 0.193607f, -0.29931f, 0.18163f, 0.255513f, 0.127098f, -0.0503344f, 0.101243f, 0.0097718f, -0.0060322f, -0.148016f, -0.251411f, -0.0777231f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1772) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1772) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {-0.3f, 0.1f};
+ float A[] = { 0.78f, -0.205f, 0.073f, -0.859f, 0.568f, -0.599f, -0.947f, -0.514f, 0.835f, 0.176f, 0.27f, -0.617f, 0.171f, -0.074f, 0.939f, -0.469f, -0.471f, 0.25f };
+ int lda = 3;
+ float B[] = { -0.279f, 0.16f, -0.495f, 0.658f, 0.071f, 0.557f, -0.116f, 0.095f, -0.104f, 0.503f, -0.775f, -0.03f };
+ int ldb = 2;
+ float B_expected[] = { 0.0677f, -0.0759f, 0.0827f, -0.2469f, -0.0068598f, -0.107386f, 0.243424f, 0.0129156f, 0.142748f, -0.254568f, 0.461939f, -0.154419f };
+ cblas_ctrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrmm(case 1773) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrmm(case 1773) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.463, 0.033, -0.929, 0.949, 0.864, 0.986, 0.393, 0.885 };
+ int lda = 2;
+ double B[] = { -0.321, -0.852, -0.337, -0.175, 0.607, -0.613, 0.688, 0.973, -0.331, -0.35, 0.719, -0.553 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1774) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1774) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.608, -0.393, 0.921, 0.282, -0.857, -0.286, -0.31, -0.057 };
+ int lda = 2;
+ double B[] = { -0.548, 0.728, 0.391, -0.506, 0.186, 0.97, -0.435, 0.375, -0.995, -0.496, 0.99, 0.186 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1775) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1775) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.253, 0.969, 0.654, -0.016, -0.774, -0.11, -0.101, -0.287 };
+ int lda = 2;
+ double B[] = { -0.34, -0.268, -0.52, 0.021, -0.875, 0.98, 0.255, 0.564, -0.478, -0.818, -0.043, 0.224 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1776) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1776) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.64, -0.222, 0.922, 0.417, -0.724, 0.012, 0.418, 0.39 };
+ int lda = 2;
+ double B[] = { 0.619, -0.024, -0.068, 0.219, 0.374, -0.937, 0.79, 0.166, -0.92, 0.753, -0.017, 0.076 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1777) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1777) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.57, 0.987, 0.116, -0.691, -0.603, -0.778, 0.14, -0.073 };
+ int lda = 2;
+ double B[] = { 0.421, -0.055, 0.92, 0.664, 0.835, 0.861, -0.392, -0.897, -0.346, 0.516, -0.068, -0.156 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1778) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1778) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.754, 0.904, 0.089, 0.206, 0.974, -0.946, -0.55, -0.675 };
+ int lda = 2;
+ double B[] = { -0.42, -0.372, 0.628, 0.148, 0.344, -0.924, -0.802, -0.307, 0.427, 0.116, 0.916, -0.384 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1779) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1779) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.152, -0.898, -0.024, 0.719, 0.992, -0.841, 0.901, 0.202 };
+ int lda = 2;
+ double B[] = { 0.243, -0.811, 0.68, 0.118, 0.946, -0.632, 0.729, -0.942, 0.308, 0.507, -0.838, 0.594 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1780) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1780) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.119, -0.849, 0.425, -0.273, -0.918, 0.196, -0.871, -0.39 };
+ int lda = 2;
+ double B[] = { 0.709, 0.33, -0.207, 0.012, -0.017, 0.787, -0.385, 0.739, -0.874, 0.188, -0.039, 0.692 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1781) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1781) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.837, -0.603, 0.755, -0.92, 0.892, -0.009, -0.741, 0.271, -0.325, -0.861, 0.902, -0.088, 0.091, 0.256, 0.209, -0.724, 0.28, -0.604 };
+ int lda = 3;
+ double B[] = { 0.455, -0.215, -0.668, 0.917, -0.985, 0.477, 0.564, -0.524, -0.202, -0.53, -0.88, -0.688 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1782) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1782) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.991, 0.253, 0.813, 0.497, -0.268, 0.623, 0.82, -0.946, -0.883, 0.333, -0.265, -0.371, 0.131, -0.812, -0.365, 0.45, 0.929, -0.704 };
+ int lda = 3;
+ double B[] = { 0.783, -0.756, 0.635, 0.56, 0.434, -0.831, -0.34, -0.531, -0.277, 0.874, 0.986, 0.157 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1783) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1783) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.265, -0.592, -0.721, -0.838, -0.952, 0.115, -0.34, -0.789, -0.265, -0.779, -0.676, 0.048, 0.78, -0.272, -0.651, 0.272, 0.8, -0.693 };
+ int lda = 3;
+ double B[] = { -0.609, 0.028, -0.818, 0.289, -0.41, -0.25, -0.917, 0.463, 0.942, 0.692, -0.516, 0.378 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1784) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1784) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.962, 0.945, -0.58, -0.358, -0.769, 0.751, -0.068, -0.321, 0.938, 0.183, -0.17, 0.251, -0.248, -0.092, -0.818, 0.928, -0.059, -0.222 };
+ int lda = 3;
+ double B[] = { 0.015, -0.852, -0.565, 0.16, -0.095, 0.073, 0.405, 0.509, 0.082, -0.478, -0.365, 0.824 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1785) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1785) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.616, 0.669, 0.323, -0.238, 0.153, 0.891, -0.4, 0.996, 0.689, -0.736, -0.259, -0.707, 0.993, 0.13, -0.829, -0.564, -0.09, 0.118 };
+ int lda = 3;
+ double B[] = { 0.113, 0.724, 0.148, -0.309, -0.833, -0.791, 0.354, -0.528, 0.313, 0.421, 0.28, 0.371 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1786) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1786) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.957, -0.713, 0.976, 0.183, -0.145, -0.858, -0.497, -0.605, -0.742, 0.686, 0.272, 0.83, -0.606, -0.099, -0.807, 0.767, 0.254, 0.244 };
+ int lda = 3;
+ double B[] = { -0.124, -0.19, 0.665, -0.74, 0.505, -0.194, 0.588, -0.421, -0.727, 0.308, -0.802, -0.278 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1787) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1787) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.649, 0.856, 0.969, 0.382, 0.963, 0.567, 0.599, 0.018, -0.924, 0.578, -0.531, -0.091, -0.454, -0.834, 0.97, -0.126, -0.859, 0.879 };
+ int lda = 3;
+ double B[] = { 0.35, 0.824, -0.084, 0.662, -0.752, 0.872, 0.129, 0.969, -0.539, 0.907, 0.316, -0.675 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1788) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1788) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.315, -0.459, 0.327, -0.132, -0.283, 0.173, -0.356, -0.427, 0.508, 0.347, -0.804, -0.849, 0.779, 0.673, 0.019, -0.869, 0.999, -0.338 };
+ int lda = 3;
+ double B[] = { 0.678, -0.171, 0.136, -0.268, -0.578, -0.431, 0.978, -0.749, 0.333, -0.757, 0.658, 0.456 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1789) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1789) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.532, -0.877, 0.308, -0.807, 0.013, 0.891, 0.077, -0.004 };
+ int lda = 2;
+ double B[] = { 0.634, -0.969, 0.228, -0.097, 0.419, 0.903, 0.21, 0.313, -0.819, -0.028, 0.574, -0.762 };
+ int ldb = 3;
+ double B_expected[] = { 0.004051, -0.1187101, 0.0148352, -0.0206365, 0.0847859, 0.0569023, 0.0786829, -0.0569289, 0.0212752, -0.007123, 0.0120979, 0.0898923 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1790) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1790) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.77, -0.037, -0.021, -0.831, -0.663, -0.241, -0.273, -0.023 };
+ int lda = 2;
+ double B[] = { 0.354, -0.95, -0.944, -0.497, 0.741, 0.084, -0.3, 0.023, -0.056, 0.063, -0.117, -0.498 };
+ int ldb = 3;
+ double B_expected[] = { 0.095, 0.0354, 0.0497, -0.0944, -0.0084, 0.0741, 0.0251224, -0.1096884, -0.0857901, -0.0449183, 0.1115535, -0.0062757 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1791) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1791) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.623, 0.379, 0.903, -0.378, -0.088, 0.24, -0.964, 0.558 };
+ int lda = 2;
+ double B[] = { -0.137, 0.706, 0.457, 0.399, -0.69, -0.7, 0.34, 0.479, 0.539, -0.133, 0.876, -0.347 };
+ int ldb = 3;
+ double B_expected[] = { 0.0452313, -0.0327103, -0.006569, -0.0451444, -0.0415366, 0.0701362, 0.0272036, -0.0595042, -0.0428974, -0.0445382, -0.0823316, -0.0650838 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1792) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1792) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.253, 0.657, 0.636, 0.827, -0.107, 0.353, 0.425, -0.365 };
+ int lda = 2;
+ double B[] = { -0.402, -0.409, 0.421, -0.333, -0.771, -0.099, 0.697, -0.812, -0.653, 0.823, 0.994, 0.998 };
+ int ldb = 3;
+ double B_expected[] = { 0.0076075, -0.0189943, 0.065157, 0.0200352, -0.0145096, -0.1229652, 0.0812, 0.0697, -0.0823, -0.0653, -0.0998, 0.0994 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1793) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1793) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.57, -0.805, -0.66, -0.421, 0.643, -0.534, -0.988, -0.581 };
+ int lda = 2;
+ double B[] = { -0.279, -0.253, 0.976, -0.051, 0.294, 0.451, 0.187, -0.177, 0.31, -0.714, -0.104, -0.177 };
+ int ldb = 2;
+ double B_expected[] = { -0.0368805, -0.0044635, 0.0530361, -0.1308418, 0.049374, 0.0195475, -0.0199226, 0.0142283, -0.015743, -0.075147, 0.0389342, -0.0182031 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1794) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1794) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.594, 0.273, 0.457, 0.295, 0.434, -0.227, -0.662, 0.623 };
+ int lda = 2;
+ double B[] = { -0.582, -0.581, 0.259, -0.833, -0.864, -0.284, 0.965, -0.459, -0.539, -0.551, -0.969, 0.09 };
+ int ldb = 2;
+ double B_expected[] = { 0.0581, -0.0582, 0.095304, -0.0125475, 0.0284, -0.0864, 0.0386128, 0.0525556, 0.0551, -0.0539, 0.0026781, -0.1328003 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1795) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1795) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.398, 0.323, 0.31, 0.718, 0.181, 0.665, 0.402, 0.317 };
+ int lda = 2;
+ double B[] = { 0.812, -0.244, -0.415, 0.602, 0.901, -0.017, 0.786, -0.119, 0.448, -0.75, 0.851, 0.172 };
+ int ldb = 2;
+ double B_expected[] = { -0.0053814, -0.0158898, -0.0110449, -0.0357664, -0.0811715, 0.0693191, -0.0201324, 0.0353695, -0.0510542, 0.0560868, -0.0338911, 0.0287578 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1796) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1796) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.265, -0.578, 0.218, -0.093, -0.172, 0.414, 0.448, 0.696 };
+ int lda = 2;
+ double B[] = { 0.02, -0.254, 0.152, 0.304, 0.289, 0.247, 0.705, 0.419, -0.735, 0.788, -0.942, -0.71 };
+ int ldb = 2;
+ double B_expected[] = { 0.0201864, 0.0081408, -0.0304, 0.0152, -0.0272777, 0.0481657, -0.0419, 0.0705, -0.0720826, -0.1006386, 0.071, -0.0942 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1797) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1797) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.971, 0.532, 0.175, 0.455, 0.191, 0.493, 0.882, -0.944, 0.358, 0.142, -0.065, 0.632, -0.319, -0.101, 0.578, 0.476, -0.773, 0.912 };
+ int lda = 3;
+ double B[] = { 0.018, -0.131, 0.964, -0.467, -0.729, -0.794, 0.874, 0.361, 0.744, -0.958, 0.162, 0.555 };
+ int ldb = 3;
+ double B_expected[] = { 0.0271781, 0.0720558, 0.0439416, 0.0960619, 0.0051086, 0.1287645, -0.117224, 0.0980019, 0.0171007, 0.0041098, 0.0281271, -0.0631386 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1798) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1798) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.506, -0.263, -0.994, 0.681, 0.889, -0.5, -0.912, 0.741, -0.329, -0.912, 0.332, -0.001, -0.484, 0.942, -0.728, -0.104, -0.216, 0.679 };
+ int lda = 3;
+ double B[] = { 0.562, -0.354, 0.742, -0.177, -0.627, -0.762, 0.476, 0.758, 0.675, -0.504, -0.33, 0.186 };
+ int ldb = 3;
+ double B_expected[] = { 0.0036678, -0.0993414, 0.0429357, 0.0533074, 0.0762, -0.0627, -0.2049005, -0.0052096, 0.0441918, 0.0565626, -0.0186, -0.033 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1799) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1799) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.341, -0.27, 0.001, 0.939, 0.714, 0.803, -0.508, -0.331, -0.563, -0.725, -0.902, -0.793, 0.461, 0.127, -0.597, -0.498, 0.394, -0.019 };
+ int lda = 3;
+ double B[] = { 0.015, 0.803, 0.497, 0.667, 0.803, 0.775, 0.026, 0.908, 0.535, -0.111, 0.379, -0.036 };
+ int ldb = 3;
+ double B_expected[] = { 0.0277873, 0.0211695, 0.1148735, 0.0461937, -0.0016476, 0.0271498, 0.0316648, 0.0236294, 0.0795252, -0.009434, -0.0200342, -0.0329361 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1800) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1800) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.132, 0.903, -0.235, -0.294, -0.09, 0.74, -0.707, -0.855, 0.632, 0.543, -0.558, -0.416, -0.99, -0.088, -0.189, -0.371, -0.844, -0.737 };
+ int lda = 3;
+ double B[] = { -0.257, 0.159, 0.689, 0.785, 0.398, -0.128, -0.098, -0.735, -0.307, 0.032, 0.517, 0.049 };
+ int ldb = 3;
+ double B_expected[] = { -0.0159, -0.0257, -0.0892322, 0.1006644, 0.0666778, 0.0827436, 0.0735, -0.0098, -0.0635435, -0.0866139, -0.0893123, 0.0619235 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1801) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1801) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.993, 0.709, 0.225, -0.704, -0.396, 0.656, -0.588, -0.085, -0.024, 0.264, -0.988, -0.67, 0.665, -0.165, -0.778, -0.43, 0.71, -0.35 };
+ int lda = 3;
+ double B[] = { 0.321, 0.614, 0.058, 0.983, 0.153, -0.647, 0.342, -0.518, -0.071, -0.533, -0.424, 0.283 };
+ int ldb = 2;
+ double B_expected[] = { -0.0861992, -0.0396692, -0.155091, -0.1119744, -0.0501124, -0.0006816, -0.0064866, 0.0580106, 0.035358, -0.023696, -0.034933, -0.020199 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1802) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1802) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.034, -0.02, -0.401, -0.892, 0.329, -0.799, -0.018, 0.564, 0.095, 0.965, -0.105, 0.756, -0.583, -0.706, -0.436, -0.145, 0.921, 0.416 };
+ int lda = 3;
+ double B[] = { 0.972, 0.157, -0.029, 0.674, 0.914, 0.434, 0.132, -0.116, -0.907, 0.316, -0.423, 0.321 };
+ int ldb = 2;
+ double B_expected[] = { -0.1120798, 0.1462649, -0.0862031, 0.0507283, -0.0427739, 0.1355272, 0.0194621, 0.0362973, -0.0316, -0.0907, -0.0321, -0.0423 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1803) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1803) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.195, -0.36, 0.834, -0.505, -0.87, -0.787, 0.997, 0.965, -0.046, -0.591, 0.082, 0.552, 0.414, -0.013, -0.048, -0.766, 0.728, 0.088 };
+ int lda = 3;
+ double B[] = { -0.916, -0.162, -0.863, 0.67, -0.079, -0.27, -0.191, 0.995, 0.981, -0.25, -0.149, 0.248 };
+ int ldb = 2;
+ double B_expected[] = { -0.036135, 0.01203, -0.018003, 0.0409485, -0.0386581, -0.100169, -0.1061706, 0.0215439, -0.0700412, 0.1548156, -0.0239871, 0.0582902 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1804) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1804) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.553, -0.63, -0.079, 0.351, 0.865, -0.062, 0.165, -0.634, -0.513, 0.216, -0.521, 0.349, 0.54, 0.545, -0.719, -0.306, 0.501, 0.757 };
+ int lda = 3;
+ double B[] = { -0.311, 0.088, -0.328, 0.977, 0.659, -0.06, -0.276, 0.872, -0.734, -0.01, -0.668, -0.327 };
+ int ldb = 2;
+ double B_expected[] = { -0.0088, -0.0311, -0.0977, -0.0328, 0.0176113, 0.0652681, -0.0679689, -0.0593015, -0.0346653, -0.1319958, 0.0012195, -0.1051678 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1805) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1805) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.993, -0.018, 0.162, -0.222, 0.188, 0.672, -0.675, -0.345 };
+ int lda = 2;
+ double B[] = { 0.476, -0.009, 0.725, -0.925, -0.245, 0.308, 0.515, 0.1, -0.072, -0.757, 0.212, 0.571 };
+ int ldb = 3;
+ double B_expected[] = { 0.000369, 0.47283, 0.905475, 0.736575, -0.301434, -0.248829, -0.214389, -0.303015, -0.497235, 0.632565, 0.316779, -0.448161 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1806) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1806) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { -0.78, 0.346, -0.663, -0.86, -0.496, -0.154, 0.356, 0.228 };
+ int lda = 2;
+ double B[] = { 0.578, 0.492, 0.775, 0.353, 0.198, -0.519, -0.52, -0.677, -0.438, 0.313, 0.941, -0.56 };
+ int ldb = 3;
+ double B_expected[] = { -0.492, 0.578, -0.353, 0.775, 0.519, 0.198, 0.506116, -1.326334, -0.745461, -1.255405, 0.045623, 1.256066 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1807) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1807) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.455, 0.442, 0.062, 0.815, 0.03, 0.55, 0.592, -0.487 };
+ int lda = 2;
+ double B[] = { -0.451, 0.01, 0.174, -0.775, 0.22, -0.644, 0.858, -0.004, 0.59, -0.395, -0.943, 0.824 };
+ int ldb = 3;
+ double B_expected[] = { 0.268128, -0.177245, 0.765883, -0.46293, -0.15311, 0.240362, -0.415478, 0.509884, -0.05349, 0.541645, -0.028567, -0.959544 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1808) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1808) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { -0.268, -0.886, -0.805, 0.875, 0.481, 0.095, -0.057, 0.605 };
+ int lda = 2;
+ double B[] = { 0.708, -0.638, 0.408, -0.512, 0.175, 0.181, -0.919, -0.126, 0.708, -0.51, 0.212, 0.114 };
+ int ldb = 3;
+ double B_expected[] = { 0.611301, 0.253991, 0.82457, 0.700098, -0.215694, 0.287802, 0.126, -0.919, 0.51, 0.708, -0.114, 0.212 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1809) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1809) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.881, 0.555, 0.774, 0.148, -0.915, 0.336, 0.103, 0.381 };
+ int lda = 2;
+ double B[] = { 0.163, 0.963, -0.017, 0.921, 0.809, 0.846, 0.905, -0.43, 0.894, -0.371, -0.988, -0.487 };
+ int ldb = 2;
+ double B_expected[] = { -0.757938, 0.678068, 0.834573, 0.523573, -0.296331, 1.182259, 1.435009, -0.526594, 0.823021, 0.581709, -0.365348, -1.229977 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1810) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1810) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.719, -0.513, 0.169, -0.524, 0.352, 0.823, -0.741, -0.355 };
+ int lda = 2;
+ double B[] = { 0.717, 0.052, -0.777, 0.277, -0.962, 0.894, 0.905, -0.216, -0.707, 0.016, 0.481, 0.935 };
+ int ldb = 2;
+ double B_expected[] = { -0.052, 0.717, 0.294787, -0.48182, -0.894, -0.962, -0.890414, 1.302138, -0.016, -0.707, -1.522493, 0.245304 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1811) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1811) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.501, -0.136, -0.502, 0.669, -0.498, -0.4, -0.518, 0.833 };
+ int lda = 2;
+ double B[] = { -0.385, 0.88, 0.726, 0.911, 0.839, 0.573, -0.881, -0.517, -0.861, -0.278, 0.941, 0.822 };
+ int ldb = 2;
+ double B_expected[] = { 0.554496, -0.067558, 1.076656, 0.382795, -1.2501, 0.4388, -1.001679, 0.025697, 1.298547, -0.316017, 1.209649, 0.197288 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1812) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1812) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.049, 0.641, -0.9, 0.246, -0.734, -0.686, 0.76, -0.869 };
+ int lda = 2;
+ double B[] = { -0.37, 0.206, -0.731, -0.573, 0.638, -0.417, -0.29, -0.719, 0.107, -0.333, 0.556, 0.124 };
+ int ldb = 2;
+ double B_expected[] = { -0.901526, 0.146942, 0.573, -0.731, -0.30144, 0.722126, 0.719, -0.29, 0.581376, -0.362896, -0.124, 0.556 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1813) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1813) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.553, 0.338, 0.229, -0.828, -0.594, -0.036, -0.335, -0.249, 0.083, -0.197, 0.995, 0.85, -0.988, 0.596, -0.254, 0.179, 0.441, -0.859 };
+ int lda = 3;
+ double B[] = { -0.058, -0.225, 0.884, 0.348, 0.123, -0.151, 0.891, 0.711, -0.792, 0.552, 0.033, -0.178 };
+ int ldb = 3;
+ double B_expected[] = { -0.800945, -0.261458, 0.051763, -0.001149, -0.039066, 0.183952, 0.330423, 0.081423, 0.315368, -0.292945, 0.050151, 0.167455 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1814) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1814) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { -0.257, -0.565, -0.123, 0.129, 0.817, -0.516, -0.613, -0.42, -0.494, 0.122, -0.593, -0.972, -0.695, -0.968, 0.848, -0.2, -0.17, 0.436 };
+ int lda = 3;
+ double B[] = { -0.274, 0.105, -0.899, -0.33, -0.318, -0.096, -0.237, 0.327, 0.046, 0.584, -0.459, -0.182 };
+ int ldb = 3;
+ double B_expected[] = { -0.019041, -0.416263, 0.582168, -0.617114, 0.096, -0.318, 0.136304, -0.448413, -0.245778, 0.495091, 0.182, -0.459 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1815) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1815) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { -0.127, 0.025, 0.036, 0.612, 0.773, 0.953, 0.074, -0.006, 0.373, 0.292, -0.052, -0.319, -0.878, -0.401, 0.486, -0.493, -0.316, 0.003 };
+ int lda = 3;
+ double B[] = { 0.794, -0.666, -0.406, 0.622, -0.512, -0.761, 0.161, -0.137, -0.626, 0.408, 0.536, 0.66 };
+ int ldb = 3;
+ double B_expected[] = { -0.064732, -0.117488, -0.306038, 0.092938, -1.247288, -0.774519, -0.013374, -0.023872, -0.325804, -0.101626, 0.135651, -0.759197 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1816) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1816) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { -0.724, -0.423, 0.028, 0.043, 0.812, -0.568, 0.294, -0.375, -0.85, -0.119, -0.338, -0.415, 0.976, 0.507, 0.913, 0.697, 0.323, 0.206 };
+ int lda = 3;
+ double B[] = { 0.427, 0.621, -0.212, -0.942, -0.08, 0.416, 0.465, -0.972, -0.529, -0.252, -0.19, 0.073 };
+ int ldb = 3;
+ double B_expected[] = { -0.621, 0.427, 0.599301, -0.319337, -0.093325, -0.198531, 0.972, 0.465, 0.363393, -0.02779, 0.97279, -0.887585 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1817) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1817) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.501, -0.632, 0.663, 0.151, -0.523, -0.71, -0.811, 0.8, -0.06, 0.994, -0.962, 0.827, -0.543, 0.719, -0.264, -0.942, 0.365, 0.051 };
+ int lda = 3;
+ double B[] = { -0.974, 0.094, -0.533, 0.633, -0.982, -0.383, -0.297, 0.734, -0.092, -0.15, 0.215, -0.232 };
+ int ldb = 2;
+ double B_expected[] = { -0.675337, -0.115274, 0.406006, -0.122575, -0.952024, -0.156194, -0.514956, 0.9092, 0.050058, -0.04123, 0.095645, 0.066643 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1818) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1818) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { 0.669, 0.332, -0.661, 0.611, 0.279, -0.133, -0.033, 0.06, 0.788, -0.407, -0.644, 0.958, 0.247, -0.161, 0.125, -0.184, 0.041, -0.045 };
+ int lda = 3;
+ double B[] = { -0.603, 0.88, 0.668, -0.152, 0.082, 0.033, 0.733, -0.557, 0.722, 0.024, -0.754, 0.458 };
+ int ldb = 2;
+ double B_expected[] = { -0.996161, -0.429256, 0.185867, 0.350415, -0.168848, 0.167834, 0.638486, 0.554478, -0.024, 0.722, -0.458, -0.754 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1819) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1819) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { -0.91, 0.05, -0.944, 0.748, -0.712, 0.619, -0.28, -0.906, 0.314, 0.943, -0.719, -0.983, 0.474, -0.115, -0.859, 0.837, 0.364, -0.164 };
+ int lda = 3;
+ double B[] = { -0.278, -0.34, 0.584, 0.43, -0.794, -0.465, -0.65, 0.461, 0.24, 0.003, 0.948, -0.778 };
+ int ldb = 2;
+ double B_expected[] = { -0.3233, 0.23598, 0.4205, -0.50994, -1.131636, -0.679699, 0.085048, 0.000967, -0.008447, 1.102325, 1.765785, 0.337213 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1820) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1820) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 1};
+ double A[] = { -0.39, -0.916, 0.257, -0.082, -0.802, 0.215, -0.155, 0.911, -0.099, 0.41, 0.057, 0.105, 0.94, -0.17, -0.714, -0.861, 0.292, -0.231 };
+ int lda = 3;
+ double B[] = { -0.453, -0.542, 0.135, 0.518, -0.199, 0.776, 0.784, -0.28, -0.499, -0.377, -0.795, -0.965 };
+ int ldb = 2;
+ double B_expected[] = { 0.542, -0.453, -0.518, 0.135, -0.59956, -0.270977, 0.135804, 0.776219, -0.220206, -0.182087, 1.507741, -0.776612 };
+ cblas_ztrmm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrmm(case 1821) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrmm(case 1821) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_trmv.c b/gsl-1.9/cblas/test_trmv.c
new file mode 100644
index 0000000..312df89
--- /dev/null
+++ b/gsl-1.9/cblas/test_trmv.c
@@ -0,0 +1,1739 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_trmv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.987f };
+ float X[] = { -0.138f };
+ int incX = -1;
+ float x_expected[] = { -0.136206f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 814)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.987f };
+ float X[] = { -0.138f };
+ int incX = -1;
+ float x_expected[] = { -0.138f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 815)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.987f };
+ float X[] = { -0.138f };
+ int incX = -1;
+ float x_expected[] = { -0.136206f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 816)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.987f };
+ float X[] = { -0.138f };
+ int incX = -1;
+ float x_expected[] = { -0.138f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 817)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.987f };
+ float X[] = { -0.138f };
+ int incX = -1;
+ float x_expected[] = { -0.136206f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 818)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.987f };
+ float X[] = { -0.138f };
+ int incX = -1;
+ float x_expected[] = { -0.138f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 819)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.987f };
+ float X[] = { -0.138f };
+ int incX = -1;
+ float x_expected[] = { -0.136206f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 820)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.987f };
+ float X[] = { -0.138f };
+ int incX = -1;
+ float x_expected[] = { -0.138f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 821)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.329f };
+ float X[] = { 0.463f };
+ int incX = -1;
+ float x_expected[] = { -0.152327f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 822)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.329f };
+ float X[] = { 0.463f };
+ int incX = -1;
+ float x_expected[] = { 0.463f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 823)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.329f };
+ float X[] = { 0.463f };
+ int incX = -1;
+ float x_expected[] = { -0.152327f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 824)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.329f };
+ float X[] = { 0.463f };
+ int incX = -1;
+ float x_expected[] = { 0.463f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 825)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.329f };
+ float X[] = { 0.463f };
+ int incX = -1;
+ float x_expected[] = { -0.152327f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 826)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.329f };
+ float X[] = { 0.463f };
+ int incX = -1;
+ float x_expected[] = { 0.463f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 827)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.329f };
+ float X[] = { 0.463f };
+ int incX = -1;
+ float x_expected[] = { -0.152327f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 828)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.329f };
+ float X[] = { 0.463f };
+ int incX = -1;
+ float x_expected[] = { 0.463f };
+ cblas_strmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strmv(case 829)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.429 };
+ double X[] = { -0.899 };
+ int incX = -1;
+ double x_expected[] = { 0.385671 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 830)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.429 };
+ double X[] = { -0.899 };
+ int incX = -1;
+ double x_expected[] = { -0.899 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 831)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.429 };
+ double X[] = { -0.899 };
+ int incX = -1;
+ double x_expected[] = { 0.385671 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 832)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.429 };
+ double X[] = { -0.899 };
+ int incX = -1;
+ double x_expected[] = { -0.899 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 833)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.429 };
+ double X[] = { -0.899 };
+ int incX = -1;
+ double x_expected[] = { 0.385671 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 834)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.429 };
+ double X[] = { -0.899 };
+ int incX = -1;
+ double x_expected[] = { -0.899 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 835)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.429 };
+ double X[] = { -0.899 };
+ int incX = -1;
+ double x_expected[] = { 0.385671 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 836)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.429 };
+ double X[] = { -0.899 };
+ int incX = -1;
+ double x_expected[] = { -0.899 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 837)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.842 };
+ double X[] = { 0.192 };
+ int incX = -1;
+ double x_expected[] = { 0.161664 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 838)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.842 };
+ double X[] = { 0.192 };
+ int incX = -1;
+ double x_expected[] = { 0.192 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 839)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.842 };
+ double X[] = { 0.192 };
+ int incX = -1;
+ double x_expected[] = { 0.161664 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 840)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.842 };
+ double X[] = { 0.192 };
+ int incX = -1;
+ double x_expected[] = { 0.192 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 841)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.842 };
+ double X[] = { 0.192 };
+ int incX = -1;
+ double x_expected[] = { 0.161664 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 842)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.842 };
+ double X[] = { 0.192 };
+ int incX = -1;
+ double x_expected[] = { 0.192 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 843)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.842 };
+ double X[] = { 0.192 };
+ int incX = -1;
+ double x_expected[] = { 0.161664 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 844)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.842 };
+ double X[] = { 0.192 };
+ int incX = -1;
+ double x_expected[] = { 0.192 };
+ cblas_dtrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrmv(case 845)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.162f, -0.108f };
+ float X[] = { 0.542f, 0.461f };
+ int incX = -1;
+ float x_expected[] = { -0.038016f, -0.133218f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 846) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 846) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.162f, -0.108f };
+ float X[] = { 0.542f, 0.461f };
+ int incX = -1;
+ float x_expected[] = { 0.542f, 0.461f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 847) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 847) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.162f, -0.108f };
+ float X[] = { 0.542f, 0.461f };
+ int incX = -1;
+ float x_expected[] = { -0.038016f, -0.133218f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 848) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 848) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.162f, -0.108f };
+ float X[] = { 0.542f, 0.461f };
+ int incX = -1;
+ float x_expected[] = { 0.542f, 0.461f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 849) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 849) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.162f, -0.108f };
+ float X[] = { 0.542f, 0.461f };
+ int incX = -1;
+ float x_expected[] = { -0.038016f, -0.133218f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 850) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 850) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.162f, -0.108f };
+ float X[] = { 0.542f, 0.461f };
+ int incX = -1;
+ float x_expected[] = { 0.542f, 0.461f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 851) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 851) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.162f, -0.108f };
+ float X[] = { 0.542f, 0.461f };
+ int incX = -1;
+ float x_expected[] = { -0.038016f, -0.133218f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 852) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 852) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { -0.162f, -0.108f };
+ float X[] = { 0.542f, 0.461f };
+ int incX = -1;
+ float x_expected[] = { 0.542f, 0.461f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 853) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 853) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.547f, 0.583f };
+ float X[] = { -0.302f, 0.434f };
+ int incX = -1;
+ float x_expected[] = { -0.418216f, 0.061332f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 854) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 854) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.547f, 0.583f };
+ float X[] = { -0.302f, 0.434f };
+ int incX = -1;
+ float x_expected[] = { -0.302f, 0.434f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 855) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 855) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.547f, 0.583f };
+ float X[] = { -0.302f, 0.434f };
+ int incX = -1;
+ float x_expected[] = { -0.418216f, 0.061332f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 856) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 856) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.547f, 0.583f };
+ float X[] = { -0.302f, 0.434f };
+ int incX = -1;
+ float x_expected[] = { -0.302f, 0.434f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 857) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 857) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.547f, 0.583f };
+ float X[] = { -0.302f, 0.434f };
+ int incX = -1;
+ float x_expected[] = { -0.418216f, 0.061332f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 858) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 858) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.547f, 0.583f };
+ float X[] = { -0.302f, 0.434f };
+ int incX = -1;
+ float x_expected[] = { -0.302f, 0.434f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 859) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 859) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.547f, 0.583f };
+ float X[] = { -0.302f, 0.434f };
+ int incX = -1;
+ float x_expected[] = { -0.418216f, 0.061332f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 860) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 860) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.547f, 0.583f };
+ float X[] = { -0.302f, 0.434f };
+ int incX = -1;
+ float x_expected[] = { -0.302f, 0.434f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 861) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 861) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.216f, 0.192f };
+ float X[] = { -0.564f, -0.297f };
+ int incX = -1;
+ float x_expected[] = { -0.178848f, 0.044136f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 862) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 862) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.216f, 0.192f };
+ float X[] = { -0.564f, -0.297f };
+ int incX = -1;
+ float x_expected[] = { -0.564f, -0.297f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 863) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 863) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.216f, 0.192f };
+ float X[] = { -0.564f, -0.297f };
+ int incX = -1;
+ float x_expected[] = { -0.178848f, 0.044136f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 864) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 864) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.216f, 0.192f };
+ float X[] = { -0.564f, -0.297f };
+ int incX = -1;
+ float x_expected[] = { -0.564f, -0.297f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 865) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 865) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.216f, 0.192f };
+ float X[] = { -0.564f, -0.297f };
+ int incX = -1;
+ float x_expected[] = { -0.178848f, 0.044136f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 866) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 866) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.216f, 0.192f };
+ float X[] = { -0.564f, -0.297f };
+ int incX = -1;
+ float x_expected[] = { -0.564f, -0.297f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 867) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 867) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.216f, 0.192f };
+ float X[] = { -0.564f, -0.297f };
+ int incX = -1;
+ float x_expected[] = { -0.178848f, 0.044136f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 868) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 868) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.216f, 0.192f };
+ float X[] = { -0.564f, -0.297f };
+ int incX = -1;
+ float x_expected[] = { -0.564f, -0.297f };
+ cblas_ctrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrmv(case 869) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrmv(case 869) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.693, -0.22 };
+ double X[] = { -0.101, 0.889 };
+ int incX = -1;
+ double x_expected[] = { 0.125587, 0.638297 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 870) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 870) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.693, -0.22 };
+ double X[] = { -0.101, 0.889 };
+ int incX = -1;
+ double x_expected[] = { -0.101, 0.889 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 871) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 871) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.693, -0.22 };
+ double X[] = { -0.101, 0.889 };
+ int incX = -1;
+ double x_expected[] = { 0.125587, 0.638297 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 872) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 872) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.693, -0.22 };
+ double X[] = { -0.101, 0.889 };
+ int incX = -1;
+ double x_expected[] = { -0.101, 0.889 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 873) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 873) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.693, -0.22 };
+ double X[] = { -0.101, 0.889 };
+ int incX = -1;
+ double x_expected[] = { 0.125587, 0.638297 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 874) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 874) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.693, -0.22 };
+ double X[] = { -0.101, 0.889 };
+ int incX = -1;
+ double x_expected[] = { -0.101, 0.889 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 875) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 875) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.693, -0.22 };
+ double X[] = { -0.101, 0.889 };
+ int incX = -1;
+ double x_expected[] = { 0.125587, 0.638297 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 876) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 876) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.693, -0.22 };
+ double X[] = { -0.101, 0.889 };
+ int incX = -1;
+ double x_expected[] = { -0.101, 0.889 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 877) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 877) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.216, -0.623 };
+ double X[] = { 0.048, 0.293 };
+ int incX = -1;
+ double x_expected[] = { 0.172171, -0.093192 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 878) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 878) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.216, -0.623 };
+ double X[] = { 0.048, 0.293 };
+ int incX = -1;
+ double x_expected[] = { 0.048, 0.293 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 879) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 879) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.216, -0.623 };
+ double X[] = { 0.048, 0.293 };
+ int incX = -1;
+ double x_expected[] = { 0.172171, -0.093192 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 880) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 880) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.216, -0.623 };
+ double X[] = { 0.048, 0.293 };
+ int incX = -1;
+ double x_expected[] = { 0.048, 0.293 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 881) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 881) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.216, -0.623 };
+ double X[] = { 0.048, 0.293 };
+ int incX = -1;
+ double x_expected[] = { 0.172171, -0.093192 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 882) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 882) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.216, -0.623 };
+ double X[] = { 0.048, 0.293 };
+ int incX = -1;
+ double x_expected[] = { 0.048, 0.293 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 883) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 883) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.216, -0.623 };
+ double X[] = { 0.048, 0.293 };
+ int incX = -1;
+ double x_expected[] = { 0.172171, -0.093192 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 884) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 884) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.216, -0.623 };
+ double X[] = { 0.048, 0.293 };
+ int incX = -1;
+ double x_expected[] = { 0.048, 0.293 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 885) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 885) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.345, -0.851 };
+ double X[] = { -0.708, 0.298 };
+ int incX = -1;
+ double x_expected[] = { -0.009338, -0.705318 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 886) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 886) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.345, -0.851 };
+ double X[] = { -0.708, 0.298 };
+ int incX = -1;
+ double x_expected[] = { -0.708, 0.298 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 887) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 887) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.345, -0.851 };
+ double X[] = { -0.708, 0.298 };
+ int incX = -1;
+ double x_expected[] = { -0.009338, -0.705318 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 888) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 888) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.345, -0.851 };
+ double X[] = { -0.708, 0.298 };
+ int incX = -1;
+ double x_expected[] = { -0.708, 0.298 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 889) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 889) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.345, -0.851 };
+ double X[] = { -0.708, 0.298 };
+ int incX = -1;
+ double x_expected[] = { -0.009338, -0.705318 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 890) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 890) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.345, -0.851 };
+ double X[] = { -0.708, 0.298 };
+ int incX = -1;
+ double x_expected[] = { -0.708, 0.298 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 891) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 891) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.345, -0.851 };
+ double X[] = { -0.708, 0.298 };
+ int incX = -1;
+ double x_expected[] = { -0.009338, -0.705318 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 892) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 892) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.345, -0.851 };
+ double X[] = { -0.708, 0.298 };
+ int incX = -1;
+ double x_expected[] = { -0.708, 0.298 };
+ cblas_ztrmv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrmv(case 893) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrmv(case 893) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_trsm.c b/gsl-1.9/cblas/test_trsm.c
new file mode 100644
index 0000000..eef55b3
--- /dev/null
+++ b/gsl-1.9/cblas/test_trsm.c
@@ -0,0 +1,3947 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_trsm (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.279f, 0.058f, 0.437f, 0.462f };
+ int lda = 2;
+ float B[] = { 0.578f, 0.473f, -0.34f, -0.128f, 0.503f, 0.2f };
+ int ldb = 3;
+ float B_expected[] = { 0.638784f, 0.440702f, -0.392589f, 0.0831169f, -0.326623f, -0.12987f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1822)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.735f, -0.861f, 0.772f, -0.242f };
+ int lda = 2;
+ float B[] = { -0.793f, -0.162f, -0.844f, 0.143f, -0.379f, -0.46f };
+ int ldb = 3;
+ float B_expected[] = { 0.200963f, 0.146496f, 0.372018f, -0.0429f, 0.1137f, 0.138f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1823)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.498f, 0.777f, -0.913f, 0.779f };
+ int lda = 2;
+ float B[] = { -0.831f, -0.663f, -0.098f, -0.894f, -0.059f, 0.468f };
+ int ldb = 3;
+ float B_expected[] = { -0.500602f, -0.399398f, -0.0590361f, -0.242426f, -0.445379f, -0.249422f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1824)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.543f, 0.095f, -0.933f, -0.669f };
+ int lda = 2;
+ float B[] = { 0.068f, 0.715f, 0.012f, -0.785f, 0.378f, 0.251f };
+ int ldb = 3;
+ float B_expected[] = { -0.0204f, -0.2145f, -0.0036f, 0.216467f, -0.313528f, -0.0786588f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1825)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.75f, 0.777f, -0.025f, 0.572f };
+ int lda = 2;
+ float B[] = { 0.03f, 0.392f, -0.056f, 0.399f, -0.489f, -0.167f };
+ int ldb = 2;
+ float B_expected[] = { -0.0188531f, -0.205594f, 0.0154245f, -0.209266f, 0.19852f, 0.0875874f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1826)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.899f, -0.447f, 0.338f, -0.74f };
+ int lda = 2;
+ float B[] = { 0.964f, -0.104f, -0.199f, 0.503f, -0.386f, -0.764f };
+ int ldb = 2;
+ float B_expected[] = { -0.299746f, 0.0312f, 0.110704f, -0.1509f, 0.0383304f, 0.2292f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1827)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.279f, 0.73f, -0.366f, 0.583f };
+ int lda = 2;
+ float B[] = { -0.572f, 0.75f, 0.603f, 0.697f, 0.908f, 0.119f };
+ int ldb = 2;
+ float B_expected[] = { 0.615054f, -1.15607f, -0.648387f, 0.453212f, -0.976344f, 1.16129f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1828)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.581f, -0.911f, 0.438f, 0.731f };
+ int lda = 2;
+ float B[] = { 0.519f, 0.831f, 0.822f, 0.182f, 0.571f, -0.357f };
+ int ldb = 2;
+ float B_expected[] = { -0.1557f, -0.391143f, -0.2466f, -0.279253f, -0.1713f, -0.0489543f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1829)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.065f, 0.099f, 0.48f, 0.746f, -0.739f, 0.695f, 0.197f, 0.621f, 0.063f };
+ int lda = 3;
+ float B[] = { 0.01f, -0.612f, 0.756f, -0.225f, 0.546f, 0.432f };
+ int ldb = 3;
+ float B_expected[] = { -0.0461538f, -0.254627f, -0.439373f, 1.03846f, 0.360768f, -13.9491f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1830)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.86f, -0.653f, 0.87f, -0.037f, 0.788f, 0.015f, 0.028f, -0.804f, -0.357f };
+ int lda = 3;
+ float B[] = { -0.546f, 0.892f, -0.085f, -0.541f, -0.207f, 0.765f };
+ int ldb = 3;
+ float B_expected[] = { 0.1638f, -0.160639f, -0.114596f, 0.1623f, 0.168082f, -0.373222f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1831)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.872f, -0.35f, 0.518f, -0.8f, -0.13f, -0.832f, 0.426f, 0.195f, -0.735f };
+ int lda = 3;
+ float B[] = { 0.773f, 0.069f, 0.45f, 0.189f, 0.504f, 0.996f };
+ int ldb = 3;
+ float B_expected[] = { 0.0431742f, 0.434741f, 0.183673f, 1.36286f, 1.77287f, 0.406531f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1832)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.053f, -0.132f, -0.515f, -0.411f, 0.134f, 0.657f, 0.072f, -0.007f, -0.34f };
+ int lda = 3;
+ float B[] = { 0.494f, 0.072f, -0.882f, -0.112f, 0.904f, 0.755f };
+ int ldb = 3;
+ float B_expected[] = { -0.175368f, -0.0197478f, 0.2646f, -0.0622068f, -0.272786f, -0.2265f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1833)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { -0.154f, -0.54f, 0.146f, -0.106f, -0.478f, 0.938f, -0.731f, 0.25f, -0.4f };
+ int lda = 3;
+ float B[] = { -0.88f, -0.555f, 0.642f, 0.751f, -0.859f, -0.409f };
+ int ldb = 2;
+ float B_expected[] = { -1.71429f, -1.08117f, 0.783084f, 0.711096f, 2.97803f, 2.11352f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1834)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.249f, -0.451f, -0.781f, 0.157f, -0.02f, 0.57f, 0.309f, -0.159f, 0.266f };
+ int lda = 3;
+ float B[] = { -0.546f, 0.839f, 0.392f, -0.445f, -0.818f, 0.953f };
+ int ldb = 2;
+ float B_expected[] = { 0.1638f, -0.2517f, -0.143317f, 0.173017f, 0.171998f, -0.180615f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1835)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.299f, 0.626f, -0.471f, 0.208f, -0.842f, 0.674f, 0.03f, 0.628f, 0.534f };
+ int lda = 3;
+ float B[] = { 0.831f, -0.997f, -0.366f, 0.307f, -0.426f, 0.806f };
+ int ldb = 2;
+ float B_expected[] = { -0.584851f, 0.816906f, 0.0611706f, -0.25308f, 0.239326f, -0.452809f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1836)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = -0.3f;
+ float A[] = { 0.301f, 0.168f, 0.934f, 0.107f, 0.068f, 0.384f, -0.201f, 0.116f, -0.436f };
+ int lda = 3;
+ float B[] = { 0.773f, -0.304f, -0.402f, 0.642f, -0.102f, -0.095f };
+ int ldb = 2;
+ float B_expected[] = { -0.278767f, 0.0987764f, 0.10885f, -0.203544f, 0.0306f, 0.0285f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1837)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { -0.616f, 0.304f, 0.403f, 0.739f };
+ int lda = 2;
+ float B[] = { 0.273f, -0.609f, 0.858f, 0.993f, -0.738f, -0.353f };
+ int ldb = 3;
+ float B_expected[] = { -0.443182f, 0.988636f, -1.39286f, 1.52602f, -1.40534f, 0.0953025f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1838)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.811f, 0.257f, 0.98f, -0.956f };
+ int lda = 2;
+ float B[] = { 0.996f, 0.329f, 0.273f, -0.744f, 0.662f, -0.31f };
+ int ldb = 3;
+ float B_expected[] = { 0.996f, 0.329f, 0.273f, -0.999972f, 0.577447f, -0.380161f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1839)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.845f, 0.064f, 0.29f, -0.291f };
+ int lda = 2;
+ float B[] = { 0.878f, 0.156f, 0.217f, 0.082f, -0.869f, 0.595f };
+ int ldb = 3;
+ float B_expected[] = { 1.13576f, -0.840253f, 0.958527f, -0.281787f, 2.98625f, -2.04467f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1840)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.836f, 0.359f, -0.415f, 0.154f };
+ int lda = 2;
+ float B[] = { 0.652f, 0.614f, 0.922f, -0.063f, 0.313f, -0.316f };
+ int ldb = 3;
+ float B_expected[] = { 0.625855f, 0.743895f, 0.79086f, -0.063f, 0.313f, -0.316f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1841)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.94f, -0.656f, 0.645f, -0.634f };
+ int lda = 2;
+ float B[] = { -0.948f, -0.596f, -0.799f, 0.133f, -0.843f, -0.179f };
+ int ldb = 2;
+ float B_expected[] = { -1.00851f, -0.0859454f, -0.85f, -1.07453f, -0.896809f, -0.630034f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1842)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { -0.332f, 0.705f, -0.792f, -0.033f };
+ int lda = 2;
+ float B[] = { 0.561f, 0.883f, -0.136f, 0.203f, -0.531f, 0.733f };
+ int ldb = 2;
+ float B_expected[] = { 0.561f, 1.32731f, -0.136f, 0.095288f, -0.531f, 0.312448f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1843)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.991f, 0.614f, 0.108f, -0.125f };
+ int lda = 2;
+ float B[] = { -0.723f, 0.885f, 0.336f, 0.584f, 0.742f, -0.438f };
+ int ldb = 2;
+ float B_expected[] = { 3.65703f, -7.08f, 3.23371f, -4.672f, -1.42226f, 3.504f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1844)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { -0.626f, 0.912f, -0.003f, 0.761f };
+ int lda = 2;
+ float B[] = { 0.736f, -0.383f, 0.0f, -0.238f, 0.013f, 0.473f };
+ int ldb = 2;
+ float B_expected[] = { 1.0853f, -0.383f, 0.217056f, -0.238f, -0.418376f, 0.473f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1845)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { -0.416f, 0.599f, -0.705f, 0.326f, 0.184f, 0.079f, -0.173f, 0.125f, 0.567f };
+ int lda = 3;
+ float B[] = { 0.466f, 0.907f, -0.85f, -0.342f, -0.058f, -0.379f };
+ int ldb = 3;
+ float B_expected[] = { 9.44495f, 5.57299f, -1.49912f, 1.91427f, -0.0282283f, -0.66843f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1846)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { -0.75f, 0.856f, 0.773f, -0.241f, -0.357f, -0.683f, -0.718f, 0.69f, -0.486f };
+ int lda = 3;
+ float B[] = { -0.532f, -0.817f, 0.85f, -0.135f, 0.797f, 0.981f };
+ int ldb = 3;
+ float B_expected[] = { -0.986649f, -0.23645f, 0.85f, -2.14908f, 1.46702f, 0.981f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1847)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.765f, -0.408f, 0.404f, 0.764f, 0.157f, -0.741f, 0.844f, 0.206f, -0.215f };
+ int lda = 3;
+ float B[] = { -0.859f, 0.563f, -0.61f, 0.2f, 0.816f, -0.692f };
+ int ldb = 3;
+ float B_expected[] = { -1.12288f, 9.05017f, 7.1006f, 0.261438f, 3.92523f, 8.00582f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1848)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.354f, -0.931f, 0.18f, 0.391f, 0.01f, 0.429f, 0.685f, 0.332f, -0.643f };
+ int lda = 3;
+ float B[] = { -0.645f, 0.847f, 0.014f, 0.83f, 0.761f, 0.187f };
+ int ldb = 3;
+ float B_expected[] = { -0.645f, 1.09919f, 0.0908923f, 0.83f, 0.43647f, -0.526458f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1849)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.569f, 0.85f, 0.642f, -0.051f, 0.724f, 0.201f, 0.87f, -0.638f, 0.008f };
+ int lda = 3;
+ float B[] = { -0.923f, 0.27f, -0.319f, -0.856f, -0.533f, 0.183f };
+ int ldb = 2;
+ float B_expected[] = { 94.9456f, -32.8005f, -59.1516f, 18.9755f, -66.625f, 22.875f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1850)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.244f, 0.931f, 0.857f, -0.295f, 0.551f, 0.832f, 0.744f, -0.326f, 0.111f };
+ int lda = 3;
+ float B[] = { -0.478f, -0.252f, -0.155f, 0.419f, -0.192f, 0.291f };
+ int ldb = 2;
+ float B_expected[] = { -0.399342f, -0.316914f, -0.217592f, 0.513866f, -0.192f, 0.291f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1851)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.36f, 0.356f, -0.858f, 0.879f, 0.641f, 0.989f, 0.998f, -0.005f, 0.64f };
+ int lda = 3;
+ float B[] = { -0.634f, -0.529f, -0.344f, 0.375f, -0.168f, 0.465f };
+ int ldb = 2;
+ float B_expected[] = { -1.76111f, -1.46944f, 0.441428f, 1.40113f, -3.30563f, -3.40859f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1852)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha = 1.0f;
+ float A[] = { 0.389f, 0.997f, 0.909f, -0.598f, -0.43f, -0.345f, -0.897f, 0.119f, -0.285f };
+ int lda = 3;
+ float B[] = { 0.779f, -0.129f, 0.016f, 0.599f, -0.668f, -0.638f };
+ int ldb = 2;
+ float B_expected[] = { 0.779f, -0.129f, -0.760663f, 0.727613f, -1.63854f, -0.269713f };
+ cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1853)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.876, -0.503, -0.062, -0.987 };
+ int lda = 2;
+ double B[] = { 0.219, -0.986, -0.0, -0.605, 0.289, 0.641 };
+ int ldb = 3;
+ double B_expected[] = { 0.601967125138, -1.29370052694, -0.372910623494, -0.612968591692, 0.292806484296, 0.649442755826 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1854)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.266, -0.505, -0.55, 0.524 };
+ int lda = 2;
+ double B[] = { 0.1, -0.105, 0.757, 0.522, -0.269, -0.142 };
+ int ldb = 3;
+ double B_expected[] = { -0.36361, 0.240845, -0.68529, -0.522, 0.269, 0.142 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1855)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.101, 0.871, 0.202, 0.169 };
+ int lda = 2;
+ double B[] = { 0.018, 0.292, -0.573, 0.866, 0.749, 0.99 };
+ int ldb = 3;
+ double B_expected[] = { -0.178217821782, -2.89108910891, 5.67326732673, -4.91124260355, -0.976331360947, -12.6390532544 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1856)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.387, -0.739, -0.599, 0.114 };
+ int lda = 2;
+ double B[] = { 0.7, 0.473, 0.86, -0.557, 0.283, 0.62 };
+ int ldb = 3;
+ double B_expected[] = { -0.7, -0.473, -0.86, 0.1377, -0.566327, -1.13514 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1857)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.683, -0.009, -0.451, -0.185 };
+ int lda = 2;
+ double B[] = { 0.552, 0.083, -0.976, 0.22, -0.895, -0.301 };
+ int ldb = 2;
+ double B_expected[] = { 0.511946499941, 0.448648648649, -2.21423766373, 1.18918918919, -0.236033397966, -1.62702702703 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1858)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.141, 0.944, 0.529, 0.636 };
+ int lda = 2;
+ double B[] = { 0.178, -0.22, -0.645, -0.585, -0.342, -0.594 };
+ int ldb = 2;
+ double B_expected[] = { -0.29438, 0.22, 0.335535, 0.585, 0.027774, 0.594 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1859)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.541, 0.584, -0.394, 0.371 };
+ int lda = 2;
+ double B[] = { 0.668, 0.848, -0.816, -0.925, -0.145, 0.746 };
+ int ldb = 2;
+ double B_expected[] = { -1.23475046211, -0.342063962613, 1.50831792976, 0.118982018923, 0.268022181146, -2.43268181614 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1860)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.836, -0.024, 0.226, 0.416 };
+ int lda = 2;
+ double B[] = { -0.172, -0.601, 0.542, 0.25, 0.746, 0.55 };
+ int ldb = 2;
+ double B_expected[] = { 0.172, 0.605128, -0.542, -0.263008, -0.746, -0.567904 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1861)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.544, 0.721, 0.623, 0.392, -0.808, -0.022, -0.665, -0.616, -0.735 };
+ int lda = 3;
+ double B[] = { -0.526, -0.486, -0.716, 0.361, 0.365, -0.492 };
+ int ldb = 3;
+ double B_expected[] = { 0.966911764706, 0.261316067268, -0.162398536147, -0.663602941176, -0.140417971025, -1.22766726121 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1862)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.907, 0.558, -0.233, 0.073, -0.734, -0.058, -0.115, 0.513, 0.503 };
+ int lda = 3;
+ double B[] = { -0.606, -0.124, 0.641, -0.074, -0.053, -0.734 };
+ int ldb = 3;
+ double B_expected[] = { 0.606, -0.214148, -0.512222584, 0.074, 0.011708, 0.751921064 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1863)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.9, 0.063, -0.652, -0.841, 0.251, -0.8, 0.365, 0.809, 0.336 };
+ int lda = 3;
+ double B[] = { -0.584, -0.058, -0.964, -0.214, -0.632, -0.611 };
+ int ldb = 3;
+ double B_expected[] = { -8.93978245747, -9.01617340163, 2.86904761905, -3.62368367799, -3.34313934737, 1.81845238095 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1864)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.934, -0.608, 0.49, 0.351, -0.301, 0.602, 0.873, 0.031, -0.2 };
+ int lda = 3;
+ double B[] = { -0.541, -0.729, -0.382, 0.741, 0.546, -0.833 };
+ int ldb = 3;
+ double B_expected[] = { -0.044208458, 0.717158, 0.382, -1.267499127, -0.571823, 0.833 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1865)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.339, 0.049, 0.734, -0.182, 0.427, 0.193, -0.959, -0.679, 0.269 };
+ int lda = 3;
+ double B[] = { 0.824, 0.907, 0.632, -0.348, -0.646, 0.741 };
+ int ldb = 2;
+ double B_expected[] = { 2.43067846608, 2.67551622419, -0.444066789635, 1.95537225481, 9.9460940476, 11.7193971004 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1866)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.766, -0.422, -0.518, 0.517, 0.669, 0.337, -0.579, 0.885, -0.677 };
+ int lda = 3;
+ double B[] = { 0.211, -0.911, -0.685, -0.777, -0.919, 0.282 };
+ int ldb = 2;
+ double B_expected[] = { -0.211, 0.911, 0.794087, 0.306013, 0.094064005, -0.025352505 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1867)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.686, -0.256, 0.028, 0.371, 0.469, 0.115, 0.284, 0.139, 0.677 };
+ int lda = 3;
+ double B[] = { -0.877, -0.818, 0.191, 0.468, 0.889, -0.002 };
+ int ldb = 2;
+ double B_expected[] = { -1.30020532939, -0.819646768394, -0.0852626506631, -0.998592183627, -1.31314623338, 0.00295420974889 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1868)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.819, -0.523, 0.042, 0.545, -0.292, 0.283, 0.224, 0.247, -0.325 };
+ int lda = 3;
+ double B[] = { 0.153, -0.272, -0.226, 0.987, -0.216, -0.218 };
+ int ldb = 2;
+ double B_expected[] = { -0.075843944, -0.285622962, 0.164872, -1.048694, 0.216, 0.218 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1869)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.164, 0.486, 0.891, -0.508 };
+ int lda = 2;
+ double B[] = { 0.368, 0.761, -0.349, 0.324, 0.241, 0.561 };
+ int ldb = 3;
+ double B_expected[] = { -2.24390243902, -4.64024390244, 2.12804878049, -1.50893028615, -3.96487900903, 3.14021989629 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1870)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.019, -0.382, -0.579, 0.76 };
+ int lda = 2;
+ double B[] = { -0.596, -0.074, 0.576, 0.861, -0.44, 0.842 };
+ int ldb = 3;
+ double B_expected[] = { 0.596, 0.074, -0.576, -0.633328, 0.468268, -1.062032 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1871)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.449, -0.367, -0.268, 0.1 };
+ int lda = 2;
+ double B[] = { 0.58, -0.203, 0.053, 0.792, 0.355, -0.685 };
+ int ldb = 3;
+ double B_expected[] = { -6.01906458797, -1.66681514477, 3.9706013363, -7.92, -3.55, 6.85 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1872)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.159, 0.333, 0.515, 0.715 };
+ int lda = 2;
+ double B[] = { -0.631, 0.472, 0.796, 0.278, 0.802, 0.298 };
+ int ldb = 3;
+ double B_expected[] = { 0.77417, -0.05897, -0.64253, -0.278, -0.802, -0.298 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1873)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.056, -0.493, 0.619, -0.028 };
+ int lda = 2;
+ double B[] = { -0.32, -0.217, 0.301, 0.729, -0.847, -0.577 };
+ int ldb = 2;
+ double B_expected[] = { 5.71428571429, 118.576530612, -5.375, -92.7901785714, 15.125, 313.763392857 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1874)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.595, 0.64, 0.109, 0.969 };
+ int lda = 2;
+ double B[] = { 0.186, -0.435, -0.747, 0.212, 0.257, 0.804 };
+ int ldb = 2;
+ double B_expected[] = { -0.186, 0.455274, 0.747, -0.293423, -0.257, -0.775987 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1875)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.484, 0.769, 0.91, 0.817 };
+ int lda = 2;
+ double B[] = { -0.668, 0.544, 0.753, 0.796, -0.74, -0.091 };
+ int ldb = 2;
+ double B_expected[] = { 2.4380974539, -0.665850673195, -0.0077814418807, -0.97429620563, 1.35195534965, 0.111383108935 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1876)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.725, 0.73, -0.095, 0.123 };
+ int lda = 2;
+ double B[] = { -0.26, 0.579, 0.393, -0.18, 0.358, 0.839 };
+ int ldb = 2;
+ double B_expected[] = { 0.68267, -0.579, -0.5244, 0.18, 0.25447, -0.839 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1877)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.009, 0.237, -0.563, 0.993, 0.508, 0.771, 0.745, 0.233, 0.255 };
+ int lda = 3;
+ double B[] = { -0.328, -0.482, 0.083, -0.125, -0.712, -0.757 };
+ int ldb = 3;
+ double B_expected[] = { 21.9110553583, 1.44282075035, -0.325490196078, -281.330646047, -3.10396016674, 2.96862745098 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1878)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.484, -0.131, 0.563, -0.095, 0.012, -0.988, -0.722, 0.738, 0.05 };
+ int lda = 3;
+ double B[] = { -0.069, -0.137, -0.45, -0.24, 0.221, -0.509 };
+ int ldb = 3;
+ double B_expected[] = { -0.1081604, 0.5816, 0.45, -0.009639148, 0.281892, 0.509 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1879)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.521, 0.487, -0.961, 0.903, -0.045, 0.059, -0.61, -0.328, 0.883 };
+ int lda = 3;
+ double B[] = { -0.772, 0.079, -0.227, 0.998, 0.302, -0.099 };
+ int ldb = 3;
+ double B_expected[] = { 1.48176583493, 31.4896566432, 12.9778986844, -1.91554702495, -31.7275325229, -12.9967319963 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1880)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.642, 0.511, 0.762, 0.804, -0.28, -0.318, 0.382, -0.165, -0.007 };
+ int lda = 3;
+ double B[] = { 0.987, 0.436, -0.783, 0.175, -0.973, -0.319 };
+ int ldb = 3;
+ double B_expected[] = { -0.987, 0.357548, 1.21902942, -0.175, 1.1137, 0.5696105 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1881)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.995, 0.625, 0.16, -0.127, -0.722, -0.355, -0.14, -0.146, -0.756 };
+ int lda = 3;
+ double B[] = { 0.676, 0.038, 0.543, 0.296, -0.44, 0.751 };
+ int ldb = 2;
+ double B_expected[] = { 0.650272121575, -0.128270318012, 0.869769452872, 0.209093640534, -0.582010582011, 0.993386243386 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1882)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { -0.619, 0.548, 0.064, -0.483, -0.508, -0.819, 0.237, 0.852, -0.512 };
+ int lda = 3;
+ double B[] = { -0.169, 0.429, -0.789, 0.79, 0.479, 0.817 };
+ int ldb = 2;
+ double B_expected[] = { 0.860726164, -0.280732428, 1.197108, -0.093916, -0.479, -0.817 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1883)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.794, -0.098, 0.442, -0.991, 0.049, 0.079, -0.8, -0.762, 0.395 };
+ int lda = 3;
+ double B[] = { 0.496, -0.734, -0.679, -0.697, 0.426, 0.094 };
+ int ldb = 2;
+ double B_expected[] = { -0.624685138539, 0.92443324937, 12.6077725801, 16.0733562947, -2.90102076605, -4.48707504683 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1884)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha = -1;
+ double A[] = { 0.848, -0.765, 0.528, -0.693, 0.252, -0.135, -0.507, 0.954, -0.056 };
+ int lda = 3;
+ double B[] = { 0.791, -0.787, 0.636, 0.271, -0.905, -0.974 };
+ int ldb = 2;
+ double B_expected[] = { -0.791, 0.787, -1.241115, 0.331055, 1.155097475, 0.603156425 };
+ cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1885)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { 0.491f, -0.317f, -0.14f, -0.739f, -0.969f, -0.518f, 0.702f, -0.287f };
+ int lda = 2;
+ float B[] = { -0.962f, -0.38f, 0.656f, 0.587f, -0.195f, -0.862f, -0.679f, 0.598f, 0.919f, 0.714f, -0.513f, 0.726f };
+ int ldb = 3;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1886) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1886) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.6f, 0.338f, -0.048f, -0.926f, 0.236f, 0.362f, 0.605f, 0.562f };
+ int lda = 2;
+ float B[] = { -0.009f, 0.371f, -0.989f, 0.728f, -0.062f, 0.113f, 0.714f, 0.604f, -0.293f, 0.859f, -0.875f, 0.216f };
+ int ldb = 3;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1887) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1887) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.889f, -0.479f, -0.526f, 0.077f, -0.704f, 0.242f, 0.458f, -0.553f };
+ int lda = 2;
+ float B[] = { -0.554f, 0.966f, 0.076f, 0.42f, 0.85f, 0.369f, 0.124f, -0.476f, -0.007f, 0.428f, 0.452f, -0.214f };
+ int ldb = 3;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1888) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1888) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { 0.947f, 0.444f, 0.079f, -0.597f, 0.978f, -0.64f, 0.82f, 0.808f };
+ int lda = 2;
+ float B[] = { -0.899f, -0.964f, -0.714f, 0.422f, -0.084f, -0.78f, -0.609f, -0.595f, 0.748f, -0.926f, 0.242f, -0.474f };
+ int ldb = 3;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1889) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1889) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.547f, -0.763f, -0.805f, 0.498f, 0.786f, -0.082f, 0.922f, 0.538f };
+ int lda = 2;
+ float B[] = { -0.074f, -0.617f, 0.359f, -0.383f, -0.172f, 0.911f, -0.934f, 0.066f, -0.67f, 0.895f, 0.92f, 0.255f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1890) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1890) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.096f, -0.362f, -0.311f, -0.347f, 0.161f, -0.517f, -0.393f, 0.572f };
+ int lda = 2;
+ float B[] = { 0.742f, -0.419f, -0.391f, 0.846f, -0.255f, -0.364f, 0.006f, -0.496f, 0.118f, -0.593f, 0.773f, 0.053f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1891) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1891) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { 0.669f, 0.845f, 0.657f, -0.43f, 0.19f, 0.206f, -0.305f, 0.761f };
+ int lda = 2;
+ float B[] = { -0.457f, 0.857f, -0.203f, 0.942f, 0.462f, 0.52f, 0.521f, -0.609f, 0.069f, 0.005f, -0.419f, 0.806f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1892) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1892) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.269f, -0.87f, -0.592f, 0.813f, 0.977f, -0.848f, 0.282f, -0.311f };
+ int lda = 2;
+ float B[] = { -0.654f, 0.857f, -0.834f, 0.796f, 0.414f, -0.499f, 0.961f, 0.643f, 0.117f, 0.758f, -0.189f, -0.768f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1893) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1893) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { 0.361f, -0.818f, 0.039f, 0.275f, 0.541f, -0.615f, 0.025f, -0.691f, -0.697f, 0.976f, 0.746f, 0.607f, 0.651f, -0.918f, -0.702f, 0.37f, -0.668f, -0.114f };
+ int lda = 3;
+ float B[] = { 0.218f, 0.75f, 0.575f, -0.702f, 0.7f, -0.41f, 0.374f, 0.489f, -0.876f, 0.842f, -0.848f, 0.901f };
+ int ldb = 3;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1894) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1894) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { 0.483f, 0.088f, -0.192f, 0.17f, 0.683f, 0.293f, -0.773f, 0.365f, -0.28f, 0.257f, 0.818f, 0.45f, -0.551f, -0.051f, 0.899f, -0.127f, -0.915f, 0.152f };
+ int lda = 3;
+ float B[] = { 0.732f, -0.394f, 0.073f, -0.082f, 0.918f, -0.53f, 0.67f, 0.149f, -0.344f, -0.65f, -0.62f, -0.632f };
+ int ldb = 3;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1895) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1895) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { 0.508f, -0.251f, 0.655f, -0.315f, -0.26f, 0.229f, 0.05f, -0.276f, -0.993f, 0.647f, -0.547f, -0.34f, 0.781f, -0.819f, 0.865f, 0.361f, -0.028f, 0.178f };
+ int lda = 3;
+ float B[] = { 0.972f, 0.048f, 0.71f, -0.168f, -0.274f, 0.92f, 0.789f, 0.485f, 0.578f, 0.73f, -0.931f, 0.288f };
+ int ldb = 3;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1896) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1896) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.874f, 0.651f, 0.074f, -0.862f, -0.42f, 0.066f, -0.845f, 0.482f, -0.44f, 0.724f, 0.137f, -0.123f, -0.63f, -0.011f, -0.187f, -0.205f, 0.976f, -0.81f };
+ int lda = 3;
+ float B[] = { 0.539f, 0.131f, 0.986f, 0.615f, 0.983f, -0.22f, 0.144f, 0.677f, 0.561f, -0.494f, -0.433f, -0.089f };
+ int ldb = 3;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1897) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1897) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { 0.284f, 0.871f, -0.835f, 0.926f, 0.459f, -0.889f, 0.387f, 0.319f, -0.366f, 0.884f, 0.236f, 0.921f, 0.619f, -0.41f, -0.709f, -0.372f, 0.06f, 0.551f };
+ int lda = 3;
+ float B[] = { 0.354f, 0.245f, 0.552f, 0.77f, -0.524f, -0.973f, -0.814f, -0.835f, -0.976f, 0.396f, -0.726f, -0.204f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1898) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1898) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.98f, -0.854f, -0.832f, 0.514f, -0.028f, -0.857f, 0.066f, 0.415f, -0.316f, 0.538f, -0.465f, -0.691f, 0.286f, 0.954f, -0.486f, -0.574f, -0.429f, 0.992f };
+ int lda = 3;
+ float B[] = { 0.295f, 0.578f, -0.167f, 0.106f, -0.782f, 0.668f, 0.278f, 0.855f, 0.038f, 0.976f, 0.167f, -0.777f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1899) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1899) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { 0.534f, 0.782f, 0.282f, 0.581f, 0.804f, -0.68f, 0.234f, -0.758f, 0.033f, -0.503f, 0.981f, -0.839f, 0.919f, 0.175f, 0.152f, -0.683f, -0.346f, -0.279f };
+ int lda = 3;
+ float B[] = { 0.135f, -0.969f, -0.314f, -0.026f, -0.284f, 0.529f, 0.781f, -0.413f, -0.018f, -0.859f, -0.817f, -0.849f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1900) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1900) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.0f};
+ float A[] = { -0.426f, 0.148f, 0.889f, 0.217f, 0.779f, -0.963f, -0.516f, -0.366f, 0.721f, 0.4f, -0.976f, -0.365f, 0.532f, 0.188f, 0.176f, 0.082f, -0.691f, -0.833f };
+ int lda = 3;
+ float B[] = { -0.71f, 0.72f, 0.533f, 0.395f, -0.749f, 0.151f, 0.871f, 0.445f, 0.195f, -0.38f, -0.318f, -0.833f };
+ int ldb = 2;
+ float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1901) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1901) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { -0.068f, 0.806f, -0.621f, 0.037f, 0.096f, -0.312f, 0.416f, 0.428f };
+ int lda = 2;
+ float B[] = { 0.481f, 0.192f, -0.954f, -0.958f, -0.015f, -0.203f, -0.352f, 0.08f, -0.662f, 0.681f, -0.571f, 0.146f };
+ int ldb = 3;
+ float B_expected[] = { 0.612512f, 0.186537f, -1.27483f, -1.08103f, -0.0395775f, -0.248522f, 0.0478574f, -0.671409f, -3.31165f, 0.315466f, -1.07961f, -0.629312f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1902) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1902) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.863f, 0.689f, 0.171f, -0.164f, 0.065f, -0.727f, -0.245f, -0.556f };
+ int lda = 2;
+ float B[] = { 0.711f, -0.616f, -0.684f, 0.823f, 0.491f, 0.06f, -0.776f, 0.768f, 0.391f, 0.897f, 0.779f, -0.875f };
+ int ldb = 3;
+ float B_expected[] = { 0.616f, 0.711f, -0.823f, -0.684f, -0.06f, 0.491f, -0.98994f, -0.796557f, -0.644091f, 0.372992f, 0.804736f, 0.685199f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1903) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1903) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.718f, -0.323f, 0.264f, 0.081f, -0.73f, 0.809f, -0.349f, -0.543f };
+ int lda = 2;
+ float B[] = { 0.862f, 0.676f, -0.085f, 0.204f, 0.063f, -0.124f, 0.162f, 0.754f, -0.978f, -0.097f, 0.986f, 0.943f };
+ int ldb = 3;
+ float B_expected[] = { -1.32203f, -1.00495f, 1.84655f, 0.329156f, -1.66053f, -2.19061f, 0.420449f, -1.11835f, 1.19333f, 0.945621f, -0.495118f, -2.05487f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1904) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1904) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { -0.515f, -0.166f, -0.364f, 0.24f, 0.056f, 0.023f, 0.05f, 0.853f };
+ int lda = 2;
+ float B[] = { 0.779f, 0.443f, -0.852f, 0.037f, -0.649f, 0.554f, 0.469f, 0.632f, 0.224f, -0.148f, 0.457f, -0.78f };
+ int ldb = 3;
+ float B_expected[] = { -0.396821f, 0.767272f, -0.040136f, -0.867948f, -0.587169f, -0.692532f, -0.632f, 0.469f, 0.148f, 0.224f, 0.78f, 0.457f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1905) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1905) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.576f, 0.785f, 0.297f, -0.561f, -0.164f, 0.463f, -0.454f, 0.803f };
+ int lda = 2;
+ float B[] = { -0.78f, -0.792f, 0.223f, 0.206f, -0.097f, 0.504f, 0.721f, 0.205f, 0.508f, -0.8f, -0.469f, 0.283f };
+ int ldb = 2;
+ float B_expected[] = { -0.164671f, -1.12975f, 0.510941f, 0.652691f, -0.386549f, 0.358405f, 0.959415f, -0.414847f, 0.906729f, -0.353789f, -0.734462f, 0.786484f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1906) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1906) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { -0.04f, 0.917f, 0.327f, -0.115f, -0.656f, -0.811f, -0.646f, 0.78f };
+ int lda = 2;
+ float B[] = { 0.131f, 0.677f, -0.431f, -0.652f, -0.415f, 0.094f, -0.253f, 0.496f, 0.797f, 0.166f, 0.737f, -0.685f };
+ int ldb = 2;
+ float B_expected[] = { -0.677f, 0.131f, 0.101647f, -0.894111f, -0.094f, -0.415f, -0.221099f, -0.601474f, -0.166f, 0.797f, -0.070263f, 1.12521f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1907) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1907) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.769f, -0.384f, -0.522f, -0.086f, -0.129f, -0.574f, 0.56f, -0.809f };
+ int lda = 2;
+ float B[] = { 0.367f, 0.169f, -0.321f, -0.982f, -0.563f, -0.051f, -0.742f, 0.595f, 0.067f, -0.183f, -0.524f, 0.77f };
+ int ldb = 2;
+ float B_expected[] = { -0.178752f, 0.912513f, 0.836303f, 0.634945f, 0.817549f, -0.921899f, 0.275884f, -0.926446f, 0.49345f, -0.309856f, -0.00752416f, -0.946584f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1908) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1908) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.758f, 0.228f, 0.263f, 0.731f, 0.171f, 0.051f, 0.968f, 0.731f };
+ int lda = 2;
+ float B[] = { 0.783f, 0.422f, -0.649f, -0.428f, 0.216f, 0.659f, -0.608f, -0.239f, -0.588f, 0.01f, -0.009f, -0.374f };
+ int ldb = 2;
+ float B_expected[] = { -1.00898f, 0.640819f, 0.428f, -0.649f, -1.1663f, 0.201195f, 0.239f, -0.608f, -0.114941f, -0.859027f, 0.374f, -0.009f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1909) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1909) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.601f, -0.017f, 0.518f, -0.975f, -0.394f, 0.396f, 0.395f, -0.374f, -0.321f, 0.221f, 0.809f, 0.74f, -0.009f, 0.88f, 0.057f, 0.65f, 0.761f, -0.839f };
+ int lda = 3;
+ float B[] = { -0.644f, 0.29f, 0.458f, 0.755f, -0.725f, 0.313f, 0.537f, 0.945f, 0.377f, 0.776f, -0.686f, -0.561f };
+ int ldb = 3;
+ float B_expected[] = { -5.28862f, 4.51343f, 4.18447f, 0.519474f, 0.288441f, -0.634688f, -7.53878f, 2.5597f, 2.79299f, 2.44873f, 0.781327f, -0.0400353f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1910) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1910) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.746f, 0.079f, -0.151f, -0.433f, 0.524f, -0.201f, 0.198f, -0.368f, -0.449f, 0.693f, -0.14f, -0.574f, -0.242f, -0.584f, -0.298f, 0.41f, -0.234f, 0.92f };
+ int lda = 3;
+ float B[] = { -0.787f, 0.186f, -0.104f, -0.142f, -0.548f, 0.332f, -0.66f, 0.413f, 0.046f, 0.818f, -0.783f, -0.376f };
+ int ldb = 3;
+ float B_expected[] = { 0.320805f, -0.445083f, 0.410072f, -0.371288f, -0.332f, -0.548f, -0.566249f, -0.287942f, -0.315918f, 0.152204f, 0.376f, -0.783f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1911) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1911) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { -0.623f, -0.229f, 0.653f, -0.19f, 0.42f, -0.181f, -0.061f, 0.963f, 0.422f, 0.989f, 0.919f, -0.352f, -0.849f, 0.052f, 0.02f, -0.771f, -0.38f, -0.566f };
+ int lda = 3;
+ float B[] = { 0.018f, 0.461f, -0.184f, 0.334f, 0.075f, 0.694f, 0.022f, 0.239f, 0.971f, -0.339f, 0.203f, 0.083f };
+ int ldb = 3;
+ float B_expected[] = { 0.642534f, -0.265073f, -0.901268f, 0.171623f, 1.29999f, 0.384146f, 0.326529f, -0.155337f, 0.629902f, 0.0571184f, -0.761884f, -0.282697f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1912) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1912) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.35f, 0.154f, 0.397f, -0.709f, 0.587f, -0.895f, -0.848f, 0.933f, -0.887f, -0.393f, 0.824f, 0.182f, 0.159f, 0.303f, -0.011f, -0.363f, 0.875f, 0.991f };
+ int lda = 3;
+ float B[] = { -0.513f, 0.564f, 0.404f, -0.635f, 0.924f, 0.238f, -0.059f, 0.96f, 0.341f, 0.483f, -0.844f, 0.84f };
+ int ldb = 3;
+ float B_expected[] = { -0.564f, -0.513f, -0.321901f, 0.495188f, -0.487057f, 1.06506f, -0.96f, -0.059f, -1.35213f, 1.18665f, -1.15086f, -1.02151f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1913) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1913) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.87f, 0.914f, -0.097f, -0.138f, 0.894f, -0.173f, 0.648f, -0.327f, 0.7f, 0.816f, 0.63f, 0.637f, -0.671f, 0.322f, -0.922f, 0.618f, 0.93f, 0.654f };
+ int lda = 3;
+ float B[] = { -0.347f, -0.273f, -0.384f, 0.02f, 0.392f, -0.206f, 0.347f, 0.269f, 0.016f, 0.797f, 0.699f, -0.966f };
+ int ldb = 2;
+ float B_expected[] = { -0.443754f, 0.343363f, 0.300599f, -0.548484f, 0.757674f, 0.722159f, 0.224607f, -0.673284f, -0.565323f, 0.414754f, 1.04867f, 0.014162f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1914) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1914) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { 0.965f, -0.191f, 0.489f, 0.84f, 0.011f, -0.951f, 0.067f, -0.21f, -0.911f, 0.767f, -0.162f, 0.274f, -0.502f, -0.445f, 0.492f, 0.023f, -0.818f, 0.859f };
+ int lda = 3;
+ float B[] = { 0.66f, -0.303f, 0.223f, 0.261f, -0.252f, -0.238f, -0.012f, -0.485f, 0.783f, -0.196f, -0.57f, 0.929f };
+ int ldb = 2;
+ float B_expected[] = { 0.177032f, 1.21679f, -0.596808f, -0.300881f, 0.159577f, -0.641744f, 0.928958f, 0.289807f, 0.196f, 0.783f, -0.929f, -0.57f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1915) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1915) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { -0.652f, 0.046f, -0.229f, 0.473f, -0.783f, -0.211f, 0.698f, 0.201f, -0.153f, 0.918f, -0.996f, -0.186f, 0.84f, -0.545f, -0.457f, 0.057f, 0.649f, 0.77f };
+ int lda = 3;
+ float B[] = { -0.227f, 0.14f, 0.165f, -0.945f, -0.212f, -0.522f, 0.908f, 0.722f, -0.208f, 0.969f, 0.721f, -0.816f };
+ int ldb = 2;
+ float B_expected[] = { 0.189219f, 0.361509f, -1.42444f, -0.353565f, -0.361882f, -0.741783f, 1.80537f, 1.02311f, -1.24128f, 0.407779f, 2.0229f, -0.0912412f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1916) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1916) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 1.0f};
+ float A[] = { -0.945f, 0.36f, 0.3f, 0.128f, -0.27f, -0.834f, 0.349f, -0.6f, -0.293f, 0.122f, -0.481f, -0.681f, -0.815f, -0.195f, 0.728f, 0.016f, 0.037f, 0.989f };
+ int lda = 3;
+ float B[] = { -0.97f, 0.784f, 0.488f, 0.39f, -0.482f, -0.518f, -0.797f, 0.271f, 0.257f, 0.637f, 0.118f, -0.993f };
+ int ldb = 2;
+ float B_expected[] = { -0.784f, -0.97f, -0.39f, 0.488f, 0.62904f, -0.090648f, -0.091536f, -0.89348f, 0.3246f, -0.273981f, 1.04514f, -0.5676f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1917) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1917) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.795f, 0.073f, 0.104f, -0.261f, -0.712f, 0.881f, -0.474f, -0.906f };
+ int lda = 2;
+ float B[] = { -0.41f, -0.191f, -0.359f, -0.718f, -0.902f, 0.646f, -0.703f, -0.809f, -0.342f, -0.783f, -0.053f, 0.917f };
+ int ldb = 3;
+ float B_expected[] = { 0.0285203f, -0.0489535f, 0.0936712f, -0.036556f, -0.0702473f, -0.11991f, -0.0924979f, -0.0235243f, -0.0742841f, -0.0262764f, 0.074552f, 0.0886899f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1918) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1918) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { -0.281f, -0.111f, 0.055f, -0.643f, 0.33f, -0.663f, 0.32f, 0.423f };
+ int lda = 2;
+ float B[] = { 0.103f, 0.357f, -0.591f, 0.833f, -0.906f, -0.192f, -0.391f, -0.622f, -0.345f, -0.58f, -0.132f, -0.874f };
+ int ldb = 3;
+ float B_expected[] = { -0.0357f, 0.0103f, -0.0833f, -0.0591f, 0.0192f, -0.0906f, 0.0707864f, -0.0167114f, 0.0245802f, 0.0223124f, 0.0280882f, -0.0205626f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1919) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1919) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.311f, -0.648f, -0.732f, 0.825f, 0.152f, -0.529f, -0.353f, 0.568f };
+ int lda = 2;
+ float B[] = { 0.86f, -0.991f, -0.992f, -0.617f, 0.137f, -0.585f, -0.467f, 0.632f, 0.672f, 0.777f, -0.609f, 0.511f };
+ int ldb = 3;
+ float B_expected[] = { 0.0795347f, -0.0537122f, -0.0885393f, -0.0194836f, -0.0386006f, -0.0674606f, 0.109194f, -0.0434058f, -0.0240177f, -0.151722f, 0.117678f, -0.0168304f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1920) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1920) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.318f, -0.946f, -0.389f, 0.051f, 0.322f, -0.626f, -0.839f, -0.252f };
+ int lda = 2;
+ float B[] = { 0.372f, -0.23f, 0.515f, 0.213f, 0.222f, 0.296f, -0.524f, 0.442f, -0.581f, -0.409f, 0.894f, -0.246f };
+ int ldb = 3;
+ float B_expected[] = { 0.00443f, 0.081742f, -0.0708404f, 0.0446048f, 0.0184432f, -0.0219864f, -0.0442f, -0.0524f, 0.0409f, -0.0581f, 0.0246f, 0.0894f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1921) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1921) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { -0.411f, 0.34f, -0.85f, 0.557f, -0.918f, 0.484f, -0.889f, 0.561f };
+ int lda = 2;
+ float B[] = { -0.763f, -0.514f, -0.744f, -0.948f, -0.312f, 0.818f, -0.686f, 0.341f, -0.043f, 0.235f, -0.201f, 0.874f };
+ int ldb = 2;
+ float B_expected[] = { 0.0169288f, 0.17164f, -0.0683166f, -0.0596556f, 0.155447f, -0.0526808f, -0.086698f, 0.101645f, 0.039085f, -0.0218708f, 0.0437248f, -0.0036776f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1922) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1922) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.046f, 0.571f, 0.825f, 0.665f, 0.658f, -0.977f, 0.247f, -0.944f };
+ int lda = 2;
+ float B[] = { -0.342f, 0.089f, -0.975f, 0.027f, -0.621f, -0.127f, 0.937f, -0.332f, -0.357f, -0.213f, 0.57f, 0.134f };
+ int ldb = 2;
+ float B_expected[] = { -0.0089f, -0.0342f, -0.0302572f, -0.0663011f, 0.0127f, -0.0621f, -0.0358283f, 0.122154f, 0.0213f, -0.0357f, -0.0622943f, 0.0596805f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1923) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1923) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.655f, 0.051f, -0.864f, 0.04f, -0.45f, 0.276f, -0.365f, 0.766f };
+ int lda = 2;
+ float B[] = { 0.12f, 0.036f, 0.425f, -0.145f, -0.772f, -0.483f, -0.154f, -0.327f, 0.532f, 0.59f, 0.305f, 0.443f };
+ int ldb = 2;
+ float B_expected[] = { -0.0745593f, 0.00123365f, -0.0525674f, -0.00611891f, 0.0752311f, -0.0558274f, -0.0001932f, 0.0425972f, -0.0986826f, -0.00963885f, -0.00999124f, -0.0625937f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1924) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1924) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.253f, -0.163f, -0.061f, -0.032f, -0.764f, 0.863f, 0.051f, 0.669f };
+ int lda = 2;
+ float B[] = { 0.966f, 0.42f, -0.765f, 0.186f, -0.798f, 0.278f, -0.37f, -0.484f, -0.724f, -0.682f, 0.034f, 0.352f };
+ int ldb = 2;
+ float B_expected[] = { -0.0455826f, 0.0925287f, -0.0186f, -0.0765f, -0.0260316f, -0.0836058f, 0.0484f, -0.037f, 0.0661616f, -0.0710662f, -0.0352f, 0.0034f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1925) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1925) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.017f, -0.631f, -0.052f, 0.296f, -0.486f, -0.279f, -0.378f, 0.997f, 0.533f, 0.87f, 0.808f, 0.007f, 0.185f, -0.263f, -0.757f, -0.856f, 0.575f, -0.81f };
+ int lda = 3;
+ float B[] = { -0.238f, -0.924f, 0.494f, -0.089f, 0.96f, 0.959f, 0.415f, 0.39f, -0.744f, -0.881f, -0.594f, 0.629f };
+ int ldb = 3;
+ float B_expected[] = { 0.0798921f, -0.243487f, 0.0441094f, -0.0391653f, 0.0229218f, 0.134667f, 0.192099f, 0.152741f, 0.154557f, 0.0857677f, -0.0854154f, 0.0170199f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1926) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1926) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { -0.977f, -0.949f, 0.192f, 0.803f, -0.964f, -0.162f, 0.799f, -0.081f, -0.055f, 0.014f, 0.99f, 0.804f, 0.913f, -0.898f, -0.057f, 0.51f, 0.453f, 0.622f };
+ int lda = 3;
+ float B[] = { -0.852f, -0.001f, -0.955f, -0.97f, -0.071f, -0.664f, -0.077f, -0.746f, 0.228f, -0.948f, 0.476f, -0.285f };
+ int ldb = 3;
+ float B_expected[] = { 0.0840343f, -0.066376f, 0.0369724f, -0.0350854f, 0.0664f, -0.0071f, 0.105481f, 0.0565767f, 0.0283146f, -0.00141f, 0.0285f, 0.0476f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1927) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1927) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.822f, 0.618f, -0.935f, 0.49f, 0.885f, -0.488f, 0.412f, 0.861f, -0.144f, 0.906f, -0.054f, 0.455f, 0.213f, 0.34f, -0.465f, 0.107f, -0.611f, 0.088f };
+ int lda = 3;
+ float B[] = { 0.476f, -0.297f, -0.966f, -0.038f, -0.346f, -0.81f, -0.749f, -0.065f, -0.225f, -0.663f, 0.073f, -0.379f };
+ int ldb = 3;
+ float B_expected[] = { -0.00473086f, 0.0543508f, 0.139511f, -0.0231317f, -0.199775f, 0.100154f, 0.0488188f, -0.054416f, -0.0610839f, 0.0929832f, -0.0289368f, -0.113983f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1928) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1928) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { -0.188f, 0.741f, 0.583f, 0.527f, 0.025f, 0.216f, -0.44f, -0.071f, -0.126f, -0.093f, 0.743f, -0.476f, 0.661f, -0.66f, 0.564f, -0.943f, -0.976f, -0.035f };
+ int lda = 3;
+ float B[] = { -0.648f, -0.367f, -0.402f, -0.309f, 0.412f, 0.531f, -0.248f, 0.181f, 0.507f, 0.502f, -0.593f, 0.404f };
+ int ldb = 3;
+ float B_expected[] = { 0.0367f, -0.0648f, 0.0424472f, -0.0713177f, -0.21132f, 0.0600063f, -0.0181f, -0.0248f, -0.0599248f, 0.0410731f, 0.0277256f, 0.00238266f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1929) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1929) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.76f, -0.021f, -0.011f, 0.14f, 0.699f, 0.94f, 0.296f, 0.333f, 0.654f, -0.917f, 0.008f, -0.999f, -0.963f, 0.687f, -0.481f, 0.106f, 0.128f, -0.165f };
+ int lda = 3;
+ float B[] = { -0.742f, 0.774f, -0.335f, -0.99f, 0.799f, 0.901f, 0.753f, -0.085f, -0.042f, -0.591f, 0.202f, 0.515f };
+ int ldb = 2;
+ float B_expected[] = { 0.313744f, -0.259345f, -0.290807f, 0.212822f, -0.00668591f, -0.0164417f, 0.10903f, 0.137068f, 0.157578f, -0.23594f, -0.0747323f, 0.254147f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1930) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1930) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.582f, -0.175f, -0.48f, 0.567f, -0.571f, 0.062f, 0.038f, -0.625f, 0.737f, 0.799f, -0.569f, -0.932f, 0.522f, -0.763f, 0.156f, -0.524f, 0.138f, 0.007f };
+ int lda = 3;
+ float B[] = { 0.998f, 0.6f, 0.555f, -0.737f, -0.162f, 0.263f, 0.317f, -0.092f, 0.302f, -0.671f, 0.418f, -0.814f };
+ int ldb = 2;
+ float B_expected[] = { -0.106233f, 0.0480583f, 0.0514817f, -0.0392668f, -0.0209428f, -0.0560716f, 0.0184048f, -0.0174744f, 0.0671f, 0.0302f, 0.0814f, 0.0418f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1931) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1931) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.964f, 0.509f, 0.48f, -0.833f, 0.867f, 0.51f, -0.643f, 0.115f, -0.594f, -0.409f, -0.174f, 0.527f, 0.676f, 0.431f, 0.261f, -0.239f, 0.816f, -0.231f };
+ int lda = 3;
+ float B[] = { -0.659f, -0.029f, -0.581f, -0.938f, -0.904f, -0.445f, 0.119f, 0.709f, -0.649f, 0.825f, 0.532f, -0.453f };
+ int ldb = 2;
+ float B_expected[] = { 0.0305784f, -0.0522153f, 0.100975f, -0.00695419f, -0.055793f, 0.11446f, 0.0887801f, 0.177079f, -0.177262f, 0.0336107f, -0.0717714f, 0.251108f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1932) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1932) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ float alpha[2] = {0.0f, 0.1f};
+ float A[] = { 0.859f, 0.745f, 0.03f, -0.98f, -0.402f, 0.38f, -0.214f, 0.605f, 0.342f, -0.059f, -0.096f, 0.606f, -0.543f, 0.503f, 0.63f, -0.269f, 0.252f, 0.626f };
+ int lda = 3;
+ float B[] = { 0.85f, 0.642f, 0.679f, -0.254f, 0.192f, 0.766f, -0.869f, -0.09f, 0.68f, -0.898f, 0.272f, -0.651f };
+ int ldb = 2;
+ float B_expected[] = { -0.0642f, 0.085f, 0.0254f, 0.0679f, 0.008626f, 0.079566f, 0.07478f, -0.113829f, -0.0156973f, 0.0906397f, 0.125668f, 0.0985369f };
+ cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1933) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1933) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.189, 0.519, -0.455, -0.444, -0.21, -0.507, -0.591, 0.859 };
+ int lda = 2;
+ double B[] = { -0.779, -0.484, 0.249, -0.107, -0.755, -0.047, 0.941, 0.675, -0.757, 0.645, -0.649, 0.242 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1934) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1934) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.988, 0.73, 0.279, -0.967, -0.288, -0.095, -0.821, 0.178 };
+ int lda = 2;
+ double B[] = { 0.702, 0.943, -0.235, -0.565, 0.279, -0.146, 0.816, 0.473, 0.893, 0.877, -0.797, -0.159 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1935) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1935) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.716, -0.549, 0.436, -0.822, -0.029, -0.586, 0.791, -0.159 };
+ int lda = 2;
+ double B[] = { 0.021, 0.391, 0.296, -0.154, -0.513, 0.738, -0.336, 0.317, 0.502, 0.543, 0.027, 0.802 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1936) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1936) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.715, -0.875, -0.501, 0.425, -0.928, -0.929, -0.542, 0.915 };
+ int lda = 2;
+ double B[] = { 0.065, 0.679, -0.545, 0.042, 0.199, -0.86, 0.159, 0.943, 0.19, 0.403, 0.994, 0.76 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1937) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1937) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.936, -0.989, -0.57, 0.018, -0.821, 0.516, -0.479, 0.209 };
+ int lda = 2;
+ double B[] = { 0.722, -0.756, -0.828, -0.191, -0.981, -0.466, 0.347, 0.85, -0.596, -0.826, -0.182, -0.321 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1938) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1938) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.693, 0.976, -0.356, -0.313, 0.926, -0.164, -0.337, 0.056 };
+ int lda = 2;
+ double B[] = { -0.988, -0.633, -0.745, -0.392, -0.362, -0.708, -0.706, -0.093, -0.177, 0.837, 0.391, -0.853 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1939) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1939) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.483, -0.383, 0.357, 0.889, 0.523, -0.148, -0.592, 0.481 };
+ int lda = 2;
+ double B[] = { -0.41, 0.994, -0.779, -0.354, 0.571, 0.51, -0.526, 0.934, 0.469, 0.735, -0.47, -0.164 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1940) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1940) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.576, -0.089, 0.953, -0.317, 0.408, 0.618, 0.092, -0.84 };
+ int lda = 2;
+ double B[] = { 0.141, -0.32, -0.007, -0.682, -0.068, -0.412, 0.675, -0.809, 0.931, -0.257, -0.048, 0.633 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1941) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1941) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.269, 0.567, 0.497, -0.969, 0.957, 0.538, -0.921, 0.639, 0.599, -0.436, -0.045, 0.164, 0.827, 0.489, -0.729, 0.723, -0.01, 0.934 };
+ int lda = 3;
+ double B[] = { -0.391, 0.434, -0.349, -0.456, -0.541, 0.289, 0.31, 0.447, 0.971, -0.626, -0.77, -0.882 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1942) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1942) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.523, -0.364, -0.492, 0.294, 0.71, -0.401, 0.947, -0.008, 0.235, -0.47, 0.298, -0.603, -0.193, 0.598, 0.122, -0.733, -0.827, 0.491 };
+ int lda = 3;
+ double B[] = { 0.872, 0.441, 0.518, 0.607, -0.04, -0.976, 0.201, -0.136, -0.958, -0.501, -0.549, -0.4 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1943) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1943) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.177, -0.965, 0.589, -0.236, -0.303, -0.301, 0.982, 0.006, -0.73, 0.241, 0.636, -0.672, 0.886, 0.952, 0.501, -0.803, -0.823, -0.09 };
+ int lda = 3;
+ double B[] = { -0.475, -0.646, -0.666, -0.886, 0.04, -0.736, -0.592, -0.995, 0.259, 0.701, -0.033, 0.616 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1944) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1944) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.76, -0.29, -0.601, 0.327, 0.383, 0.883, 0.589, -0.708, 0.912, -0.982, 0.629, 0.879, -0.578, -0.814, 0.168, 0.91, 0.328, 0.223 };
+ int lda = 3;
+ double B[] = { 0.381, 0.829, 0.096, 0.382, 0.664, 0.006, -0.376, -0.338, 0.344, -0.889, -0.175, 0.083 };
+ int ldb = 3;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1945) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1945) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.129, -0.161, 0.102, 0.443, -0.138, 0.677, -0.87, 0.327, 0.917, 0.446, 0.798, -0.91, -0.574, 0.333, -0.626, 0.14, 0.109, 0.161 };
+ int lda = 3;
+ double B[] = { -0.689, -0.94, -0.814, 0.761, 0.389, 0.03, -0.175, -0.739, -0.904, 0.463, -0.511, 0.615 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1946) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1946) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { 0.062, 0.756, 0.179, 0.359, -0.047, -0.197, 0.678, 0.873, 0.003, -0.996, 0.507, -0.491, -0.726, -0.833, -0.118, -0.71, 0.714, 0.638 };
+ int lda = 3;
+ double B[] = { -0.614, 0.193, 0.881, 0.538, 0.183, -0.034, 0.099, -0.154, -0.121, 0.842, -0.182, -0.229 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1947) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1947) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.874, 0.171, 0.637, 0.554, 0.852, -0.203, 0.455, 0.619, -0.128, 0.759, 0.342, 0.372, 0.669, -0.537, -0.76, -0.348, -0.714, 0.573 };
+ int lda = 3;
+ double B[] = { -0.434, 0.921, -0.949, 0.282, -0.665, 0.223, -0.633, 0.921, -0.73, 0.457, -0.021, -0.844 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1948) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1948) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 111;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0};
+ double A[] = { -0.189, -0.931, 0.414, 0.288, -0.245, 0.252, -0.465, -0.073, 0.327, 0.176, -0.067, 0.1, 0.124, 0.885, -0.731, -0.303, 0.954, -0.763 };
+ int lda = 3;
+ double B[] = { 0.818, 0.948, -0.749, 0.808, -0.959, -0.797, 0.727, 0.701, 0.244, -0.801, 0.354, -0.781 };
+ int ldb = 2;
+ double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1949) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1949) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.65, -0.279, -0.543, -0.097, -0.641, 0.984, 0.507, -0.809 };
+ int lda = 2;
+ double B[] = { -0.176, 0.87, -0.681, 0.409, -0.878, 0.522, 0.348, 0.679, -0.975, -0.815, -0.608, 0.86 };
+ int ldb = 3;
+ double B_expected[] = { 0.256485077177, 1.22837025149, -0.656630178218, 0.911076645728, -0.849544610576, 1.16772760977, -0.193804546743, -0.283833884163, -0.811035478317, 1.16349859839, 0.292241175557, -0.141827660937 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1950) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1950) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { 0.23, -0.597, 0.068, 0.945, 0.045, -0.436, 0.113, 0.035 };
+ int lda = 2;
+ double B[] = { -0.744, -0.465, -0.742, 0.996, -0.835, 0.712, -0.968, 0.053, -0.813, 0.36, 0.572, -0.489 };
+ int ldb = 3;
+ double B_expected[] = { 0.744, 0.465, 0.742, -0.996, 0.835, -0.712, 1.356833, -0.7877, -0.178676, -0.993462, -1.30162, -0.251659 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1951) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1951) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.689, -0.396, 0.415, -0.567, 0.001, 0.513, 0.837, 0.045 };
+ int lda = 2;
+ double B[] = { -0.012, 0.2, 0.22, 0.81, -0.586, -0.198, 0.16, -0.958, -0.125, 0.833, 0.344, 0.213 };
+ int ldb = 3;
+ double B_expected[] = { -0.573154258944, 0.525131422048, 1.33801555643, 0.47629585874, -0.770607912552, -0.160087833623, -0.129249609305, 1.15151282248, 0.0955601670381, -1.00035867087, -0.423449388979, -0.231714190557 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1952) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1952) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { 0.102, 0.86, -0.067, 0.12, 0.92, 0.441, 0.367, -0.104 };
+ int lda = 2;
+ double B[] = { 0.386, 0.59, 0.222, 0.824, 0.091, 0.486, 0.43, 0.766, 0.576, 0.042, 0.013, -0.008 };
+ int ldb = 3;
+ double B_expected[] = { -0.328206, 0.30435, 0.289398, -0.531344, -0.075512, -0.487627, -0.43, -0.766, -0.576, -0.042, -0.013, 0.008 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1953) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1953) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.087, 0.925, -0.315, 0.251, 0.7, -0.223, 0.448, 0.373 };
+ int lda = 2;
+ double B[] = { -0.333, -0.495, 0.995, -0.229, 0.425, -0.269, -0.756, -0.783, -0.214, 0.582, -0.351, -0.095 };
+ int ldb = 2;
+ double B_expected[] = { 0.496880191475, -0.406733596387, -0.965186357327, 2.19761676664, 0.331095906598, 0.428318547163, 1.17655095681, 0.263745306399, -0.645240814927, -0.170663836866, 1.18578937767, -0.829739852214 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1954) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1954) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { 0.717, 0.572, -0.304, 0.878, 0.625, -0.615, -0.565, -0.643 };
+ int lda = 2;
+ double B[] = { -0.383, -0.669, -0.043, -0.09, -0.999, -0.427, 0.834, 0.539, -0.973, -0.481, 0.071, -0.71 };
+ int ldb = 2;
+ double B_expected[] = { 0.383, 0.669, -0.60781, -0.09258, 0.999, 0.427, -1.72098, -0.19149, 0.973, 0.481, -0.97494, 1.00777 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1955) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1955) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { 0.143, -0.022, 0.487, 0.444, 0.138, -0.871, 0.572, -0.093 };
+ int lda = 2;
+ double B[] = { -0.073, -0.9, -0.688, 0.436, -0.213, -0.733, 0.809, -0.618, 0.696, 0.259, 0.494, 0.162 };
+ int ldb = 2;
+ double B_expected[] = { -6.10129128737, 3.22195959384, 1.29255909931, -0.552083922664, 8.05253150033, 8.35261031753, -1.54904967648, 0.828563601552, -3.66721033067, 1.50334288416, -0.796532800529, -0.412722990296 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1956) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1956) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { 0.544, 0.918, -0.524, 0.547, -0.839, 0.4, -0.548, 0.49 };
+ int lda = 2;
+ double B[] = { 0.475, -0.594, 0.252, -0.717, 0.867, 0.07, 0.264, 0.538, 0.028, 0.482, -0.59, -0.533 };
+ int ldb = 2;
+ double B_expected[] = { -0.214849, 1.107552, -0.252, 0.717, -1.299622, -0.207504, -0.264, -0.538, 0.572711, -0.525438, 0.59, 0.533 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1957) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1957) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.038, -0.116, -0.476, -0.818, 0.961, 0.271, -0.593, 0.548, -0.86, 0.429, -0.396, -0.559, 0.766, -0.326, -0.335, 0.633, -0.532, 0.317 };
+ int lda = 3;
+ double B[] = { -0.459, 0.904, 0.887, 0.07, -0.497, -0.48, -0.313, 0.864, -0.029, -0.754, -0.566, -0.108 };
+ int ldb = 3;
+ double B_expected[] = { -4.58258258525, -3.00717937382, 0.0668903493808, 0.800759804641, -0.292673260098, -1.0766492922, -0.911020412982, 7.68812066826, -0.0359723342287, -0.157963939743, -0.695872108638, -0.617653117365 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1958) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1958) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { 0.886, 0.945, 0.065, 0.882, -0.46, -0.095, 0.823, -0.245, -0.825, 0.904, -0.214, -0.268, -0.935, -0.017, 0.902, 0.561, 0.954, -0.665 };
+ int lda = 3;
+ double B[] = { 0.076, -0.043, 0.873, -0.831, -0.329, -0.896, -0.174, 0.653, 0.489, 0.25, -0.896, 0.609 };
+ int ldb = 3;
+ double B_expected[] = { 1.037824842, 1.333886264, -1.042722, 1.110916, 0.329, 0.896, 0.529073224, -0.720680322, -0.134044, -0.140198, 0.896, -0.609 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1959) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1959) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.691, -0.056, -0.339, -0.483, -0.975, -0.052, -0.198, 0.576, -0.075, 0.718, -0.321, 0.728, -0.124, 0.774, 0.685, -0.112, 0.178, 0.275 };
+ int lda = 3;
+ double B[] = { -0.062, -0.391, 0.326, 0.42, -0.203, 0.45, 0.338, 0.991, -0.47, -0.363, 0.766, -0.961 };
+ int ldb = 3;
+ double B_expected[] = { -0.134697690677, -0.554930433172, -0.526377715671, 0.991348747823, -2.94323584375, -1.92805449726, 0.601422754501, 1.38541291715, 0.201151053335, -1.95287726277, 5.96201044303, 2.1797020274 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1960) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1960) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.318, 0.067, -0.097, 0.359, -0.688, 0.307, -0.63, -0.616, 0.193, 0.817, -0.792, -0.117, -0.501, -0.929, -0.595, -0.144, 0.453, 0.658 };
+ int lda = 3;
+ double B[] = { -0.249, -0.206, 0.424, -0.681, -0.464, 0.21, 0.541, 0.082, 0.803, -0.461, -0.638, 0.358 };
+ int ldb = 3;
+ double B_expected[] = { 0.249, 0.206, -0.394026, 0.964164, 0.024089914, 0.641464836, -0.541, -0.082, -1.093318, 0.076084, -0.218343306, -1.013838812 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1961) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1961) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { 0.691, 0.808, -0.178, 0.489, 0.159, -0.646, -0.692, -0.968, -0.146, -0.281, -0.385, 0.773, 0.704, 0.782, 0.551, -0.727, 0.669, 0.858 };
+ int lda = 3;
+ double B[] = { -0.657, -0.69, -0.051, 0.28, -0.846, 0.304, 0.052, 0.543, 0.613, -0.98, 0.983, -0.484 };
+ int ldb = 2;
+ double B_expected[] = { 2.42007211075, -0.148130095453, 4.93683906416, -0.804178199722, 1.76852672271, 0.633536755193, 4.41638755104, -0.0400468884046, 0.363887727302, 0.998182854971, -0.204739276437, 0.986048279795 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1962) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1962) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.244, -0.925, -0.539, 0.422, 0.285, -0.954, -0.347, -0.255, -0.616, -0.979, 0.631, -0.864, -0.053, -0.715, -0.749, -0.973, -0.409, -0.247 };
+ int lda = 3;
+ double B[] = { 0.922, -0.728, 0.588, -0.715, -0.92, -0.065, -0.583, 0.178, 0.996, 0.215, -0.614, -0.443 };
+ int ldb = 2;
+ double B_expected[] = { -0.416484258, -0.267425916, -0.851455486, 1.594186448, 0.383191, -1.065143, 0.611847, 0.751229, -0.996, -0.215, 0.614, 0.443 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1963) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1963) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { 0.992, 0.172, -0.646, 0.067, -0.823, -0.013, -0.55, -0.438, -0.44, -0.302, 0.99, -0.373, 0.513, -0.106, -0.591, -0.504, 0.929, -0.318 };
+ int lda = 3;
+ double B[] = { 0.467, 0.227, 0.988, -0.709, -0.272, -0.601, 0.719, -0.133, 0.203, 0.937, -0.382, -0.334 };
+ int ldb = 2;
+ double B_expected[] = { -0.495544804508, -0.142909570186, -0.846593689328, 0.861506163875, -0.485462670276, -0.898345893497, 1.07522946065, -2.43403194583, 0.315527055267, -0.271726799352, -1.73234815305, 3.5434654009 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1964) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1964) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 112;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {-1, 0};
+ double A[] = { -0.692, -0.245, -0.874, 0.77, 0.07, 0.01, 0.018, -0.42, -0.405, -0.387, 0.888, -0.912, -0.81, 0.314, 0.66, -0.895, -0.556, 0.157 };
+ int lda = 3;
+ double B[] = { -0.801, 0.542, 0.699, 0.574, -0.56, 0.043, 0.742, -0.331, -0.614, 0.776, -0.335, 0.131 };
+ int ldb = 2;
+ double B_expected[] = { 0.801, -0.542, -0.699, -0.574, 0.842734, -1.133478, -1.794906, 0.367554, 0.837894144, 1.029031872, 1.63685728, -2.047172224 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1965) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1965) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.035, -0.456, 0.152, 0.976, 0.687, -0.527, -0.571, 0.832 };
+ int lda = 2;
+ double B[] = { -0.868, 0.033, -0.131, -0.936, 0.993, 0.104, -0.684, 0.851, 0.523, 0.836, -0.205, 0.319 };
+ int ldb = 3;
+ double B_expected[] = { -0.188683836853, 0.0217191541444, -0.044222393276, -0.201868895253, 0.218228063549, 0.00605705652583, 0.252579293874, 0.0800538768738, -0.099911150161, 0.0758372341381, -0.116723296822, -0.16542230206 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1966) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1966) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.481, -0.442, 0.69, 0.415, 0.983, -0.466, 0.503, -0.147 };
+ int lda = 2;
+ double B[] = { -0.287, -0.777, -0.187, 0.061, 0.631, 0.797, 0.833, -0.49, -0.188, 0.386, -0.904, -0.793 };
+ int ldb = 3;
+ double B_expected[] = { 0.0777, -0.0287, -0.0061, -0.0187, -0.0797, 0.0631, 0.0072975, 0.1353485, -0.0266305, -0.0084285, 0.1081065, -0.1670145 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1967) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1967) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.286, 0.025, -0.111, 0.724, -0.973, -0.071, 0.527, -0.334 };
+ int lda = 2;
+ double B[] = { -0.381, -0.131, 0.33, 0.09, 0.35, 0.062, -0.874, 0.252, 0.924, 0.251, 0.559, -0.619 };
+ int ldb = 3;
+ double B_expected[] = { 0.38447496828, 0.401499279514, -0.210140860451, -0.584596680596, -0.443343106286, -0.127686958741, -0.109102585509, -0.096697792106, 0.045298174859, 0.146623168116, 0.131759250934, 0.0225662432408 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1968) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1968) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.862, -0.003, 0.975, 0.364, -0.996, 0.909, -0.316, -0.816 };
+ int lda = 2;
+ double B[] = { 0.167, 0.961, 0.116, 0.675, 0.086, 0.259, -0.483, 0.898, 0.434, 0.723, 0.505, 0.042 };
+ int ldb = 3;
+ double B_expected[] = { -0.1416361, -0.113035, -0.1789614, -0.0108943, -0.0759877, 0.0550802, -0.0898, -0.0483, -0.0723, 0.0434, -0.0042, 0.0505 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1969) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1969) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.826, -0.025, 0.638, -0.183, -0.184, 0.806, 0.131, 0.764 };
+ int lda = 2;
+ double B[] = { -0.038, 0.14, -0.31, -0.494, -0.974, -0.396, -0.217, 0.519, -0.656, -0.737, 0.383, -0.03 };
+ int ldb = 2;
+ double B_expected[] = { 0.0167945280502, 0.00510879322186, 0.0315562985639, 0.0579039669012, -0.0514636821443, 0.116360058046, 0.0192833017545, -0.206389577002, -0.0915450409357, 0.0766481525141, 0.0107002286761, -0.100817314679 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1970) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1970) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.282, -0.433, -0.793, -0.008, -0.999, 0.377, -0.979, 0.421 };
+ int lda = 2;
+ double B[] = { 0.622, -0.722, 0.605, -0.877, 0.935, -0.906, 0.719, -0.607, 0.022, -0.326, -0.905, 0.323 };
+ int ldb = 2;
+ double B_expected[] = { 0.0722, 0.0622, 0.1363784, 0.1498572, 0.0906, 0.0935, 0.1159599, 0.1994627, 0.0326, 0.0022, -0.000562, -0.076012 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1971) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1971) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.934, 0.007, -0.958, 0.434, 0.263, 0.776, 0.097, 0.83 };
+ int lda = 2;
+ double B[] = { -0.405, 0.251, 0.13, 0.388, -0.664, -0.732, -0.779, -0.5, 0.775, -0.299, -0.45, 0.923 };
+ int ldb = 2;
+ double B_expected[] = { -0.026920633021, -0.0986978374343, -0.020841203536, -0.0443113292253, 0.157683298836, 0.0261984465224, 0.099536165222, 0.0486084240644, 0.127725373746, -0.0161073528761, 0.0406652355905, -0.115957262473 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1972) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1972) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 141;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.169, -0.768, -0.529, 0.236, -0.506, 0.691, -0.786, -0.36 };
+ int lda = 2;
+ double B[] = { 0.289, -0.985, 0.931, 0.652, -0.861, -0.51, -0.753, -0.542, -0.822, 0.174, 0.799, 0.8 };
+ int ldb = 2;
+ double B_expected[] = { 0.0420376, 0.0627627, -0.0652, 0.0931, 0.0974426, -0.1131425, 0.0542, -0.0753, -0.0785764, -0.0588129, -0.08, 0.0799 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1973) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1973) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.834, 0.53, 0.278, 0.293, 0.66, 0.497, -0.664, 0.429, -0.294, -0.661, 0.52, -0.247, 0.392, -0.227, 0.209, -0.902, 0.843, 0.37 };
+ int lda = 3;
+ double B[] = { -0.738, 0.166, 0.721, -0.541, -0.963, -0.832, -0.376, -0.718, 0.765, -0.547, 0.451, -0.581 };
+ int ldb = 3;
+ double B_expected[] = { -0.115188282202, -0.000411685478887, 0.105497263516, -0.0083759187965, 0.124793492766, -0.0594619308146, 0.0499107469, -0.0152598288542, 0.00927285309719, -0.0831454824908, 0.0380996260983, 0.0702216627003 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1974) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1974) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.531, -0.691, 0.801, 0.437, 0.402, 0.788, 0.824, 0.599, -0.362, 0.076, 0.192, 0.229, -0.259, -0.279, 0.79, -0.797, 0.728, 0.397 };
+ int lda = 3;
+ double B[] = { -0.049, 0.642, 0.36, 0.428, 0.523, -0.612, 0.459, -0.664, 0.328, 0.513, -0.225, 0.273 };
+ int ldb = 3;
+ double B_expected[] = { -0.0941948813, -0.0387898759, -0.0665271, 0.0399732, 0.0612, 0.0523, 0.1143807788, -0.0091687866, -0.0409059, 0.0308683, -0.0273, -0.0225 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1975) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1975) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.169, -0.092, -0.13, 0.001, 0.573, 0.256, 0.632, -0.09, -0.942, 0.948, 0.595, -0.337, 0.01, -0.786, 0.944, 0.906, -0.832, -0.566 };
+ int lda = 3;
+ double B[] = { -0.461, -0.112, 0.674, -0.268, -0.286, -0.657, 0.329, 0.91, 0.73, 0.488, -0.363, -0.01 };
+ int ldb = 3;
+ double B_expected[] = { -0.0634274139095, -0.238252532073, -0.142693434208, -0.0938542376785, -0.0907100858097, -0.0412217911039, -0.333617825793, 0.376288993923, -0.0317846476268, 0.175075250306, -0.125200687799, -0.118937960805 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1976) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1976) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.53, 0.141, 0.235, 0.474, -0.964, -0.441, 0.197, -0.703, 0.942, 0.98, 0.741, 0.499, -0.738, 0.234, -0.27, -0.158, 0.804, -0.878 };
+ int lda = 3;
+ double B[] = { 0.46, -0.508, 0.918, -0.516, 0.012, -0.451, -0.676, 0.551, -0.38, 0.053, 0.645, 0.785 };
+ int ldb = 3;
+ double B_expected[] = { 0.0508, 0.046, 0.0739304, 0.0470256, 0.0992176528, 0.0480511088, -0.0551, -0.0676, -0.0419681, 0.0140525, -0.112456492, 0.0121429348 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1977) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1977) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { 0.286, 0.548, 0.637, -0.856, -0.739, 0.307, -0.049, -0.342, -0.39, 0.618, -0.757, -0.453, -0.533, 0.131, 0.431, 0.087, -0.776, -0.439 };
+ int lda = 3;
+ double B[] = { 0.968, 0.032, 0.013, 0.684, -0.485, 0.613, 0.316, 0.812, -0.459, 0.34, -0.268, -0.565 };
+ int ldb = 2;
+ double B_expected[] = { -0.126374952238, 0.0484874156039, -0.0755178690743, -0.200973083054, 0.138328459491, -0.0263170966956, 0.00492064241274, -0.0787874374991, 0.00784239970713, 0.0635860998343, -0.0699577429529, -0.00504052726328 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1978) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1978) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 121;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.911, 0.645, -0.525, 0.045, -0.654, -0.896, -0.39, 0.419, 0.867, 0.561, -0.842, -0.835, -0.249, -0.384, 0.575, -0.41, 0.105, -0.282 };
+ int lda = 3;
+ double B[] = { 0.777, 0.361, 0.535, 0.441, 0.508, 0.439, -0.347, 0.131, -0.874, 0.646, 0.917, 0.746 };
+ int ldb = 2;
+ double B_expected[] = { -0.155796389, 0.112639999, 0.0226368685, 0.111048763, -0.042589, 0.127541, 0.067392, -0.0568415, -0.0646, -0.0874, -0.0746, 0.0917 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1979) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1979) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 131;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.519, 0.318, -0.318, 0.73, 0.721, 0.302, -0.604, 0.721, 0.387, 0.673, -0.549, -0.136, 0.101, 0.676, -0.064, -0.659, -0.141, 0.991 };
+ int lda = 3;
+ double B[] = { -0.856, -0.128, 0.721, -0.511, 0.175, -0.341, 0.832, -0.662, 0.652, -0.939, -0.775, -0.899 };
+ int ldb = 2;
+ double B_expected[] = { 0.055542329649, 0.130900846188, -0.133470180979, -0.0571415846795, -0.13942012508, 0.0150972236507, 0.0782230770838, 0.0522994181773, -0.00621452256957, -0.0615971232698, 0.0222285648871, 0.258910370231 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1980) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1980) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int side = 142;
+ int uplo = 122;
+ int trans = 113;
+ int diag = 132;
+ int M = 2;
+ int N = 3;
+ double alpha[2] = {0, 0.1};
+ double A[] = { -0.092, -0.392, 0.108, -0.918, 0.505, -0.974, 0.213, 0.97, -0.465, 0.604, -0.737, -0.578, -0.051, -0.43, 0.066, -0.934, -0.347, 0.157 };
+ int lda = 3;
+ double B[] = { -0.489, 0.673, -0.232, 0.668, -0.396, -0.569, 0.763, 0.581, 0.117, -0.249, 0.272, -0.832 };
+ int ldb = 2;
+ double B_expected[] = { -0.0673, -0.0489, -0.0668, -0.0232, 0.0192782, 0.0274626, -0.0721832, 0.140128, 0.0413393162, 0.1110418366, 0.1221321656, 0.2489754256 };
+ cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
+ {
+ int i;
+ for (i = 0; i < 6; i++) {
+ gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1981) real");
+ gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1981) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/test_trsv.c b/gsl-1.9/cblas/test_trsv.c
new file mode 100644
index 0000000..39f5083
--- /dev/null
+++ b/gsl-1.9/cblas/test_trsv.c
@@ -0,0 +1,1739 @@
+#include <gsl/gsl_test.h>
+#include <gsl/gsl_ieee_utils.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+
+#include "tests.h"
+
+void
+test_trsv (void) {
+const double flteps = 1e-4, dbleps = 1e-6;
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.995f };
+ float X[] = { 0.348f };
+ int incX = -1;
+ float x_expected[] = { 0.349749f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1150)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.995f };
+ float X[] = { 0.348f };
+ int incX = -1;
+ float x_expected[] = { 0.348f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1151)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.995f };
+ float X[] = { 0.348f };
+ int incX = -1;
+ float x_expected[] = { 0.349749f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1152)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.995f };
+ float X[] = { 0.348f };
+ int incX = -1;
+ float x_expected[] = { 0.348f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1153)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.995f };
+ float X[] = { 0.348f };
+ int incX = -1;
+ float x_expected[] = { 0.349749f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1154)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.995f };
+ float X[] = { 0.348f };
+ int incX = -1;
+ float x_expected[] = { 0.348f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1155)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.995f };
+ float X[] = { 0.348f };
+ int incX = -1;
+ float x_expected[] = { 0.349749f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1156)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.995f };
+ float X[] = { 0.348f };
+ int incX = -1;
+ float x_expected[] = { 0.348f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1157)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.793f };
+ float X[] = { 0.338f };
+ int incX = -1;
+ float x_expected[] = { 0.42623f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1158)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.793f };
+ float X[] = { 0.338f };
+ int incX = -1;
+ float x_expected[] = { 0.338f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1159)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.793f };
+ float X[] = { 0.338f };
+ int incX = -1;
+ float x_expected[] = { 0.42623f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1160)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.793f };
+ float X[] = { 0.338f };
+ int incX = -1;
+ float x_expected[] = { 0.338f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1161)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.793f };
+ float X[] = { 0.338f };
+ int incX = -1;
+ float x_expected[] = { 0.42623f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1162)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.793f };
+ float X[] = { 0.338f };
+ int incX = -1;
+ float x_expected[] = { 0.338f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1163)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.793f };
+ float X[] = { 0.338f };
+ int incX = -1;
+ float x_expected[] = { 0.42623f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1164)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.793f };
+ float X[] = { 0.338f };
+ int incX = -1;
+ float x_expected[] = { 0.338f };
+ cblas_strsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], flteps, "strsv(case 1165)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.21 };
+ double X[] = { 0.473 };
+ int incX = -1;
+ double x_expected[] = { -2.25238095238 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1166)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.21 };
+ double X[] = { 0.473 };
+ int incX = -1;
+ double x_expected[] = { 0.473 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1167)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.21 };
+ double X[] = { 0.473 };
+ int incX = -1;
+ double x_expected[] = { -2.25238095238 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1168)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.21 };
+ double X[] = { 0.473 };
+ int incX = -1;
+ double x_expected[] = { 0.473 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1169)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.21 };
+ double X[] = { 0.473 };
+ int incX = -1;
+ double x_expected[] = { -2.25238095238 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1170)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.21 };
+ double X[] = { 0.473 };
+ int incX = -1;
+ double x_expected[] = { 0.473 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1171)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.21 };
+ double X[] = { 0.473 };
+ int incX = -1;
+ double x_expected[] = { -2.25238095238 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1172)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { -0.21 };
+ double X[] = { 0.473 };
+ int incX = -1;
+ double x_expected[] = { 0.473 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1173)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.748 };
+ double X[] = { 0.979 };
+ int incX = -1;
+ double x_expected[] = { 1.30882352941 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1174)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.748 };
+ double X[] = { 0.979 };
+ int incX = -1;
+ double x_expected[] = { 0.979 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1175)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.748 };
+ double X[] = { 0.979 };
+ int incX = -1;
+ double x_expected[] = { 1.30882352941 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1176)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.748 };
+ double X[] = { 0.979 };
+ int incX = -1;
+ double x_expected[] = { 0.979 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1177)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.748 };
+ double X[] = { 0.979 };
+ int incX = -1;
+ double x_expected[] = { 1.30882352941 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1178)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.748 };
+ double X[] = { 0.979 };
+ int incX = -1;
+ double x_expected[] = { 0.979 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1179)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.748 };
+ double X[] = { 0.979 };
+ int incX = -1;
+ double x_expected[] = { 1.30882352941 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1180)");
+ }
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.748 };
+ double X[] = { 0.979 };
+ int incX = -1;
+ double x_expected[] = { 0.979 };
+ cblas_dtrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[i], x_expected[i], dbleps, "dtrsv(case 1181)");
+ }
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.529f, -0.348f };
+ float X[] = { -0.95f, 0.343f };
+ int incX = -1;
+ float x_expected[] = { -1.55112f, -0.372004f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1182) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1182) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.529f, -0.348f };
+ float X[] = { -0.95f, 0.343f };
+ int incX = -1;
+ float x_expected[] = { -0.95f, 0.343f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1183) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1183) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.529f, -0.348f };
+ float X[] = { -0.95f, 0.343f };
+ int incX = -1;
+ float x_expected[] = { -1.55112f, -0.372004f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1184) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1184) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.529f, -0.348f };
+ float X[] = { -0.95f, 0.343f };
+ int incX = -1;
+ float x_expected[] = { -0.95f, 0.343f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1185) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1185) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.529f, -0.348f };
+ float X[] = { -0.95f, 0.343f };
+ int incX = -1;
+ float x_expected[] = { -1.55112f, -0.372004f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1186) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1186) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.529f, -0.348f };
+ float X[] = { -0.95f, 0.343f };
+ int incX = -1;
+ float x_expected[] = { -0.95f, 0.343f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1187) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1187) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.529f, -0.348f };
+ float X[] = { -0.95f, 0.343f };
+ int incX = -1;
+ float x_expected[] = { -1.55112f, -0.372004f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1188) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1188) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.529f, -0.348f };
+ float X[] = { -0.95f, 0.343f };
+ int incX = -1;
+ float x_expected[] = { -0.95f, 0.343f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1189) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1189) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.6f, 0.041f };
+ float X[] = { 0.896f, -0.447f };
+ int incX = -1;
+ float x_expected[] = { 1.43572f, -0.843108f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1190) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1190) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.6f, 0.041f };
+ float X[] = { 0.896f, -0.447f };
+ int incX = -1;
+ float x_expected[] = { 0.896f, -0.447f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1191) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1191) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.6f, 0.041f };
+ float X[] = { 0.896f, -0.447f };
+ int incX = -1;
+ float x_expected[] = { 1.43572f, -0.843108f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1192) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1192) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.6f, 0.041f };
+ float X[] = { 0.896f, -0.447f };
+ int incX = -1;
+ float x_expected[] = { 0.896f, -0.447f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1193) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1193) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.6f, 0.041f };
+ float X[] = { 0.896f, -0.447f };
+ int incX = -1;
+ float x_expected[] = { 1.43572f, -0.843108f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1194) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1194) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.6f, 0.041f };
+ float X[] = { 0.896f, -0.447f };
+ int incX = -1;
+ float x_expected[] = { 0.896f, -0.447f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1195) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1195) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.6f, 0.041f };
+ float X[] = { 0.896f, -0.447f };
+ int incX = -1;
+ float x_expected[] = { 1.43572f, -0.843108f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1196) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1196) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.6f, 0.041f };
+ float X[] = { 0.896f, -0.447f };
+ int incX = -1;
+ float x_expected[] = { 0.896f, -0.447f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1197) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1197) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.397f, 0.683f };
+ float X[] = { 0.765f, 0.18f };
+ int incX = -1;
+ float x_expected[] = { 0.289642f, 0.951701f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1198) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1198) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.397f, 0.683f };
+ float X[] = { 0.765f, 0.18f };
+ int incX = -1;
+ float x_expected[] = { 0.765f, 0.18f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1199) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1199) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.397f, 0.683f };
+ float X[] = { 0.765f, 0.18f };
+ int incX = -1;
+ float x_expected[] = { 0.289642f, 0.951701f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1200) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1200) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.397f, 0.683f };
+ float X[] = { 0.765f, 0.18f };
+ int incX = -1;
+ float x_expected[] = { 0.765f, 0.18f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1201) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1201) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.397f, 0.683f };
+ float X[] = { 0.765f, 0.18f };
+ int incX = -1;
+ float x_expected[] = { 0.289642f, 0.951701f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1202) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1202) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.397f, 0.683f };
+ float X[] = { 0.765f, 0.18f };
+ int incX = -1;
+ float x_expected[] = { 0.765f, 0.18f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1203) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1203) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.397f, 0.683f };
+ float X[] = { 0.765f, 0.18f };
+ int incX = -1;
+ float x_expected[] = { 0.289642f, 0.951701f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1204) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1204) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ float A[] = { 0.397f, 0.683f };
+ float X[] = { 0.765f, 0.18f };
+ int incX = -1;
+ float x_expected[] = { 0.765f, 0.18f };
+ cblas_ctrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], flteps, "ctrsv(case 1205) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], flteps, "ctrsv(case 1205) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.977, -0.955 };
+ double X[] = { -0.627, 0.281 };
+ int incX = -1;
+ double x_expected[] = { -0.471957414573, -0.173714770642 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1206) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1206) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.977, -0.955 };
+ double X[] = { -0.627, 0.281 };
+ int incX = -1;
+ double x_expected[] = { -0.627, 0.281 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1207) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1207) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.977, -0.955 };
+ double X[] = { -0.627, 0.281 };
+ int incX = -1;
+ double x_expected[] = { -0.471957414573, -0.173714770642 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1208) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1208) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.977, -0.955 };
+ double X[] = { -0.627, 0.281 };
+ int incX = -1;
+ double x_expected[] = { -0.627, 0.281 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1209) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1209) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.977, -0.955 };
+ double X[] = { -0.627, 0.281 };
+ int incX = -1;
+ double x_expected[] = { -0.471957414573, -0.173714770642 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1210) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1210) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.977, -0.955 };
+ double X[] = { -0.627, 0.281 };
+ int incX = -1;
+ double x_expected[] = { -0.627, 0.281 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1211) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1211) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.977, -0.955 };
+ double X[] = { -0.627, 0.281 };
+ int incX = -1;
+ double x_expected[] = { -0.471957414573, -0.173714770642 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1212) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1212) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 111;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.977, -0.955 };
+ double X[] = { -0.627, 0.281 };
+ int incX = -1;
+ double x_expected[] = { -0.627, 0.281 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1213) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1213) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.076, -0.16 };
+ double X[] = { 0.3, -0.874 };
+ int incX = -1;
+ double x_expected[] = { 5.18357980622, -0.587200407955 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1214) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1214) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.076, -0.16 };
+ double X[] = { 0.3, -0.874 };
+ int incX = -1;
+ double x_expected[] = { 0.3, -0.874 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1215) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1215) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.076, -0.16 };
+ double X[] = { 0.3, -0.874 };
+ int incX = -1;
+ double x_expected[] = { 5.18357980622, -0.587200407955 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1216) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1216) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.076, -0.16 };
+ double X[] = { 0.3, -0.874 };
+ int incX = -1;
+ double x_expected[] = { 0.3, -0.874 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1217) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1217) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.076, -0.16 };
+ double X[] = { 0.3, -0.874 };
+ int incX = -1;
+ double x_expected[] = { 5.18357980622, -0.587200407955 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1218) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1218) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.076, -0.16 };
+ double X[] = { 0.3, -0.874 };
+ int incX = -1;
+ double x_expected[] = { 0.3, -0.874 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1219) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1219) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.076, -0.16 };
+ double X[] = { 0.3, -0.874 };
+ int incX = -1;
+ double x_expected[] = { 5.18357980622, -0.587200407955 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1220) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1220) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 112;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.076, -0.16 };
+ double X[] = { 0.3, -0.874 };
+ int incX = -1;
+ double x_expected[] = { 0.3, -0.874 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1221) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1221) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.372, -0.745 };
+ double X[] = { -0.085, -0.303 };
+ int incX = -1;
+ double x_expected[] = { -0.371144591432, -0.0712292456544 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1222) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1222) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.372, -0.745 };
+ double X[] = { -0.085, -0.303 };
+ int incX = -1;
+ double x_expected[] = { -0.085, -0.303 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1223) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1223) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.372, -0.745 };
+ double X[] = { -0.085, -0.303 };
+ int incX = -1;
+ double x_expected[] = { -0.371144591432, -0.0712292456544 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1224) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1224) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 101;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.372, -0.745 };
+ double X[] = { -0.085, -0.303 };
+ int incX = -1;
+ double x_expected[] = { -0.085, -0.303 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1225) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1225) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.372, -0.745 };
+ double X[] = { -0.085, -0.303 };
+ int incX = -1;
+ double x_expected[] = { -0.371144591432, -0.0712292456544 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1226) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1226) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 121;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.372, -0.745 };
+ double X[] = { -0.085, -0.303 };
+ int incX = -1;
+ double x_expected[] = { -0.085, -0.303 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1227) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1227) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 131;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.372, -0.745 };
+ double X[] = { -0.085, -0.303 };
+ int incX = -1;
+ double x_expected[] = { -0.371144591432, -0.0712292456544 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1228) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1228) imag");
+ };
+ };
+ };
+
+
+ {
+ int order = 102;
+ int trans = 113;
+ int uplo = 122;
+ int diag = 132;
+ int N = 1;
+ int lda = 1;
+ double A[] = { 0.372, -0.745 };
+ double X[] = { -0.085, -0.303 };
+ int incX = -1;
+ double x_expected[] = { -0.085, -0.303 };
+ cblas_ztrsv(order, uplo, trans, diag, N, A, lda, X, incX);
+ {
+ int i;
+ for (i = 0; i < 1; i++) {
+ gsl_test_rel(X[2*i], x_expected[2*i], dbleps, "ztrsv(case 1229) real");
+ gsl_test_rel(X[2*i+1], x_expected[2*i+1], dbleps, "ztrsv(case 1229) imag");
+ };
+ };
+ };
+
+
+}
diff --git a/gsl-1.9/cblas/tests.c b/gsl-1.9/cblas/tests.c
new file mode 100644
index 0000000..af00945
--- /dev/null
+++ b/gsl-1.9/cblas/tests.c
@@ -0,0 +1,44 @@
+ test_dot ();
+ test_nrm2 ();
+ test_asum ();
+ test_amax ();
+ test_axpy ();
+ test_copy ();
+ test_swap ();
+ test_scal ();
+ test_rotg ();
+ test_rot ();
+ test_rotmg ();
+ test_rotm ();
+ test_gemv ();
+ test_gbmv ();
+ test_trmv ();
+ test_tbmv ();
+ test_tpmv ();
+ test_symv ();
+ test_hemv ();
+ test_hbmv ();
+ test_sbmv ();
+ test_hpmv ();
+ test_spmv ();
+ test_trsv ();
+ test_tbsv ();
+ test_tpsv ();
+ test_ger ();
+ test_syr ();
+ test_her ();
+ test_hpr ();
+ test_spr ();
+ test_syr2 ();
+ test_spr2 ();
+ test_her2 ();
+ test_hpr2 ();
+ test_gemm ();
+ test_symm ();
+ test_hemm ();
+ test_syrk ();
+ test_herk ();
+ test_syr2k ();
+ test_her2k ();
+ test_trmm ();
+ test_trsm ();
diff --git a/gsl-1.9/cblas/tests.h b/gsl-1.9/cblas/tests.h
new file mode 100644
index 0000000..9bfb0fa
--- /dev/null
+++ b/gsl-1.9/cblas/tests.h
@@ -0,0 +1,44 @@
+void test_dot (void);
+void test_nrm2 (void);
+void test_asum (void);
+void test_amax (void);
+void test_axpy (void);
+void test_copy (void);
+void test_swap (void);
+void test_scal (void);
+void test_rotg (void);
+void test_rot (void);
+void test_rotmg (void);
+void test_rotm (void);
+void test_gemv (void);
+void test_gbmv (void);
+void test_trmv (void);
+void test_tbmv (void);
+void test_tpmv (void);
+void test_symv (void);
+void test_hemv (void);
+void test_hbmv (void);
+void test_sbmv (void);
+void test_hpmv (void);
+void test_spmv (void);
+void test_trsv (void);
+void test_tbsv (void);
+void test_tpsv (void);
+void test_ger (void);
+void test_syr (void);
+void test_her (void);
+void test_hpr (void);
+void test_spr (void);
+void test_syr2 (void);
+void test_spr2 (void);
+void test_her2 (void);
+void test_hpr2 (void);
+void test_gemm (void);
+void test_symm (void);
+void test_hemm (void);
+void test_syrk (void);
+void test_herk (void);
+void test_syr2k (void);
+void test_her2k (void);
+void test_trmm (void);
+void test_trsm (void);
diff --git a/gsl-1.9/cblas/xerbla.c b/gsl-1.9/cblas/xerbla.c
new file mode 100644
index 0000000..3991641
--- /dev/null
+++ b/gsl-1.9/cblas/xerbla.c
@@ -0,0 +1,44 @@
+/* xerbla.c
+ *
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_xerbla (int p, const char *rout, const char *form, ...)
+{
+ va_list ap;
+
+ va_start (ap, form);
+
+ if (p)
+ {
+ fprintf (stderr, "Parameter %d to routine %s was incorrect\n", p, rout);
+ }
+
+ vfprintf (stderr, form, ap);
+ va_end (ap);
+
+ abort ();
+}
diff --git a/gsl-1.9/cblas/zaxpy.c b/gsl-1.9/cblas/zaxpy.c
new file mode 100644
index 0000000..d648401
--- /dev/null
+++ b/gsl-1.9/cblas/zaxpy.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zaxpy (const int N, const void *alpha, const void *X, const int incX,
+ void *Y, const int incY)
+{
+#define BASE double
+#include "source_axpy_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zcopy.c b/gsl-1.9/cblas/zcopy.c
new file mode 100644
index 0000000..5e80eb4
--- /dev/null
+++ b/gsl-1.9/cblas/zcopy.c
@@ -0,0 +1,12 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zcopy (const int N, const void *X, const int incX, void *Y,
+ const int incY)
+{
+#define BASE double
+#include "source_copy_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zdotc_sub.c b/gsl-1.9/cblas/zdotc_sub.c
new file mode 100644
index 0000000..43af96e
--- /dev/null
+++ b/gsl-1.9/cblas/zdotc_sub.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zdotc_sub (const int N, const void *X, const int incX, const void *Y,
+ const int incY, void *result)
+{
+#define BASE double
+#define CONJ_SIGN (-1.0)
+#include "source_dot_c.h"
+#undef CONJ_SIGN
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zdotu_sub.c b/gsl-1.9/cblas/zdotu_sub.c
new file mode 100644
index 0000000..65b9898
--- /dev/null
+++ b/gsl-1.9/cblas/zdotu_sub.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zdotu_sub (const int N, const void *X, const int incX, const void *Y,
+ const int incY, void *result)
+{
+#define BASE double
+#define CONJ_SIGN 1.0
+#include "source_dot_c.h"
+#undef CONJ_SIGN
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zdscal.c b/gsl-1.9/cblas/zdscal.c
new file mode 100644
index 0000000..6167664
--- /dev/null
+++ b/gsl-1.9/cblas/zdscal.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zdscal (const int N, const double alpha, void *X, const int incX)
+{
+#define BASE double
+#include "source_scal_c_s.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zgbmv.c b/gsl-1.9/cblas/zgbmv.c
new file mode 100644
index 0000000..dc87576
--- /dev/null
+++ b/gsl-1.9/cblas/zgbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zgbmv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA,
+ const int M, const int N, const int KL, const int KU,
+ const void *alpha, const void *A, const int lda, const void *X,
+ const int incX, const void *beta, void *Y, const int incY)
+{
+#define BASE double
+#include "source_gbmv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zgemm.c b/gsl-1.9/cblas/zgemm.c
new file mode 100644
index 0000000..2046558
--- /dev/null
+++ b/gsl-1.9/cblas/zgemm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zgemm (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+ const int K, const void *alpha, const void *A, const int lda,
+ const void *B, const int ldb, const void *beta, void *C,
+ const int ldc)
+{
+#define BASE double
+#include "source_gemm_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zgemv.c b/gsl-1.9/cblas/zgemv.c
new file mode 100644
index 0000000..41eca39
--- /dev/null
+++ b/gsl-1.9/cblas/zgemv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zgemv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA,
+ const int M, const int N, const void *alpha, const void *A,
+ const int lda, const void *X, const int incX, const void *beta,
+ void *Y, const int incY)
+{
+#define BASE double
+#include "source_gemv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zgerc.c b/gsl-1.9/cblas/zgerc.c
new file mode 100644
index 0000000..9478c3c
--- /dev/null
+++ b/gsl-1.9/cblas/zgerc.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zgerc (const enum CBLAS_ORDER order, const int M, const int N,
+ const void *alpha, const void *X, const int incX, const void *Y,
+ const int incY, void *A, const int lda)
+{
+#define BASE double
+#include "source_gerc.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zgeru.c b/gsl-1.9/cblas/zgeru.c
new file mode 100644
index 0000000..d0f4b96
--- /dev/null
+++ b/gsl-1.9/cblas/zgeru.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zgeru (const enum CBLAS_ORDER order, const int M, const int N,
+ const void *alpha, const void *X, const int incX, const void *Y,
+ const int incY, void *A, const int lda)
+{
+#define BASE double
+#include "source_geru.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zhbmv.c b/gsl-1.9/cblas/zhbmv.c
new file mode 100644
index 0000000..25692ca
--- /dev/null
+++ b/gsl-1.9/cblas/zhbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zhbmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const int K, const void *alpha, const void *A,
+ const int lda, const void *X, const int incX, const void *beta,
+ void *Y, const int incY)
+{
+#define BASE double
+#include "source_hbmv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zhemm.c b/gsl-1.9/cblas/zhemm.c
new file mode 100644
index 0000000..d6b69fe
--- /dev/null
+++ b/gsl-1.9/cblas/zhemm.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zhemm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const void *alpha, const void *A, const int lda, const void *B,
+ const int ldb, const void *beta, void *C, const int ldc)
+{
+#define BASE double
+#include "source_hemm.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zhemv.c b/gsl-1.9/cblas/zhemv.c
new file mode 100644
index 0000000..5bc76fa
--- /dev/null
+++ b/gsl-1.9/cblas/zhemv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zhemv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *A, const int lda,
+ const void *X, const int incX, const void *beta, void *Y,
+ const int incY)
+{
+#define BASE double
+#include "source_hemv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zher.c b/gsl-1.9/cblas/zher.c
new file mode 100644
index 0000000..c3e3a6e
--- /dev/null
+++ b/gsl-1.9/cblas/zher.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zher (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const void *X, const int incX,
+ void *A, const int lda)
+{
+#define BASE double
+#include "source_her.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zher2.c b/gsl-1.9/cblas/zher2.c
new file mode 100644
index 0000000..db7e1e6
--- /dev/null
+++ b/gsl-1.9/cblas/zher2.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zher2 (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *A, const int lda)
+{
+#define BASE double
+#include "source_her2.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zher2k.c b/gsl-1.9/cblas/zher2k.c
new file mode 100644
index 0000000..be73ab4
--- /dev/null
+++ b/gsl-1.9/cblas/zher2k.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zher2k (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda, const void *B,
+ const int ldb, const double beta, void *C, const int ldc)
+{
+#define BASE double
+#include "source_her2k.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zherk.c b/gsl-1.9/cblas/zherk.c
new file mode 100644
index 0000000..ccfd1d9
--- /dev/null
+++ b/gsl-1.9/cblas/zherk.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zherk (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const double alpha, const void *A, const int lda,
+ const double beta, void *C, const int ldc)
+{
+#define BASE double
+#include "source_herk.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zhpmv.c b/gsl-1.9/cblas/zhpmv.c
new file mode 100644
index 0000000..518c264
--- /dev/null
+++ b/gsl-1.9/cblas/zhpmv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zhpmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *Ap, const void *X,
+ const int incX, const void *beta, void *Y, const int incY)
+{
+#define BASE double
+#include "source_hpmv.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zhpr.c b/gsl-1.9/cblas/zhpr.c
new file mode 100644
index 0000000..964e3af
--- /dev/null
+++ b/gsl-1.9/cblas/zhpr.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zhpr (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const double alpha, const void *X, const int incX,
+ void *Ap)
+{
+#define BASE double
+#include "source_hpr.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zhpr2.c b/gsl-1.9/cblas/zhpr2.c
new file mode 100644
index 0000000..971af91
--- /dev/null
+++ b/gsl-1.9/cblas/zhpr2.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zhpr2 (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const int N, const void *alpha, const void *X, const int incX,
+ const void *Y, const int incY, void *Ap)
+{
+#define BASE double
+#include "source_hpr2.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zscal.c b/gsl-1.9/cblas/zscal.c
new file mode 100644
index 0000000..2667743
--- /dev/null
+++ b/gsl-1.9/cblas/zscal.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zscal (const int N, const void *alpha, void *X, const int incX)
+{
+#define BASE double
+#include "source_scal_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zswap.c b/gsl-1.9/cblas/zswap.c
new file mode 100644
index 0000000..9cf6796
--- /dev/null
+++ b/gsl-1.9/cblas/zswap.c
@@ -0,0 +1,11 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zswap (const int N, void *X, const int incX, void *Y, const int incY)
+{
+#define BASE double
+#include "source_swap_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zsymm.c b/gsl-1.9/cblas/zsymm.c
new file mode 100644
index 0000000..dcc6d2f
--- /dev/null
+++ b/gsl-1.9/cblas/zsymm.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zsymm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
+ const void *alpha, const void *A, const int lda, const void *B,
+ const int ldb, const void *beta, void *C, const int ldc)
+{
+#define BASE double
+#include "source_symm_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zsyr2k.c b/gsl-1.9/cblas/zsyr2k.c
new file mode 100644
index 0000000..68fe0c5
--- /dev/null
+++ b/gsl-1.9/cblas/zsyr2k.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zsyr2k (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda, const void *B,
+ const int ldb, const void *beta, void *C, const int ldc)
+{
+#define BASE double
+#include "source_syr2k_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/zsyrk.c b/gsl-1.9/cblas/zsyrk.c
new file mode 100644
index 0000000..6593642
--- /dev/null
+++ b/gsl-1.9/cblas/zsyrk.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_zsyrk (const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+ const void *alpha, const void *A, const int lda,
+ const void *beta, void *C, const int ldc)
+{
+#define BASE double
+#include "source_syrk_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ztbmv.c b/gsl-1.9/cblas/ztbmv.c
new file mode 100644
index 0000000..b3510e8
--- /dev/null
+++ b/gsl-1.9/cblas/ztbmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ztbmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const void *A, const int lda, void *X,
+ const int incX)
+{
+#define BASE double
+#include "source_tbmv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ztbsv.c b/gsl-1.9/cblas/ztbsv.c
new file mode 100644
index 0000000..b9f35e5
--- /dev/null
+++ b/gsl-1.9/cblas/ztbsv.c
@@ -0,0 +1,16 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+#include "hypot.c"
+
+void
+cblas_ztbsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const int K, const void *A, const int lda, void *X,
+ const int incX)
+{
+#define BASE double
+#include "source_tbsv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ztpmv.c b/gsl-1.9/cblas/ztpmv.c
new file mode 100644
index 0000000..be6dee3
--- /dev/null
+++ b/gsl-1.9/cblas/ztpmv.c
@@ -0,0 +1,13 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ztpmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *Ap, void *X, const int incX)
+{
+#define BASE double
+#include "source_tpmv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ztpsv.c b/gsl-1.9/cblas/ztpsv.c
new file mode 100644
index 0000000..c7ac791
--- /dev/null
+++ b/gsl-1.9/cblas/ztpsv.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+#include "hypot.c"
+
+void
+cblas_ztpsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *Ap, void *X, const int incX)
+{
+#define BASE double
+#include "source_tpsv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ztrmm.c b/gsl-1.9/cblas/ztrmm.c
new file mode 100644
index 0000000..f55b1d2
--- /dev/null
+++ b/gsl-1.9/cblas/ztrmm.c
@@ -0,0 +1,15 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ztrmm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const void *alpha, const void *A, const int lda, void *B,
+ const int ldb)
+{
+#define BASE double
+#include "source_trmm_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ztrmv.c b/gsl-1.9/cblas/ztrmv.c
new file mode 100644
index 0000000..1ed58be
--- /dev/null
+++ b/gsl-1.9/cblas/ztrmv.c
@@ -0,0 +1,14 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+void
+cblas_ztrmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *A, const int lda, void *X,
+ const int incX)
+{
+#define BASE double
+#include "source_trmv_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ztrsm.c b/gsl-1.9/cblas/ztrsm.c
new file mode 100644
index 0000000..b44b0e1
--- /dev/null
+++ b/gsl-1.9/cblas/ztrsm.c
@@ -0,0 +1,17 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+#include "hypot.c"
+
+void
+cblas_ztrsm (const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+ const enum CBLAS_DIAG Diag, const int M, const int N,
+ const void *alpha, const void *A, const int lda, void *B,
+ const int ldb)
+{
+#define BASE double
+#include "source_trsm_c.h"
+#undef BASE
+}
diff --git a/gsl-1.9/cblas/ztrsv.c b/gsl-1.9/cblas/ztrsv.c
new file mode 100644
index 0000000..54d43ae
--- /dev/null
+++ b/gsl-1.9/cblas/ztrsv.c
@@ -0,0 +1,16 @@
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_cblas.h>
+#include "cblas.h"
+
+#include "hypot.c"
+
+void
+cblas_ztrsv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+ const int N, const void *A, const int lda, void *X,
+ const int incX)
+{
+#define BASE double
+#include "source_trsv_c.h"
+#undef BASE
+}