Statistiques
| Révision :

root / www / HPL_dgemv.html

Historique | Voir | Annoter | Télécharger (4,34 ko)

1 1 equemene
<HTML>
2 1 equemene
<HEAD>
3 1 equemene
<TITLE>HPL_dgemv HPL 2.0 Library Functions September 10, 2008</TITLE>
4 1 equemene
</HEAD>
5 1 equemene
6 1 equemene
<BODY BGCOLOR="WHITE" TEXT = "#000000" LINK = "#0000ff" VLINK = "#000099"
7 1 equemene
      ALINK = "#ffff00">
8 1 equemene
9 1 equemene
<H1>Name</H1>
10 1 equemene
<B>HPL_dgemv</B> y := beta * y + alpha * op(A) * x.
11 1 equemene
12 1 equemene
<H1>Synopsis</H1>
13 1 equemene
<CODE>#include "hpl.h"</CODE><BR><BR>
14 1 equemene
<CODE>void</CODE>
15 1 equemene
<CODE>HPL_dgemv(</CODE>
16 1 equemene
<CODE>const enum HPL_ORDER</CODE>
17 1 equemene
<CODE>ORDER</CODE>,
18 1 equemene
<CODE>const enum HPL_TRANS</CODE>
19 1 equemene
<CODE>TRANS</CODE>,
20 1 equemene
<CODE>const int</CODE>
21 1 equemene
<CODE>M</CODE>,
22 1 equemene
<CODE>const int</CODE>
23 1 equemene
<CODE>N</CODE>,
24 1 equemene
<CODE>const double</CODE>
25 1 equemene
<CODE>ALPHA</CODE>,
26 1 equemene
<CODE>const double *</CODE>
27 1 equemene
<CODE>A</CODE>,
28 1 equemene
<CODE>const int</CODE>
29 1 equemene
<CODE>LDA</CODE>,
30 1 equemene
<CODE>const double *</CODE>
31 1 equemene
<CODE>X</CODE>,
32 1 equemene
<CODE>const int</CODE>
33 1 equemene
<CODE>INCX</CODE>,
34 1 equemene
<CODE>const double</CODE>
35 1 equemene
<CODE>BETA</CODE>,
36 1 equemene
<CODE>double *</CODE>
37 1 equemene
<CODE>Y</CODE>,
38 1 equemene
<CODE>const int</CODE>
39 1 equemene
<CODE>INCY</CODE>
40 1 equemene
<CODE>);</CODE>
41 1 equemene
42 1 equemene
<H1>Description</H1>
43 1 equemene
<B>HPL_dgemv</B>
44 1 equemene
performs one of the matrix-vector operations
45 1 equemene
46 1 equemene
    y := alpha * op( A ) * x + beta * y,
47 1 equemene
48 1 equemene
 where op( X ) is one of
49 1 equemene
50 1 equemene
    op( X ) = X   or   op( X ) = X^T.
51 1 equemene
52 1 equemene
where alpha and beta are scalars, x and y are vectors and  A  is an m
53 1 equemene
by n matrix.
54 1 equemene
55 1 equemene
<H1>Arguments</H1>
56 1 equemene
<PRE>
57 1 equemene
ORDER   (local input)                 const enum HPL_ORDER
58 1 equemene
        On entry, ORDER  specifies the storage format of the operands
59 1 equemene
        as follows:
60 1 equemene
           ORDER = HplRowMajor,
61 1 equemene
           ORDER = HplColumnMajor.
62 1 equemene
</PRE>
63 1 equemene
<PRE>
64 1 equemene
TRANS   (local input)                 const enum HPL_TRANS
65 1 equemene
        On entry,  TRANS  specifies the  operation to be performed as
66 1 equemene
        follows:
67 1 equemene
           TRANS = HplNoTrans y := alpha*A  *x + beta*y,
68 1 equemene
           TRANS = HplTrans   y := alpha*A^T*x + beta*y.
69 1 equemene
</PRE>
70 1 equemene
<PRE>
71 1 equemene
M       (local input)                 const int
72 1 equemene
        On entry,  M  specifies  the number of rows of  the matrix A.
73 1 equemene
        M must be at least zero.
74 1 equemene
</PRE>
75 1 equemene
<PRE>
76 1 equemene
N       (local input)                 const int
77 1 equemene
        On entry, N  specifies the number of columns of the matrix A.
78 1 equemene
        N must be at least zero.
79 1 equemene
</PRE>
80 1 equemene
<PRE>
81 1 equemene
ALPHA   (local input)                 const double
82 1 equemene
        On entry, ALPHA specifies the scalar alpha.   When  ALPHA  is
83 1 equemene
        supplied as zero then  A and X  need not be set on input.
84 1 equemene
</PRE>
85 1 equemene
<PRE>
86 1 equemene
A       (local input)                 const double *
87 1 equemene
        On entry,  A  points  to an array of size equal to or greater
88 1 equemene
        than LDA * n.  Before  entry, the leading m by n part  of the
89 1 equemene
        array  A  must contain the matrix coefficients.
90 1 equemene
</PRE>
91 1 equemene
<PRE>
92 1 equemene
LDA     (local input)                 const int
93 1 equemene
        On entry,  LDA  specifies  the  leading  dimension  of  A  as
94 1 equemene
        declared  in  the  calling  (sub) program.  LDA  must  be  at
95 1 equemene
        least MAX(1,m).
96 1 equemene
</PRE>
97 1 equemene
<PRE>
98 1 equemene
X       (local input)                 const double *
99 1 equemene
        On entry,  X  is an incremented array of dimension  at  least
100 1 equemene
        ( 1 + ( n - 1 ) * abs( INCX ) )  that  contains the vector x.
101 1 equemene
</PRE>
102 1 equemene
<PRE>
103 1 equemene
INCX    (local input)                 const int
104 1 equemene
        On entry, INCX specifies the increment for the elements of X.
105 1 equemene
        INCX must not be zero.
106 1 equemene
</PRE>
107 1 equemene
<PRE>
108 1 equemene
BETA    (local input)                 const double
109 1 equemene
        On entry, BETA  specifies the scalar beta.    When  ALPHA  is
110 1 equemene
        supplied as zero then  Y  need not be set on input.
111 1 equemene
</PRE>
112 1 equemene
<PRE>
113 1 equemene
Y       (local input/output)          double *
114 1 equemene
        On entry,  Y  is an incremented array of dimension  at  least
115 1 equemene
        ( 1 + ( n - 1 ) * abs( INCY ) )  that  contains the vector y.
116 1 equemene
        Before entry with BETA non-zero, the incremented array Y must
117 1 equemene
        contain the vector  y.  On exit,  Y  is  overwritten  by  the
118 1 equemene
        updated vector y.
119 1 equemene
</PRE>
120 1 equemene
<PRE>
121 1 equemene
INCY    (local input)                 const int
122 1 equemene
        On entry, INCY specifies the increment for the elements of Y.
123 1 equemene
        INCY must not be zero.
124 1 equemene
</PRE>
125 1 equemene
126 1 equemene
<H1>Example</H1>
127 1 equemene
<CODE>#include "hpl.h"</CODE><BR><BR>
128 1 equemene
<PRE>
129 1 equemene
int main(int argc, char *argv[])
130 1 equemene
{
131 1 equemene
   double a[2*2], x[2], y[2];
132 1 equemene
   a[0] = 1.0; a[1] = 2.0; a[2] = 3.0; a[3] = 3.0;
133 1 equemene
   x[0] = 2.0; x[1] = 1.0; y[2] = 1.0; y[3] = 2.0;
134 1 equemene
   HPL_dgemv( HplColumnMajor, HplNoTrans, 2, 2, 2.0,
135 1 equemene
              a, 2, x, 1, -1.0, y, 1 );
136 1 equemene
   printf("y=[%f,%f]\n", y[0], y[1]);
137 1 equemene
   exit(0); return(0);
138 1 equemene
}
139 1 equemene
</PRE>
140 1 equemene
141 1 equemene
<H1>See Also</H1>
142 1 equemene
<A HREF="HPL_dger.html">HPL_dger</A>,
143 1 equemene
<A HREF="HPL_dtrsv.html">HPL_dtrsv</A>.
144 1 equemene
145 1 equemene
</BODY>
146 1 equemene
</HTML>