Problem on QuantLib with /Clr support enabled

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem on QuantLib with /Clr support enabled

weysy
Hi, i am new in quantlib and c++/clr. currently working on a project using windows forms on Visual C++ 2005 express edition.

i tried the Equityoption example in a seperate project(and solution).
but i get all the output option prices as all "0" (with no error message) if i turned on the /clr support.
everything is correct just without the /clr support on.

I have read the earlier post "C++ help needed: singleton.hpp" and tried to add "inline" in singleton.hpp accordingly but unfortunately nothing changes as the wrong number "0"s remain.

I have also tried the newest version QuantLib 0.9.0.

Appreciated if anyone can help or give any suggestion..
Thanks in advance.

Best regards,
Weysy

Reply | Threaded
Open this post in threaded view
|

Re: Problem on QuantLib with /Clr support enabled

Nathan Abbott
I just tested the EquityOption project of QuantLib 0.9.0 with Boost 1.34.1 and Visual C++ 2005. The project works with both the \clr support on and off. My suggestion is that you comment lines 69 and 71 in the singleton.hpp file.
For example.

//#if defined(QL_PATCH_MSVC) && defined(_MANAGED)
inline  // this seems to be required when CLR support is enabled
 //#endif


Then you should recomple QuantLib. It should work after that.


On Mon, Mar 3, 2008 at 8:09 AM, weysy <[hidden email]> wrote:

Hi, i am new in quantlib and c++/clr. currently working on a project using
windows forms on Visual C++ 2005 express edition.

i tried the Equityoption example in a seperate project(and solution).
but i get all the output option prices as all "0" (with no error message) if
i turned on the /clr support.
everything is correct just without the /clr support on.

I have read the earlier post "C++ help needed: singleton.hpp" and tried to
add "inline" in singleton.hpp accordingly but unfortunately nothing changes
as the wrong number "0"s remain.

I have also tried the newest version QuantLib 0.9.0.

Appreciated if anyone can help or give any suggestion..
Thanks in advance.

Best regards,
Weysy


--
View this message in context: http://www.nabble.com/Problem-on-QuantLib-with--Clr-support-enabled-tp15807079p15807079.html
Sent from the quantlib-users mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem on QuantLib with /Clr support enabled

Luigi Ballabio

On Mar 3, 2008, at 6:26 PM, Nathan Abbott wrote:
> I just tested the EquityOption project of QuantLib 0.9.0 with Boost
> 1.34.1 and Visual C++ 2005. The project works with both the \clr
> support on and off. My suggestion is that you comment lines 69 and 71
> in the singleton.hpp file.
>  For example.
>
> //#if defined(QL_PATCH_MSVC) && defined(_MANAGED)
> inline  // this seems to be required when CLR support is enabled
>  //#endif

Nathan,
        did you get any different behavior after commenting the #ifdef?
It sounds strange, since the /clr option defines _MANAGED, so the
inline should be preprocessed anyway.

Luigi


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem on QuantLib with /Clr support enabled

Nathan Abbott
No I did not do any thing different. The confusion is that I compile the QuantLib natively or unmanaged then I link it to a C++ class that is compile under the /clr flag.  For this to work, the inline must be inserted when I compile with the /clr is turn on and when the /clr is turn off. My suggestion is that you changed the singelton.hpp to something like thus.

#if defined(QL_PATCH_MSVC)
inline  // this seems to be required when CLR support is enabled
#endif

On Mon, Mar 3, 2008 at 10:53 AM, Luigi Ballabio <[hidden email]> wrote:

On Mar 3, 2008, at 6:26 PM, Nathan Abbott wrote:
> I just tested the EquityOption project of QuantLib 0.9.0 with Boost
> 1.34.1 and Visual C++ 2005. The project works with both the \clr
> support on and off. My suggestion is that you comment lines 69 and 71
> in the singleton.hpp file.
>  For example.
>
> //#if defined(QL_PATCH_MSVC) && defined(_MANAGED)
> inline  // this seems to be required when CLR support is enabled
>  //#endif

Nathan,
       did you get any different behavior after commenting the #ifdef?
It sounds strange, since the /clr option defines _MANAGED, so the
inline should be preprocessed anyway.

Luigi



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem on QuantLib with /Clr support enabled

Luigi Ballabio
On Mon, 2008-03-03 at 11:42 -0800, Nathan Abbott wrote:
> No I did not do any thing different. The confusion is that I compile
> the QuantLib natively or unmanaged then I link it to a C++ class that
> is compile under the /clr flag.

Is this at all possible?

> For this to work, the inline must be inserted when I compile with
> the /clr is turn on and when the /clr is turn off. My suggestion is
> that you changed the singelton.hpp to something like thus.
>
> #if defined(QL_PATCH_MSVC)
> inline  // this seems to be required when CLR support is enabled
> #endif

Hmm, the inline might not work when CLR support is disabled. I checked
both configurations before release (at least under VC7.1) and without
CLR, the examples were failing with the inline (hence the switch.)

May you try recompiling everything natively with the inline and see
whether the test-suite and the examples work?

Thanks,
        Luigi


--

If I do not want others to quote me, I do not speak.
-- Phil Wayne



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem on QuantLib with /Clr support enabled

weysy
In reply to this post by Nathan Abbott
It is working perfectly now with the advice below.
I will be following the discussion.
thank so much for the prompt reply!


Nathan Abbott wrote
I just tested the EquityOption project of QuantLib 0.9.0 with Boost
1.34.1and Visual C++ 2005. The project works with both the \clr
support on and
off. My suggestion is that you comment lines 69 and 71 in the singleton.hppfile.
For example.

//#if defined(QL_PATCH_MSVC) && defined(_MANAGED)
inline  // this seems to be required when CLR support is enabled
 //#endif


Then you should recomple QuantLib. It should work after that.
Reply | Threaded
Open this post in threaded view
|

Re: Problem on QuantLib with /Clr support enabled

Nathan Abbott
In reply to this post by Luigi Ballabio
I compile QuantLib with Visual C++ 2005 with Boost 1.34.1 without the /clr flag with the following line changes to singleton.hpp.

#if defined(QL_PATCH_MSVC)
inline  // this seems to be required when CLR support is enabled
#endif

Then I compile all the examples and the test suite without the /clr flag. All the examples and the test suite ran fine with no problems.

After that, I recompile all the examples and the test suite with the /clr flag with out changing the QuantLib library.
In other words, the QuantLib is still compiled without the /clr flag. All the examples ran fine with no problems. However the testsuite fails one of its tests. Here is the output window.

1>------ Rebuild All started: Project: testsuite, Configuration: Release CRTDLL Win32 ------
1>Deleting intermediate and output files for project 'testsuite', configuration 'Release CRTDLL|Win32'
1>Compiling...
1>volatilitymodels.cpp
1>varianceswaps.cpp
1>transformedgrid.cpp
1>tracing.cpp
1>tqreigendecomposition.cpp
1>timeseries.cpp
1>swaptionvolatilitymatrix.cpp
1>swaptionvolatilitycube.cpp
1>swapforwardmappings.cpp
1>surface.cpp
1>shortratemodels.cpp
1>sampledcurve.cpp
1>rounding.cpp
1>rngtraits.cpp
1>rangeaccrual.cpp
1>quantooption.cpp
1>piecewiseyieldcurve.cpp
1>period.cpp
1>pathgenerator.cpp
1>optimizers.cpp
1>Generating Code...
1>Compiling...
1>money.cpp
1>mclongstaffschwartzengine.cpp
1>marketmodel_smmcaplethomocalibration.cpp
1>marketmodel_smmcapletcalibration.cpp
1>marketmodel_smmcapletalphacalibration.cpp
1>marketmodel_smm.cpp
1>marketmodel_cms.cpp
1>marketmodel.cpp
1>lookbackoptions.cpp
1>linearleastsquaresregression.cpp
1>libormarketmodelprocess.cpp
1>libormarketmodel.cpp
1>interestrates.cpp
1>inflation.cpp
1>hybridhestonhullwhiteprocess.cpp
1>hestonmodel.cpp
1>gaussianquadratures.cpp
1>forwardoption.cpp
1>exchangerate.cpp
1>dividendoption.cpp
1>Generating Code...
1>c:\Projects\Tools\Libraries\QLibDev\QuantLib-0.9.0\test-suite\mclongstaffschwartzengine.cpp : warning C4793: 'virtual-call thunks are native with /clr' : causes native code generation for function 'QuantLib::EarlyExercisePathPricer<QuantLib::Path,unsigned int,double>::operator()'
1>c:\Projects\Tools\Libraries\QLibDev\QuantLib-0.9.0\test-suite\mclongstaffschwartzengine.cpp : warning C4793: 'virtual-call thunks are native with /clr' : causes native code generation for function 'QuantLib::EarlyExercisePathPricer<QuantLib::MultiPath,unsigned int,double>::operator()'
1>Compiling...
1>digitalcoupon.cpp
1>curvestates.cpp
1>convertiblebonds.cpp
1>cms.cpp
1>cliquetoption.cpp
1>capflooredcoupon.cpp
1>brownianbridge.cpp
1>bonds.cpp
1>bermudanswaption.cpp
1>batesmodel.cpp
1>assetswap.cpp
1>array.cpp
1>Generating Code...
1>Compiling...
1>quantlibtestsuite.cpp
1>utilities.cpp
1>termstructures.cpp
1>swaption.cpp
1>swap.cpp
1>stats.cpp
1>solvers.cpp
1>riskstats.cpp
1>quotes.cpp
1>operators.cpp
1>old_pricers.cpp
1>mersennetwister.cpp
1>matrices.cpp
1>lowdiscrepancysequences.cpp
1>jumpdiffusion.cpp
1>interpolations.cpp
1>integrals.cpp
1>instruments.cpp
1>factorial.cpp
1>europeanoption.cpp
1>Generating Code...
1>Compiling...
1>distributions.cpp
1>digitaloption.cpp
1>daycounters.cpp
1>dates.cpp
1>covariance.cpp
1>compoundforward.cpp
1>capfloor.cpp
1>calendars.cpp
1>basketoption.cpp
1>barrieroption.cpp
1>asianoptions.cpp
1>americanoption.cpp
1>Generating Code...
1>c:\Projects\Tools\Libraries\QLibDev\QuantLib-0.9.0\test-suite\basketoption.cpp : warning C4793: 'virtual-call thunks are native with /clr' : causes native code generation for function 'QuantLib::EarlyExercisePathPricer<QuantLib::MultiPath,unsigned int,double>::operator()'
1>Linking...
1>quantlibtestsuite.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>volatilitymodels.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>varianceswaps.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>transformedgrid.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>tracing.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>tqreigendecomposition.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>timeseries.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>termstructures.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>swaptionvolatilitymatrix.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>swaptionvolatilitycube.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>swaption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>swapforwardmappings.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>swap.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>surface.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>stats.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>solvers.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>shortratemodels.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>sampledcurve.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>rounding.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>rngtraits.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>riskstats.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>rangeaccrual.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>quotes.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>quantooption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>piecewiseyieldcurve.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>period.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>pathgenerator.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>optimizers.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>operators.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>old_pricers.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>money.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>mersennetwister.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>mclongstaffschwartzengine.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>matrices.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>marketmodel_smmcaplethomocalibration.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>marketmodel_smmcapletcalibration.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>marketmodel_smmcapletalphacalibration.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>marketmodel_smm.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>marketmodel_cms.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>marketmodel.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>lowdiscrepancysequences.obj : warning LNK4248: unresolved typeref token (01000016) for 'boost.execution_exception'; image may not run
1>lookbackoptions.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>linearleastsquaresregression.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>libormarketmodelprocess.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>libormarketmodel.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>jumpdiffusion.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>interpolations.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>interestrates.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>integrals.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>instruments.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>inflation.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>hybridhestonhullwhiteprocess.obj : warning LNK4248: unresolved typeref token (01000016) for 'boost.execution_exception'; image may not run
1>hestonmodel.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>gaussianquadratures.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>forwardoption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>factorial.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>exchangerate.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>europeanoption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>dividendoption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>distributions.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>digitaloption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>digitalcoupon.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>daycounters.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>dates.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>curvestates.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>covariance.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>convertiblebonds.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>compoundforward.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>cms.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>cliquetoption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>capflooredcoupon.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>capfloor.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>calendars.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>brownianbridge.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>bonds.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>bermudanswaption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>batesmodel.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>basketoption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>barrieroption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>assetswap.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>asianoptions.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>array.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>americanoption.obj : warning LNK4248: unresolved typeref token (01000015) for 'boost.execution_exception'; image may not run
1>Creating manifest...
1>Creating browse information file...
1>Microsoft Browse Information Maintenance Utility Version 8.00.50727
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Auto run test
1>==================================
1>Testing QuantLib-vc80-mt-0_9_0.lib
1>==================================
1>Running 321 test cases...
1>Platform: Win32
1>Compiler: Microsoft Visual C++ version 8.0
1>STL     : Dinkumware standard library version 405
1>Boost   : 1.34.1
1>Testing Barone-Adesi and Whaley approximation for American options...
1>Testing Bjerksund and Stensland approximation for American options...
1>Testing Ju approximation for American options...
1>Testing finite-difference engine for American options...
1>Testing finite-differences American option greeks...
1>Testing finite-differences shout option greeks...
1>Testing array construction...
1>Testing analytic continuous geometric average-price Asians...
1>Testing analytic continuous geometric average-price Asian greeks...
1>Testing analytic discrete geometric average-price Asians...
1>Testing Monte Carlo discrete geometric average-price Asians...
1>Testing Monte Carlo discrete arithmetic average-price Asians...
1>Testing discrete-averaging geometric Asian greeks...
1>Testing bond implied value against asset-swap fair price with null spread...
1>Testing relationship between market asset swap and par asset swap...
1>Testing clean and dirty price with null Z-spread against theoretical prices...
1>Testing generic bond implied value against asset-swap fair price with null spread...
1>Testing market asset swap against par asset swap with generic bond...
1>Testing clean and dirty price with null Z-spread against theoretical prices...
1>Testing clean and dirty prices for specialized bond against equivalent generic bond...
1>Testing asset-swap prices and spreads for specialized bond against equivalent generic bond...
1>Testing barrier options against Haug's values...
1>Testing barrier options against Babsiri's values...
1>Testing barrier options against Beaglehole's values...
1>Testing two-asset European basket options...
1>Testing three-asset basket options against Barraquand's values...
1>Testing three-asset American basket options against Tavella's values...
1>Testing basket American options against 1-D case...
1>Testing antithetic engine using odd sample number...
1>Testing analytic Bates engine against Black formula...
1>Testing analytic Bates engine against Merton-76 engine...
1>Testing Bates model calibration using DAX volatility data...
1>Testing Bermudan swaption against cached values...
1>Testing consistency of bond price/yield calculation...
1>Testing theoretical bond price/yield calculation...
1>Testing bond price/yield calculation against cached values...
1>Testing zero-coupon bond prices against cached values...
1>Testing fixed-coupon bond prices against cached values...
1>Testing floating-rate bond prices against cached values...
1>Testing Brazilian public bond prices against cached values...
1>Testing Brownian-bridge variates...
1>Testing Brownian-bridge path generation...
1>Testing Brazil holiday list...
1>Testing Milan Stock Exchange holiday list...
1>Testing UK settlement holiday list...
1>Testing London Stock Exchange holiday list...
1>Testing London Metals Exchange holiday list...
1>Testing Frankfurt Stock Exchange holiday list...
1>Testing Xetra holiday list...
1>Testing Eurex holiday list...
1>Testing TARGET holiday list...
1>Testing US settlement holiday list...
1>Testing US government bond market holiday list...
1>Testing New York Stock Exchange holiday list...
1>Testing calendar modification...
1>Testing joint calendars...
1>Testing end-of-month calculation...
1>Testing calculation of business days between dates...
1>Testing cap/floor dependency on strike...
1>Testing consistency between cap, floor and collar...
1>Testing cap/floor parity...
1>Testing cap/floor vega...
1>Testing cap/floor ATM rate...
1>Testing implied term volatility for cap and floor...
1>Testing Black cap/floor price against cached values...
1>Testing degenerate collared coupon...
1>Testing collared coupon against its decomposition...
1>Testing Cliquet option values...
1>Testing Cliquet option greeks...
1>Testing performance option greeks...
1>Testing fair-rate calculation for constant-maturity coupons...
1>Testing put-call parity for constant-maturity coupons...
1>Testing constant-maturity swaps...
1>Testing out-of-the-money convertible bonds against vanilla bonds...
1>Testing zero-coupon convertible bonds against vanilla option...
1>Testing covariance and correlation calculations...
1>Testing positive semi-definiteness salvaging algorithms...
1>Testing matrix rank reduction salvaging algorithms...
1>Testing constant-maturity-swap-market-model curve state...
1>Testing dates...
1>Testing IMM dates...
1>Testing ISO dates...
1>Testing actual/actual day counters...
1>Testing simple day counter...
1>Testing 1/1 day counter...
1>Testing business/252 day counter...
1>Testing European asset-or-nothing digital coupon...
1>Testing European deep in-the-money asset-or-nothing digital coupon...
1>Testing European deep out-the-money asset-or-nothing digital coupon...
1>Testing European cash-or-nothing digital coupon...
1>Testing European deep in-the-money cash-or-nothing digital coupon...
1>Testing European deep out-the-money cash-or-nothing digital coupon...
1>Testing call/put parity for European digital coupon...
1>Testing replication type for European digital coupon...
1>Testing European cash-or-nothing digital option...
1>Testing European asset-or-nothing digital option...
1>Testing European gap digital option...
1>Testing American cash-(at-hit)-or-nothing digital option...
1>Testing American cash-(at-hit)-or-nothing digital option greeks...
1>Testing American asset-(at-hit)-or-nothing digital option...
1>Testing American cash-(at-expiry)-or-nothing digital option...
1>Testing American asset-(at-expiry)-or-nothing digital option...
1>Testing Monte Carlo cash-(at-hit)-or-nothing American engine...
1>Testing normal distributions...
1>Testing bivariate cumulative normal distribution...
1>Testing Poisson distribution...
1>Testing cumulative Poisson distribution...
1>Testing inverse cumulative Poisson distribution...
1>Testing dividend European option values with no dividends...
1>Testing dividend European option values with no dividends...
1>Testing dividend European option greeks...
1>Testing finite-difference dividend European option values...
1>Testing finite-differences dividend European option greeks...
1>Testing finite-differences dividend American option greeks...
1>Testing degenerate finite-differences dividend European option...
1>Testing degenerate finite-differences dividend American option...
1>Testing European option values...
1>Testing European option greek values...
1>Testing analytic European option greeks...
1>Testing European option implied volatility...
1>Testing self-containment of implied volatility calculation...
1>Testing JR binomial European engines against analytic results...
1>Testing CRR binomial European engines against analytic results...
1>Testing EQP binomial European engines against analytic results...
1>Testing TGEO binomial European engines against analytic results...
1>Testing TIAN binomial European engines against analytic results...
1>Testing LR binomial European engines against analytic results...
1>Testing Joshi binomial European engines against analytic results...
1>Testing finite-difference European engines against analytic results...
1>Testing integral engines against analytic results...
1>Testing Monte Carlo European engines against analytic results...
1>Testing Quasi Monte Carlo European engines against analytic results...
1>Testing European price curves...
1>Testing direct exchange rates...
1>Testing derived exchange rates...
1>Testing lookup of direct exchange rates...
1>Testing lookup of triangulated exchange rates...
1>Testing lookup of derived exchange rates...
1>Testing factorial numbers...
1>Testing Gamma function...
1>Testing forward option values...
1>Testing forward option greeks...
1>Testing forward performance option values...
1>Testing forward performance option greeks...
1>Testing Gauss-Jacobi integration...
1>Testing Gauss-Laguerre integration...
1>Testing Gauss-Hermite integration...
1>Testing Gauss hyperbolic integration...
1>Testing tabulated Gauss-Laguerre integration...
1>Testing Heston model calibration using a flat volatility surface...
1>Testing Heston model calibration using DAX volatility data...
1>Testing analytic Heston engine against Black formula...
1>Testing analytic Heston engine against cached values...
1>Testing Monte Carlo Heston engine for the Kahl-Jäckel example...
1>Testing Monte Carlo Heston engine against cached values...
1>Testing European option pricing for a BSM process with one factor Hull-White model...
1>Comparing European option pricing for a BSM process with one factor Hull-White model...
1>Testing Monte Carlo zero-bond pricing...
1>Testing Monte Carlo vanilla-option Pricing...
1>Testing Monte Carlo Heston option pricing...
1>Testing analytic Heston/Hull-White option pricing...
1>Testing the pricing of a callable equity product...
1>Testing the joint calibration of a Heston equity process including stochastic interest rates via a Hull-White model...
1>Testing zero inflation indices...
1>Testing year-on-year inflation indices...
1>Testing zero inflation term structure...
1>Testing year-on-year inflation term structure...
1>Testing observability of instruments...
1>Testing segment integration...
1>Testing trapezoid integration...
1>Testing mid-point trapezoid integration...
1>Testing Simpson integration...
1>Testing adaptive Gauss-Kronrod integration...
1>Testing non-adaptive Gauss-Kronrod integration...
1>Testing interest-rate conversions...
1>Testing spline interpolation on generic values...
1>Testing symmetry of spline interpolation end-conditions...
1>Testing derivative end-conditions for spline interpolation...
1>Testing non-restrictive Hyman filter...
1>Testing spline interpolation on RPN15A data set...
1>Testing spline interpolation on a Gaussian data set...
1>Testing spline approximation on Gaussian data sets...
1>Testing N-dimensional cubic spline...
1>Testing use of interpolations as functors...
1>Testing backward-flat interpolation...
1>Testing forward-flat interpolation...
1>Testing Sabr interpolation...
1>Testing Merton 76 jump-diffusion model for European options...
1>Testing jump-diffusion option greeks...
1>Testing linear least-squares regression...
1>Testing analytic continuous floating-strike lookback options...
1>Testing analytic continuous fixed-strike lookback options...
1>Testing randomized lattice sequences (A) up to dimension 30...
1>Testing randomized lattice sequences (B) up to dimension 30...
1>Testing randomized lattice sequences (C) up to dimension 30...
1>Testing randomized lattice sequences (D) up to dimension 30...
1>Testing random-seed generator...
1>Testing 21200 primitive polynomials modulo two...
1>Testing Sobol sequences up to dimension 21200...
1>Testing Halton sequences...
1>Testing Faure sequences...
1>Testing Mersenne-twister discrepancy...
1>Testing plain Halton discrepancy...
1>Testing random-start Halton discrepancy...
1>Testing random-shift Halton discrepancy...
1>Testing random-start, random-shift Halton discrepancy...
1>Testing unit Sobol discrepancy...
1>Testing JΣckel-Sobol discrepancy...
1>Testing Levitan-Sobol discrepancy...
1>Testing Levitan-Lemieux-Sobol discrepancy...
1>Testing Sobol sequence skipping...
1>Testing randomized low-discrepancy sequences up to dimension 21200...
1>Testing exact repricing of multi-step constant maturity swaps and swaptions in a lognormal constant maturity swap market model...
1>Testing exact repricing of multi-step coterminal swaps and swaptions in a lognormal coterminal swap rate market model...
1>Testing alpha caplet calibration in a lognormal coterminal swap market model...
1>Testing GHLS caplet calibration in a lognormal coterminal swap market model...
1>Testing max homogeneity caplet calibration in a lognormal coterminal swap market model...
1>Testing max homogeneity periodic caplet calibration in a lognormal coterminal swap market model...
1>Testing sphere-cylinder optimization...
1>Testing period-adaptation routines in LIBOR market model
1>Testing eigenvalues and eigenvectors calculation...
1>Testing matricial square root...
1>Testing singular value decomposition...
1>Testing inverse calculation...
1>Testing Higham matricial square root...
1>Testing Monte-Carlo pricing of American options...
1>Testing Monte-Carlo pricing of American max options...
1>Testing Mersenne twister...
1>Testing money arithmetic without conversions...
1>Testing money arithmetic with conversion to base currency...
1>Testing money arithmetic with automated conversion...
1>Testing differential operators...
1>Testing consistency of BSM operators...
1>Testing optimizers...
1>Testing nested optimizations...
1>Testing 1-D path generation against cached values...
1>Testing n-D path generation against cached values...
1>Testing period algebra on years/months...
1>Testing period algebra on weeks/days...
1>Testing consistency of piecewise-log-linear discount curve...
1>Testing consistency of piecewise-linear discount curve...
1>Testing consistency of piecewise-log-linear zero-yield curve...
1>Testing consistency of piecewise-linear zero-yield curve...
1>Testing consistency of piecewise-spline zero-yield curve...
1>Testing consistency of piecewise-linear forward-rate curve...
1>Testing consistency of piecewise-flat forward-rate curve...
1>Testing observability of piecewise yield curve...
1>Testing use of today's LIBOR fixings in swap curve...
1>Testing quanto option values...
1>Testing quanto option greeks...
1>Testing quanto-forward option values...
1>Testing quanto-forward option greeks...
1>Testing quanto-forward-performance option values...
1>Testing forward-value and implied-stdev quotes...
1>Testing risk measures...
1>Testing Gaussian pseudo-random number generation...
1>Testing Poisson pseudo-random number generation...
1>Testing custom Poisson pseudo-random number generation...
1>Testing closest decimal rounding...
1>Testing upward decimal rounding...
1>Testing downward decimal rounding...
1>Testing floor decimal rounding...
1>Testing ceiling decimal rounding...
1>Testing sampled curve construction...
1>Testing Hull-White calibration against cached values...
1>Testing Hull-White swap pricing against known values...
1>Testing Hull-White futures convexity bias...
1>Testing 1-D solvers...
1>Testing statistics...
1>Testing sequence statistics...
1>Testing convergence statistics...
1>Testing surface...
1>Testing vanilla-swap calculation of fair fixed rate...
1>Testing vanilla-swap calculation of fair floating spread...
1>Testing vanilla-swap dependency on fixed rate...
1>Testing vanilla-swap dependency on floating spread...
1>Testing in-arrears swap calculation...
1>Testing vanilla-swap calculation against cached value...
1>Testing forward-rate coinitial-swap Jacobian...
1>Testing forward-rate cm-swap Jacobian...
1>Testing forward-rate coterminal-swap mappings...
1>Testing cash settled swaptions modified annuity...
1>Testing swaption dependency on strike...
1>Testing swaption dependency on spread...
1>Testing swaption treatment of spread...
1>Testing swaption value against cached value...
1>Testing implied volatility for swaptions...
1>Testing swaption vega...
1>./swaption.cpp(471): fatal error in "SwaptionTest::testVega": failed to compute swaption vega:
1>  option tenor:    1Y
1>  volatility:      1.000000 %
1>  option type:     receiver
1>  swap tenor:      1Y
1>  strike:          3.000000 %
1>  atm rate:        5.127430 %
1>  settlement:      delivery
1>  nominal:         1
1>  npv:             -0
1>  calculated vega: 0
1>  expected vega:   0
1>  discrepancy:     -1.#IND00 %
1>  tolerance:       1.500000 %
1>Testing swaption volatility cube (atm vols)...
1>Testing swaption volatility cube (smile)...
1>Testing swaption volatility cube (sabr interpolation)...
1>Testing spreaded swaption volatility cube...
1>Testing volatility cube observability...
1>Testing swaption volatility matrix...
1>Testing swaption volatility matrix observability...
1>Testing term structure against evaluation date change...
1>Testing consistency of implied term structure...
1>Testing observability of implied term structure...
1>Testing consistency of forward-spreaded term structure...
1>Testing observability of forward-spreaded term structure...
1>Testing consistency of zero-spreaded term structure...
1>Testing observability of zero-spreaded term structure...
1>Testing time series construction...
1>Testing time series interval price...
1>Testing TQR eigenvalue decomposition...
1>Testing TQR zero-off-diagonal eigenvalues...
1>Testing TQR eigenvector decomposition...
1>Testing tracing...
1>Testing transformed grid construction...
1>Testing variance swap with replicating cost engine...
1>Testing variance swap with Monte Carlo engine...
1>Testing volatility model construction...
1>Testing consistency of compound-forward curve with supplied rates...
1>Testing consistency of compound-forward curve with converted rates...
1>Testing simple covariance models...
1>Testing caplet pricing...
1>Testing forward swap and swaption pricing...
1>Testing calibration of a Libor forward model...
1>Testing caplet LMM process initialisation...
1>Testing caplet LMM lambda bootstrapping...
1>Testing caplet LMM Monte-Carlo caplet pricing...
1>Testing old-style Monte Carlo single-factor pricers...
1>Testing old-style Monte Carlo multi-factor pricers...
1>
1>Tests completed in 33 m 35 s
1>Test suite "Master Test Suite" failed with:
1>  1 assertion out of 1 failed
1>  320 test cases out of 321 passed
1>  1 test case out of 321 failed
1>  1 test case out of 321 aborted
1>Build log was saved at "file://c:\Projects\Tools\Libraries\QLibDev\QuantLib-0.9.0\test-suite\build\vc80\Release CRTDLL\BuildLog.htm"
1>testsuite - 1 error(s), 86 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========




On Tue, Mar 4, 2008 at 12:41 AM, Luigi Ballabio <[hidden email]> wrote:
On Mon, 2008-03-03 at 11:42 -0800, Nathan Abbott wrote:
> No I did not do any thing different. The confusion is that I compile
> the QuantLib natively or unmanaged then I link it to a C++ class that
> is compile under the /clr flag.

Is this at all possible?

> For this to work, the inline must be inserted when I compile with
> the /clr is turn on and when the /clr is turn off. My suggestion is
> that you changed the singelton.hpp to something like thus.
>
> #if defined(QL_PATCH_MSVC)
> inline  // this seems to be required when CLR support is enabled
> #endif

Hmm, the inline might not work when CLR support is disabled. I checked
both configurations before release (at least under VC7.1) and without
CLR, the examples were failing with the inline (hence the switch.)

May you try recompiling everything natively with the inline and see
whether the test-suite and the examples work?

Thanks,
       Luigi


--

If I do not want others to quote me, I do not speak.
-- Phil Wayne




-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem on QuantLib with /Clr support enabled

Nathan Abbott
In reply to this post by Luigi Ballabio


On Tue, Mar 4, 2008 at 12:41 AM, Luigi Ballabio <[hidden email]> wrote:
On Mon, 2008-03-03 at 11:42 -0800, Nathan Abbott wrote:
> No I did not do any thing different. The confusion is that I compile
> the QuantLib natively or unmanaged then I link it to a C++ class that
> is compile under the /clr flag.

Is this at all possible?


Yes you can link a native class and a managed class in the same dll (assembly). In fact, you get a performance boost if you do. It has some to do with thunking between managed and unmanaged code. The book "Expert C++/CLI" can explain it better than I can. Anybody that uses QuantLib and .Net should read this book.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users