getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-users] vector iterator + offset out of range error in mat_transp


From: Egor Vtorushin
Subject: [Getfem-users] vector iterator + offset out of range error in mat_transp_reduction
Date: Mon, 22 Jun 2015 20:41:06 +0600

Dear Yves 

After months of stable working in Visual Studio 2010 the getfem++ lib is failed on my desktop
I'm rebuilding  the getfem and trying to pass a simple tests via test_assembly.cc

It fails on the first calculation of gradient while performing ctx.pf()->real_grad_base_value(ctx, t);

It goes to mat_transp_reduction method and dies then inside the last loop

iterator pff = pf;
for (size_type k = 0; k < dim; ++k, pff += co) {
  *pff = T(0); pt = tmp->begin(); pl = m.begin() + k;
  for (size_type l = 0; l < dimt; ++l, ++pt, pl += dim)
    *pff += (*pl) * (*pt);
}

once the error

_Myiter& operator+=(difference_type _Off)
{ // increment by integer
 #if _ITERATOR_DEBUG_LEVEL == 2
if (this->_Getcont() == 0
|| this->_Ptr + _Off < ((_Myvec *)this->_Getcont())->_Myfirst
|| ((_Myvec *)this->_Getcont())->_Mylast < this->_Ptr + _Off)
{ // report error
_DEBUG_ERROR("vector iterator + offset out of range");
_SCL_SECURE_OUT_OF_RANGE;
}
occurs in std include\vector file

I believe it can not perform pl += dim anymore.

I'm really frustrated since it out of my control. I rebuilt it with many compiler/linker options but cannot get a working library anymore

Unfortunately, I don't understand this part of the code well so it's hard to me rewriting mat_transp_reduction in more correct manner.

Yves, if you have any idea why it could die here please advise how to rewrite mat_transp_reduction method?
What the difference between mat_transp_reduction and mat_reduction methods? In mat_reduction  you just apply++pl but not pl += dim

I will try to rebuild the getfem on different Visual Studio(2008,2013) but even it fixes the problem it's probably better to fix the reason(unstable code pieces) .

Regards, Egor


reply via email to

[Prev in Thread] Current Thread [Next in Thread]