Skip to content

Commit

Permalink
add std::string grb::toString(const grb::Backend) (#269)
Browse files Browse the repository at this point in the history
Adds facilities to convert a backend identifier to a human-readable (`std::`)string.
  • Loading branch information
byjtew authored Jan 31, 2024
1 parent 01aac1c commit e533ad1
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions include/graphblas/backends.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
#ifndef _H_GRB_BACKENDS
#define _H_GRB_BACKENDS

#include <string>
#include <iostream>


namespace grb {

Expand Down Expand Up @@ -218,6 +221,42 @@ namespace grb {

};

/**
* Converts a backend identifier to a human-readable string.
*
* @param[in] backend The backend whose string to return.
*
* @return The name of the given \a backend as a C++ string.
*/
static inline std::string toString( const enum grb::Backend backend ) {
switch( backend ) {
case grb::Backend::reference: return "reference";
case grb::Backend::reference_omp: return "reference_omp";
case grb::Backend::hyperdags: return "hyperdags";
case grb::Backend::nonblocking: return "nonblocking";
case grb::Backend::shmem1D: return "shmem1D";
case grb::Backend::NUMA1D: return "NUMA1D";
case grb::Backend::GENERIC_BSP: return "GENERIC_BSP";
case grb::Backend::BSP1D: return "BSP1D";
case grb::Backend::doublyBSP1D: return "doublyBSP1D";
case grb::Backend::BSP2D: return "BSP2D";
case grb::Backend::autoBSP: return "autoBSP";
case grb::Backend::optBSP: return "optBSP";
case grb::Backend::hybrid: return "hybrid";
case grb::Backend::hybridSmall: return "hybridSmall";
case grb::Backend::hybridMid: return "hybridMid";
case grb::Backend::hybridLarge: return "hybridLarge";
case grb::Backend::minFootprint: return "minFootprint";
case grb::Backend::banshee: return "banshee";
case grb::Backend::banshee_ssr: return "banshee_ssr";
default:
const int backend_id = static_cast< int >( backend );
std::cerr << "Warning, std::string( const grb::Backend ): unknown backend "
<< backend_id << " encountered, please submit a bug report.\n";
return "unknown_backend(id=" + std::to_string( backend_id ) + ")";
}
}

} // namespace grb

#endif
Expand Down

0 comments on commit e533ad1

Please sign in to comment.