| 
| template<std::size_t N>  | 
| std::array< std::ptrdiff_t, N >  | fub::Shift (const std::array< std::ptrdiff_t, N > &idx, Direction dir, std::ptrdiff_t shift) | 
|   | 
| template<std::size_t N>  | 
| std::array< std::ptrdiff_t, N >  | fub::LeftTo (const std::array< std::ptrdiff_t, N > &idx, Direction dir, std::ptrdiff_t shift=1) | 
|   | 
| template<std::size_t N>  | 
| std::array< std::ptrdiff_t, N >  | fub::RightTo (const std::array< std::ptrdiff_t, N > &idx, Direction dir, std::ptrdiff_t shift=1) | 
|   | 
| template<int Rank>  | 
| bool  | fub::operator== (const IndexBox< Rank > &b1, const IndexBox< Rank > &b2) | 
|   | 
| template<int Rank>  | 
| bool  | fub::operator!= (const IndexBox< Rank > &b1, const IndexBox< Rank > &b2) | 
|   | 
| template<int Rank>  | 
| bool  | fub::Contains (const IndexBox< Rank > &b1, const IndexBox< Rank > &b2) | 
|   | 
| template<int Rank>  | 
| bool  | fub::Contains (const IndexBox< Rank > &box, const Index< Rank > &index) | 
|   | 
| template<int Rank>  | 
| IndexBox< Rank >  | fub::Intersect (const IndexBox< Rank > &b1, const IndexBox< Rank > &b2) | 
|   | 
| template<int Rank>  | 
| IndexBox< Rank >  | fub::Grow (const IndexBox< Rank > &box, Direction dir, const std::array< std::ptrdiff_t, 2 > &shifts) | 
|   | 
| template<int Rank>  | 
| IndexBox< Rank >  | fub::Shrink (const IndexBox< Rank > &box, Direction dir, const std::array< std::ptrdiff_t, 2 > &shifts) | 
|   | 
| template<int Rank>  | 
| IndexBox< Rank >  | fub::Embed (const IndexBox< Rank - 1 > &box, const std::array< std::ptrdiff_t, 2 > &limits) | 
|   | 
| template<int Rank, int OtherRank>  | 
| IndexBox< Rank >  | fub::Project (const IndexBox< OtherRank > &box) | 
|   | 
| template<typename Extents >  | 
| constexpr std::array< std::ptrdiff_t, Extents::rank()>  | fub::AsArray (Extents e) noexcept | 
|   | 
| template<typename T , int Rank, typename Layout >  | 
| PatchDataView< T, Rank - 1, Layout >  | fub::SliceLast (const PatchDataView< T, Rank, Layout > &pdv, int component=0) | 
|   |