Posted by
Billy Ng-5 on
May 29, 2012; 1:35am
URL: http://quantlib.414.s1.nabble.com/How-to-handle-sink-schedules-stepped-coupons-stepped-formulas-callable-floaters-tp7771p7780.html
Hi Klause,
The change fix the problem.
To provide some observations for your pursuit:
The culpit is in multicublicspline.cpp (QL v1.2) line 295
res = a * y[i] + b * y[i + 1] + a2 * y2[i] + b2 * y2[i + 1];
The variable, i do goes up to 13 where nStates=14
y[i+1] causes the "vector out of range" problem.
It happens at the very end of the calculation and I suspect it is the boundary situations that cause the out of bound problem.
Hope it helps
Billy
-----Original Message-----
From: Klaus Spanderen [mailto:
[hidden email]]
Sent: Tuesday, May 29, 2012 5:03 AM
To:
[hidden email]
Cc: Billy Ng; Luigi Ballabio
Subject: Re: [Quantlib-users] Test Suite Crashed in QL v1.2
Hi Billy
thanks for highlighting this problem.
I don't fully understand the issue yet but it seems that the out of bound
access occurs in the MultiCubicSpline class, which is used in the multi
dimensional finite difference solver FdmNdimSolver. As far as I can see it
seems to be a rounding problem, Changing line 212 in
fdsimpleklugeextouvppengine.cpp towards
x[3] = std::min(results.size()-1-1e-8, (Real) (nStates-results.size()+i));
fixes the problem, I'll investigate this further on.
regards
Klaus
On Monday 28 May 2012 12:05:31 Billy Ng wrote:
> Thanks.
> I did commented out other tests.
> Running just vppOption.NPV() takes minutes.
>
> Some more info, hope it helps.
> vppOption.NPV() is the only problem.
> Other VPP tests run fine.
>
> Billy
>
> -----Original Message-----
> From: Luigi Ballabio [mailto:
[hidden email]]
> Sent: Monday, May 28, 2012 5:53 PM
> To: Billy Ng
> Cc:
[hidden email]
> Subject: Re: [Quantlib-users] Test Suite Crashed in QL v1.2
>
>
> As for running vpp.cpp alone, you can just edit quantlibtestsuite.cpp
> and comment out all the test->add(...) instructions except for the one
> that adds the VPP tests.
>
> As for the error, I don't think you need to go into the Boost code.
> The problem is likely to be further up in the stack trace, in the code
> from QuantLib that calls Boost. I'd examine that instruction and see
> if it's doing something incorrect, like asking an out-of-bound element
> or looping outside a valid range. When the debugger stops, you can
> just go up the stack trace to the calling function until you find
> QuantLib code.
>
> Luigi
>
> On Mon, May 28, 2012 at 11:10 AM, Billy Ng <
[hidden email]> wrote:
> > I compiled the whole thing in Debug Mode.
> > In running the testsuite, it crashed at vpp.cpp after running for a while
> > I think the problem is caused by "vector subscript out of range" under
> > Boost. I do not have access to the boost source code, so it turn up with
> > some disassembly code. Therefore, I cannot trace where went wrong as it
> > is after running for a while.
> >
> > I have the option to copy out vpp.cpp as a standalone project, but I
> > think I should at least ask in this mailing list to see if there a
> > solution for it. It does not make sense if I cannot do testing under a
> > test-suite as the problem may not repeat if running alone
> >
> > Billy
> >
> > VPPTest::testVPPPricing()
> > const Real fdmPrice = vppOption.NPV();
> >
> > The system crashed at the following, an assertion error.
> > line 764 std::vector
> > #if _HAS_ITERATOR_DEBUGGING
> > if (size() <= _Pos)
> > {
> > _DEBUG_ERROR("vector subscript out of range");
> > _SCL_SECURE_OUT_OF_RANGE;
> > }
> > #endif /* _HAS_ITERATOR_DEBUGGING */
> >
> >
> > -----Original Message-----
> > From: Luigi Ballabio [mailto:
[hidden email]]
> > Sent: Monday, May 28, 2012 4:54 PM
> > To: Billy Ng
> > Cc:
[hidden email]
> > Subject: Re: [Quantlib-users] Test Suite Crashed in QL v1.2
> >
> > On Sat, May 26, 2012 at 5:50 AM, Billy Ng <
[hidden email]> wrote:
> >> In trying to debug this problem under Test-Suite Project, how to make
> >> source code visible to the debugger? Sorry if it is a bit off topic.
> >
> > It should be as easy as compiling the whole thing in Debug mode and
> > starting the debugger. Visual Studio should show you the code
> > automatically. What is it exactly that you're doing?
> >
> > Luigi
>
> ---------------------------------------------------------------------------
>--- Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats.
http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/> _______________________________________________
> QuantLib-users mailing list
>
[hidden email]
>
https://lists.sourceforge.net/lists/listinfo/quantlib-users------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats.
http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users