]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/multiprecision/test/ublas_interop/test22.cpp
2 // Copyright (c) 2000-2002
3 // Joerg Walter, Mathias Koch
5 // Distributed under the Boost Software License, Version 1.0. (See
6 // accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
9 // The authors gratefully acknowledge the support of
10 // GeNeSys mbH & Co. KG in producing this work.
13 #if defined(__GNUC__) && (__GNUC__ >= 9)
14 #pragma GCC diagnostic ignored "-Wdeprecated-copy"
19 template <class V
, class M
, int N
>
20 void test_blas_2
<V
, M
, N
>::test()
27 initialize_vector(v1
);
29 ublas::blas_2::tmv(v1
, m
);
30 std::cout
<< "tmv (v1, m) = " << v1
<< std::endl
;
31 initialize_vector(v1
);
33 ublas::blas_2::tmv(v1
, ublas::trans(m
));
34 std::cout
<< "tmv (v1, trans (m)) = " << v1
<< std::endl
;
35 #ifdef USE_STD_COMPLEX
36 initialize_vector(v1
);
38 ublas::blas_2::tmv(v1
, ublas::herm(m
));
39 std::cout
<< "tmv (v1, herm (m)) = " << v1
<< std::endl
;
43 initialize_vector(v1
);
44 initialize_vector(v2
);
45 initialize_matrix(m
, ublas::lower_tag());
46 ublas::blas_2::tsv(v1
, m
, ublas::lower_tag());
47 std::cout
<< "tsv (v1, m) = " << v1
<< " " << ublas::prod(m
, v1
) - v2
<< std::endl
;
48 initialize_vector(v1
);
49 initialize_vector(v2
);
50 initialize_matrix(m
, ublas::upper_tag());
51 ublas::blas_2::tsv(v1
, ublas::trans(m
), ublas::lower_tag());
52 std::cout
<< "tsv (v1, trans (m)) = " << v1
<< " " << ublas::prod(ublas::trans(m
), v1
) - v2
<< std::endl
;
53 #ifdef USE_STD_COMPLEX
54 initialize_vector(v1
);
55 initialize_vector(v2
);
56 initialize_matrix(m
, ublas::upper_tag());
57 ublas::blas_2::tsv(v1
, ublas::herm(m
), ublas::lower_tag());
58 std::cout
<< "tsv (v1, herm (m)) = " << v1
<< " " << ublas::prod(ublas::herm(m
), v1
) - v2
<< std::endl
;
60 initialize_vector(v1
);
61 initialize_vector(v2
);
62 initialize_matrix(m
, ublas::upper_tag());
63 ublas::blas_2::tsv(v1
, m
, ublas::upper_tag());
64 std::cout
<< "tsv (v1, m) = " << v1
<< " " << ublas::prod(m
, v1
) - v2
<< std::endl
;
65 initialize_vector(v1
);
66 initialize_vector(v2
);
67 initialize_matrix(m
, ublas::lower_tag());
68 ublas::blas_2::tsv(v1
, ublas::trans(m
), ublas::upper_tag());
69 std::cout
<< "tsv (v1, trans (m)) = " << v1
<< " " << ublas::prod(ublas::trans(m
), v1
) - v2
<< std::endl
;
70 #ifdef USE_STD_COMPLEX
71 initialize_vector(v1
);
72 initialize_vector(v2
);
73 initialize_matrix(m
, ublas::lower_tag());
74 ublas::blas_2::tsv(v1
, ublas::herm(m
), ublas::upper_tag());
75 std::cout
<< "tsv (v1, herm (m)) = " << v1
<< " " << ublas::prod(ublas::herm(m
), v1
) - v2
<< std::endl
;
81 initialize_vector(v1
);
82 initialize_vector(v2
);
84 ublas::blas_2::gmv(v1
, value_type(1), value_type(1), m
, v2
);
85 std::cout
<< "gmv (v1, 1, 1, m, v2) = " << v1
<< std::endl
;
86 ublas::blas_2::gmv(v1
, value_type(1), value_type(1), ublas::trans(m
), v2
);
87 std::cout
<< "gmv (v1, 1, 1, trans (m), v2) = " << v1
<< std::endl
;
88 #ifdef USE_STD_COMPLEX
89 ublas::blas_2::gmv(v1
, value_type(1), value_type(1), ublas::herm(m
), v2
);
90 std::cout
<< "gmv (v1, 1, 1, herm (m), v2) = " << v1
<< std::endl
;
96 initialize_vector(v1
);
97 initialize_vector(v2
);
99 ublas::blas_2::gr(m
, value_type(1), v1
, v2
);
100 std::cout
<< "gr (m, 1, v1, v2) = " << m
<< std::endl
;
101 ublas::blas_2::gr(m
, value_type(1), v1
, ublas::conj(v2
));
102 std::cout
<< "gr (m, 1, v1, conj (v2)) = " << m
<< std::endl
;
105 initialize_vector(v1
);
106 initialize_matrix(m
);
107 ublas::blas_2::sr(m
, value_type(1), v1
);
108 std::cout
<< "sr (m, 1, v1) = " << m
<< std::endl
;
110 #ifdef USE_STD_COMPLEX
112 initialize_vector(v1
);
113 initialize_matrix(m
);
114 ublas::blas_2::hr(m
, value_type(1), v1
);
115 std::cout
<< "hr (m, 1, v1) = " << m
<< std::endl
;
119 initialize_vector(v1
);
120 initialize_vector(v2
);
121 initialize_matrix(m
);
122 ublas::blas_2::sr2(m
, value_type(1), v1
, v2
);
123 std::cout
<< "sr2 (m, 1, v1, v2) = " << m
<< std::endl
;
125 #ifdef USE_STD_COMPLEX
127 initialize_vector(v1
);
128 initialize_vector(v2
);
129 initialize_matrix(m
);
130 ublas::blas_2::hr2(m
, value_type(1), v1
, v2
);
131 std::cout
<< "hr2 (m, 1, v1, v2) = " << m
<< std::endl
;
137 template struct test_blas_2
<ublas::vector
<mp_test_type
>, ublas::matrix
<mp_test_type
>, 3>;
141 template struct test_blas_2
<ublas::vector
<double>, ublas::matrix
<double>, 3>;
144 #ifdef USE_STD_COMPLEX
146 template struct test_blas_2
<ublas::vector
<std::complex<mp_test_type
> >, ublas::matrix
<std::complex<mp_test_type
> >, 3>;
150 template struct test_blas_2
<ublas::vector
<std::complex<double> >, ublas::matrix
<std::complex<double> >, 3>;