Skip to content

Commit

Permalink
Merge pull request #221 from DrTimothyAldenDavis/master
Browse files Browse the repository at this point in the history
v8.0.1.beta1
  • Loading branch information
DrTimothyAldenDavis authored May 28, 2023
2 parents fa22067 + b3cd6a7 commit 44b5518
Show file tree
Hide file tree
Showing 34 changed files with 3,857 additions and 3,006 deletions.
6 changes: 3 additions & 3 deletions Config/GB_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

// GB_C_COMPILER: the C compiler used to compile GraphBLAS:
#ifndef GB_C_COMPILER
#define GB_C_COMPILER "/usr/bin/cc"
#define GB_C_COMPILER "/usr/bin/gcc"
#endif

// GB_C_FLAGS: the C compiler flags used to compile GraphBLAS. Used
Expand Down Expand Up @@ -57,12 +57,12 @@

// GB_C_LIBRARIES: libraries to link with when using direct compile/link:
#ifndef GB_C_LIBRARIES
#define GB_C_LIBRARIES " -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so"
#define GB_C_LIBRARIES " -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so"
#endif

// GB_CMAKE_LIBRARIES: libraries to link with when using cmake
#ifndef GB_CMAKE_LIBRARIES
#define GB_CMAKE_LIBRARIES "m;dl;/usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so;/usr/lib/x86_64-linux-gnu/libpthread.so"
#define GB_CMAKE_LIBRARIES "m;dl;/usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so;/usr/lib/x86_64-linux-gnu/libpthread.so"
#endif

#endif
Expand Down
29 changes: 8 additions & 21 deletions Config/GraphBLAS.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -135,28 +135,10 @@
// This is a copy of GraphBLAS/Source/Shared/GxB_complex.h. It is included
// here as a full copy so that the GraphBLAS.h file can be self contained.

// See:
// https://www.drdobbs.com/complex-arithmetic-in-the-intersection-o/184401628#

#ifndef GXB_COMPLEX_H
#define GXB_COMPLEX_H

#if defined ( __cplusplus )

extern "C++"
{
// C++ complex types
#include <cmath>
#include <complex>
#undef I
typedef std::complex<float> GxB_FC32_t ;
typedef std::complex<double> GxB_FC64_t ;
}
#define GxB_CMPLXF(r,i) GxB_FC32_t(r,i)
#define GxB_CMPLX(r,i) GxB_FC64_t(r,i)
#define GB_HAS_CMPLX_MACROS 1

#elif defined (_MSC_VER) && !(defined (__INTEL_COMPILER) || defined(__INTEL_CLANG_COMPILER))
#if defined (_MSC_VER) && !(defined (__INTEL_COMPILER) || defined(__INTEL_CLANG_COMPILER))

// Microsoft Windows complex types for C
#include <complex.h>
Expand All @@ -172,8 +154,8 @@
// ANSI C11 complex types
#include <complex.h>
#undef I
typedef float complex GxB_FC32_t ;
typedef double complex GxB_FC64_t ;
typedef float _Complex GxB_FC32_t ;
typedef double _Complex GxB_FC64_t ;
#if (defined (CMPLX) && defined (CMPLXF))
// use the ANSI C11 CMPLX and CMPLXF macros
#define GxB_CMPLX(r,i) CMPLX (r,i)
Expand Down Expand Up @@ -4609,6 +4591,7 @@ GrB_Info GrB_Descriptor_wait (GrB_Descriptor desc , GrB_WaitMode waitmode);
GrB_Info GrB_Scalar_wait (GrB_Scalar s , GrB_WaitMode waitmode);
GrB_Info GrB_Vector_wait (GrB_Vector v , GrB_WaitMode waitmode);
GrB_Info GrB_Matrix_wait (GrB_Matrix A , GrB_WaitMode waitmode);
GrB_Info GxB_Context_wait (GxB_Context Context , GrB_WaitMode waitmode);

// GrB_wait (object,waitmode) polymorphic function:
#if GxB_STDC_VERSION >= 201112L
Expand All @@ -4625,11 +4608,13 @@ GrB_Info GrB_Matrix_wait (GrB_Matrix A , GrB_WaitMode waitmode);
GrB_Scalar : GrB_Scalar_wait , \
GrB_Vector : GrB_Vector_wait , \
GrB_Matrix : GrB_Matrix_wait , \
GxB_Context : GxB_Context_wait , \
GrB_Descriptor : GrB_Descriptor_wait \
) \
(object, waitmode)
#endif


// NOTE: GxB_Scalar_wait is historical; use GrB_Scalar_wait instead
GrB_Info GxB_Scalar_wait (GrB_Scalar *s) ;

Expand All @@ -4654,6 +4639,7 @@ GrB_Info GrB_Matrix_error (const char **error, const GrB_Matrix A) ;
GrB_Info GrB_Descriptor_error (const char **error, const GrB_Descriptor d) ;
// GxB_Scalar_error is historical: use GrB_Scalar_error instead
GrB_Info GxB_Scalar_error (const char **error, const GrB_Scalar s) ;
GrB_Info GxB_Context_error (const char **error, const GxB_Context Context);

// GrB_error (error,object) polymorphic function:
#if GxB_STDC_VERSION >= 201112L
Expand All @@ -4670,6 +4656,7 @@ GrB_Info GxB_Scalar_error (const char **error, const GrB_Scalar s) ;
GrB_Scalar : GrB_Scalar_error , \
GrB_Vector : GrB_Vector_error , \
GrB_Matrix : GrB_Matrix_error , \
GxB_Context : GxB_Context_error , \
GrB_Descriptor : GrB_Descriptor_error \
) \
(error, object)
Expand Down
9 changes: 9 additions & 0 deletions Doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
Version 8.0.1, May 27, 2023

* (48) bug fix: GrB_*_nvals returned UINT64_MAX ('infinity') for a
GrB_Vector of size n-by-2^60; it should return 2^60.
Caught by Erik Welch, NVIDIA.
* added GxB_Context_error and GxB_Context_wait
* C++: changed complex typedefs for C++ that #include GraphBLAS.h;
update from Markus Muetzel

Version 8.0.0, May 18, 2023

* version 8: This version is a major SO version increase, since
Expand Down
Binary file modified Doc/GraphBLAS_UserGuide.pdf
Binary file not shown.
68 changes: 35 additions & 33 deletions Doc/GraphBLAS_UserGuide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1359,38 +1359,6 @@ \subsection{{\sf GrB\_error:} get more details on the last error} %=============
method does not have an input/output object so it cannot return an error
string.

% The \verb'GrB_error' function is a polymorphic function for the
% following variants:

% \begin{mdframed}[userdefinedwidth=6in]
% {\footnotesize
% \begin{verbatim}
% GrB_Info GrB_Type_error (const char **err, const GrB_Type type) ;
% GrB_Info GrB_UnaryOp_error (const char **err, const GrB_UnaryOp op) ;
% GrB_Info GrB_BinaryOp_error (const char **err, const GrB_BinaryOp op) ;
% GrB_Info GrB_IndexUnaryOp_error (const char **err, const GrB_IndexUnaryOp op) ;
% GrB_Info GrB_Monoid_error (const char **err, const GrB_Monoid monoid) ;
% GrB_Info GrB_Semiring_error (const char **err, const GrB_Semiring semiring) ;
% GrB_Info GrB_Scalar_error (const char **err, const GrB_Scalar s) ;
% GrB_Info GrB_Vector_error (const char **err, const GrB_Vector v) ;
% GrB_Info GrB_Matrix_error (const char **err, const GrB_Vector A) ;
% GrB_Info GrB_Descriptor_error (const char **err, const GrB_Descriptor d) ;
% \end{verbatim}
% }\end{mdframed}

% Currently, only \verb'GrB_Matrix_error', \verb'GrB_Vector_error',
% \verb'GrB_Scalar_error', and \verb'GrB_Descriptor_error' are able to return
% non-empty error strings. The latter can return an error string only from
% \verb'GrB_Descriptor_set' and \verb'GxB_set(d,...)'.

% The only GraphBLAS methods (Section~\ref{objects}) that return an error string
% are \verb'*setElement', \verb'*removeElement',
% \verb'GxB_Matrix_Option_set(A,...)', \newline
% \verb'GxB_Vector_Option_set(v,...)', \verb'GrB_Descriptor_set', and
% \verb'GxB_Desc_set(d,...)'. All GraphBLAS operations discussed in
% Section~\ref{operations} can return an error string in their input/output
% object, except for \verb'GrB_reduce' when reducing to a scalar.

%===============================================================================
\subsection{{\sf GrB\_finalize:} finish GraphBLAS} %============================
%===============================================================================
Expand Down Expand Up @@ -8441,6 +8409,7 @@ \section{{\sf GxB\_Context:} controlling computational resources} %=============
\verb'GxB_Context_disengage' & disengage a context & \ref{context_disengage} \\
\verb'GxB_Context_fprint' & check/print a context & \ref{context_print} \\
\verb'GxB_Context_free' & free a context & \ref{context_free} \\
\verb'GxB_Context_wait' & wait for a context & \ref{context_wait} \\
\hline
\end{tabular}
}
Expand All @@ -8461,7 +8430,7 @@ \subsection{{\sf GxB\_Context\_new:} create a new context}

A new context is created and initialized with the current global settings for
\verb'GxB_NTHREADS' and \verb'GxB_CHUNK'. See \verb'GxB_Global_Option_get'.
The context object will have an effect on any calls to GraphBLAS until it
The context object will not have an effect on any calls to GraphBLAS until it
is {\em engaged} by a user thread.

\newpage
Expand Down Expand Up @@ -8615,6 +8584,27 @@ \subsection{{\sf GxB\_Context\_free:} free a context}
safely does nothing if passed a \verb'NULL' handle, or if
\verb'Context == NULL' on input.

%-------------------------------------------------------------------------------
\subsection{{\sf GxB\_Context\_wait:} wait for a context}
%-------------------------------------------------------------------------------
\label{context_wait}

\begin{mdframed}[userdefinedwidth=6in]
{\footnotesize
\begin{verbatim}
GrB_Info GrB_wait // wait for a context
(
GxB_Context Context, // context to wait for
GrB_WaitMode mode // GrB_COMPLETE or GrB_MATERIALIZE
) ;
\end{verbatim}
}\end{mdframed}

After creating or modifying a context, a GraphBLAS library may choose to
exploit non-blocking mode to delay its creation. Currently,
SuiteSparse:GraphBLAS currently does nothing except to ensure that
\verb'Context' is valid.

\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{The SuiteSparse:GraphBLAS JIT} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Expand Down Expand Up @@ -16434,6 +16424,18 @@ \section{Release Notes}

\begin{itemize}

\item Version 8.0.1, May 27, 2023

\begin{itemize}
\item (48) bug fix: \verb'GrB_*_nvals'
returned \verb'UINT64_MAX' ('infinity') for a
\verb'GrB_Vector' of size n-by-$2^{60}$; it should return $2^{60}$.
Caught by Erik Welch, NVIDIA.
\item added \verb'GxB_Context_error' and \verb'GxB_Context_wait'
\item \verb'C++': changed complex typedefs for \verb'C++' that
include GraphBLAS.h. Update from Markus M\"{u}tzel.
\end{itemize}

\item Version 8.0.0 (May 18, 2023)

\begin{itemize}
Expand Down
4 changes: 2 additions & 2 deletions Doc/GraphBLAS_version.tex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
% version of SuiteSparse:GraphBLAS
\date{VERSION
8.0.0,
May 18, 2023}
8.0.1,
May 27, 2023}

6 changes: 3 additions & 3 deletions GraphBLAS/Config/GB_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
// GB_C_FLAGS: the C compiler flags used to compile GraphBLAS. Used
// for compiling and linking:
#ifndef GB_C_FLAGS
#define GB_C_FLAGS " -DGBMATLAB=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC "
#define GB_C_FLAGS " -DGBMATLAB=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -g -fopenmp -fPIC "
#endif

// GB_C_LINK_FLAGS: the flags passed to the C compiler for the link phase:
Expand Down Expand Up @@ -57,12 +57,12 @@

// GB_C_LIBRARIES: libraries to link with when using direct compile/link:
#ifndef GB_C_LIBRARIES
#define GB_C_LIBRARIES " -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so"
#define GB_C_LIBRARIES " -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so"
#endif

// GB_CMAKE_LIBRARIES: libraries to link with when using cmake
#ifndef GB_CMAKE_LIBRARIES
#define GB_CMAKE_LIBRARIES "m;dl;/usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so;/usr/lib/x86_64-linux-gnu/libpthread.so"
#define GB_CMAKE_LIBRARIES "m;dl;/usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so;/usr/lib/x86_64-linux-gnu/libpthread.so"
#endif

#endif
Expand Down
Loading

0 comments on commit 44b5518

Please sign in to comment.