J'utilise le nombre à virgule flottante multiprécision de boost. Je dois mapper un gmp_float
à un tanh
, puis le prendre comme un double parce que la valeur de tanh
sera [0, 1)
. Lorsque j'utilise convert_to<double>()
, je reçois une erreur de compilation, comme indiqué dans l'extrait ci-dessous.boost multiprécision gmp_float convertir_to <double>() donne l'erreur de compilation
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);
Cependant coulée explicitement à doubler (double)sigmapped_v
fonctionne
(Si mon intuition est correcte, vous omettre des informations importantes de la question Si oui, veuillez envisager d'inclure un/testé/SSCCE la prochaine fois) – sehe