Open cesss opened 1 year ago
Hi,
Yes, gmp.h
is only included in Rational.h
. I think you can try to replace it with other multi-precision libraries as long as you overload the operators in Rational.h
I want to share my experience detangling GMP. I'll spare you the why, if you're here you know ;)
First of all, the ONLY part of fTetWild that actually needs GMP as of this writing is floatTetWild::AMIPS_energy
in LocalOperations.cpp
. There are other references, but they're dead. Remove and/or comment out.
Comment out the block in floatTetWild::AMIPS_energy
that uses triwild::Rational
, replace it with return res;
, just to make sure it builds/runs. Good? Remove that, proceed.
Copy the commented out block and replace triwild::Rational
with your alternative of choice. I went with a new library: https://github.com/tuwien-cms/libxprec, highly recommend. Pretty easy.
Is GMP used only by Rational.h ? If affirmative, I believe it should be possible to remove the GMP dependency (which is LGPL) and use for example Boost.Multiprecision (which has Boost license).
Would Rational.h be the only file to modify, or more parts in the code would need to be rewritten?
Thanks!