2016-04-13 7 views
0

誰もがブーストを使ってstd::complex<long double>アレイのために減らすことを考えているのですか?種類、boost mpi reduce for std :: complex <long double> array

#include <boost/mpi.hpp> 
#include<complex> 
namespace mpi = boost::mpi; 

int main() { 
mpi::environment env; 
mpi::communicator world; 
const int N = 4; 

std::complex<long double> a[N]={}; 


if (world.rank() == 0) { 
    std::complex<long double> sum[N] = {}; 
    mpi::reduce(world, a,sum, std::plus<>(), 0); 

    for(int i=0;i<N;i++) std::cout<<a[i]<<std::endl; 
} 

} 

私はmpic++ main.cpp -o main -lboost_mpi -lboost_serialization -lboost_system

答えて

0

任意でSC++ Lのもののような外国人のタイプを使用することができるライブラリで共通のデザインを使用してそれをコンパイル:

私は、次のコードのエラー‘struct std::complex<long double>’ has no member named ‘serialize’ を取得していますあなたが明示的にヘッダを含んでいなければ、現代の標準からあなたが持っていないかもしれない、または他のソースからのタイプが機能を提供しないことです。

Boostは、翻訳ユニットでは望まないかもしれないものや、存在しないもののために重いSC++ Lヘッダを引っ張らないように、FusionとSerializationのためにこれを行います。

boost/serialization/complex.hppのようなヘッダーがあり、それを見つけることが必要な場合があります。

関連する問題