3 import numpy.testing
as npt
12 seed = np.int32(time.perf_counter() * 1e3)
15 print(
"Test cublas 2")
16 print(
"Precision: ", prec)
18 c = ch.context.get_instance()
36 Mat = ch.obj_float(c, np.random.randn(sizem, sizen))
37 MatT = ch.obj_float(c, np.random.randn(sizen, sizem))
41 Vectx = ch.obj_float(c, np.random.randn(sizen))
42 Vecty = ch.obj_float(c, np.random.randn(sizem))
51 y = alpha * A.dot(x) + beta * y
53 y3 = alpha * AT.T.dot(x)
57 Mat.gemv(Vectx, alpha,
'N', Vecty, beta)
58 Vecty_2 = Mat.gemv(Vectx, alpha,
'N')
59 Vecty_3 = MatT.gemv(Vectx, alpha,
'T')
61 npt.assert_array_almost_equal(y, np.array(Vecty), decimal=dec - 1)
62 npt.assert_array_almost_equal(y2, np.array(Vecty_2), decimal=dec - 1)
63 npt.assert_array_almost_equal(y3, np.array(Vecty_3), decimal=dec - 1)
71 Mat = ch.obj_float(c, np.random.randn(sizem, sizen))
74 Vectx = ch.obj_float(c, np.random.randn(sizen))
77 Vecty = ch.obj_float(c, np.random.randn(sizem))
84 caOresA = Vecty.ger(Vectx, Mat)
85 caOresB = Vecty.ger(Vectx)
87 A = np.outer(y, x) + A
91 npt.assert_array_almost_equal(B, np.array(caOresB), decimal=dec)
99 MatSym = ch.obj_float(c, np.random.randn(sizem, sizem))
101 data_R = np.array(MatSym)
102 data_R = data_R + data_R.T
103 MatSym = ch.obj_float(c, data_R)
105 Vectx = ch.obj_float(c, np.random.randn((sizem)))
108 Vecty = ch.obj_float(c, np.random.randn((sizem)))
116 MatSym.symv(Vectx, vecty=Vecty)
117 Vecty_2 = MatSym.symv(Vectx)
119 npt.assert_array_almost_equal(y, np.array(Vecty), decimal=dec)
120 npt.assert_array_almost_equal(y, np.array(Vecty_2), decimal=dec)
132 Mat = ch.obj_double(c, np.random.randn(sizem, sizen))
133 MatT = ch.obj_double(c, np.random.randn(sizen, sizem))
137 Vectx = ch.obj_double(c, np.random.randn(sizen))
138 Vecty = ch.obj_double(c, np.random.randn(sizem))
147 y = alpha * A.dot(x) + beta * y
148 y2 = alpha * A.dot(x)
149 y3 = alpha * AT.T.dot(x)
153 Mat.gemv(Vectx, alpha,
'N', Vecty, beta)
154 Vecty_2 = Mat.gemv(Vectx, alpha,
'N')
155 Vecty_3 = MatT.gemv(Vectx, alpha,
'T')
157 npt.assert_array_almost_equal(y, np.array(Vecty), decimal=dec - 1)
158 npt.assert_array_almost_equal(y2, np.array(Vecty_2), decimal=dec - 1)
159 npt.assert_array_almost_equal(y3, np.array(Vecty_3), decimal=dec - 1)
167 Mat = ch.obj_double(c, np.random.randn(sizem, sizen))
170 Vectx = ch.obj_double(c, np.random.randn(sizen))
173 Vecty = ch.obj_double(c, np.random.randn(sizem))
180 caOresA = Vecty.ger(Vectx, Mat)
181 caOresB = Vecty.ger(Vectx)
183 A = np.outer(y, x) + A
187 npt.assert_array_almost_equal(B, np.array(caOresB), decimal=dec)
195 MatSym = ch.obj_double(c, np.random.randn(sizem, sizem))
197 data_R = np.array(MatSym)
198 data_R = data_R + data_R.T
199 MatSym = ch.obj_double(c, data_R)
201 Vectx = ch.obj_double(c, np.random.randn((sizem)))
204 Vecty = ch.obj_double(c, np.random.randn((sizem)))
212 MatSym.symv(Vectx, vecty=Vecty)
213 Vecty_2 = MatSym.symv(Vectx)
215 npt.assert_array_almost_equal(y, np.array(Vecty), decimal=dec)
216 npt.assert_array_almost_equal(y, np.array(Vecty_2), decimal=dec)