Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrating C-XSC #2

Closed
Jordan08 opened this issue Jul 4, 2014 · 10 comments
Closed

Integrating C-XSC #2

Jordan08 opened this issue Jul 4, 2014 · 10 comments

Comments

@Jordan08
Copy link
Member

Jordan08 commented Jul 4, 2014

Now, in IBEX, we can use 3 differents implementation of the interval arithmetic:

  • Profil/Bias
  • Goal
  • Filib++
    But none of them are still in development. And since the last version of OSX, a lot of warning start to rise.
    So I think that integrate a new implementation can be a good idea.

I found the library C-XSC : http://www2.math.uni-wuppertal.de/~xsc/xsc/cxsc.html

  • This librairy is still in development (last release in 02/2014)
  • It is compatible with Linux/Mac/Win.
  • The installation is very easy and detail
  • You can install it in a software emulations mode for directed rounded floating-point operations. This mode is independant from tha rchitecture of your processor
@Jordan08
Copy link
Member Author

Jordan08 commented Apr 1, 2015

Waiting for the result of the issue #73

Jordan08 added a commit that referenced this issue Jul 3, 2016
unexcepted exception and exception of fi_lib is not redirected #2
@Jordan08
Copy link
Member Author

Jordan08 commented Jul 8, 2016

There is to many problem to integrate this arithmetic.
Many particular case are raised as "unexcepted error".
So we need to check everything before to do something, nothing can be catch.

I leave for now.

Perhaps it should be better to interface:

@gchabert
Copy link
Contributor

gchabert commented Jul 9, 2016

Yes :) #144
Should we close this issue?

@benEnsta
Copy link
Contributor

benEnsta commented Jul 9, 2016

And what about Boost Interval ?

@Jordan08
Copy link
Member Author

Indeed, Boost can be a good idea. It seems to be easy to install (.exe on windows, apt-get on ubuntu, and .dmg on mac).
That work on:

  • x86-like hardware is supported by the library with GCC, Visual C++ ≥ 7.1, Intel compiler (≥ 8 on Windows), CodeWarrior (≥ 9), as long as the traditional x87 floating-point unit is used for floating-point computations (no -mfpmath=sse2 support).
  • Sparc hardware is supported with GCC and Sun compiler.
  • PowerPC hardware is supported with GCC and CodeWarrior, when floating-point computations are not done with the Altivec unit.
  • Alpha hardware is supported with GCC, except maybe for the square root. The options -mfp-rounding-mode=d -mieee have to be used.

I don't know what " (no -mfpmath=sse2 support)" means. It will be interesting to see if our test work. Because I remember that at the beginning, we had trouble with the x87 floating-point unit....

I see that the particular case are no defined throw an exception:

The interval class and all the functions defined around this class never throw any exceptions by themselves. However, it does not mean that an operation will never throw an exception. For example, let's consider the copy constructor. As explained before, it is the default copy constructor generated by the compiler. So it will not throw an exception if the copy constructor of the base type does not throw an exception. The same situation applies to all the functions: exceptions will only be thrown if the base type or one of the two policies throws an exception.

@gchabert what do you think?
I know that the last version of GAOL seems to be the best implementation. But we need to rebuild the installation, because it is an autoconf (and you need to install libultim before)....

@gchabert
Copy link
Contributor

@Jordan08 SSE2 is a new processor instruction sets. It is supporter by gaol :-)
There is currently an engineer at LIRMM that works on updating the waf scripts for replacing the old 32-bits Gaol release (3) with the new 64-bits release (4).
Boost is a good alternative but I don't think it is more efficient. To my opinion, integrating another interval library is not a priority.

@Jordan08
Copy link
Member Author

ok
But I start to think that it should be more interesting to remove waf and integrate CMAKE.

cmake seems to be more powerfull. You can easily generate .deb, .exe and .dmg for every plateform.
@benEnsta starts to do it. And I think it will be more benefit to spend time on a cmake script for GAOL.
no?

@benEnsta
Copy link
Contributor

benEnsta commented Jul 11, 2016

I have a .deb version of ibex-lib with a ppa (still under test) to used with pyibex.
If you want you can try

add-apt-repository ppa:ben-ensta/pyibex
apt-get update
sudo apt-get install ibex-lib

This version is based on my branch with cmake and filib.
This branch is based on the master branch of ibex-lib but with PR #208.

@gchabert
Copy link
Contributor

Guys, I am not skilled enough in build tools to decide. I let the engineer chose and he seems to prefer waf.
@Jordan08 : I don't think cmake is more powerful than waf because you can basically do everything you want with python scripts.

gchabert pushed a commit that referenced this issue Mar 22, 2017
Temporary modification of TestArith::float10 (to see if succeeds under MacOS)
@gchabert
Copy link
Contributor

I'm closing this issue after the discussions at the ibexdays'19. We have dropped the idea of using C-XSC.
And replacing waf by cmake is now on the way... #368

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants