Compilation issue

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

Compilation issue

Berardi Luca
Compilation issue

Hi there,

sorry if this is an already debated issue: I can't compile the QuantLib library in multithreaded DLL mode when I select the "Optimize speed" option using Visual C++ 6.0.

More precisely I get the following error:

C:\QUANTLIB\ql/Math/cubicspline.hpp(203) : fatal error C1001: INTERNAL COMPILER ERROR
  (compiler file 'E:\8168\vc98\p2\src\P2\main.c', line 494)
    Please choose the Technical Support command on the Visual C++
    Help menu, or open the Technical Support help file for more information


and the visual studio points at the following line (the one with the arrow on the left) of the file "cubicspline.hpp" when it signals the error:


                        } else {
                            pm=(S[i-1]*dx[i]+S[i]*dx[i-1])/
                                (dx[i-1]+dx[i]);
                            M = 3.0 * QL_MIN(QL_MIN(QL_FABS(S[i-1]),QL_FABS(S[i])),QL_FABS(pm));
                            if (i>1) {
                                if ((S[i-1]-S[i-2])*(S[i]-S[i-1])>0.0) {
                                    pd=(S[i-1]*(2.0*dx[i-1]+dx[i-2])-S[i-2]*dx[i-1])/
                                        (dx[i-2]+dx[i-1]);
                                    if (pm*pd>0.0 && pm*(S[i-1]-S[i-2])>0.0) {
 --->                                       M = QL_MAX(M, 1.5*QL_MIN(QL_FABS(pm),QL_FABS(pd)));
                                    }
                                }
                            }
                            if (i<n_-2) {
                                if ((S[i]-S[i-1])*(S[i+1]-S[i])>0.0) {
                                    pu=(S[i]*(2.0*dx[i]+dx[i+1])-S[i+1]*dx[i])/
                                        (dx[i]+dx[i+1]);
 


Does anybody know how to get over this error?

Thanks in advance.

Luca




DISCLAIMER: Privileged/Confidential Information may be contained in this message and in any of its attachments (the "message"). If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply e-mail. The contents of this message shall be understood as neither given nor endorsed by Banca Profilo S.p.A., nor Profilo SGR S.p.A., nor Profilo Asset Management SGR S.p.A., nor Profilo Academy S.p.A.. Banca Profilo S.p.A., Profilo SGR S.p.A., Profilo Asset Management SGR S.p.A., Profilo Academy S.p.A. do not accept liability for corruption, interception or amendment, if any, or the consequences thereof.

Il presente messaggio e/o i suoi allegati (di seguito il "messaggio") possono contenere informazioni privilegiate e/o confidenziali. Se non siete i destinatari indicati nel messaggio (o persona incaricata di inoltrare il messaggio al/i destinatario/i), non potete copiare o inoltrare il messaggio ad altri e siete invitati a distruggerlo dandone informazione al mittente a mezzo e-mail. Il contenuto del presente messaggio non deve essere considerato come trasmesso o autorizzato nè da Banca Profilo S.p.A., nè da Profilo SGR S.p.A., nè da Profilo Asset Management SGR S.p.A., nè da Profilo Academy S.p.A.. Nè Banca Profilo S.p.A., nè Profilo SGR S.p.A., nè Profilo Asset Management SGR S.p.A., nè Profilo Academy S.p.A. si assumono alcuna responsabilità per eventuali intercettazioni, modifiche o danneggiamenti del presente messaggio e-mail e per le eventuali conseguenze.


Reply | Threaded
Open this post in threaded view
|

Re: Compilation issue

Xavier.Abulker






Luca,

These are the options I'm using to compile.
(Embedded image moved to file: pic26500.pcx)

Xavier


                                                                                                                                   
                    Berardi Luca                                                                                                  
                    <[hidden email]>         To:     "Quantlib-Users (E-mail)"                                      
                    Sent by:                                <[hidden email]>                                
                    [hidden email]       cc:                                                                    
                    eforge.net                             Subject:     [Quantlib-users] Compilation issue                        
                                                                                                                                   
                                                                                                                                   
                    23/04/2004 10:16                                                                                              
                                                                                                                                   
                                                                                                                                   







Hi there,


sorry if this is an already debated issue: I can't compile the QuantLib
library in multithreaded DLL mode when I select the "Optimize speed" option
using Visual C++ 6.0.


More precisely I get the following error:


C:\QUANTLIB\ql/Math/cubicspline.hpp(203) : fatal error C1001: INTERNAL
COMPILER ERROR
  (compiler file 'E:\8168\vc98\p2\src\P2\main.c', line 494)
    Please choose the Technical Support command on the Visual C++
    Help menu, or open the Technical Support help file for more information





and the visual studio points at the following line (the one with the arrow
on the left) of the file "cubicspline.hpp" when it signals the error:





                        } else {
                            pm=(S[i-1]*dx[i]+S[i]*dx[i-1])/
                                (dx[i-1]+dx[i]);
                            M = 3.0 *
QL_MIN(QL_MIN(QL_FABS(S[i-1]),QL_FABS(S[i])),QL_FABS(pm));
                            if (i>1) {
                                if ((S[i-1]-S[i-2])*(S[i]-S[i-1])>0.0) {
                                    pd=(S[i-1]*(2.0*dx[i-1]+dx[i-2])-S[i-2]
*dx[i-1])/
                                        (dx[i-2]+dx[i-1]);
                                    if (pm*pd>0.0 && pm*(S[i-1]
-S[i-2])>0.0) {
 --->                                       M = QL_MAX(M,
1.5*QL_MIN(QL_FABS(pm),QL_FABS(pd)));
                                    }
                                }
                            }
                            if (i<n_-2) {
                                if ((S[i]-S[i-1])*(S[i+1]-S[i])>0.0) {
                                    pu=(S[i]*(2.0*dx[i]+dx[i+1])-S[i+1]
*dx[i])/
                                        (dx[i]+dx[i+1]);






Does anybody know how to get over this error?


Thanks in advance.


Luca







DISCLAIMER: Privileged/Confidential Information may be contained in this
message and in any of its attachments (the "message"). If you are not the
addressee indicated in this message (or responsible for delivery of the
message to such person), you may not copy or deliver this message to
anyone. In such case, you should destroy this message and kindly notify the
sender by reply e-mail. The contents of this message shall be understood as
neither given nor endorsed by Banca Profilo S.p.A., nor Profilo SGR S.p.A.,
nor Profilo Asset Management SGR S.p.A., nor Profilo Academy S.p.A.. Banca
Profilo S.p.A., Profilo SGR S.p.A., Profilo Asset Management SGR S.p.A.,
Profilo Academy S.p.A. do not accept liability for corruption, interception
or amendment, if any, or the consequences thereof.


Il presente messaggio e/o i suoi allegati (di seguito il "messaggio")
possono contenere informazioni privilegiate e/o confidenziali. Se non siete
i destinatari indicati nel messaggio (o persona incaricata di inoltrare il
messaggio al/i destinatario/i), non potete copiare o inoltrare il messaggio
ad altri e siete invitati a distruggerlo dandone informazione al mittente a
mezzo e-mail. Il contenuto del presente messaggio non deve essere
considerato come trasmesso o autorizzato nè da Banca Profilo S.p.A., nè da
Profilo SGR S.p.A., nè da Profilo Asset Management SGR S.p.A., nè da
Profilo Academy S.p.A.. Nè Banca Profilo S.p.A., nè Profilo SGR S.p.A., nè
Profilo Asset Management SGR S.p.A., nè Profilo Academy S.p.A. si assumono
alcuna responsabilità per eventuali intercettazioni, modifiche o
danneggiamenti del presente messaggio e-mail e per le eventuali
conseguenze.











*************************************************************************
Ce message et toutes les pieces jointes (ci-apres le "message") sont
confidentiels et etablis a l'intention exclusive de ses destinataires.
Toute utilisation ou diffusion non autorisee est interdite.
Tout message electronique est susceptible d'alteration.
La FIMAT et ses filiales declinent toute responsabilite au titre de ce
message s'il a ete altere, deforme ou falsifie.
                                          ********
This message and any attachments (the "message") are confidential and
intended solely for the addressees.
Any unauthorised use or dissemination is prohibited.
E-mails are susceptible to alteration.
Neither FIMATnor any of its subsidiaries or affiliates shall be liable for
the message if altered, changed or falsified.

pic26500.pcx (51K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Compilation issue

Luigi Ballabio-2
In reply to this post by Berardi Luca
On 2004.04.23 10:16, Berardi Luca wrote:

> I can't compile the QuantLib library in multithreaded DLL mode when I  
> select the "Optimize speed" option using Visual C++ 6.0.
> More precisely I get the following error:
>
> C:\QUANTLIB\ql/Math/cubicspline.hpp(203) : fatal error C1001:  
> INTERNAL COMPILER ERROR
>
>
> and the visual studio points at the following line
>
>                                         M = QL_MAX(M,
> 1.5*QL_MIN(QL_FABS(pm),QL_FABS(pd)));
>
> Does anybody know how to get over this error?

Ciao Luca,
        it's hard to say, since it's admittedly a compiler bug... The  
VC++ docs say:

----------------------
INTERNAL COMPILER ERROR
(compiler file 'file', line number)

This error is most often generated in one of two cases:

(the first case doesn't apply here)

Failure of the code generator to find a way to generate correct
code for a construct. This is most often caused by the
interaction of an expression and an optimization option. The
optimization has generated a tree which the compiler does not
know how to handle. Such a problem can often be fixed by removing
one or more optimization options when compiling the particular
function containing the line indicated in the error message.
---------------------------

then it goes on explaining how you can try to compile. To access the  
relevant docs select Help/Index from the VC++ menu, then look up  
'C1001'. Let us know whether you found some way to work around the  
problem.

Good luck,
        Luigi



Reply | Threaded
Open this post in threaded view
|

RE: Compilation issue

Zhuang, Deming
In reply to this post by Berardi Luca
R: [Quantlib-users] Compilation issue
try the following page to see if it helps.
 
 
Deming
-----Original Message-----
From: [hidden email] [mailto:[hidden email]]On Behalf Of Berardi Luca
Sent: Tuesday, April 27, 2004 9:33 AM
To: '[hidden email]'
Cc: Quantlib-Users (E-mail)
Subject: R: [Quantlib-users] Compilation issue

> To access the 
> relevant docs select Help/Index from the VC++ menu, then look up 
> 'C1001'. Let us know whether you found some way to work around the 
> problem.

I tried to locally deactivate speed optimization by circumventing the piece of code (apparently) generating errors by a pair of pragma optimize off/on, but it didn't work, too. At the end I had to give up, and globally deactivate speed optimization.


-----Messaggio originale-----
Da: Luigi Ballabio [[hidden email]]
Inviato: venerdì 23 aprile 2004 11:11
A: Berardi Luca
Cc: Quantlib-Users (E-mail)
Oggetto: Re: [Quantlib-users] Compilation issue


On 2004.04.23 10:16, Berardi Luca wrote:
> I can't compile the QuantLib library in multithreaded DLL mode when I 
> select the "Optimize speed" option using Visual C++ 6.0.
> More precisely I get the following error:
>
> C:\QUANTLIB\ql/Math/cubicspline.hpp(203) : fatal error C1001: 
> INTERNAL COMPILER ERROR
>
>
> and the visual studio points at the following line
>
>                                         M = QL_MAX(M,
> 1.5*QL_MIN(QL_FABS(pm),QL_FABS(pd)));
>
> Does anybody know how to get over this error?

Ciao Luca,
        it's hard to say, since it's admittedly a compiler bug... The 
VC++ docs say:

----------------------
INTERNAL COMPILER ERROR
(compiler file 'file', line number)

This error is most often generated in one of two cases:

(the first case doesn't apply here)

Failure of the code generator to find a way to generate correct
code for a construct. This is most often caused by the
interaction of an expression and an optimization option. The
optimization has generated a tree which the compiler does not
know how to handle. Such a problem can often be fixed by removing
one or more optimization options when compiling the particular
function containing the line indicated in the error message.
---------------------------

then it goes on explaining how you can try to compile. To access the 
relevant docs select Help/Index from the VC++ menu, then look up 
'C1001'. Let us know whether you found some way to work around the 
problem.

Good luck,
        Luigi


DISCLAIMER: Privileged/Confidential Information may be contained in this message and in any of its attachments (the "message"). If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply e-mail. The contents of this message shall be understood as neither given nor endorsed by Banca Profilo S.p.A., nor Profilo SGR S.p.A., nor Profilo Asset Management SGR S.p.A., nor Profilo Academy S.p.A.. Banca Profilo S.p.A., Profilo SGR S.p.A., Profilo Asset Management SGR S.p.A., Profilo Academy S.p.A. do not accept liability for corruption, interception or amendment, if any, or the consequences thereof.

Il presente messaggio e/o i suoi allegati (di seguito il "messaggio") possono contenere informazioni privilegiate e/o confidenziali. Se non siete i destinatari indicati nel messaggio (o persona incaricata di inoltrare il messaggio al/i destinatario/i), non potete copiare o inoltrare il messaggio ad altri e siete invitati a distruggerlo dandone informazione al mittente a mezzo e-mail. Il contenuto del presente messaggio non deve essere considerato come trasmesso o autorizzato nè da Banca Profilo S.p.A., nè da Profilo SGR S.p.A., nè da Profilo Asset Management SGR S.p.A., nè da Profilo Academy S.p.A.. Nè Banca Profilo S.p.A., nè Profilo SGR S.p.A., nè Profilo Asset Management SGR S.p.A., nè Profilo Academy S.p.A. si assumono alcuna responsabilità per eventuali intercettazioni, modifiche o danneggiamenti del presente messaggio e-mail e per le eventuali conseguenze.