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;
 
   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