Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
SOFIE_common.hxx File Reference
#include "TMVA/RTensor.hxx"
#include "ROOT/RSpan.hxx"
#include <stdexcept>
#include <type_traits>
#include <cstdint>
#include <cstring>
#include <complex>
#include <string>
#include <vector>
#include <map>
#include <memory>
#include <regex>
#include <set>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cassert>
#include <limits>
Include dependency graph for SOFIE_common.hxx:
This graph shows which files directly or indirectly include this file:

Classes

struct  TMVA::Experimental::SOFIE::Dim
 
struct  TMVA::Experimental::SOFIE::DynamicTensorInfo
 
struct  TMVA::Experimental::SOFIE::GNN_Data
 
struct  TMVA::Experimental::SOFIE::HelperFunctionsCode
 Source code of the inference helper functions to embed in generated code so that it is standalone and does not need to include TMVA/SOFIE_common.hxx. More...
 
class  TMVA::Experimental::SOFIE::InitializedTensor
 
struct  TMVA::Experimental::SOFIE::InputTensorInfo
 
struct  TMVA::Experimental::SOFIE::MemoryPoolInfo
 
struct  TMVA::Experimental::SOFIE::TensorInfo
 
struct  TMVA::Experimental::SOFIE::TensorMemoryInfo
 
struct  TMVA::Experimental::SOFIE::TensorShape< T >
 
struct  TMVA::Experimental::SOFIE::TensorShape< Dim >
 
struct  TMVA::Experimental::SOFIE::TensorShape< size_t >
 
struct  TMVA::Experimental::SOFIE::TensorType< T >
 
struct  TMVA::Experimental::SOFIE::TensorType< bool >
 
struct  TMVA::Experimental::SOFIE::TensorType< double >
 
struct  TMVA::Experimental::SOFIE::TensorType< float >
 
struct  TMVA::Experimental::SOFIE::TensorType< int32_t >
 
struct  TMVA::Experimental::SOFIE::TensorType< int64_t >
 
struct  TMVA::Experimental::SOFIE::TensorType< int8_t >
 
struct  TMVA::Experimental::SOFIE::TensorType< uint32_t >
 
struct  TMVA::Experimental::SOFIE::TensorType< uint64_t >
 
struct  TMVA::Experimental::SOFIE::TensorType< uint8_t >
 

Namespaces

namespace  TMVA
 create variable transformations
 
namespace  TMVA::Experimental
 
namespace  TMVA::Experimental::SOFIE
 
namespace  TMVA::Experimental::SOFIE::BLAS
 
namespace  TMVA::Experimental::SOFIE::UTILITY
 

Typedefs

typedef std::int64_t TMVA::Experimental::SOFIE::int_t
 

Enumerations

enum class  TMVA::Experimental::SOFIE::EActivationType {
  TMVA::Experimental::SOFIE::UNDEFINED = 0 , TMVA::Experimental::SOFIE::RELU = 1 , TMVA::Experimental::SOFIE::SOFTMAX = 2 , TMVA::Experimental::SOFIE::SIGMOID = 3 ,
  TMVA::Experimental::SOFIE::LEAKYRELU = 4 , TMVA::Experimental::SOFIE::TANH = 5 , TMVA::Experimental::SOFIE::ELU = 6
}
 
enum class  TMVA::Experimental::SOFIE::ETensorType {
  TMVA::Experimental::SOFIE::UNDEFINED = 0 , TMVA::Experimental::SOFIE::FLOAT = 1 , TMVA::Experimental::SOFIE::UINT8 = 2 , TMVA::Experimental::SOFIE::INT8 = 3 ,
  TMVA::Experimental::SOFIE::UINT16 = 4 , TMVA::Experimental::SOFIE::INT16 = 5 , TMVA::Experimental::SOFIE::INT32 = 6 , TMVA::Experimental::SOFIE::INT64 = 7 ,
  TMVA::Experimental::SOFIE::STRING = 8 , TMVA::Experimental::SOFIE::BOOL = 9 , TMVA::Experimental::SOFIE::FLOAT16 = 10 , TMVA::Experimental::SOFIE::DOUBLE = 11 ,
  TMVA::Experimental::SOFIE::UINT32 = 12 , TMVA::Experimental::SOFIE::UINT64 = 13 , TMVA::Experimental::SOFIE::COMPLEX64 = 14 , TMVA::Experimental::SOFIE::COMPLEX28 = 15 ,
  TMVA::Experimental::SOFIE::BFLOAT16 = 16
}
 

Functions

bool TMVA::Experimental::SOFIE::UTILITY::AreSameShape (const std::vector< Dim > &, const std::vector< Dim > &)
 
bool TMVA::Experimental::SOFIE::UTILITY::AreSameShape (const std::vector< size_t > &, const std::vector< Dim > &)
 
bool TMVA::Experimental::SOFIE::UTILITY::AreSameShape (const std::vector< size_t > &, const std::vector< size_t > &)
 
template<typename T >
T * TMVA::Experimental::SOFIE::UTILITY::BroadcastConvBias (const T *data, const size_t channel, const std::vector< size_t > &targetShape)
 
template<typename T , class ConstContT = std::span<const T>>
void TMVA::Experimental::SOFIE::UTILITY::BroadcastTensor (ConstContT data, const std::vector< size_t > &shape, const std::vector< size_t > &targetShape, T *broadcastedData)
 
std::string TMVA::Experimental::SOFIE::UTILITY::Clean_name (std::string input_tensor_name)
 
void TMVA::Experimental::SOFIE::CloseNestedLoops (std::stringstream &out, size_t loopRank)
 
std::vector< DimTMVA::Experimental::SOFIE::UTILITY::ComputeStrideFromShape (const std::vector< Dim > &shape)
 
std::vector< size_t > TMVA::Experimental::SOFIE::UTILITY::ComputeStrideFromShape (const std::vector< size_t > &shape)
 compute stride of a tensor given its shape (assume layout is row-major)
 
GNN_Data TMVA::Experimental::SOFIE::Concatenate (GNN_Data &data1, GNN_Data &data2, int axis=0)
 
template<typename T >
TMVA::Experimental::RTensor< T > TMVA::Experimental::SOFIE::Concatenate (TMVA::Experimental::RTensor< T > &t1, TMVA::Experimental::RTensor< T > &t2, int axis=0)
 
std::string TMVA::Experimental::SOFIE::ConvertDimShapeToLength (const std::vector< Dim > &shape)
 
std::string TMVA::Experimental::SOFIE::ConvertDimShapeToString (const std::vector< Dim > &shape)
 
std::vector< DimTMVA::Experimental::SOFIE::ConvertShapeToDim (const std::vector< size_t > &shape)
 Convert shape from integer format to dynamic one (based on Dim)
 
std::vector< size_t > TMVA::Experimental::SOFIE::ConvertShapeToInt (const std::vector< Dim > &shape)
 Convert shape based on Dim to integer format.
 
std::size_t TMVA::Experimental::SOFIE::ConvertShapeToLength (const std::vector< size_t > &shape)
 
std::string TMVA::Experimental::SOFIE::ConvertShapeToString (const std::vector< size_t > &shape)
 
ETensorType TMVA::Experimental::SOFIE::ConvertStringToType (std::string type)
 
std::string TMVA::Experimental::SOFIE::ConvertTypeToString (ETensorType type)
 
template<class T >
std::string TMVA::Experimental::SOFIE::ConvertValToString (T value)
 
template<>
std::string TMVA::Experimental::SOFIE::ConvertValToString< double > (double value)
 
template<>
std::string TMVA::Experimental::SOFIE::ConvertValToString< float > (float value)
 
template<>
std::string TMVA::Experimental::SOFIE::ConvertValToString< int64_t > (int64_t value)
 
template<class T >
std::string TMVA::Experimental::SOFIE::ConvertValuesToString (const std::vector< T > &data, size_t maxprint=5)
 
template<class T >
std::string TMVA::Experimental::SOFIE::ConvertValuesToString (size_t n, const T *data, size_t maxprint=-1)
 
GNN_Data TMVA::Experimental::SOFIE::Copy (const GNN_Data &data)
 
template<typename T >
T * TMVA::Experimental::SOFIE::UTILITY::CreateBroadcastTensor (const T *data, const std::vector< size_t > &shape, const std::vector< size_t > &targetShape, size_t targetLength)
 
void TMVA::Experimental::SOFIE::EmitNestedLoops (std::stringstream &out, size_t loopRank, const std::vector< Dim > shape)
 
HelperFunctionsCode TMVA::Experimental::SOFIE::GenerateHelperFunctionsCode (const std::set< std::string > &neededHelpers, const std::string &modelNamespace, bool sgemmAlreadyDeclared=false)
 Return the standalone C++ source of the inference helper functions requested in neededHelpers (see RModel_Base::AddNeededHelperFunction), resolving their inter-dependencies.
 
template<typename T >
ETensorType TMVA::Experimental::SOFIE::GetTemplatedType (T)
 
constexpr size_t TMVA::Experimental::SOFIE::GetTypeSize (ETensorType type)
 
bool TMVA::Experimental::SOFIE::IsInteger (const std::string &s)
 
std::pair< int, std::vector< Dim > > TMVA::Experimental::SOFIE::UTILITY::MultidirectionalBroadcastShape (std::vector< Dim > &, std::vector< Dim > &)
 
std::pair< int, std::vector< size_t > > TMVA::Experimental::SOFIE::UTILITY::MultidirectionalBroadcastShape (std::vector< size_t > &, std::vector< size_t > &)
 
std::vector< size_t > TMVA::Experimental::SOFIE::UTILITY::MultidirectionalBroadcastShape (std::vector< std::vector< size_t > >)
 
std::ostream & TMVA::Experimental::SOFIE::operator<< (std::ostream &os, const Dim &d)
 
void TMVA::Experimental::SOFIE::BLAS::sgemm_ (const char *transa, const char *transb, const int *m, const int *n, const int *k, const float *alpha, const float *A, const int *lda, const float *B, const int *ldb, const float *beta, float *C, const int *ldc)
 
template<typename T >
T * TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast (const T *data, const std::vector< size_t > &shape, const std::vector< size_t > &targetShape)
 
template<typename T >
void TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast (const T *data, const std::vector< size_t > &shape, const std::vector< size_t > &targetShape, T *broadcastedData)
 
std::vector< size_t > TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcastShape (std::vector< size_t > &, std::vector< size_t > &)