codac-team/pyIbex

win64 error

Closed this issue · 2 comments

This is a great library for interval computation and optimization ! But I am having a problem and hope the author can help.

I build the library following the direction in section "For Windows Users (Win64 version)" at this link, with Microsoft Visual Studio 14.0 Win64. All seems OK.

But then I test the example "doc-arithmetic.cpp", there is an error

Debug Assertion Failed! File: minkernel\ctrs\ucrt\src\appcrt\tran\amd64\ieee.c Line: 106

when I start the program. Calling the stack shows the position is in line
/** * construct rounding control **/ template<bool C> inline void filib::rounding_control<double,C>::setup() { /** * reset * double precision, round to nearest, no * interupts **/ _controlfp( _EM_INVALID|_EM_DENORMAL|_EM_ZERODIVIDE|_EM_OVERFLOW|_EM_UNDERFLOW|_EM_INEXACT ,MCW_EM); _controlfp(_PC_53,MCW_PC); _controlfp(RC_NEAR,MCW_RC); }
of file "rounding_control_double_asmmsvci386.icc". Then I press the button "Retry" and "Continue", the program goes on. The results seems to be fine except the PI value, which in the result file gives:
PI = [8.6192e+97, 8.61921e+97] 2 PI = [1.72384e+98, 1.72384e+98] 1/2 PI = [4.3096e+97, 4.3096e+97]

So my question is, if this library can only be built and used as 32 bit ? Or the problem results from the filib++ and I should use another interval library ?

Looking forward for any reply ! Thanks !

Hi,
Normally, the library works for both win32 and win64. The pip package of pyibex is automatically build for win32/win64 using appveyor.

You can try, in a first time, the pre-compiled versions from my fork of ibex-lib available here and see of you have the same error.

Let me know if it works.

Good luck ^^

Thanks for your prompt reply ! The error didn't occur with this pre-compiled version. But if I compile the source code here by myself, the error remains. I will use this pre-compiled version temporarily to test my model and compile by myself later if necessary. Thanks again for your time !