1 /*
2 
3    BLIS
4    An object-based framework for developing high-performance BLAS-like
5    libraries.
6 
7    Copyright (C) 2014, The University of Texas at Austin
8 
9    Redistribution and use in source and binary forms, with or without
10    modification, are permitted provided that the following conditions are
11    met:
12     - Redistributions of source code must retain the above copyright
13       notice, this list of conditions and the following disclaimer.
14     - Redistributions in binary form must reproduce the above copyright
15       notice, this list of conditions and the following disclaimer in the
16       documentation and/or other materials provided with the distribution.
17     - Neither the name(s) of the copyright holder(s) nor the names of its
18       contributors may be used to endorse or promote products derived
19       from this software without specific prior written permission.
20 
21    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 
33 */
34 
35 
36 //
37 // Prototype object-based check functions.
38 //
39 
40 #undef  GENPROT
41 #define GENPROT( opname ) \
42 \
43 void PASTEMAC(opname,_check) \
44      ( \
45        obj_t*  alpha, \
46        obj_t*  a, \
47        obj_t*  b, \
48        obj_t*  beta, \
49        obj_t*  c, \
50        cntx_t* cntx  \
51     );
52 
53 GENPROT( gemm )
54 GENPROT( gemmt )
55 GENPROT( her2k )
56 GENPROT( syr2k )
57 
58 
59 #undef  GENPROT
60 #define GENPROT( opname ) \
61 \
62 void PASTEMAC(opname,_check) \
63      ( \
64        side_t  side, \
65        obj_t*  alpha, \
66        obj_t*  a, \
67        obj_t*  b, \
68        obj_t*  beta, \
69        obj_t*  c, \
70        cntx_t* cntx  \
71     );
72 
73 GENPROT( hemm )
74 GENPROT( symm )
75 GENPROT( trmm )
76 GENPROT( trsm )
77 
78 
79 #undef  GENPROT
80 #define GENPROT( opname ) \
81 \
82 void PASTEMAC(opname,_check) \
83      ( \
84        obj_t*  alpha, \
85        obj_t*  a, \
86        obj_t*  beta, \
87        obj_t*  c, \
88        cntx_t* cntx  \
89     );
90 
91 GENPROT( herk )
92 GENPROT( syrk )
93 
94 
95 // -----------------------------------------------------------------------------
96 
97 void bli_gemm_basic_check
98      (
99        obj_t*  alpha,
100        obj_t*  a,
101        obj_t*  b,
102        obj_t*  beta,
103        obj_t*  c,
104        cntx_t* cntx
105      );
106 
107 void bli_gemmt_basic_check
108      (
109        obj_t*  alpha,
110        obj_t*  a,
111        obj_t*  b,
112        obj_t*  beta,
113        obj_t*  c,
114        cntx_t* cntx
115      );
116 
117 void bli_hemm_basic_check
118      (
119        side_t  side,
120        obj_t*  alpha,
121        obj_t*  a,
122        obj_t*  b,
123        obj_t*  beta,
124        obj_t*  c,
125        cntx_t* cntx
126      );
127 
128 void bli_herk_basic_check
129      (
130        obj_t*  alpha,
131        obj_t*  a,
132        obj_t*  ah,
133        obj_t*  beta,
134        obj_t*  c,
135        cntx_t* cntx
136      );
137 
138 void bli_her2k_basic_check
139      (
140        obj_t*  alpha,
141        obj_t*  a,
142        obj_t*  bh,
143        obj_t*  b,
144        obj_t*  ah,
145        obj_t*  beta,
146        obj_t*  c,
147        cntx_t* cntx
148      );
149 
150 void bli_l3_basic_check
151      (
152        obj_t*  alpha,
153        obj_t*  a,
154        obj_t*  b,
155        obj_t*  beta,
156        obj_t*  c,
157        cntx_t* cntx
158      );
159