1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
//------------------------------------------------------------------------------
// GB_code_size: given a type code, return sizeof (type)
//------------------------------------------------------------------------------
// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//------------------------------------------------------------------------------
// The user-defined type has no known size, so this must be provided on input.
#include "GB.h"
GB_PUBLIC
size_t GB_code_size // return the size of a type, given its code
(
const GB_Type_code code, // input code of the type to find the size of
const size_t usize // known size of user-defined type
)
{
switch (code)
{
case GB_BOOL_code : return (sizeof (bool)) ;
case GB_INT8_code : return (sizeof (int8_t)) ;
case GB_UINT8_code : return (sizeof (uint8_t)) ;
case GB_INT16_code : return (sizeof (int16_t)) ;
case GB_UINT16_code : return (sizeof (uint16_t)) ;
case GB_INT32_code : return (sizeof (int32_t)) ;
case GB_UINT32_code : return (sizeof (uint32_t)) ;
case GB_INT64_code : return (sizeof (int64_t)) ;
case GB_UINT64_code : return (sizeof (uint64_t)) ;
case GB_FP32_code : return (sizeof (float)) ;
case GB_FP64_code : return (sizeof (double)) ;
case GB_FC32_code : return (sizeof (GxB_FC32_t)) ;
case GB_FC64_code : return (sizeof (GxB_FC64_t)) ;
case GB_UDT_code : return (usize) ;
default : return (0) ;
}
}
|