11#ifndef TMVA_SOFIE_ONNX_LITE
12#define TMVA_SOFIE_ONNX_LITE
52 while (
fP <
fEnd && shift < 64) {
54 result |= uint64_t(
b & 0x7F) << shift;
72 uint32_t
v = uint32_t(
fP[0]) | (uint32_t(
fP[1]) << 8) | (uint32_t(
fP[2]) << 16) | (uint32_t(
fP[3]) << 24);
84 for (
int k = 0; k < 8; ++k)
85 v |= uint64_t(
fP[k]) << (8 * k);
91 std::pair<const char *, std::size_t>
ReadLen()
98 auto ptr =
reinterpret_cast<const char *
>(
fP);
100 return {ptr, std::size_t(
n)};
110 field = uint32_t(tag >> 3);
111 wire = uint32_t(tag & 7);
122 default:
fOk =
false;
break;
132 auto s =
r.ReadLen();
135 out.push_back(int64_t(
rr.ReadVarint()));
137 out.push_back(int64_t(
r.ReadVarint()));
143 auto s =
r.ReadLen();
146 out.push_back(int32_t(
rr.ReadVarint()));
148 out.push_back(int32_t(
r.ReadVarint()));
153 auto one = [](uint32_t bits) {
155 std::memcpy(&
f, &bits, 4);
159 auto s =
r.ReadLen();
162 out.push_back(
one(
rr.ReadFixed32()));
164 out.push_back(
one(
r.ReadFixed32()));
169 auto one = [](uint64_t bits) {
171 std::memcpy(&
d, &bits, 8);
175 auto s =
r.ReadLen();
178 out.push_back(
one(
rr.ReadFixed64()));
180 out.push_back(
one(
r.ReadFixed64()));
184inline std::string
Str(std::pair<const char *, std::size_t>
v)
186 return std::string(
v.first,
v.second);
214 while (
r.ReadTag(
f,
wt)) {
224 default:
r.SkipField(
wt);
break;
243 while (
r.ReadTag(
f,
wt)) {
245 auto s =
r.ReadLen();
255 std::vector<TensorShapeProto_Dimension>
fDim;
268 while (
r.ReadTag(
f,
wt)) {
272 auto s =
r.ReadLen();
277 default:
r.SkipField(
wt);
break;
295 while (
r.ReadTag(
f,
wt)) {
297 auto s =
r.ReadLen();
317 while (
r.ReadTag(
f,
wt)) {
321 auto s =
r.ReadLen();
325 default:
r.SkipField(
wt);
break;
337 const std::string &
key()
const {
return fKey; }
343 while (
r.ReadTag(
f,
wt)) {
347 default:
r.SkipField(
wt);
break;
407 while (
r.ReadTag(
f,
wt)) {
418 auto s =
r.ReadLen();
424 default:
r.SkipField(
wt);
break;
462 float f()
const {
return fF; }
463 int64_t
i()
const {
return fI; }
464 const std::string &
s()
const {
return fS; }
471 const std::vector<int64_t> &
ints()
const {
return fInts; }
489 std::shared_ptr<GraphProto>
fG;
508 while (
r.ReadTag(
f,
wt)) {
515 auto s =
r.ReadLen();
520 default:
r.SkipField(
wt);
break;
546 while (
r.ReadTag(
f,
wt)) {
549 auto s =
r.ReadLen();
550 fNode.emplace_back();
556 auto s =
r.ReadLen();
562 auto s =
r.ReadLen();
568 auto s =
r.ReadLen();
573 default:
r.SkipField(
wt);
break;
594 while (
r.ReadTag(
f,
wt)) {
598 uint32_t bits =
r.ReadFixed32();
599 std::memcpy(&
fF, &bits, 4);
602 case 3:
fI = int64_t(
r.ReadVarint());
break;
605 auto s =
r.ReadLen();
611 auto s =
r.ReadLen();
612 fG = std::make_shared<GraphProto>();
621 default:
r.SkipField(
wt);
break;
634 std::ostringstream
ss;
639 while (
r.ReadTag(
f,
wt)) {
641 case 1:
fIrVersion = int64_t(
r.ReadVarint());
break;
644 auto s =
r.ReadLen();
648 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 std::vector< int64_t > & ints() const
const TensorProto & t() const
const std::vector< std::string > & strings() const
const std::vector< float > & floats() const
std::vector< std::string > fStrings
std::vector< int64_t > fInts
void ParseFrom(detail::WireReader r)
const GraphProto & g() const
const std::string & name() const
std::shared_ptr< GraphProto > fG
std::vector< float > fFloats
AttributeType type() const
const std::string & s() const
std::vector< ValueInfoProto > fInput
const std::string & name() const
std::vector< ValueInfoProto > fOutput
const ValueInfoProto & output(int i) const
void ParseFrom(detail::WireReader r)
int initializer_size() const
std::vector< TensorProto > fInitializer
const ValueInfoProto & input(int i) const
const NodeProto & node(int i) const
std::vector< NodeProto > fNode
const TensorProto & initializer(int i) const
std::string fProducerName
const std::string & producer_name() const
const GraphProto & graph() const
int64_t ir_version() const
bool ParseFromIstream(std::istream *in)
const std::string & input(int i) const
std::vector< std::string > fInput
int attribute_size() const
const std::string & name() const
void ParseFrom(detail::WireReader r)
const std::vector< std::string > & output() const
std::vector< AttributeProto > fAttribute
std::vector< std::string > fOutput
const std::string & output(int i) const
const AttributeProto & attribute(int i) const
const std::vector< std::string > & input() const
const std::string & op_type() const
const std::string & value() const
void ParseFrom(detail::WireReader r)
const std::string & key() const
int32_t int32_data(int i) const
std::vector< int32_t > fInt32Data
int64_t int64_data(int i) const
const std::string & raw_data() const
std::vector< int64_t > fDims
int int64_data_size() const
const std::vector< StringStringEntryProto > & external_data() const
const std::vector< double > & double_data() const
int64_t dims(int i) const
std::vector< double > fDoubleData
const std::string & name() const
int float_data_size() const
DataLocation data_location() const
int double_data_size() const
const std::vector< int64_t > & int64_data() const
std::vector< float > fFloatData
const std::vector< int32_t > & int32_data() const
float float_data(int i) const
DataLocation fDataLocation
std::vector< StringStringEntryProto > fExternalData
double double_data(int i) const
std::vector< int64_t > fInt64Data
int int32_data_size() const
const std::vector< float > & float_data() const
void ParseFrom(detail::WireReader r)
int64_t dim_value() const
ValueCase value_case() const
const std::string & dim_param() const
void ParseFrom(detail::WireReader r)
std::vector< TensorShapeProto_Dimension > fDim
const TensorShapeProto_Dimension & dim(int i) const
void ParseFrom(detail::WireReader r)
const TensorShapeProto & shape() const
void ParseFrom(detail::WireReader r)
void ParseFrom(detail::WireReader r)
TypeProto_Tensor fTensorType
const TypeProto_Tensor & tensor_type() const
void ParseFrom(detail::WireReader r)
const TypeProto & type() const
const std::string & name() const
void SkipField(uint32_t wire)
WireReader(const char *data, std::size_t n)
std::pair< const char *, std::size_t > ReadLen()
bool ReadTag(uint32_t &field, uint32_t &wire)
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)
std::string Str(std::pair< const char *, std::size_t > v)
void ReadPackedFloat(WireReader &r, uint32_t wire, std::vector< float > &out)