| xgboost | 
| 类 | |
| 结构 | ArrayInterfaceHandler | 
| 结构 | AllTag | 
| 结构 | IntTag | 
| 结构 | RangeTag | 
| 结构 | Conjunction | 
| 结构 | Conjunction< B1 > | 
| 结构 | Conjunction< B1, Bn... > | 
| 类型定义 | |
| template<typename S > | |
| 使用 | RemoveCRType = std::remove_const_t< std::remove_reference_t< S > > | 
| template<typename S > | |
| 使用 | IndexToTag = std::conditional_t< std::is_integral_v< RemoveCRType< S > >, IntTag, S > | 
| template<typename... Index> | |
| 使用 | IsAllIntegral = Conjunction< std::is_integral< std::remove_reference_t< Index > >... > | 
| template<typename... Index> | |
| 使用 | EnableIfIntegral = std::enable_if_t< IsAllIntegral< Index... >::value > | 
| 函数 | |
| template<size_t dim, typename S , typename Head , size_t D> | |
| constexpr size_t | Offset (S(&strides)[D], size_t n, Head head) | 
| template<size_t dim, typename S , size_t D, typename Head , typename... Tail> | |
| constexpr std::enable_if_t< sizeof...(Tail) !=0, size_t > | Offset (S(&strides)[D], size_t n, Head head, Tail &&...rest) | 
| template<int32_t D, bool f_array = false> | |
| constexpr void | CalcStride (size_t const (&shape)[D], size_t(&stride)[D]) | 
| template<typename T > | |
| constexpr int32_t | CalcSliceDim () | 
| 计算切片张量的维度。 更多... | |
| template<typename T , typename... S> | |
| constexpr std::enable_if_t< sizeof...(S) !=0, int32_t > | CalcSliceDim () | 
| template<int32_t D> | |
| constexpr size_t | CalcSize (size_t(&shape)[D]) | 
| template<int32_t n, typename Fn > | |
| constexpr LINALG_HD auto | UnrollLoop (Fn fn) | 
| template<typename T > | |
| int32_t | NativePopc (T v) | 
| LINALG_HD int | Popc (uint32_t v) | 
| LINALG_HD int | Popc (uint64_t v) | 
| template<std::size_t D, typename Head > | |
| LINALG_HD void | IndexToArr (std::size_t(&arr)[D], Head head) | 
| template<std::size_t D, typename Head , typename... Rest> | |
| LINALG_HD void | IndexToArr (std::size_t(&arr)[D], Head head, Rest &&...index) | 
| 将索引从参数包转换为C风格数组。 更多... | |
| template<class T , std::size_t N, std::size_t... Idx> | |
| constexpr auto | ArrToTuple (T(&arr)[N], std::index_sequence< Idx... >) | 
| template<class T , std::size_t N> | |
| constexpr auto | ArrToTuple (T(&arr)[N]) | 
| 将C风格数组转换为std::tuple。 更多... | |
| template<typename I , std::int32_t D> | |
| LINALG_HD auto | UnravelImpl (I idx, common::Span< size_t const, D > shape) | 
| template<size_t dim, typename I , int32_t D> | |
| void | ReshapeImpl (size_t(&out_shape)[D], I s) | 
| template<size_t dim, int32_t D, typename... S, typename I , std::enable_if_t< sizeof...(S) !=0 > * = nullptr> | |
| void | ReshapeImpl (size_t(&out_shape)[D], I &&s, S &&...rest) | 
| using xgboost::linalg::detail::EnableIfIntegral = typedef std::enable_if_t<IsAllIntegral<Index...>::value> | 
| using xgboost::linalg::detail::IndexToTag = typedef std::conditional_t<std::is_integral_v<RemoveCRType<S> >, IntTag, S> | 
| using xgboost::linalg::detail::IsAllIntegral = typedef Conjunction<std::is_integral<std::remove_reference_t<Index> >...> | 
| using xgboost::linalg::detail::RemoveCRType = typedef std::remove_const_t<std::remove_reference_t<S> > | 
| 
 | constexpr | 
将C风格数组转换为std::tuple。
| 
 | constexpr | 
| 
 | constexpr | 
| 
 | constexpr | 
计算切片张量的维度。
| 
 | constexpr | 
| 
 | constexpr | 
| LINALG_HD void xgboost::linalg::detail::IndexToArr | ( | std::size_t(&) | arr[D], | 
| Head | head | ||
| ) | 
| LINALG_HD void xgboost::linalg::detail::IndexToArr | ( | std::size_t(&) | arr[D], | 
| Head | head, | ||
| Rest &&... | index | ||
| ) | 
将索引从参数包转换为C风格数组。
| int32_t xgboost::linalg::detail::NativePopc | ( | T | v | ) | 
| 
 | constexpr | 
| 
 | constexpr | 
| 
 | inline | 
| 
 | inline | 
| void xgboost::linalg::detail::ReshapeImpl | ( | size_t(&) | out_shape[D], | 
| I && | s, | ||
| S &&... | rest | ||
| ) | 
| void xgboost::linalg::detail::ReshapeImpl | ( | size_t(&) | out_shape[D], | 
| I | s | ||
| ) | 
| LINALG_HD auto xgboost::linalg::detail::UnravelImpl | ( | I | idx, | 
| common::Span< size_t const, D > | shape | ||
| ) | 
| 
 | constexpr |