1#ifndef TMVA_SOFIE_ROPERATOR
2#define TMVA_SOFIE_ROPERATOR
13namespace Experimental{
23 virtual std::vector<std::string>
GetStdLibs() {
return {}; }
24 virtual std::vector<std::vector<size_t>>
ShapeInference(std::vector<std::vector<size_t>>) = 0;
25 virtual std::vector<ETensorType>
TypeInference(std::vector<ETensorType>) = 0;
27 virtual std::string
Generate(std::string OpName) = 0;
32 virtual std::string
Header() {
return "";}
41 const std::string
SP =
" ";
virtual std::vector< std::string > GetBlasRoutines()
virtual void Initialize(RModel &)=0
bool fIsOutputConstant
flag to identify if operator has a constant output (no need to generate code)
virtual std::string GenerateInitCode()
const std::string SP
space used to correctly indent the generated C++ code
virtual std::vector< ETensorType > TypeInference(std::vector< ETensorType >)=0
virtual std::string GenerateSessionMembersCode(std::string)
virtual std::vector< std::vector< size_t > > ShapeInference(std::vector< std::vector< size_t > >)=0
bool fUseSession
flag to identify if using the session class
virtual std::string Generate(std::string OpName)=0
virtual std::vector< std::string > GetStdLibs()
virtual std::string Header()
create variable transformations