These are chat archives for bluescarni/pagmo_reborn

22nd
Jun 2016
Dario Izzo
@darioizzo
Jun 22 2016 06:58
@CoolRunning I would deal with the documentation as a last thing. The "style" you refer to is rather similar to the previous, but it does require a small adjustment indeed.
Marcus Märtens
@CoolRunning
Jun 22 2016 07:03
Okay, then it might not be a big deal.
Francesco Biscani
@bluescarni
Jun 22 2016 14:14
https://www.python.org/dev/peps/pep-0513/ apparently it should now be possible to do portable binary wheels for linux
as far as I have understood, it's basically a docker image derived from an old distribution. You can build your python extensions and your extra deps in that image, run a tool that essentially bundles the extra deps in the same directory as your extension (just like I did on windows) and then you can upload the wheel. It should then work on basically all modern distros
the only problem is that you need to use GCC 4.8 for compilation apparently
Dario Izzo
@darioizzo
Jun 22 2016 14:17
thats a bummer
is all c++14 in 4.8?
Francesco Biscani
@bluescarni
Jun 22 2016 14:18
for sure not, I think in 4.8 the c++14 flag is not even there (though it might be called something else)
not sure if there's a way around it, maybe there are developer tools you can install to update the compiler
but who knows
it should work for piranha (and audi I guess?)
Dario Izzo
@darioizzo
Jun 22 2016 14:20
And they will update it eventually
Francesco Biscani
@bluescarni
Jun 22 2016 14:20
not sure
Dario Izzo
@darioizzo
Jun 22 2016 14:20
TOday I looked at the new SNOPT api .... they give the libraries for free (up to 300 dims) .... we can use thise
Francesco Biscani
@bluescarni
Jun 22 2016 14:20
the problem is the binary interface changes with GCC/libstdc++ versions
but I am not 100% sure
it's a complicated problem
they give out CPLEX for free as well these days, up to few thousands dims
Dario Izzo
@darioizzo
Jun 22 2016 14:22
cplex is ints?
Francesco Biscani
@bluescarni
Jun 22 2016 14:22
linear programming, not only ints I think
we can use the snopt free stuff for testing, but bundling it's not automatic, it depends on the license
Dario Izzo
@darioizzo
Jun 22 2016 14:29
still testing will be easier
Marcus Märtens
@CoolRunning
Jun 22 2016 14:29
Talking about commercial software: do you guys know any commercial software for Semi-definite Programming / Convex Optimization?
Dario Izzo
@darioizzo
Jun 22 2016 14:31
convex optimization
is it not ipopt a good convex solver?
Its based on interior point optimization, I thought that stuff works well on convex problems, am I wrong?
In any case -> whatever
Marcus Märtens
@CoolRunning
Jun 22 2016 14:38
I know nothing ^^
Dario Izzo
@darioizzo
Jun 22 2016 15:12
I need to compute the binomial coefficient in PaGMO. SHall I used boost?
@bluescarni
Francesco Biscani
@bluescarni
Jun 22 2016 15:14
well I thought we would leave boost out for the core?
Dario Izzo
@darioizzo
Jun 22 2016 15:14
indeed thats why I asked.
So I wirte new code from scratch or I copy piranha or anything else?
Francesco Biscani
@bluescarni
Jun 22 2016 15:15
it can be implemented in terms of 3 gamma functions, I don't think there is much to do... at least if you don't need to do funky things (like negative arguments)
Dario Izzo
@darioizzo
Jun 22 2016 15:16
any ref? or I google?
Francesco Biscani
@bluescarni
Jun 22 2016 15:16
it also depends on the range you want implemented, if you need high values of n/m you should probably do it via the logarithm of the gamma function
Dario Izzo
@darioizzo
Jun 22 2016 15:18
and oits std::tgamma right?
Francesco Biscani
@bluescarni
Jun 22 2016 15:18
for the log yes... the point being if that if you don't have small n and m, your intermediate computations generate very high numbers and you lose precision
ah no
tgamma is true gamma
lgamma is log gamma
Dario Izzo
@darioizzo
Jun 22 2016 15:19
n and m will be in this case of the order of pop size + fitness size
yep, biut I get your point
Francesco Biscani
@bluescarni
Jun 22 2016 15:20
https://github.com/bluescarni/piranha/blob/master/src/binomial.hpp there is an implementation in piranha, but I doubt you'll find it useful
Dario Izzo
@darioizzo
Jun 22 2016 15:20
thanks
Francesco Biscani
@bluescarni
Jun 22 2016 15:21
horrible stuff
Dario Izzo
@darioizzo
Jun 22 2016 15:21
look a slight overkill for what i need :)
Francesco Biscani
@bluescarni
Jun 22 2016 15:22
yeah it generalises to arbitrary values and has different implementations depending on the type of the inputs