11#ifndef TMVA_SOFIE_ONNX_LITE
12#define TMVA_SOFIE_ONNX_LITE
32namespace Experimental {
84 uint32_t
v = uint32_t(
fP[0]) | (uint32_t(
fP[1]) << 8) | (uint32_t(
fP[2]) << 16) | (uint32_t(
fP[3]) << 24);
96 for (
int k = 0; k < 8; ++k)
97 v |= uint64_t(
fP[k]) << (8 * k);
103 std::pair<const char *, std::size_t>
ReadLen()
110 auto ptr =
reinterpret_cast<const char *
>(
fP);
112 return {ptr, std::size_t(
n)};
122 field = uint32_t(tag >> 3);
123 wire = uint32_t(tag & 7);
134 default:
fOk =
false;
break;
144 auto s =
r.ReadLen();
147 out.push_back(int64_t(
rr.ReadVarint()));
149 out.push_back(int64_t(
r.ReadVarint()));
155 auto s =
r.ReadLen();
158 out.push_back(int32_t(
rr.ReadVarint()));
160 out.push_back(int32_t(
r.ReadVarint()));
165 auto one = [](uint32_t bits) {
167 std::memcpy(&
f, &bits, 4);
171 auto s =
r.ReadLen();
174 out.push_back(
one(
rr.ReadFixed32()));
176 out.push_back(
one(
r.ReadFixed32()));
181 auto one = [](uint64_t bits) {
183 std::memcpy(&
d, &bits, 8);
187 auto s =
r.ReadLen();
190 out.push_back(
one(
rr.ReadFixed64()));
192 out.push_back(
one(
r.ReadFixed64()));
196inline std::string
Str(std::pair<const char *, std::size_t>
v)
198 return std::string(
v.first,
v.second);
226 while (
r.ReadTag(
f,
wt)) {
236 default:
r.SkipField(
wt);
break;
255 while (
r.ReadTag(
f,
wt)) {
257 auto s =
r.ReadLen();
267 std::vector<TensorShapeProto_Dimension>
fDim;
280 while (
r.ReadTag(
f,
wt)) {
284 auto s =
r.ReadLen();
289 default:
r.SkipField(
wt);
break;
307 while (
r.ReadTag(
f,
wt)) {
309 auto s =
r.ReadLen();
329 while (
r.ReadTag(
f,
wt)) {
333 auto s =
r.ReadLen();
337 default:
r.SkipField(
wt);
break;
349 const std::string &
key()
const {
return fKey; }
355 while (
r.ReadTag(
f,
wt)) {
359 default:
r.SkipField(
wt);
break;
419 while (
r.ReadTag(
f,
wt)) {
430 auto s =
r.ReadLen();
436 default:
r.SkipField(
wt);
break;
474 float f()
const {
return fF; }
475 int64_t
i()
const {
return fI; }
476 const std::string &
s()
const {
return fS; }
483 const std::vector<int64_t> &
ints()
const {
return fInts; }
501 std::shared_ptr<GraphProto>
fG;
520 while (
r.ReadTag(
f,
wt)) {
527 auto s =
r.ReadLen();
532 default:
r.SkipField(
wt);
break;
558 while (
r.ReadTag(
f,
wt)) {
561 auto s =
r.ReadLen();
562 fNode.emplace_back();
568 auto s =
r.ReadLen();
574 auto s =
r.ReadLen();
580 auto s =
r.ReadLen();
585 default:
r.SkipField(
wt);
break;
606 while (
r.ReadTag(
f,
wt)) {
610 uint32_t bits =
r.ReadFixed32();
611 std::memcpy(&
fF, &bits, 4);
614 case 3:
fI = int64_t(
r.ReadVarint());
break;
617 auto s =
r.ReadLen();
623 auto s =
r.ReadLen();
624 fG = std::make_shared<GraphProto>();
633 default:
r.SkipField(
wt);
break;
646 std::ostringstream
ss;
651 while (
r.ReadTag(
f,
wt)) {
653 case 1:
fIrVersion = int64_t(
r.ReadVarint());
break;
656 auto s =
r.ReadLen();
660 default:
r.SkipField(
wt);
break;
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 data
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 r
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 result
const GraphProto & g() const
const std::string & name() const
std::vector< int64_t > fInts
std::vector< float > fFloats
const TensorProto & t() const
AttributeType type() const
void ParseFrom(detail::WireReader r)
const std::vector< std::string > & strings() const
const std::vector< int64_t > & ints() const
const std::string & s() const
const std::vector< float > & floats() const
std::shared_ptr< GraphProto > fG
std::vector< std::string > fStrings
std::vector< NodeProto > fNode
std::vector< TensorProto > fInitializer
std::vector< ValueInfoProto > fInput
const ValueInfoProto & input(int i) const
const ValueInfoProto & output(int i) const
void ParseFrom(detail::WireReader r)
int initializer_size() const
const std::string & name() const
const NodeProto & node(int i) const
std::vector< ValueInfoProto > fOutput
const TensorProto & initializer(int i) const
int64_t ir_version() const
const GraphProto & graph() const
const std::string & producer_name() const
std::string fProducerName
bool ParseFromIstream(std::istream *in)
const std::string & op_type() const
const AttributeProto & attribute(int i) const
const std::string & input(int i) const
const std::string & output(int i) const
const std::string & name() const
void ParseFrom(detail::WireReader r)
int attribute_size() const
const std::vector< std::string > & input() const
std::vector< std::string > fOutput
const std::vector< std::string > & output() const
std::vector< std::string > fInput
std::vector< AttributeProto > fAttribute
void ParseFrom(detail::WireReader r)
const std::string & key() const
const std::string & value() const
int int32_data_size() const
int64_t int64_data(int i) const
const std::string & raw_data() const
float float_data(int i) const
std::vector< StringStringEntryProto > fExternalData
int32_t int32_data(int i) const
std::vector< int64_t > fInt64Data
DataLocation data_location() const
std::vector< int32_t > fInt32Data
const std::vector< int64_t > & int64_data() const
const std::vector< StringStringEntryProto > & external_data() const
int64_t dims(int i) const
std::vector< float > fFloatData
std::vector< int64_t > fDims
int int64_data_size() const
const std::vector< double > & double_data() const
int float_data_size() const
const std::string & name() const
double double_data(int i) const
void ParseFrom(detail::WireReader r)
int double_data_size() const
const std::vector< float > & float_data() const
std::vector< double > fDoubleData
DataLocation fDataLocation
const std::vector< int32_t > & int32_data() const
const std::string & dim_param() const
ValueCase value_case() const
void ParseFrom(detail::WireReader r)
int64_t dim_value() const
std::vector< TensorShapeProto_Dimension > fDim
const TensorShapeProto_Dimension & dim(int i) const
void ParseFrom(detail::WireReader r)
void ParseFrom(detail::WireReader r)
const TensorShapeProto & shape() const
void ParseFrom(detail::WireReader r)
TypeProto_Tensor fTensorType
const TypeProto_Tensor & tensor_type() const
const TypeProto & type() const
void ParseFrom(detail::WireReader r)
const std::string & name() const
void SkipField(uint32_t wire)
std::pair< const char *, std::size_t > ReadLen()
bool ReadTag(uint32_t &field, uint32_t &wire)
WireReader(const char *data, std::size_t n)
std::string Str(std::pair< const char *, std::size_t > v)
void ReadPackedI32(WireReader &r, uint32_t wire, std::vector< int32_t > &out)
void ReadPackedVarint(WireReader &r, uint32_t wire, std::vector< int64_t > &out)
void ReadPackedDouble(WireReader &r, uint32_t wire, std::vector< double > &out)
void ReadPackedFloat(WireReader &r, uint32_t wire, std::vector< float > &out)
create variable transformations