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