ilist Class — pytorch Architecture
Architecture documentation for the ilist class in IListRef_inl.h from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/core/IListRef_inl.h lines 18–56
template <typename T, typename ListElemT>
class IListRefTagImplBase<IListRefTag::Unboxed, T, ListElemT> {
public:
using elem_type = ListElemT;
using list_type = ArrayRef<elem_type>;
/*
* These `unwrap` static methods unwraps the inner containers out
* of `IListRef<T>` (and `IListRefIterator<T>`). They are required when
* the macro `TORCH_ILISTREF_UNWRAP` is called.
*/
static const list_type& unwrap(const IListRef<T>& ilist) {
return ilist.payload_.unboxed;
}
static typename list_type::const_iterator& unwrap(IListRefIterator<T>& it) {
return it.payload_.unboxed_iterator;
}
static const typename list_type::const_iterator& unwrap(
const IListRefIterator<T>& it) {
return it.payload_.unboxed_iterator;
}
/*
* We have these function (besides the `unwrap`s above) because the
* implementation for both `IListRef::operator[]` and `IListRefIterator::operator*`
* weren't syntactically equal for the existing tags at the time
* (`Unboxed` and `Boxed`).
*/
static IListRefConstRef<T> front(const list_type& lst) {
return lst.front();
}
static IListRefConstRef<T> iterator_get(
const typename list_type::const_iterator& it) {
return *it;
}
};
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free