|
|
template<typename Symm , typename... IndexPack> |
| using | check_index_symmetry = typename detail::check_index_symmetry_impl< tmpl::size< Symm >::value==0 or tmpl::size< Symm >::value==1 ? 0 :2 >::template f< Symm, tmpl::map<>, IndexPack... > |
| | Check that each of symmetric indices is in the same frame and have the same dimensionality.
|
| |
| template<typename TheTensor , std::size_t VolumeDim, UpLo Ul, typename Fr > |
| using | prepend_spatial_index = ::Tensor< typename TheTensor::type, tmpl::push_front< typename TheTensor::symmetry, detail::new_sym_index< TheTensor > >, tmpl::push_front< typename TheTensor::index_list, SpatialIndex< VolumeDim, Ul, Fr > > > |
| | Add a spatial index to the front of a Tensor. More...
|
| |
| template<typename TheTensor , std::size_t VolumeDim, UpLo Ul, typename Fr > |
| using | prepend_two_symmetric_spatial_indices = ::Tensor< typename TheTensor::type, tmpl::push_front< tmpl::push_front< typename TheTensor::symmetry, detail::new_sym_index< TheTensor > >, detail::new_sym_index< TheTensor > >, tmpl::push_front< tmpl::push_front< typename TheTensor::index_list, SpatialIndex< VolumeDim, Ul, Fr > >, SpatialIndex< VolumeDim, Ul, Fr > > > |
| | Add two symmetric spatial indices to the front of a Tensor (e.g. when doing second derivatives) More...
|
| |
| template<typename TheTensor , std::size_t VolumeDim, UpLo Ul, typename Fr > |
| using | prepend_spacetime_index = ::Tensor< typename TheTensor::type, tmpl::push_front< typename TheTensor::symmetry, detail::new_sym_index< TheTensor > >, tmpl::push_front< typename TheTensor::index_list, SpacetimeIndex< VolumeDim, Ul, Fr > > > |
| | Add a spacetime index to the front of a Tensor. More...
|
| |
| template<typename TheTensor > |
| using | remove_first_index = ::Tensor< typename TheTensor::type, tmpl::pop_front< typename TheTensor::symmetry >, tmpl::pop_front< typename TheTensor::index_list > > |
| | remove the first index of a tensor More...
|
| |
|
template<typename TheTensor > |
| using | change_all_valences = ::Tensor< typename TheTensor::type, typename TheTensor::symmetry, tmpl::transform< typename TheTensor::index_list, tmpl::bind< change_index_up_lo, tmpl::_1 > > > |
| | Swap the valences of all indices on a Tensor.
|
| |
| template<typename NewType , typename TheTensor > |
| using | swap_type = ::Tensor< NewType, typename TheTensor::symmetry, typename TheTensor::index_list > |
| | Swap the data type of a tensor for a new type. More...
|
| |
|
template<typename TheTensor , typename Frame > |
| using | any_index_in_frame = tmpl::any< typename TheTensor::index_list, tmpl::bind< detail::frame_is_the_same, tmpl::_1, Frame > > |
| | Return tmpl::true_type if any indices of the Tensor are in the frame Frame.
|
| |
|
template<typename Tag , typename NewFrame > |
| using | replace_frame_in_tag_t = typename replace_frame_in_tag< Tag, NewFrame >::type |
| | Replaces Tag with an equivalent Tag but in frame NewFrame.
|
| |
|
template<typename TagList , typename NewFrame > |
| using | replace_frame_in_taglist = tmpl::transform< TagList, tmpl::bind< replace_frame_in_tag_t, tmpl::_1, NewFrame > > |
| | Replaces every Tag in Taglist with an equivalent Tag but in frame NewFrame.
|
| |
Contains all metafunctions related to Tensor manipulations.