Skip to content
Snippets Groups Projects
Commit f8b39f8a authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Change signature of broadcast operations. Value is modified in-place.

parent 83e9fc66
No related branches found
No related tags found
1 merge request!11Feature/mpi
...@@ -258,11 +258,10 @@ class Messenger ...@@ -258,11 +258,10 @@ class Messenger
template <typename DataType> template <typename DataType>
PASTIS_INLINE PASTIS_INLINE
DataType broadcast(const DataType& data, int root_rank) const void broadcast(DataType& data, int root_rank) const
{ {
if constexpr(std::is_same<DataType, int>()) { if constexpr(std::is_same<DataType, int>()) {
int int_data = data; return _broadcast_value(data, root_rank);
return _broadcast_value(int_data, root_rank);
} else { } else {
static_assert(std::is_same<DataType, int>(), "unexpected type of data"); static_assert(std::is_same<DataType, int>(), "unexpected type of data");
} }
...@@ -270,7 +269,7 @@ class Messenger ...@@ -270,7 +269,7 @@ class Messenger
template <typename DataType> template <typename DataType>
PASTIS_INLINE PASTIS_INLINE
Array<DataType> broadcast(const Array<DataType>& array, int root_rank) const void broadcast(Array<DataType>& array, int root_rank) const
{ {
static_assert(not std::is_const_v<DataType>, static_assert(not std::is_const_v<DataType>,
"cannot broadcast array of const"); "cannot broadcast array of const");
...@@ -295,7 +294,6 @@ class Messenger ...@@ -295,7 +294,6 @@ class Messenger
static_assert(std::is_trivial_v<DataType>, static_assert(std::is_trivial_v<DataType>,
"unexpected non trivial type of data"); "unexpected non trivial type of data");
} }
return array;
} }
template <typename SendDataType, template <typename SendDataType,
...@@ -375,9 +373,9 @@ allToAll(const Array<DataType>& array) ...@@ -375,9 +373,9 @@ allToAll(const Array<DataType>& array)
template <typename DataType> template <typename DataType>
PASTIS_INLINE PASTIS_INLINE
Array<DataType> broadcast(const Array<DataType>& array, int root_rank) void broadcast(Array<DataType>& array, int root_rank)
{ {
return messenger().broadcast(array, root_rank); messenger().broadcast(array, root_rank);
} }
template <typename SendDataType, template <typename SendDataType,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment