1

ブースト倍精度ライブラリ浮動小数点数を使用しています。の値が になるため、 agmp_floatを anにマップしてからtanhdouble として取得する必要があります。使用すると、以下のスニペットに示すようにコンパイル エラーが発生します。tanh[0, 1)convert_to<double>()

typedef boost::multiprecision::number<boost::multiprecision::gmp_float<4>> float_type;

float_type previous_v = agent->_velocity(i, j);
float_type sigmapped_v = boost::multiprecision::tanh(previous_v);
double sigmoid_velocity = sigmapped_v.convert_to<double>();
// expected primary-expression before ‘double’ ^^

double v_probable = abs(sigmoid_velocity);

ただし、明示的に double にキャストすると(double)sigmapped_vうまくいきます

4

1 に答える 1