codac-team / pyibex Goto Github PK
View Code? Open in Web Editor NEWA Python binding for ibex-lib
License: GNU Lesser General Public License v3.0
A Python binding for ibex-lib
License: GNU Lesser General Public License v3.0
I tried the pip packages for pyIbex & VIBes, they are great!
However, pyIbex depends on VIBes from pySivia, which means you cant pip install pyIbex without VIBes.
I suggest tomake the dependency optionnal, or bundle them together (or maybe pip has a way to handle required dependencies?)
Error when execute make install
command (for boost & pyibex)
make install
[ 5%] Built target prim
[100%] Built target ibex
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/include/ieee
CMake Error at 3rd/filibsrc/cmake_install.cmake:36 (FILE):
file INSTALL cannot set permissions on "/usr/local/include/ieee"
Call Stack (most recent call first):
cmake_install.cmake:37 (INCLUDE)`
Solved with sudo right?
Bonjour,
j'essaye d'installer la librairie pyIbex mais je rencontre un problème récurrent quelque soit la méthode d'installation.
Installation of pyIbex and its dependancies
Configuration :
- python version = 2.7
ibex_lib installation
fatal: le chemin de destination 'ibex-lib' existe déjà et n'est pas un répertoire vide.
error: pathspec 'pyIbex_version_3' did not match any file(s) known to git.
CMake Error: The source directory "/home/damien/pyIbex/ibex-lib" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
make: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
make: *** Aucune règle pour fabriquer la cible « install ». Arrêt.
build pyIbex
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.17", required is "2.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so
-- pybind11 v2.1.dev0
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- IBEX_ROOT
-- Found IBEX: /usr/local/lib/libibex.a
-- will install python files in /usr/local/lib/python2.7/dist-packages
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Success
-- Performing Test HAS_CPP11_FLAG
-- Performing Test HAS_CPP11_FLAG - Success
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
FILIB_LIBRARY
linked by target "pyibex" in directory /home/damien/pyIbex/src/core
-- Configuring incomplete, errors occurred!
See also "/home/damien/pyIbex/build/CMakeFiles/CMakeOutput.log".
make: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
Merci d'avance pour votre aide.
Unfortunately, I cannot pip install on GNU/Linux, so I am using the .whl for Version 1.1.3 from IAMOOC for installation.
I get the following error message at runtime when using pyIbex for the first time, see https://travis-ci.org/oheim/ITF1788/builds/91987788#L385
ImportError: libboost_python-py34.so.1.55.0: cannot open shared object file: No such file or directory
The whole thing happens at Travis-CI, so this should be an Ubuntu 12.04 LTS with Python 3.4. Why is the boost library not found?
When building pyIbex with MSVC12, the linker will complain that it doesn't find the python library after the Boost.Python code generation stage.
You have to manually add the path to the python library in the pyIbex Visual Studio project to finish the build.
Seems like CMake is not giving this path to the python library when generating the Visual Studio solution.
>>> pyIbex.exp(Interval(1))
[2.71828, 2.71828]
As you can see in above example, the actual result is not contained in the interval described by the text output (better: [2.7182, 2.7183]
). Another similar example:
>>> pyIbex.Interval(1 + math.pow(2, -52))
[1, 1]
(should be [1, 1.0001]
)
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 !
The following errors have been found using pyIbex 1.1.3 and are probably derived from IBEX.
pyIbex.sin(Interval(float.fromhex('-0X1.921FB54442D18P+1'), 0.0))
does not cover 0 as a possible result.The following cases of poor accuracy could be improved:
pyIbex.tan(Interval(0.0, float.fromhex('0X1.921FB54442D18P+0')))
returns [entire], should be [0, 1.63312e+16].pyIbex.bwd_abs(Interval(float.fromhex('-0x1p-1022'), float.fromhex('-0x1p-1022')), Interval.ALL_REALS)
should produce x = [empty]. Also this function call modifies the content of Interval.ALL_REALS, which is bad.For compatibility issues, the ibex-version and pybind11 version must be accessible.
16:44 $ pip install pyIbex
Collecting pyIbex
Could not find a version that satisfies the requirement pyIbex (from versions: )
No matching distribution found for pyIbex
Tried with Python 2.7, Python 3.4, Pyzo, Anaconda...
You could add a direct link (in the install procedure) to the boost_1_58_0 version
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.