ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

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

ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

cheng li

Hi Team,

 

I find this line can’t be compiled:

 

explicit FactorSampler(const LatentModel<TC>::copulaType& copula,

                               BigNatural seed = 0)

 

Without typename

 

Regards,

Cheng


------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

Luigi Ballabio
It's fixed now, thanks. Strange that gcc didn't catch this...

Luigi


On Tue, Oct 7, 2014 at 6:49 AM, cheng li <[hidden email]> wrote:

> Hi Team,
>
>
>
> I find this line can’t be compiled:
>
>
>
> explicit FactorSampler(const LatentModel<TC>::copulaType& copula,
>
>                                BigNatural seed = 0)
>
>
>
> Without typename
>
>
>
> Regards,
>
> Cheng
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>



--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

japari
In reply to this post by cheng li
Hello,
Looks fair what your compiler says but I would wait for another opinion. Which one is it?... ok I just noticed Luigi has updated this.

Only it has to be coherent and the specialization below (which is not compiled in the examples) should be using the same (see line 774 on the same file)

Best
Pepe

----- Original Message -----

>
>
>
>
> Hi Team,
>
>
>
> I find this line can’t be compiled:
>
>
>
> explicit FactorSampler( const LatentModel < TC >:: copulaType &
> copula ,
>
> BigNatural seed = 0)
>
>
>
> Without typename
>
>
>
> Regards,
>
> Cheng
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
> Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

Luigi Ballabio
No, the specialization doesn't need it (because it's a specialization
and specifies the type explicitly. Yes, templates. <sigh>)

Luigi


On Tue, Oct 7, 2014 at 9:54 AM,  <[hidden email]> wrote:

> Hello,
> Looks fair what your compiler says but I would wait for another opinion. Which one is it?... ok I just noticed Luigi has updated this.
>
> Only it has to be coherent and the specialization below (which is not compiled in the examples) should be using the same (see line 774 on the same file)
>
> Best
> Pepe
>
> ----- Original Message -----
>>
>>
>>
>>
>> Hi Team,
>>
>>
>>
>> I find this line can’t be compiled:
>>
>>
>>
>> explicit FactorSampler( const LatentModel < TC >:: copulaType &
>> copula ,
>>
>> BigNatural seed = 0)
>>
>>
>>
>> Without typename
>>
>>
>>
>> Regards,
>>
>> Cheng
>> ------------------------------------------------------------------------------
>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
>> Reports
>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>> _______________________________________________
>> QuantLib-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users



--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

japari
Hi,
ok true, the second constructor arg is typed. I just realize this is not strict enough (nothing to do with the initial problem here). I might come back with a more typed version and make the first spez refer to a gaussian copula as the second does. In fact, theres no sense in allowing BoxMuller mapping for a non gaussian copula. Only I think gcc did not like it if I force the copula template type but was ok on the constructor type. Let me retest.
Best
Pepe

----- Original Message -----

> No, the specialization doesn't need it (because it's a specialization
> and specifies the type explicitly. Yes, templates. <sigh>)
>
> Luigi
>
>
> On Tue, Oct 7, 2014 at 9:54 AM,  <[hidden email]> wrote:
> > Hello,
> > Looks fair what your compiler says but I would wait for another
> > opinion. Which one is it?... ok I just noticed Luigi has updated
> > this.
> >
> > Only it has to be coherent and the specialization below (which is
> > not compiled in the examples) should be using the same (see line
> > 774 on the same file)
> >
> > Best
> > Pepe
> >
> > ----- Original Message -----
> >>
> >>
> >>
> >>
> >> Hi Team,
> >>
> >>
> >>
> >> I find this line can’t be compiled:
> >>
> >>
> >>
> >> explicit FactorSampler( const LatentModel < TC >:: copulaType &
> >> copula ,
> >>
> >> BigNatural seed = 0)
> >>
> >>
> >>
> >> Without typename
> >>
> >>
> >>
> >> Regards,
> >>
> >> Cheng
> >> ------------------------------------------------------------------------------
> >> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> >> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
> >> Reports
> >> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White
> >> paper
> >> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog
> >> Analyzer
> >> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> >> _______________________________________________
> >> QuantLib-users mailing list
> >> [hidden email]
> >> https://lists.sourceforge.net/lists/listinfo/quantlib-users
> >>
> >
> > ------------------------------------------------------------------------------
> > Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
> > Reports
> > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White
> > paper
> > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog
> > Analyzer
> > http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> > _______________________________________________
> > QuantLib-users mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
>
>
> --
> <https://implementingquantlib.blogspot.com>
> <https://twitter.com/lballabio>
>

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

答复: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

cheng li
In reply to this post by Luigi Ballabio
Hi Luigi,

I have found more issues when I build the examples on windows with visual studio 2012

1. ql\experimental\credit\randomlosslatentmodel.hpp Line 103

  #if !defined(QL_PATCH_MSVC90)
        friend class RandomLM<RandomLossLM, copulaPolicy, USNG>;
    protected:
  #else
    public:
  #endif  

  Error 34 error C3200: 'QuantLib::RandomLossLM<copulaPolicy,USNG>' : invalid template argument for template parameter 'derivedRandomLM', expected a class template

This issue can be resolved by replacing QL_PATCH_MSVC90 with _MSC_VER as the comment says...

2. ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 831

RandomLM<RandomDefaultLM, copulaPolicy, USNG>(copula->numFactors(), copula->size(), copula->copula(),

Error 1 error C3200: 'QuantLib::RandomDefaultLM<copulaPolicy>' : invalid template argument for template parameter 'derivedRandomLM', expected a class template

This issue also goes for the same file at line 814 and

This can be solved by replacing the original line with RandomLM(copula->numFactors(), copula->size(), copula->copula(),

3. ql\experimental\credit\binomiallossmodel.hpp at Line 394

distrib.insert(std::make_pair<Real, Probability>(lossPts[i],
                //capped, some situations giving a very small probability over 1
                std::min(sum+values[i],1.)
                ));

Error 9 error C2664: 'std::make_pair' : cannot convert parameter 1 from 'double' to 'QuantLib::Real &&'

This error is rather strange and the error message seems ridiculous...

The same issue goes for ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 394 and 398.

This issue can be resolved by replacing make_pair with pair.

I am not sure all these above fix will work properly with gcc...

Regards,
Cheng

-----邮件原件-----
发件人: Luigi Ballabio [mailto:[hidden email]]
发送时间: 2014年10月7日 15:51
收件人: cheng li
抄送: QuantLib users
主题: Re: [Quantlib-users] ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

It's fixed now, thanks. Strange that gcc didn't catch this...

Luigi


On Tue, Oct 7, 2014 at 6:49 AM, cheng li <[hidden email]> wrote:

> Hi Team,
>
>
>
> I find this line can’t be compiled:
>
>
>
> explicit FactorSampler(const LatentModel<TC>::copulaType& copula,
>
>                                BigNatural seed = 0)
>
>
>
> Without typename
>
>
>
> Regards,
>
> Cheng
>
>
> ----------------------------------------------------------------------
> -------- Meet PCI DSS 3.0 Compliance Requirements with EventLog
> Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI
> DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download
> White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with
> EventLog Analyzer
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.
> clktrk _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>



--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>


------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: 答复: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

Luigi Ballabio
About the make_pair problem: what if, instead of std::make_pair<Real,
Probability>(...), you use just std::make_pair(...)? (That is, you
don't provide the template args explicitly and let the compiler deduce
them?)

Luigi

On Tue, Oct 7, 2014 at 11:17 AM, cheng li <[hidden email]> wrote:

> Hi Luigi,
>
> I have found more issues when I build the examples on windows with visual studio 2012
>
> 1. ql\experimental\credit\randomlosslatentmodel.hpp Line 103
>
>   #if !defined(QL_PATCH_MSVC90)
>         friend class RandomLM<RandomLossLM, copulaPolicy, USNG>;
>     protected:
>   #else
>     public:
>   #endif
>
>   Error 34      error C3200: 'QuantLib::RandomLossLM<copulaPolicy,USNG>' : invalid template argument for template parameter 'derivedRandomLM', expected a class template
>
> This issue can be resolved by replacing QL_PATCH_MSVC90 with _MSC_VER as the comment says...
>
> 2. ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 831
>
> RandomLM<RandomDefaultLM, copulaPolicy, USNG>(copula->numFactors(), copula->size(), copula->copula(),
>
> Error   1       error C3200: 'QuantLib::RandomDefaultLM<copulaPolicy>' : invalid template argument for template parameter 'derivedRandomLM', expected a class template
>
> This issue also goes for the same file at line 814 and
>
> This can be solved by replacing the original line with RandomLM(copula->numFactors(), copula->size(), copula->copula(),
>
> 3. ql\experimental\credit\binomiallossmodel.hpp at Line 394
>
> distrib.insert(std::make_pair<Real, Probability>(lossPts[i],
>                 //capped, some situations giving a very small probability over 1
>                 std::min(sum+values[i],1.)
>                 ));
>
> Error   9       error C2664: 'std::make_pair' : cannot convert parameter 1 from 'double' to 'QuantLib::Real &&'
>
> This error is rather strange and the error message seems ridiculous...
>
> The same issue goes for ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 394 and 398.
>
> This issue can be resolved by replacing make_pair with pair.
>
> I am not sure all these above fix will work properly with gcc...
>
> Regards,
> Cheng
>
> -----邮件原件-----
> 发件人: Luigi Ballabio [mailto:[hidden email]]
> 发送时间: 2014年10月7日 15:51
> 收件人: cheng li
> 抄送: QuantLib users
> 主题: Re: [Quantlib-users] ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio
>
> It's fixed now, thanks. Strange that gcc didn't catch this...
>
> Luigi
>
>
> On Tue, Oct 7, 2014 at 6:49 AM, cheng li <[hidden email]> wrote:
>> Hi Team,
>>
>>
>>
>> I find this line can’t be compiled:
>>
>>
>>
>> explicit FactorSampler(const LatentModel<TC>::copulaType& copula,
>>
>>                                BigNatural seed = 0)
>>
>>
>>
>> Without typename
>>
>>
>>
>> Regards,
>>
>> Cheng
>>
>>
>> ----------------------------------------------------------------------
>> -------- Meet PCI DSS 3.0 Compliance Requirements with EventLog
>> Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI
>> DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download
>> White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with
>> EventLog Analyzer
>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.
>> clktrk _______________________________________________
>> QuantLib-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>
>
>
>
> --
> <https://implementingquantlib.blogspot.com>
> <https://twitter.com/lballabio>
>



--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: 答复: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

japari
1.-) For what is worth, I expected those problems on MS compilers. I dont see the problem and forces to open the interface which breaks the CRTP design.

2.-) Yes, thats actually what I have done in the multithread branch (the one I actually use). see

https://github.com/japari/quantlib/blob/MultithreadLatentQLXL/QuantLib/ql/experimental/credit/randomdefaultlatentmodel.hpp

I usually make cherry picks afterwards but I make an exception on this file because is the one that uses the multithreading. Again is the same macro/solution, gcc is happy.

3.-) Luigi, I'll try your solution on VC9; that makes sense.

Best
Pepe




----- Original Message -----

> About the make_pair problem: what if, instead of std::make_pair<Real,
> Probability>(...), you use just std::make_pair(...)? (That is, you
> don't provide the template args explicitly and let the compiler
> deduce
> them?)
>
> Luigi
>
> On Tue, Oct 7, 2014 at 11:17 AM, cheng li
> <[hidden email]> wrote:
> > Hi Luigi,
> >
> > I have found more issues when I build the examples on windows with
> > visual studio 2012
> >
> > 1. ql\experimental\credit\randomlosslatentmodel.hpp Line 103
> >
> >   #if !defined(QL_PATCH_MSVC90)
> >         friend class RandomLM<RandomLossLM, copulaPolicy, USNG>;
> >     protected:
> >   #else
> >     public:
> >   #endif
> >
> >   Error 34      error C3200:
> >   'QuantLib::RandomLossLM<copulaPolicy,USNG>' : invalid template
> >   argument for template parameter 'derivedRandomLM', expected a
> >   class template
> >
> > This issue can be resolved by replacing QL_PATCH_MSVC90 with
> > _MSC_VER as the comment says...
> >
> > 2. ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 831
> >
> > RandomLM<RandomDefaultLM, copulaPolicy, USNG>(copula->numFactors(),
> > copula->size(), copula->copula(),
> >
> > Error   1       error C3200:
> > 'QuantLib::RandomDefaultLM<copulaPolicy>' : invalid template
> > argument for template parameter 'derivedRandomLM', expected a
> > class template
> >
> > This issue also goes for the same file at line 814 and
> >
> > This can be solved by replacing the original line with
> > RandomLM(copula->numFactors(), copula->size(), copula->copula(),
> >
> > 3. ql\experimental\credit\binomiallossmodel.hpp at Line 394
> >
> > distrib.insert(std::make_pair<Real, Probability>(lossPts[i],
> >                 //capped, some situations giving a very small
> >                 probability over 1
> >                 std::min(sum+values[i],1.)
> >                 ));
> >
> > Error   9       error C2664: 'std::make_pair' : cannot convert
> > parameter 1 from 'double' to 'QuantLib::Real &&'
> >
> > This error is rather strange and the error message seems
> > ridiculous...
> >
> > The same issue goes for
> > ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 394
> > and 398.
> >
> > This issue can be resolved by replacing make_pair with pair.
> >
> > I am not sure all these above fix will work properly with gcc...
> >
> > Regards,
> > Cheng
> >
> > -----邮件原件-----
> > 发件人: Luigi Ballabio [mailto:[hidden email]]
> > 发送时间: 2014年10月7日 15:51
> > 收件人: cheng li
> > 抄送: QuantLib users
> > 主题: Re: [Quantlib-users] ql/experimental/math/latentmodel.hpp
> > failed at Line 750 on visual studio
> >
> > It's fixed now, thanks. Strange that gcc didn't catch this...
> >
> > Luigi
> >
> >
> > On Tue, Oct 7, 2014 at 6:49 AM, cheng li
> > <[hidden email]> wrote:
> >> Hi Team,
> >>
> >>
> >>
> >> I find this line can’t be compiled:
> >>
> >>
> >>
> >> explicit FactorSampler(const LatentModel<TC>::copulaType& copula,
> >>
> >>                                BigNatural seed = 0)
> >>
> >>
> >>
> >> Without typename
> >>
> >>
> >>
> >> Regards,
> >>
> >> Cheng
> >>
> >>
> >> ----------------------------------------------------------------------
> >> -------- Meet PCI DSS 3.0 Compliance Requirements with EventLog
> >> Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box
> >> PCI
> >> DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance?
> >> Download
> >> White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with
> >> EventLog Analyzer
> >> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.
> >> clktrk _______________________________________________
> >> QuantLib-users mailing list
> >> [hidden email]
> >> https://lists.sourceforge.net/lists/listinfo/quantlib-users
> >>
> >
> >
> >
> > --
> > <https://implementingquantlib.blogspot.com>
> > <https://twitter.com/lballabio>
> >
>
>
>
> --
> <https://implementingquantlib.blogspot.com>
> <https://twitter.com/lballabio>
>

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

答复: 答复: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

cheng li
In reply to this post by Luigi Ballabio
Hi Lugi,

Your idea works.

Regards,
Cheng

-----邮件原件-----
发件人: Luigi Ballabio [mailto:[hidden email]]
发送时间: 2014年10月7日 17:34
收件人: cheng li
抄送: [hidden email]; QuantLib users
主题: Re: 答复: [Quantlib-users] ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

About the make_pair problem: what if, instead of std::make_pair<Real,
Probability>(...), you use just std::make_pair(...)? (That is, you
don't provide the template args explicitly and let the compiler deduce
them?)

Luigi

On Tue, Oct 7, 2014 at 11:17 AM, cheng li <[hidden email]> wrote:

> Hi Luigi,
>
> I have found more issues when I build the examples on windows with
> visual studio 2012
>
> 1. ql\experimental\credit\randomlosslatentmodel.hpp Line 103
>
>   #if !defined(QL_PATCH_MSVC90)
>         friend class RandomLM<RandomLossLM, copulaPolicy, USNG>;
>     protected:
>   #else
>     public:
>   #endif
>
>   Error 34      error C3200: 'QuantLib::RandomLossLM<copulaPolicy,USNG>' : invalid template argument for template parameter 'derivedRandomLM', expected a class template
>
> This issue can be resolved by replacing QL_PATCH_MSVC90 with _MSC_VER as the comment says...
>
> 2. ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 831
>
> RandomLM<RandomDefaultLM, copulaPolicy, USNG>(copula->numFactors(),
> copula->size(), copula->copula(),
>
> Error   1       error C3200: 'QuantLib::RandomDefaultLM<copulaPolicy>' : invalid template argument for template parameter 'derivedRandomLM', expected a class template
>
> This issue also goes for the same file at line 814 and
>
> This can be solved by replacing the original line with
> RandomLM(copula->numFactors(), copula->size(), copula->copula(),
>
> 3. ql\experimental\credit\binomiallossmodel.hpp at Line 394
>
> distrib.insert(std::make_pair<Real, Probability>(lossPts[i],
>                 //capped, some situations giving a very small probability over 1
>                 std::min(sum+values[i],1.)
>                 ));
>
> Error   9       error C2664: 'std::make_pair' : cannot convert parameter 1 from 'double' to 'QuantLib::Real &&'
>
> This error is rather strange and the error message seems ridiculous...
>
> The same issue goes for ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 394 and 398.
>
> This issue can be resolved by replacing make_pair with pair.
>
> I am not sure all these above fix will work properly with gcc...
>
> Regards,
> Cheng
>
> -----邮件原件-----
> 发件人: Luigi Ballabio [mailto:[hidden email]]
> 发送时间: 2014年10月7日 15:51
> 收件人: cheng li
> 抄送: QuantLib users
> 主题: Re: [Quantlib-users] ql/experimental/math/latentmodel.hpp failed
> at Line 750 on visual studio
>
> It's fixed now, thanks. Strange that gcc didn't catch this...
>
> Luigi
>
>
> On Tue, Oct 7, 2014 at 6:49 AM, cheng li <[hidden email]> wrote:
>> Hi Team,
>>
>>
>>
>> I find this line can’t be compiled:
>>
>>
>>
>> explicit FactorSampler(const LatentModel<TC>::copulaType& copula,
>>
>>                                BigNatural seed = 0)
>>
>>
>>
>> Without typename
>>
>>
>>
>> Regards,
>>
>> Cheng
>>
>>
>> ---------------------------------------------------------------------
>> -
>> -------- Meet PCI DSS 3.0 Compliance Requirements with EventLog
>> Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI
>> DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download
>> White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with
>> EventLog Analyzer
>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.
>> clktrk _______________________________________________
>> QuantLib-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>
>
>
>
> --
> <https://implementingquantlib.blogspot.com>
> <https://twitter.com/lballabio>
>



--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>


------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users