Skip to content

Commit 84c0d33

Browse files
sknepperrscohn2
authored andcommitted
oneMKL: update LAPACK domain
1 parent 77d70a4 commit 84c0d33

File tree

81 files changed

+7135
-4330
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+7135
-4330
lines changed

source/elements/oneMKL/source/domains/dense_linear_algebra.inc.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This section contains information about dense linear algebra routines:
99

1010
:ref:`onemkl_blas` provides vector, matrix-vector, and matrix-matrix routines for dense matrices and vector operations.
1111

12-
:ref:`onemkl_lapack` provides more complex dense linear algebra routines, e.g., solving dense systems of linear equations, least square problems, eigenvalue, singular value problems, and Sylvester's equations.
12+
:ref:`onemkl_lapack` provides more complex dense linear algebra routines, e.g., matrix factorization, solving dense systems of linear equations, least square problems, eigenvalue and singular value problems, and performing a number of related computational tasks.
1313

1414
.. toctree::
1515
:hidden:

source/elements/oneMKL/source/domains/lapack/gebrd.rst

Lines changed: 152 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,15 @@
1+
.. _onemkl_lapack_gebrd:
12

2-
gebrd
3-
=====
3+
onemkl::lapack::gebrd
4+
=====================
45

56

67
.. container::
78

89

9-
Reduces a general matrix to bidiagonal form. This routine belongs to
10-
the ``onemkl::lapack``\ namespace.
10+
Reduces a general matrix to bidiagonal form.
1111

1212

13-
.. container:: section
14-
:name: GUID-8DFD8E6D-C63C-4D34-9784-4DEDFF7C1965
15-
16-
17-
.. rubric:: Syntax
18-
:class: sectiontitle
19-
20-
21-
For real precisions:
22-
23-
24-
.. cpp:function:: void gebrd(queue &exec_queue, std::int64_t m, std::int64_t n, buffer<T,1> &a, std::int64_t lda, buffer<T,1> &d, buffer<T,1> &e, buffer<T,1> &tauq, buffer<T,1> &taup, buffer<T,1> &work, std::int64_t lwork, buffer<std::int64_t,1> &info)
25-
26-
For complex precisions:
27-
28-
29-
.. cpp:function:: void gebrd(queue &exec_queue, std::int64_t m, std::int64_t n, buffer<T,1> &a, std::int64_t lda, buffer<realT,1> &d, buffer<realT,1> &e, buffer<T,1> &tauq, buffer<T,1> &taup, buffer<T,1> &work, std::int64_t lwork, buffer<std::int64_t,1> &info)
30-
3113
``gebrd`` supports the following precisions.
3214

3315

@@ -44,7 +26,6 @@ gebrd
4426

4527

4628
.. container:: section
47-
:name: GUID-B6C26CE6-BBEA-493E-922B-C81BEB0C48CC
4829

4930

5031
.. rubric:: Description
@@ -86,25 +67,39 @@ gebrd
8667

8768

8869
- to compute ``Q`` and ``P`` explicitly, call
89-
`orgbr <orgbr.html>`__.
70+
:ref:`onemkl_lapack_orgbr`.
9071

9172

9273
If the matrix ``A`` is complex,
9374

9475

9576
- to compute ``Q`` and ``P`` explicitly, call
96-
`ungbr <ungbr.html>`__.
77+
:ref:`onemkl_lapack_ungbr`
78+
79+
80+
onemkl::lapack::gebrd (BUFFER Version)
81+
--------------------------------------
82+
83+
.. container::
84+
85+
.. container:: section
86+
87+
88+
.. rubric:: Syntax
89+
:class: sectiontitle
90+
91+
92+
.. cpp:function:: void onemkl::lapack::gebrd(cl::sycl::queue &queue, std::int64_t m, std::int64_t n, cl::sycl::buffer<T,1> &a, std::int64_t lda, cl::sycl::buffer<realT,1> &d, cl::sycl::buffer<realT,1> &e, cl::sycl::buffer<T,1> &tauq, cl::sycl::buffer<T,1> &taup, cl::sycl::buffer<T,1> &scratchpad, std::int64_t scratchpad_size)
9793

9894

9995
.. container:: section
100-
:name: GUID-F841BA63-D4EE-4C75-9831-BB804CEA8622
10196

10297

10398
.. rubric:: Input Parameters
10499
:class: sectiontitle
105100

106101

107-
exec_queue
102+
queue
108103
The queue where the routine should be executed.
109104

110105

@@ -126,13 +121,12 @@ gebrd
126121
The leading dimension of ``a``.
127122

128123

129-
lwork
130-
The size of the work buffer. Must be computed by
131-
`gebrd_get_lwork <gebrd_get_lwork.html>`__.
124+
scratchpad_size
125+
Size of scratchpad memory as a number of floating point elements of type T.
126+
Size should not be less than the value returned by :ref:`onemkl_lapack_gebrd_scratchpad_size` function.
132127

133128

134129
.. container:: section
135-
:name: GUID-F0C3D97D-E883-4070-A1C2-4FE43CC37D12
136130

137131

138132
.. rubric:: Output Parameters
@@ -179,36 +173,150 @@ gebrd
179173
unitary matrix ``P``.
180174

181175

182-
work
183-
Buffer of workspace.
176+
scratchpad
177+
Buffer holding scratchpad memory to be used by routine for storing intermediate results.
184178

185179

186-
info
187-
Buffer containing error information.
180+
.. container:: section
181+
182+
183+
.. rubric:: Throws
184+
:class: sectiontitle
185+
188186

187+
onemkl::lapack::exception
188+
Exception is thrown in case of problems happened during calculations. The ``info`` code of the problem can be obtained by `get_info()` method of exception object:
189189

190-
If ``info=0``, the execution is successful.
190+
If ``info=-i``, the ``i``-th parameter had an illegal value.
191191

192+
If ``info`` equals to value passed as scratchpad size, and ``get_detail()`` returns non zero, then passed scratchpad is of insufficient size, and required size should not be less than value return by ``get_detail()`` method of exception object.
192193

193-
If ``info=-i``, the ``i``-th parameter had an illegal value.
194+
195+
onemkl::lapack::gebrd (USM Version)
196+
--------------------------------------
197+
198+
.. container::
199+
200+
.. container:: section
201+
202+
203+
.. rubric:: Syntax
204+
:class: sectiontitle
205+
206+
207+
.. cpp:function:: cl::sycl::event onemkl::lapack::gebrd(cl::sycl::queue &queue, std::int64_t m, std::int64_t n, T *a, std::int64_t lda, RealT *d, RealT *e, T *tauq, T *taup, T *scratchpad, std::int64_t scratchpad_size, const cl::sycl::vector_class<cl::sycl::event> &events = {})
194208

195209

196210
.. container:: section
197-
:name: GUID-C97BF68F-B566-4164-95E0-A7ADC290DDE2
198211

199212

200-
.. rubric:: Example
213+
.. rubric:: Input Parameters
201214
:class: sectiontitle
202215

203216

204-
An example of how to use ``gebrd``\ can be found in the oneMKL
205-
installation directory, under:
217+
queue
218+
The queue where the routine should be executed.
219+
220+
221+
m
222+
The number of rows in the matrix ``A`` (``0≤m``).
223+
224+
225+
n
226+
The number of columns in the matrix ``A`` (``0≤n``).
227+
228+
229+
a
230+
Pointer to matrix ``A``. The second dimension of ``a`` must be at least
231+
``max(1, m)``.
232+
233+
234+
lda
235+
The leading dimension of ``a``.
206236

207237

208-
::
238+
scratchpad_size
239+
Size of scratchpad memory as a number of floating point elements of type T.
240+
Size should not be less than the value returned by :ref:`onemkl_lapack_gebrd_scratchpad_size` function.
241+
242+
events
243+
List of events to wait for before starting computation. Defaults to empty list.
244+
245+
246+
.. container:: section
247+
248+
249+
.. rubric:: Output Parameters
250+
:class: sectiontitle
251+
252+
253+
a
254+
If ``m≥n``, the diagonal and first super-diagonal of a are
255+
overwritten by the upper bidiagonal matrix ``B``. The elements
256+
below the diagonal, with the array tauq, represent the orthogonal
257+
matrix ``Q`` as a product of elementary reflectors, and the
258+
elements above the first superdiagonal, with the array taup,
259+
represent the orthogonal matrix ``P`` as a product of elementary
260+
reflectors.
261+
262+
263+
If ``m<n``, the diagonal and first sub-diagonal of a are
264+
overwritten by the lower bidiagonal matrix ``B``. The elements
265+
below the first subdiagonal, with the array tauq, represent the
266+
orthogonal matrix ``Q`` as a product of elementary reflectors, and
267+
the elements above the diagonal, with the array taup, represent
268+
the orthogonal matrix ``P`` as a product of elementary reflectors.
269+
270+
271+
d
272+
Pointer to memory of size at least ``max(1, min(m,n))``. Contains the diagonal
273+
elements of ``B``.
274+
275+
276+
e
277+
Pointer to memory of size at least ``max(1, min(m,n) - 1)``. Contains the
278+
off-diagonal elements of ``B``.
279+
280+
281+
tauq
282+
Pointer to memory of size at least ``max(1, min(m, n))``. The scalar factors of
283+
the elementary reflectors which represent the orthogonal or
284+
unitary matrix ``Q``.
285+
286+
287+
taup
288+
Pointer to memory of size at least ``max(1, min(m, n))``. The scalar factors of
289+
the elementary reflectors which represent the orthogonal or
290+
unitary matrix ``P``.
291+
292+
293+
scratchpad
294+
Pointer to scratchpad memory to be used by routine for storing intermediate results.
295+
296+
297+
.. container:: section
298+
299+
300+
.. rubric:: Throws
301+
:class: sectiontitle
302+
303+
304+
onemkl::lapack::exception
305+
Exception is thrown in case of problems happened during calculations. The ``info`` code of the problem can be obtained by `get_info()` method of exception object:
306+
307+
If ``info=-i``, the ``i``-th parameter had an illegal value.
308+
309+
If ``info`` equals to value passed as scratchpad size, and ``get_detail()`` returns non zero, then passed scratchpad is of insufficient size, and required size should not be less than value return by ``get_detail()`` method of exception object.
310+
311+
312+
.. container:: section
313+
314+
315+
.. rubric:: Return Values
316+
:class: sectiontitle
209317

210318

211-
examples/sycl/lapack/gebrd.cpp
319+
Output event to wait on to ensure computation is complete.
212320

213321

214322
.. container:: familylinks
@@ -217,8 +325,7 @@ gebrd
217325
.. container:: parentlink
218326

219327

220-
**Parent topic:** `LAPACK
221-
Routines <lapack.html>`__
328+
**Parent topic:** :ref:`onemkl_lapack-singular-value-eigenvalue-routines`
222329

223330

224331

0 commit comments

Comments
 (0)