1 //------------------------------------------------------------------------------
2 // GrB_error: return an error string describing the last error
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 #include "GB.h"
11 
12 const char empty [8] = "" ;
13 
GrB_Type_error(const char ** error,const GrB_Type type)14 GrB_Info GrB_Type_error (const char **error, const GrB_Type type)
15 {
16     GB_RETURN_IF_NULL (error) ;
17     (*error) = empty ;
18     return (GrB_SUCCESS) ;
19 }
20 
GrB_UnaryOp_error(const char ** error,const GrB_UnaryOp op)21 GrB_Info GrB_UnaryOp_error (const char **error, const GrB_UnaryOp op)
22 {
23     GB_RETURN_IF_NULL (error) ;
24     (*error) = empty ;
25     return (GrB_SUCCESS) ;
26 }
27 
GrB_BinaryOp_error(const char ** error,const GrB_BinaryOp op)28 GrB_Info GrB_BinaryOp_error (const char **error, const GrB_BinaryOp op)
29 {
30     GB_RETURN_IF_NULL (error) ;
31     (*error) = empty ;
32     return (GrB_SUCCESS) ;
33 }
34 
GxB_SelectOp_error(const char ** error,const GxB_SelectOp op)35 GrB_Info GxB_SelectOp_error (const char **error, const GxB_SelectOp op)
36 {
37     GB_RETURN_IF_NULL (error) ;
38     (*error) = empty ;
39     return (GrB_SUCCESS) ;
40 }
41 
GrB_Monoid_error(const char ** error,const GrB_Monoid monoid)42 GrB_Info GrB_Monoid_error (const char **error, const GrB_Monoid monoid)
43 {
44     GB_RETURN_IF_NULL (error) ;
45     (*error) = empty ;
46     return (GrB_SUCCESS) ;
47 }
48 
GrB_Semiring_error(const char ** error,const GrB_Semiring semiring)49 GrB_Info GrB_Semiring_error (const char **error, const GrB_Semiring semiring)
50 {
51     GB_RETURN_IF_NULL (error) ;
52     (*error) = empty ;
53     return (GrB_SUCCESS) ;
54 }
55 
GxB_Scalar_error(const char ** error,const GxB_Scalar s)56 GrB_Info GxB_Scalar_error (const char **error, const GxB_Scalar s)
57 {
58     GB_RETURN_IF_NULL (error) ;
59     (*error) = empty ;
60     GB_RETURN_IF_NULL_OR_FAULTY (s) ;
61     if (s->logger == NULL) return (GrB_SUCCESS) ;
62     (*error) = s->logger ;
63     return (GrB_SUCCESS) ;
64 }
65 
GrB_Vector_error(const char ** error,const GrB_Vector v)66 GrB_Info GrB_Vector_error (const char **error, const GrB_Vector v)
67 {
68     GB_RETURN_IF_NULL (error) ;
69     (*error) = empty ;
70     GB_RETURN_IF_NULL_OR_FAULTY (v) ;
71     if (v->logger == NULL) return (GrB_SUCCESS) ;
72     (*error) = v->logger ;
73     return (GrB_SUCCESS) ;
74 }
75 
GrB_Matrix_error(const char ** error,const GrB_Matrix A)76 GrB_Info GrB_Matrix_error (const char **error, const GrB_Matrix A)
77 {
78     GB_RETURN_IF_NULL (error) ;
79     (*error) = empty ;
80     GB_RETURN_IF_NULL_OR_FAULTY (A) ;
81     if (A->logger == NULL) return (GrB_SUCCESS) ;
82     (*error) = A->logger ;
83     return (GrB_SUCCESS) ;
84 }
85 
GrB_Descriptor_error(const char ** error,const GrB_Descriptor d)86 GrB_Info GrB_Descriptor_error (const char **error, const GrB_Descriptor d)
87 {
88     GB_RETURN_IF_NULL (error) ;
89     (*error) = empty ;
90     GB_RETURN_IF_NULL_OR_FAULTY (d) ;
91     if (d->logger == NULL) return (GrB_SUCCESS) ;
92     (*error) = d->logger ;
93     return (GrB_SUCCESS) ;
94 }
95 
96