void GLaguer::GetPhylipLaguer(const int categs, MDOUBLE alpha, Vdouble & points, Vdouble & weights) { /* calculate rates and probabilities to approximate Gamma distribution of rates with "categs" categories and shape parameter "alpha" using rates and weights from Generalized Laguerre quadrature */ points.resize(categs, 0.0); weights.resize(categs, 0.0); long i; raterootarray lgroot; /* roots of GLaguerre polynomials */ double f, x, xi, y; alpha = alpha - 1.0; lgroot[1][1] = 1.0+alpha; for (i = 2; i <= categs; i++) { cerr<<lgroot[i][1]<<"\t"; lgr(i, alpha, lgroot); /* get roots for L^(a)_n */ cerr<<lgroot[i][1]<<endl; } /* here get weights */ /* Gamma weights are (1+a)(1+a/2) ... (1+a/n)*x_i/((n+1)^2 [L_{n+1}^a(x_i)]^2) */ f = 1; for (i = 1; i <= categs; i++) f *= (1.0+alpha/i); for (i = 1; i <= categs; i++) { xi = lgroot[categs][i]; y = glaguerre(categs+1, alpha, xi); x = f*xi/((categs+1)*(categs+1)*y*y); points[i-1] = xi/(1.0+alpha); weights[i-1] = x; } }
ThreadSafeProcess::~ThreadSafeProcess() { try { release(); } catch(const Exception& e) { Logger lgr(COMPONENT_NAME); BLOCXX_LOG_DEBUG(lgr, Format("Exception while releasing process: %1", e)); } catch(...) { // nothing should escape. Logger lgr(COMPONENT_NAME); BLOCXX_LOG_DEBUG(lgr, "Unknown exception while releasing process."); } }
void AutoDescriptorPolicy::free(handle_type h) { #if defined(BLOCXX_WIN32) if (h != BLOCXX_INVALID_HANDLE) { if (!CloseHandle(h)) { #if !defined(BLOCXX_NO_EXCEPTIONS) String msg; System::lastErrorMsg("Closing handle", msg); Logger lgr("blocxx"); BLOCXX_LOG_ERROR(lgr, msg); #else // We can't do any logging without the possibility of throwing an exception. #endif /* !defined(BLOCXX_NO_EXCEPTIONS) */ } } #else if (h >= 0) { int rc = 0; do { rc = ::close(h); } while (rc < 0 && errno == EINTR); if (rc == -1) { #if !defined(BLOCXX_NO_EXCEPTIONS) int lerrno = errno; Logger lgr("blocxx"); BLOCXX_LOG_ERROR(lgr, Format("Closing handle %1 failed: %2", h, lerrno)); #else // We can't do any logging without the possibility of throwing an exception. #endif /* !defined(BLOCXX_NO_EXCEPTIONS) */ } } #endif /* defined(BLOCXX_WIN32) */ }
void ProviderIFCLoader::loadIFCs(Array<ProviderIFCBaseIFCRef>& ifcs) const { ServiceEnvironmentIFCRef env = getEnvironment(); LoggerRef lgr(env->getLogger(COMPONENT_NAME)); int ifcCount = 0; StringArray libdirs = env->getMultiConfigItem(ConfigOpts::PROVIDER_IFC_LIBS_opt, String(OW_DEFAULT_PROVIDER_IFC_LIBS).tokenize(), OW_PATHNAME_SEPARATOR); for (size_t i = 0; i < libdirs.size(); ++i) { const String libdir(libdirs[i]); OW_LOG_DEBUG(lgr, Format("ProviderIFCBaseIFCLoaderBase::loadIFC getting provider interfaces from: %1", libdir)); StringArray libs; FileSystem::getDirectoryContents(libdir, libs); if (libs.size() == 0) { OW_THROW(ProviderIFCLoaderException, "ProviderIFCBaseIFCLoaderBase::loadIFCs did not find any provider interfaces"); return; } for (StringArray::size_type i = 0; i < libs.size(); ++i) { if (!libs[i].endsWith(OW_SHAREDLIB_EXTENSION)) { continue; } #ifdef OW_DARWIN if (libs[i].indexOf(OW_VERSION) != String::npos) { continue; } #endif // OW_DARWIN ProviderIFCBaseIFCRef rval; ProviderIFCBaseIFCRef pmr; rval = createProviderIFCFromLib(libdir + OW_FILENAME_SEPARATOR + libs[i]); if (rval) { ifcCount++; ifcs.push_back(rval); } else { OW_LOG_ERROR(lgr, Format("Unable to load ProviderIFC library %1", libs[i])); } } } OW_LOG_DEBUG(lgr, Format("Number of provider interfaces loaded: %1", ifcCount)); }
ProviderIFCBaseIFCRef ProviderIFCLoaderBase::createProviderIFCFromLib(const String& libname) const { LoggerRef lgr(m_env->getLogger(COMPONENT_NAME)); OW_LOG_DEBUG(lgr, Format("ProviderIFCBaseIFCLoaderBase::createProviderIFCFromLib loading library %1", libname)); SharedLibraryRef sl = m_sll->loadSharedLibrary(libname, lgr); ProviderIFCBaseIFC* ptr = 0; if ( sl ) { ptr = SafeLibCreate<ProviderIFCBaseIFC>::create(sl, "createProviderIFC", lgr); } else { OW_THROW(ProviderIFCLoaderException, Format("ProviderIFCBaseIFCLoaderBase::createProviderIFCFromLib FAILED loading library %1", libname).c_str()); } ProviderIFCBaseIFCRef retval(sl, ptr); return retval; }
// ------------------------------ protected -------------------------------- // void KrugovyeChasy::paintEvent(QPaintEvent *e) { static const QPoint chasStrelka[3] = { QPoint(7, 8), QPoint(-7, 8), QPoint(0, -40) }; static const QPoint chastStrelka[3] = { QPoint(7, 8), QPoint(-7, 8), QPoint(0, -70) }; int delta = mPausa ? 91 : 191; const QColor chasCvet(127, 0, 127); const QColor chastCvet(0, 127, 127, 191); const QColor foneCentr(255, 255, 255, delta); const QColor foneSer(70, 200, 70, delta); const QColor foneKrai(QColor(230, 255, 230)); const QColor foneTemnKrai(QColor(10, 140, 10)); QColor chetvertCvet = KDChetvertySutok_Cveta[CHETVERT(mChas)].second; static const qreal povorot = 360.0 / 1296.0; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setClipRegion(e->region()); int side = qMin(width(), height()) - 9; // рисуем фон if (mEffects) { QRadialGradient rgr(width() / 2, height() / 2, side / 2); rgr.setColorAt(0.0, foneCentr); rgr.setColorAt(0.9, foneSer); rgr.setColorAt(1.0, foneKrai); rgr.setSpread(QGradient::ReflectSpread); QLinearGradient lgr(rect().topLeft(), rect().bottomRight()); lgr.setColorAt(0, foneKrai); lgr.setColorAt(1, foneTemnKrai); painter.setPen(QPen(QBrush(lgr), 8.0)); painter.setBrush(QBrush(rgr)); painter.drawEllipse(QPoint(width() / 2, height() / 2), side / 2, side / 2); } // переносим систему координат в центр виджета painter.translate(width() / 2, height() / 2); painter.scale(side / 200.0, side / 200.0); // рисуем часы painter.save(); mEffects ? painter.setPen(Qt::yellow) : painter.setPen(Qt::darkRed); for (int i = 1; i <= 16; ++i) { painter.drawLine(0, -88, 0, -96); painter.rotate(22.5); // 360 / 16 if (mEffects) { painter.save(); painter.translate(0, -73); painter.rotate(-i * 22.5); painter.setPen(KDChetvertySutok_Cveta[CHETVERT(i)].second); painter.drawText(QRect(-7, -7, 16, 14), Qt::AlignCenter, QString::number(i)); painter.restore(); } } painter.restore(); // рисуем части if (mEffects) { painter.save(); painter.setPen(Qt::yellow); for (int i = 0; i < 144; ++i) { if ((i % 9) != 0) // 144 / 16 painter.drawLine(-92, 0, -96, 0); painter.rotate(2.5); // 360 / 144 } painter.restore(); // подписываем час QFontMetrics fm(painter.fontMetrics()); QFont f = font(); f.setPointSize(8); QString chas = KDChasy_Opisaniya[mChas - 1].first; int w = fm.width(chas); int h = fm.height(); painter.setFont(f); painter.setPen(chetvertCvet); painter.drawText(QRect(-w / 2 + 4, -50, w, h), chas); // подписываем четверти суток f.setPointSize(7); h = painter.fontMetrics().height(); painter.setFont(f); painter.setPen(KDChetvertySutok_Cveta[0].second); w = fm.width(KDChetvertySutok_Cveta[0].first); painter.drawText(QRect(20, -30, w, h), Qt::AlignCenter, KDChetvertySutok_Cveta[0].first); painter.setPen(KDChetvertySutok_Cveta[1].second); w = fm.width(KDChetvertySutok_Cveta[1].first); painter.drawText(QRect(22, 22, w, h), Qt::AlignCenter, KDChetvertySutok_Cveta[1].first); painter.setPen(KDChetvertySutok_Cveta[2].second); w = fm.width(KDChetvertySutok_Cveta[2].first); painter.drawText(QRect(-55, 22, w, h), Qt::AlignCenter, KDChetvertySutok_Cveta[2].first); painter.setPen(KDChetvertySutok_Cveta[3].second); w = fm.width(KDChetvertySutok_Cveta[3].first); painter.drawText(QRect(-55, -30, w, h), Qt::AlignCenter, KDChetvertySutok_Cveta[3].first); // рисуем картинка с чертами/резами, рунами, числом часа chetvertCvet.setAlpha(100); painter.setPen(Qt::darkGreen); painter.setBrush(QBrush(chetvertCvet)); QPixmap pm = mChasyKartinki[mChas - 1]; QRect r = QRect(-35, 40, 70, 16); painter.drawPixmap(r, pm); painter.drawRect(r); } // рисуем часовую стрелку painter.save(); painter.setPen(Qt::NoPen); painter.setBrush(chasCvet); painter.rotate(povorot * mVolchok / 2304); // 144 * 16 painter.drawConvexPolygon(chasStrelka, 3); painter.restore(); // рисуем частную(?) стрелку painter.save(); painter.setPen(Qt::NoPen); painter.setBrush(chastCvet); painter.rotate(povorot * mVolchok / 144); painter.drawConvexPolygon(chastStrelka, 3); painter.restore(); // рисуем долевую стрелку painter.setBrush(QBrush(Qt::darkMagenta)); painter.drawEllipse(-1, -1, 2, 2); painter.save(); painter.rotate(povorot * mVolchok); painter.setPen(Qt::darkCyan); painter.drawLine(0, 5, 0, -85); painter.restore(); }
void SAGraphicsLabelItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option); Q_UNUSED(widget); painter->setRenderHints(painter->renderHints() | QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter->setFont(mShrift); QRectF r = rect(); r.setWidth(r.width() - 1); if (!mFone) { painter->setPen(mCvet); #if defined(Q_OS_UNIX) painter->drawText(r.adjusted(0, 5, 0, 0), mVyiravn, mPodpis); #elif defined(Q_OS_WIN) painter->drawText(r.adjusted(0, 0, 0, 0), mVyiravn, mPodpis); #endif return; } QColor bgColor(mCvet); bool black = bgColor == Qt::black; if (black) bgColor = QColor(30, 30, 30); QColor lighter1 = bgColor.lighter(black ? 400 : 200); QColor lighter2 = bgColor.lighter(black ? 320 : 120); QColor darker1 = bgColor.darker(115); QLinearGradient lgr(r.topLeft(), r.bottomLeft()); lgr.setColorAt(0, lighter1); lgr.setColorAt(0.4, darker1); lgr.setColorAt(0.6, darker1); lgr.setColorAt(1, lighter2); painter->setPen(bgColor); painter->setBrush(QBrush(lgr)); painter->drawRoundedRect(r, 3, 3); painter->setBrush(Qt::white); painter->setPen(QPen(Qt::white, 0.01)); painter->setOpacity(0.3); painter->drawRoundedRect(r.x(), r.y(), r.width(), r.height() / 2 - 2, 3, 3); painter->setPen(mCvet); painter->setBrush(QBrush(QColor(mCvet))); painter->setOpacity(1); QColor textColor(bgColor); if (mCvet == "#ffffff") textColor = Qt::darkRed; else if (mCvet == "#000000") textColor = QColor(240, 240, 240); else textColor = QColor(mCvet).darker(200); painter->setPen(textColor); #if defined(Q_OS_UNIX) painter->drawText(r.adjusted(0, 5, 0, 0), mVyiravn, mPodpis); #elif defined(Q_OS_WIN) painter->drawText(r.adjusted(0, 0, 0, 0), mVyiravn, mPodpis); #endif }