Skip to content

Commit

Permalink
Merge pull request #199 from DrTimothyAldenDavis/v741
Browse files Browse the repository at this point in the history
v7.4.1
  • Loading branch information
DrTimothyAldenDavis authored Jan 10, 2023
2 parents ef3238b + 10d44a1 commit 62608d5
Show file tree
Hide file tree
Showing 13 changed files with 59 additions and 33 deletions.
2 changes: 1 addition & 1 deletion Doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Version 7.4.1, Jan 1, 2023
Version 7.4.1, Jan 9, 2023

* global free pool: disabled. Benefit for single-thread user applications
was modest, and it causes too much contention in a critical section
Expand Down
Binary file modified Doc/GraphBLAS_UserGuide.pdf
Binary file not shown.
12 changes: 6 additions & 6 deletions Doc/GraphBLAS_UserGuide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2017,7 +2017,7 @@ \subsection{GraphBLAS unary operators: {\sf GrB\_UnaryOp}, $z=f(x)$} %==========
$\sinh^{-1}(x)$ when $x$ is complex do not compute the correct result. Thus,
the unary operators \verb'GxB_ASIN_FC32', \verb'GxB_ASIN_FC64'
\verb'GxB_ASINH_FC32', and \verb'GxB_ASINH_FC64' do not work properly if the MS
Visual Studio compiler is used. These functions work properly if the gcc, icc,
Visual Studio compiler is used. These functions work properly if the gcc, icx, icc,
or clang compilers are used on Linux or MacOS.

Integer division by zero normally terminates an application, but this is
Expand Down Expand Up @@ -14873,7 +14873,7 @@ \subsection{On Linux and Mac}

{\small
\begin{verbatim}
make CC=icx CXX=icpx JOBS=4 \end{verbatim} }
make CC=icx JOBS=4 \end{verbatim} }

GraphBLAS v6.1.3 and later use the \verb'cpu_features' package by Google to
determine if the target architecture supports AVX2 and/or AVX512F (on Intel
Expand Down Expand Up @@ -14946,7 +14946,7 @@ \subsection{More details on the Mac (Intel-based)}

{\small
\begin{verbatim}
make CC=icc CXX=icpc \end{verbatim} }
make CC=icx \end{verbatim} }

The following instructions work on MacOS Big Sur (v11.3)
and MacOS Monterey (12.1), using
Expand Down Expand Up @@ -15062,7 +15062,7 @@ \subsection{More details for MATLAB on the Mac (Apple Silicon based)}
sudo make install
\end{verbatim}

Ignore the \verb'"-arch option ignored' warnings.
Ignore the \verb'"-arch option ignored"' warnings.

You can now start MATLAB and install the MATLAB interface with
\verb'gbmake' as described in the previous section.
Expand Down Expand Up @@ -15112,12 +15112,12 @@ \subsection{On Microsoft Windows}
If you use a recent \verb'gcc' or \verb'icx' compiler on Windows other than the
Microsoft Compiler (\verb'cl'), these limitations can be avoided.

The following instructions apply to Windows 10, CMake 3.16, and
The following instructions apply to Windows 10, CMake 3.19, and
Visual Studio 2019, but may work for earlier versions.

\begin{enumerate}

\item Install CMake 3.16 or later, if not already installed.
\item Install CMake 3.19 or later, if not already installed.
See \url{https://cmake.org/} for details.

\item Install Microsoft Visual Studio, if not already installed.
Expand Down
2 changes: 1 addition & 1 deletion Doc/GraphBLAS_version.tex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
% version of SuiteSparse:GraphBLAS
\date{VERSION
7.4.1,
Jan 1, 2023}
Jan 9, 2023}

23 changes: 22 additions & 1 deletion GraphBLAS/rename/GB_rename.h
Original file line number Diff line number Diff line change
Expand Up @@ -1473,9 +1473,13 @@
#define GxB_CREAL_FC32 GxM_CREAL_FC32
#define GxB_CREAL_FC64 GxM_CREAL_FC64
#define GxB_Desc_get GxM_Desc_get
#define GxB_Desc_get_FP64 GxM_Desc_get_FP64
#define GxB_Desc_get_INT32 GxM_Desc_get_INT32
#define GxB_Descriptor_fprint GxM_Descriptor_fprint
#define GxB_Descriptor_get GxM_Descriptor_get
#define GxB_Desc_set GxM_Desc_set
#define GxB_Desc_set_FP64 GxM_Desc_set_FP64
#define GxB_Desc_set_INT32 GxM_Desc_set_INT32
#define GxB_deserialize_type_name GxM_deserialize_type_name
#define GxB_DIAG GxM_DIAG
#define GxB_DIV_FC32 GxM_DIV_FC32
Expand Down Expand Up @@ -1600,7 +1604,17 @@
#define GxB_GE_THUNK GxM_GE_THUNK
#define GxB_GE_ZERO GxM_GE_ZERO
#define GxB_Global_Option_get GxM_Global_Option_get
#define GxB_Global_Option_get_CHAR GxM_Global_Option_get_CHAR
#define GxB_Global_Option_get_FP64 GxM_Global_Option_get_FP64
#define GxB_Global_Option_get_FUNCTION GxM_Global_Option_get_FUNCTION
#define GxB_Global_Option_get_INT32 GxM_Global_Option_get_INT32
#define GxB_Global_Option_get_INT64 GxM_Global_Option_get_INT64
#define GxB_Global_Option_set GxM_Global_Option_set
#define GxB_Global_Option_set_FP64 GxM_Global_Option_set_FP64
#define GxB_Global_Option_set_FP64_ARRAY GxM_Global_Option_set_FP64_ARRAY
#define GxB_Global_Option_set_FUNCTION GxM_Global_Option_set_FUNCTION
#define GxB_Global_Option_set_INT32 GxM_Global_Option_set_INT32
#define GxB_Global_Option_set_INT64_ARRAY GxM_Global_Option_set_INT64_ARRAY
#define GxB_GT_THUNK GxM_GT_THUNK
#define GxB_GT_ZERO GxM_GT_ZERO
#define GxB_HYPER_DEFAULT GxM_HYPER_DEFAULT
Expand Down Expand Up @@ -2029,7 +2043,11 @@
#define GxB_Matrix_isStoredElement GxM_Matrix_isStoredElement
#define GxB_Matrix_memoryUsage GxM_Matrix_memoryUsage
#define GxB_Matrix_Option_get GxM_Matrix_Option_get
#define GxB_Matrix_Option_get_FP64 GxM_Matrix_Option_get_FP64
#define GxB_Matrix_Option_get_INT32 GxM_Matrix_Option_get_INT32
#define GxB_Matrix_Option_set GxM_Matrix_Option_set
#define GxB_Matrix_Option_set_FP64 GxM_Matrix_Option_set_FP64
#define GxB_Matrix_Option_set_INT32 GxM_Matrix_Option_set_INT32
#define GxB_Matrix_pack_BitmapC GxM_Matrix_pack_BitmapC
#define GxB_Matrix_pack_BitmapR GxM_Matrix_pack_BitmapR
#define GxB_Matrix_pack_CSC GxM_Matrix_pack_CSC
Expand Down Expand Up @@ -3275,7 +3293,11 @@
#define GxB_Vector_isStoredElement GxM_Vector_isStoredElement
#define GxB_Vector_memoryUsage GxM_Vector_memoryUsage
#define GxB_Vector_Option_get GxM_Vector_Option_get
#define GxB_Vector_Option_get_FP64 GxM_Vector_Option_get_FP64
#define GxB_Vector_Option_get_INT32 GxM_Vector_Option_get_INT32
#define GxB_Vector_Option_set GxM_Vector_Option_set
#define GxB_Vector_Option_set_FP64 GxM_Vector_Option_set_FP64
#define GxB_Vector_Option_set_INT32 GxM_Vector_Option_set_INT32
#define GxB_Vector_pack_Bitmap GxM_Vector_pack_Bitmap
#define GxB_Vector_pack_CSC GxM_Vector_pack_CSC
#define GxB_Vector_pack_Full GxM_Vector_pack_Full
Expand Down Expand Up @@ -3619,7 +3641,6 @@
#define GB_FSE_readNCount_bmi2 GM_FSE_readNCount_bmi2
#define GB_FSE_versionNumber GM_FSE_versionNumber
#define GB_FSE_writeNCount GM_FSE_writeNCount
#define GB_Global GM_Global
#define GB_Global_abort_function GM_Global_abort_function
#define GB_Global_abort_function_set GM_Global_abort_function_set
#define GB_Global_bitmap_switch_default GM_Global_bitmap_switch_default
Expand Down
2 changes: 1 addition & 1 deletion Include/GraphBLAS.h
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@

// The version of this implementation, and the GraphBLAS API version:
#define GxB_IMPLEMENTATION_NAME "SuiteSparse:GraphBLAS"
#define GxB_IMPLEMENTATION_DATE "Jan 1, 2023"
#define GxB_IMPLEMENTATION_DATE "Jan 9, 2023"
#define GxB_IMPLEMENTATION_MAJOR 7
#define GxB_IMPLEMENTATION_MINOR 4
#define GxB_IMPLEMENTATION_SUB 1
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved.

SPDX-License-Identifier: Apache-2.0

VERSION 7.4.1, Jan 1, 2023
VERSION 7.4.1, Jan 9, 2023

SuiteSparse:GraphBLAS is a complete implementation of the GraphBLAS standard,
which defines a set of sparse matrix operations on an extended algebra of
Expand Down
16 changes: 8 additions & 8 deletions Source/GB_compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,14 +125,14 @@
// Workaround for compiler bug in Microsoft Visual Studio 2019
//------------------------------------------------------------------------------

// The GB_COMPILER_MSC_2019 flag disables the FIRST_FC32 and SECOND_FC32 binary
// operators for the MS Visual Studio 2019 compiler (MSC versions 19.20 to
// 19.29). It's possible that the compiler bug appears in 19.30 and later (VS
// 2022), but this hasn't been tested. This macro optimistically assumes the
// bug will be fixed in that version.

#define GB_COMPILER_MSC_2019 ( GB_COMPILER_MSC && (GB_COMPILER_MAJOR == 19) \
&& (GB_COMPILER_MINOR >= 20) && (GB_COMPILER_MINOR <= 29) )
// The GB_COMPILER_MSC_2019_OR_NEWER flag disables the FIRST_FC32 and
// SECOND_FC32 binary operators for the MS Visual Studio 2019 or newer compilers
// (MSC versions 19.20 or newer). It's possible that the compiler bug will be
// fixed in later versions of the MSC. In that case, an upper version bound
// should be added to this macro.

#define GB_COMPILER_MSC_2019_OR_NEWER ( GB_COMPILER_MSC \
&& (GB_COMPILER_MAJOR == 19) && (GB_COMPILER_MINOR >= 20))

//------------------------------------------------------------------------------
// malloc.h: required include file for Microsoft Visual Studio
Expand Down
2 changes: 1 addition & 1 deletion Source/Generated2/GB_binop__first_fc32.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@

// disable this operator and use the generic case if these conditions hold
#define GB_DISABLE \
(GxB_NO_FIRST || GxB_NO_FC32 || GxB_NO_FIRST_FC32 || GB_COMPILER_MSC_2019)
(GxB_NO_FIRST || GxB_NO_FC32 || GxB_NO_FIRST_FC32 || GB_COMPILER_MSC_2019_OR_NEWER)

//------------------------------------------------------------------------------
// C += A+B, all 3 matrices dense
Expand Down
2 changes: 1 addition & 1 deletion Source/Generated2/GB_binop__second_fc32.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@

// disable this operator and use the generic case if these conditions hold
#define GB_DISABLE \
(GxB_NO_SECOND || GxB_NO_FC32 || GxB_NO_SECOND_FC32 || GB_COMPILER_MSC_2019)
(GxB_NO_SECOND || GxB_NO_FC32 || GxB_NO_SECOND_FC32 || GB_COMPILER_MSC_2019_OR_NEWER)

//------------------------------------------------------------------------------
// C += A+B, all 3 matrices dense
Expand Down
2 changes: 1 addition & 1 deletion Source/codegen_binop_method.m
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ function codegen_binop_method (binop, op, xtype)
(isequal (binop, 'first') || isequal (binop, 'second')))
% disable the FIRST_FC32 and SECOND_FC32 binary operators for
% MS Visual Studio 2019. These files trigger a bug in the compiler.
disable = [disable ' || GB_COMPILER_MSC_2019'] ;
disable = [disable ' || GB_COMPILER_MSC_2019_OR_NEWER'] ;
end
fprintf (f, 'define(`GB_disable'', `(%s)'')\n', disable) ;

Expand Down
25 changes: 15 additions & 10 deletions cmake_modules/FindGraphBLAS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ in your CMakeLists.txt file. See also SuiteSparse/Example/CMakeLists.txt:
# installation (SuiteSparse:GraphBLAS). As other installations become available
# changes to this will likely be required.

#-------------------------------------------------------------------------------

# "Include" for SuiteSparse:GraphBLAS
find_path ( GRAPHBLAS_INCLUDE_DIR
NAMES GraphBLAS.h
Expand All @@ -72,38 +74,41 @@ find_path ( GRAPHBLAS_INCLUDE_DIR
PATH_SUFFIXES include Include
)

# dynamic SuiteSparse:GraphBLAS library
# dynamic SuiteSparse:GraphBLAS library (or static if no dynamic library was built)
find_library ( GRAPHBLAS_LIBRARY
NAMES graphblas
NAMES graphblas graphblas_static
HINTS ${GRAPHBLAS_ROOT}
HINTS ENV GRAPHBLAS_ROOT
HINTS ${CMAKE_SOURCE_DIR}/..
HINTS ${CMAKE_SOURCE_DIR}/../GraphBLAS
HINTS ${CMAKE_SOURCE_DIR}/../SuiteSparse/GraphBLAS
PATH_SUFFIXES lib build alternative
PATH_SUFFIXES lib build build/Release build/Debug alternative
)

if ( MSVC )
set ( STATIC_SUFFIX .lib )
set ( STATIC_NAME graphblas_static )
else ( )
set ( STATIC_SUFFIX .a )
set ( STATIC_NAME graphblas )
set ( save ${CMAKE_FIND_LIBRARY_SUFFIXES} )
set ( CMAKE_FIND_LIBRARY_SUFFIXES
${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_FIND_LIBRARY_SUFFIXES} )
endif ( )

# static SuiteSparse:GraphBLAS library
set ( save ${CMAKE_FIND_LIBRARY_SUFFIXES} )
set ( CMAKE_FIND_LIBRARY_SUFFIXES ${STATIC_SUFFIX} ${CMAKE_FIND_LIBRARY_SUFFIXES} )
find_library ( GRAPHBLAS_STATIC
NAMES ${STATIC_NAME}
HINTS ${GRAPHBLAS_ROOT}
HINTS ENV GRAPHBLAS_ROOT
HINTS ${CMAKE_SOURCE_DIR}/..
HINTS ${CMAKE_SOURCE_DIR}/../GraphBLAS
HINTS ${CMAKE_SOURCE_DIR}/../SuiteSparse/GraphBLAS
PATH_SUFFIXES lib build alternative
PATH_SUFFIXES lib build build/Release build/Debug alternative
)
set ( CMAKE_FIND_LIBRARY_SUFFIXES ${save} )

if ( NOT MSVC )
# restore the CMAKE_FIND_LIBRARY_SUFFIXES variable
set ( CMAKE_FIND_LIBRARY_SUFFIXES ${save} )
endif ( )

# get version of the library from the dynamic library name
get_filename_component ( GRAPHBLAS_LIBRARY ${GRAPHBLAS_LIBRARY} REALPATH )
Expand Down Expand Up @@ -138,7 +143,7 @@ include ( FindPackageHandleStandardArgs )

find_package_handle_standard_args(
GraphBLAS
REQUIRED_VARS GRAPHBLAS_LIBRARIES GRAPHBLAS_INCLUDE_DIR
REQUIRED_VARS GRAPHBLAS_LIBRARY GRAPHBLAS_INCLUDE_DIR
VERSION_VAR GRAPHBLAS_VERSION
)

Expand Down
2 changes: 1 addition & 1 deletion cmake_modules/GraphBLAS_version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# SPDX-License-Identifier: Apache-2.0

# version of SuiteSparse:GraphBLAS
set ( GraphBLAS_DATE "Jan 1, 2023" )
set ( GraphBLAS_DATE "Jan 9, 2023" )
set ( GraphBLAS_VERSION_MAJOR 7 )
set ( GraphBLAS_VERSION_MINOR 4 )
set ( GraphBLAS_VERSION_SUB 1 )
Expand Down

0 comments on commit 62608d5

Please sign in to comment.