static void TextPrintCubeAnalysis(GString * gsz, const matchstate * pms, moverecord * pmr) { cubeinfo ci; /* we need to remember the double type to be able to do the right * thing for beavers and racoons */ static doubletype dt = DT_NORMAL; GetMatchStateCubeInfo(&ci, pms); switch (pmr->mt) { case MOVE_NORMAL: /* cube analysis from move */ TextPrintCubeAnalysisTable(gsz, pmr->CubeDecPtr->aarOutput, pmr->CubeDecPtr->aarStdDev, pmr->fPlayer, &pmr->CubeDecPtr->esDouble, &ci, FALSE, -1, pmr->stCube, SKILL_NONE); dt = DT_NORMAL; break; case MOVE_DOUBLE: dt = DoubleType(pms->fDoubled, pms->fMove, pms->fTurn); if (dt != DT_NORMAL) { g_string_append(gsz, _("Cannot analyse beaver nor raccoons!\n")); break; } TextPrintCubeAnalysisTable(gsz, pmr->CubeDecPtr->aarOutput, pmr->CubeDecPtr->aarStdDev, pmr->fPlayer, &pmr->CubeDecPtr->esDouble, &ci, TRUE, -1, pmr->stCube, SKILL_NONE); break; case MOVE_TAKE: case MOVE_DROP: /* cube analysis from double, {take, drop, beaver} */ if (dt != DT_NORMAL) { dt = DT_NORMAL; g_string_append(gsz, _("Cannot analyse beaver nor raccoons!\n")); break; } TextPrintCubeAnalysisTable(gsz, pmr->CubeDecPtr->aarOutput, pmr->CubeDecPtr->aarStdDev, pmr->fPlayer, &pmr->CubeDecPtr->esDouble, &ci, TRUE, pmr->mt == MOVE_TAKE, SKILL_NONE, /* FIXME: skill from prev. cube */ pmr->stCube); break; default: g_assert_not_reached(); } return; }
llvm::Constant *CodeGen::ConstDouble(double val) const { return llvm::ConstantFP::get(DoubleType(), val); }