Exemplo n.º 1
0
/**
 * Description not yet available.
 * \param
 */
void dmcv_prod(void)
{
  verify_identifier_string("PLX");
  dvar_vector_position tmp_pos=restore_dvar_vector_position();
  dvar_matrix_position m_pos=restore_dvar_matrix_position();
  dvar_vector_position x_pos=restore_dvar_vector_position();
  dvector x=restore_dvar_vector_value(x_pos);
  verify_identifier_string("PL4");
  dvector dftmp=restore_dvar_vector_derivatives(tmp_pos);

  dmatrix dfm(m_pos);
  dfm.initialize();

   double dfsum;
   int mmin=dfm.rowmin();
   int mmax=dfm.rowmax();
   for (int i=mmax; i>=mmin; i--)
   {
     // tmp.elem_value(i)=sum;
     dfsum=dftmp.elem(i);
     dvector& tt=dfm.elem(i);
     for (int j=x.indexmax(); j>=x.indexmin(); j--)
     {
       //sum+=(m.elem(i)).elem_value(j)*x.elem_value(j);
       tt.elem(j)+=dfsum*x.elem(j);
     }
     //sum=0.0;
     dfsum=0.0;
   }
   dfm.save_dmatrix_derivatives(m_pos);
}
Exemplo n.º 2
0
void RssListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
    QStyledItemDelegate::paint(painter,option,index);

    painter->save();

    QFont font = QApplication::font();
    QFont SubFont = QApplication::font();
    QFont dateFont = QApplication::font();

    //font.setPixelSize(font.weight()+);
    font.setBold(true);
    SubFont.setWeight(SubFont.weight()-2);
    QFontMetrics fm(font);
    QFontMetrics dfm(dateFont);

    QIcon icon = qvariant_cast<QIcon>(index.data(IconRole));
    QString headerText = qvariant_cast<QString>(index.data(HeaderTextRole));
    QString subText = qvariant_cast<QString>(index.data(DescriptionRole));
    QString dateText = qvariant_cast<QString>(index.data(DateRole));

    QSize iconsize = icon.actualSize(option.decorationSize);

    QRect headerRect = option.rect;
    QRect subheaderRect = option.rect;
    QRect iconRect = subheaderRect;
    QRect dateRect = subheaderRect;

    iconRect.setRight(iconsize.width()+30);
    iconRect.setTop(iconRect.top()+5);
    headerRect.setLeft(iconRect.right());
    headerRect.setTop(headerRect.top()+5);
    headerRect.setBottom(headerRect.top()+fm.height());

    int dateWidth = 0;
    if(!dateText.isEmpty()) {
        dateWidth = dfm.width(dateText) + 5;
        dateRect.setLeft(iconRect.right());
        dateRect.setTop(headerRect.bottom()+17);
    }


    subheaderRect.setLeft(iconRect.right() + dateWidth);
    subheaderRect.setTop(headerRect.bottom()+17);


    //painter->drawPixmap(QPoint(iconRect.right()/2,iconRect.top()/2),icon.pixmap(iconsize.width(),iconsize.height()));
    painter->drawPixmap(QPoint(iconRect.left()+iconsize.width()/2+2,iconRect.top()+iconsize.height()/2+3),icon.pixmap(iconsize.width(),iconsize.height()));

    painter->setFont(font);
    painter->drawText(headerRect,headerText);


    painter->setFont(SubFont);
    painter->drawText(subheaderRect.left(),subheaderRect.top(),subText);

    if(dateWidth) {
        painter->setFont(dateFont);
        painter->drawText(dateRect.left(), dateRect.top(), dateText);
    }

    painter->restore();

}