1 //------------------------------------------------------------------------------
2 // GB_Asaxpy3B_M:  hard-coded saxpy3 method for a semiring
3 //------------------------------------------------------------------------------
4 
5 // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
6 // SPDX-License-Identifier: Apache-2.0
7 
8 //------------------------------------------------------------------------------
9 
10 // If this file is in the Generated/ folder, do not edit it (auto-generated).
11 
12 #include "GB_AxB_defs__land_ge_uint32.h"
13 #ifndef GBCOMPACT
14 
15 //------------------------------------------------------------------------------
16 // C=A*B, C<M>=A*B, C<!M>=A*B: saxpy method (Gustavson + Hash)
17 //------------------------------------------------------------------------------
18 
19 #if ( !GB_DISABLE )
20 
21     #include "GB_AxB_saxpy3_template.h"
22 
GB(_Asaxpy3B_M__land_ge_uint32)23     GrB_Info GB (_Asaxpy3B_M__land_ge_uint32)
24     (
25         GrB_Matrix C,   // C<M>=A*B, C sparse or hypersparse
26         const GrB_Matrix M, const bool Mask_struct,
27         const bool M_packed_in_place,
28         const GrB_Matrix A, bool A_is_pattern,
29         const GrB_Matrix B, bool B_is_pattern,
30         GB_saxpy3task_struct *restrict SaxpyTasks,
31         const int ntasks, const int nfine, const int nthreads,
32         const int do_sort,
33         GB_Context Context
34     )
35     {
36         if (GB_IS_SPARSE (A) && GB_IS_SPARSE (B))
37         {
38             // both A and B are sparse
39             #define GB_META16
40             #define GB_NO_MASK 0
41             #define GB_MASK_COMP 0
42             #define GB_A_IS_SPARSE 1
43             #define GB_A_IS_HYPER  0
44             #define GB_A_IS_BITMAP 0
45             #define GB_A_IS_FULL   0
46             #define GB_B_IS_SPARSE 1
47             #define GB_B_IS_HYPER  0
48             #define GB_B_IS_BITMAP 0
49             #define GB_B_IS_FULL   0
50             #include "GB_meta16_definitions.h"
51             #include "GB_AxB_saxpy3_template.c"
52         }
53         else
54         {
55             // general case
56             #undef GB_META16
57             #define GB_NO_MASK 0
58             #define GB_MASK_COMP 0
59             #include "GB_meta16_definitions.h"
60             #include "GB_AxB_saxpy3_template.c"
61         }
62         return (GrB_SUCCESS) ;
63     }
64 
65 #endif
66 
67 #endif
68 
69