29 :
super_t(dim_sizes.begin(), dim_sizes.end()) {}
42 std::transform(
begin(),
end(), sv.
begin(), [](
const auto& v) {
44 utility::LogError(
"Cannot convert dynamic shape to SizeVector.");
52 static_cast<super_t*
>(
this)->
operator=(v);
57 static_cast<super_t*
>(
this)->
operator=(v);
61 std::string DynamicSizeVector::ToString()
const {
81 bool DynamicSizeVector::IsDynamic()
const {
83 this->begin(), this->end(),
87 SizeVector::SizeVector(
const std::initializer_list<int64_t>& dim_sizes)
91 :
super_t(dim_sizes.begin(), dim_sizes.end()) {}
99 static_cast<super_t*
>(
this)->
operator=(v);
104 static_cast<super_t*
>(
this)->
operator=(v);
109 if (this->
size() == 0) {
112 return std::accumulate(
114 [
this](
const int64_t& lhs,
const int64_t& rhs) -> int64_t {
115 if (lhs < 0 || rhs < 0) {
117 "Shape {} cannot contain negative dimensions.",
120 return std::multiplies<int64_t>()(lhs, rhs);
133 return fmt::format(
"{{{}}}", fmt::join(*
this,
", "));
137 const std::string msg)
const {
153 for (
size_t i = 0; i <
size(); ++i) {
154 if (dsv[i].has_value() && dsv[i].value() != this->
operator[](i)) {
filament::Texture::InternalFormat format
std::string ToString() const
SizeVector ToSizeVector() const
int64_t NumElements() const
bool IsCompatible(const DynamicSizeVector &dsv) const
void AssertCompatible(const DynamicSizeVector &dsv, const std::string msg="") const
std::string ToString() const
int64_t GetLength() const
SizeVector & operator=(const SizeVector &v)
reference operator[](size_type idx)
constexpr bool has_value() const noexcept
constexpr T const & value() const &
Generic file read and write utility for python interface.