MCPcopy Create free account
hub / github.com/ROCm/AMDMIGraphX / to_common_from_dst

Method to_common_from_dst

src/shape_transform_descriptor.cpp:1742–1782  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1740 return result;
1741}
1742shape_transform_descriptor shape_transform_descriptor::to_common_from_dst() const
1743{
1744 shape_transform_descriptor result;
1745 result.rank = this->dimensions.size();
1746 std::vector<dimension::sub> subs;
1747 // Update axes to point to the destination
1748 for(std::size_t i : range(dimensions.size()))
1749 {
1750 const auto& d = dimensions[i];
1751 const bool mixed_visibility =
1752 std::any_of(d.subdimensions.begin(),
1753 d.subdimensions.end(),
1754 [](const dimension::sub& s) { return s.has_hidden_axis(); }) and
1755 std::any_of(d.subdimensions.begin(),
1756 d.subdimensions.end(),
1757 [](const dimension::sub& s) { return not s.has_hidden_axis(); });
1758 std::transform(d.subdimensions.begin(),
1759 d.subdimensions.end(),
1760 range(d.subdimensions.size()).begin(),
1761 std::back_inserter(subs),
1762 [&](dimension::sub s, auto j) {
1763 set_origin_axis(s, {i});
1764 s.add_split_axis(j);
1765 if(not mixed_visibility)
1766 s.expose();
1767 return s;
1768 });
1769 }
1770 if(dimensions.size() == 1 and subs.empty())
1771 {
1772 transform(range(rank), std::back_inserter(subs), [](std::size_t i) -> dimension::sub {
1773 return {1, {0, i}};
1774 });
1775 }
1776 std::transform(subs.begin(),
1777 subs.end(),
1778 std::back_inserter(result.dimensions),
1779 [&](const auto& x) -> dimension { return {{x}}; });
1780 renumber_axes(result.dimensions);
1781 return result;
1782}
1783shape_transform_descriptor shape_transform_descriptor::to_dst_from_common() const
1784{
1785 shape_transform_descriptor result = *this;

Callers 3

TEST_CASEFunction · 0.80
applyMethod · 0.80
applyMethod · 0.80

Calls 12

set_origin_axisFunction · 0.85
renumber_axesFunction · 0.85
add_split_axisMethod · 0.80
exposeMethod · 0.80
rangeFunction · 0.50
any_ofFunction · 0.50
transformFunction · 0.50
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
has_hidden_axisMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected