1#ifndef TMVA_EXPERIMENTAL_SOFIE_ROPERATOR_BASIC_UNARY 
    2#define TMVA_EXPERIMENTAL_SOFIE_ROPERATOR_BASIC_UNARY 
    9namespace Experimental {
 
   14template <
typename T, EBasicUnaryOperator Op>
 
   20   static std::string 
Name() { 
return "Reciprocal"; }
 
   21   static std::string 
Op(
const std::string &
X) { 
return "1/" + 
X; }
 
 
   26   static std::string 
Name() { 
return "Sqrt"; }
 
   27   static std::string 
Op(
const std::string &
X) { 
return "std::sqrt(" + 
X + 
")"; }
 
 
   32   static std::string 
Name() { 
return "Neg"; }
 
   33   static std::string 
Op(
const std::string &
X) { 
return "-" + 
X; }
 
 
   38   static std::string 
Name() { 
return "Exp"; }
 
   39   static std::string 
Op(
const std::string &
X) { 
return "std::exp(" + 
X + 
")"; }
 
 
   44   static std::string 
Name() { 
return "Log"; }
 
   45   static std::string 
Op(
const std::string &
X) { 
return "std::log(" + 
X + 
")"; }
 
 
   50   static std::string 
Name() { 
return "Sin"; }
 
   51   static std::string 
Op(
const std::string &
X) { 
return "std::sin(" + 
X + 
")"; }
 
 
   56   static std::string 
Name() { 
return "Cos"; }
 
   57   static std::string 
Op(
const std::string &
X) { 
return "std::cos(" + 
X + 
")"; }
 
 
   62   static std::string 
Name() { 
return "Abs"; }
 
   63   static std::string 
Op(
const std::string &
X) { 
return "std::abs(" + 
X + 
")"; }
 
 
   66template <
typename T, EBasicUnaryOperator Op>
 
   91         throw std::runtime_error(
"TMVA::SOFIE - Tensor " + 
fNX + 
" not found.");
 
 
  101      std::stringstream out;
 
  105      out << 
SP << 
"for (size_t i = 0; i < " << 
length << 
"; i++) {\n";
 
 
  113         return { std::string(
"cmath") };
 
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h length
void AddIntermediateTensor(std::string tensor_name, ETensorType type, std::vector< Dim > dim_shape)
bool CheckIfTensorAlreadyExist(std::string tensor_name)
const ETensorType & GetTensorType(std::string name) const
const std::vector< size_t > & GetTensorShape(std::string name) const
std::vector< ETensorType > TypeInference(std::vector< ETensorType > input) override
std::string Generate(std::string OpName) override
ROperator_BasicUnary(std::string nameX, std::string nameY)
std::vector< size_t > fShapeX
std::vector< size_t > fShapeY
std::vector< std::string > GetStdLibs() override
std::vector< std::vector< size_t > > ShapeInference(std::vector< std::vector< size_t > > input) override
void Initialize(RModel &model) override
std::vector< std::string_view > fInputTensorNames
const std::string SP
space used to correctly indent the generated C++ code
std::vector< std::string_view > fOutputTensorNames
std::size_t ConvertShapeToLength(std::vector< size_t > shape)
create variable transformations
static std::string Op(const std::string &X)
static std::string Name()
static std::string Op(const std::string &X)
static std::string Name()
static std::string Op(const std::string &X)
static std::string Name()
static std::string Op(const std::string &X)
static std::string Name()
static std::string Name()
static std::string Op(const std::string &X)
static std::string Name()
static std::string Op(const std::string &X)
static std::string Name()
static std::string Op(const std::string &X)
static std::string Op(const std::string &X)
static std::string Name()