These are chat archives for bluescarni/pagmo_reborn

9th
Jun 2016
Dario Izzo
@darioizzo
Jun 09 2016 05:51
buongiorno .... adesso provo :)
Francesco Biscani
@bluescarni
Jun 09 2016 07:36
does it work?
Dario Izzo
@darioizzo
Jun 09 2016 08:33
eccomi
I have python 2.7
installing 3.5 now ...
On the nice sides it gives a nice error message rejecting the instalation
Dario Izzo
@darioizzo
Jun 09 2016 08:48
On the nice side the error if you try installing on 32 bits is also nice ... tells you the dll is not good for win32 :)
Francesco Biscani
@bluescarni
Jun 09 2016 08:54
The new package I made yesterday should be tied to the specific platform and python version
but so it does not work? did you try a 64 bit installation?
Dario Izzo
@darioizzo
Jun 09 2016 08:55
not yet .. i wrongfully installed 32
it installs
but then upon import complains the library is not good for win 32
Francesco Biscani
@bluescarni
Jun 09 2016 08:55
yeah the new package should refuse to install altogether
but I am at work now, so I cannot produce it
Dario Izzo
@darioizzo
Jun 09 2016 08:56
np
can you see?
Francesco Biscani
@bluescarni
Jun 09 2016 09:06
Your client does not have permission to get URL
Dario Izzo
@darioizzo
Jun 09 2016 09:08
fuck it
you see it now?
unnamed.png
Francesco Biscani
@bluescarni
Jun 09 2016 09:09
yep I guess it might be the MSVC DLL missing
the archive does contain the boost python dll right?
Dario Izzo
@darioizzo
Jun 09 2016 09:10
what do you mean?
How can I check?
Francesco Biscani
@bluescarni
Jun 09 2016 09:10
a .whl is a zip file, try to unpack it
Dario Izzo
@darioizzo
Jun 09 2016 09:11
I am sending the content
Francesco Biscani
@bluescarni
Jun 09 2016 09:12
Dario Izzo
@darioizzo
Jun 09 2016 09:13
? the whole windows 10?
Francesco Biscani
@bluescarni
Jun 09 2016 09:13
Visual C++ Redistributable for Visual Studio 2015
The Visual C++ Redistributable Packages install run-time components that are required to run C++ applications built using Visual Studio 2015.
Dario Izzo
@darioizzo
Jun 09 2016 09:13
unnamed (1).png
Francesco Biscani
@bluescarni
Jun 09 2016 09:13
yep so it looks like the MSVC are the one missing I guess
Dario Izzo
@darioizzo
Jun 09 2016 09:14
When we did it for pagmo we used a tool that tracks all libraries needed and shipped those
Francesco Biscani
@bluescarni
Jun 09 2016 09:14
Dario Izzo
@darioizzo
Jun 09 2016 09:14
exactly
Francesco Biscani
@bluescarni
Jun 09 2016 09:14
we should check about the legality of redistributing this stuff though
or we can try to link in statically the shitty MSVC libs
download the one for 64 bit if you try please :)
another option is to use mingw to make the packages, that one needs a single mingw.dll library to be shipped
anyway, we have options
just a matter of slogging through the rust as usual
Include DLLs with executable
This is what Microsoft calls a “private assembly” and what I call “putting the DLLs in the application directory”.
The files you need will be in C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\ (or equivalent) on a computer with Visual Studio installed. As well as the three DLL files msvcm90.dll, msvcp90.dll and msvcr90.dll, you will also need the manifest file Microsoft.VC90.CRT.manifest.
I'll try this tonight
Dario Izzo
@darioizzo
Jun 09 2016 09:23
works
but after its imported i do:
a = pygmo.rosenbrock(10)
print(a)
and it does not find a __repr__?
Francesco Biscani
@bluescarni
Jun 09 2016 09:24
yes, the only thing exposed for the C++ problems/algos is the ctor
Dario Izzo
@darioizzo
Jun 09 2016 09:25
should we not also expose the repr?
Francesco Biscani
@bluescarni
Jun 09 2016 09:25
I don't think user defined problems even have a repr.. do they?
I mean if you do std::cout << rosenbrock(); it won't work will it
on the Python side I exposed only the ctor and the problem-specific methods (e.g., get_best())
Dario Izzo
@darioizzo
Jun 09 2016 09:29
ok
I just think we should expose a __repr__ that says: user-defined problems do not have a repr, construct a pygmo.problem object with it to be able to inspect the object
Francesco Biscani
@bluescarni
Jun 09 2016 09:30
sure ok.. it's not all user-defined problems though, maybe a python defined problem will have a repr
"exposed C++ objects do not have a repr"
or too scary
Dario Izzo
@darioizzo
Jun 09 2016 09:31
something that informs them to construct a pygmo.problem with it in order to get info on the problem
"exposed C++ user-defined problems do not have a repr, you can construct a pygmo.problem with it and inspect that"
"exposed C++ user-defined problems do not have a repr. Construct a pygmo.problem with it and inspect the __repr__ then"
dunno
Francesco Biscani
@bluescarni
Jun 09 2016 09:33
right ok
Dario Izzo
@darioizzo
Jun 09 2016 09:34
"exposed C++ user-defined problems do not have a python __repr__. You can construct a pygmo.problem with it and inspect its __repr__ then"
final offer
Francesco Biscani
@bluescarni
Jun 09 2016 09:35
it's okish even if I doubt that a matlabbaro can make any sense of that (we are targetting matlabbari with our super-duper error messages aren't we?)
Francesco Biscani
@bluescarni
Jun 09 2016 09:42
"This is an instance of a C++ user-defined problem. Use it to construct a pygmo.problem to inspect it, optimise it, etc."
Dario Izzo
@darioizzo
Jun 09 2016 10:43
perfect!
Francesco Biscani
@bluescarni
Jun 09 2016 11:04
"This is an instance of a C++ user-defined problem. Constructing a problem from it will tone your muscles, improve your eyesight and enlarge your penis."
Francesco Biscani
@bluescarni
Jun 09 2016 11:34
https://code.visualstudio.com/docs?start=true visual studio code is not even bad
Francesco Biscani
@bluescarni
Jun 09 2016 11:43
based on a cursory look, it might be better than atom for C++ code... but that's only speculation for now
Dario Izzo
@darioizzo
Jun 09 2016 11:43
yes I saw it ... is it good really?
Francesco Biscani
@bluescarni
Jun 09 2016 11:44
so I read that is performs better than atom UI wise
Dario Izzo
@darioizzo
Jun 09 2016 11:44
wow ... nice
Francesco Biscani
@bluescarni
Jun 09 2016 11:44
plus it lists C++ as the first language in that page
Dario Izzo
@darioizzo
Jun 09 2016 11:44
btw whats the directory to install locally?
~/.local ?
Francesco Biscani
@bluescarni
Jun 09 2016 11:44
atom always struck me as something created foremost for JS, Ruby and Python folks
yes
Dario Izzo
@darioizzo
Jun 09 2016 11:44
but its windows
how can it be good for c++ since they have MSVC calling clang
Francesco Biscani
@bluescarni
Jun 09 2016 11:45
it's open source an based exactly on the same technnology as atom: chrome and nodejs
it's not MSVC
Dario Izzo
@darioizzo
Jun 09 2016 11:45
shall we try?
Francesco Biscani
@bluescarni
Jun 09 2016 11:46
I installed it in arch, I will try eventually but right now I am stuck writing a package manager in cmake
if you can believe it
Dario Izzo
@darioizzo
Jun 09 2016 11:46
for work?
Francesco Biscani
@bluescarni
Jun 09 2016 11:46
yeah
Dario Izzo
@darioizzo
Jun 09 2016 11:46
a package manager for what?
Francesco Biscani
@bluescarni
Jun 09 2016 11:47
for some software modularization pipe dream that probably will never happen
at least I am learning something
Dario Izzo
@darioizzo
Jun 09 2016 11:47
ImportError                               Traceback (most recent call last)
<ipython-input-1-a04b05fe9492> in <module>()
----> 1 import pygmo

/home/dario/.local/lib/python3.5/site-packages/pygmo/__init__.py in <module>()
     87     return not self.extract(t) is None
     88 
---> 89 from .core import *
     90 
     91 # Override of the population constructor.

ImportError: /usr/lib/libboost_python.so.1.60.0: undefined symbol: PyClass_Type
Francesco Biscani
@bluescarni
Jun 09 2016 11:48
yep same bullshit as the last time
nietzsche called it "the eternal return"
Dario Izzo
@darioizzo
Jun 09 2016 11:48
what was it?
Francesco Biscani
@bluescarni
Jun 09 2016 11:48
you are linking to boost python 2.x while using python 3
Dario Izzo
@darioizzo
Jun 09 2016 11:48
I have no memory
ahhhhhh right
so I need to manually set the 3
Francesco Biscani
@bluescarni
Jun 09 2016 11:49
I know right, it's like you don't give a shit ;)
can't blame you
Dario Izzo
@darioizzo
Jun 09 2016 11:49
should I?
I am an old CPU only have limited memory
need to be selective
Che fico funziona :)
Francesco Biscani
@bluescarni
Jun 09 2016 11:53
Dario Izzo
@darioizzo
Jun 09 2016 11:53
btw:
Out[14]: 
Algorithm name: CMA-ES: Covariance Matrix Adaptation Evolutionary Strategy [stochastic]
Has verbosity: true
Extra info:
    Generations: 500
    cc: auto
    cs: auto
    c1: auto
    cmu: auto
    sigma0: 0.500000
    Stopping xtol: 0.000001
    Stopping ftol: 0.000001
    Memory: 0
    Verbosity: 1
    Seed: 4257681768

In [15]:
Pity the images
Do we need to report has_verbosity here?
Francesco Biscani
@bluescarni
Jun 09 2016 11:54
I don't know, you wrote that :)
btw I had a comment regarding that [stochastic] tag
Dario Izzo
@darioizzo
Jun 09 2016 11:55
I think we do not give a shit
Francesco Biscani
@bluescarni
Jun 09 2016 11:55
it think it shuold be removed, because that's the syntax we use for the meta shit
Dario Izzo
@darioizzo
Jun 09 2016 11:55
by default verbosity is 0 right?
Francesco Biscani
@bluescarni
Jun 09 2016 11:55
just put stochastic in the normal info
Dario Izzo
@darioizzo
Jun 09 2016 11:55
yeah I remove it
Francesco Biscani
@bluescarni
Jun 09 2016 11:57
IMO we should also remove the images altogether
Dario Izzo
@darioizzo
Jun 09 2016 11:57
NOOOOOO!
Mi oppongo
Francesco Biscani
@bluescarni
Jun 09 2016 11:57
we are trying to be too edgy, like the guy in a group that always makes jokes
:)
Dario Izzo
@darioizzo
Jun 09 2016 11:57
But it is not a scientific paper
If we cannot play a bit here then how sad no?
And it looks so much better on the web
Francesco Biscani
@bluescarni
Jun 09 2016 11:58
the documentation I check usually online does not have many pictures
it has no consistency, just a random collection of images found via a google search
but I am not strongly feeling
Dario Izzo
@darioizzo
Jun 09 2016 11:59
No, do not take this away from me .... it makes the whole thing more human
Francesco Biscani
@bluescarni
Jun 09 2016 11:59
just a pity the pdf is fucked up
Dario Izzo
@darioizzo
Jun 09 2016 11:59
that yes .... but I think it can be fixed
Francesco Biscani
@bluescarni
Jun 09 2016 11:59
we could put funny quotes instead :)
Dario Izzo
@darioizzo
Jun 09 2016 11:59
that too
like population: "An open-minded and diverse population that readily shares information, encourages experimentation, accepts failure and dispenses with formality and hierarchy is what makes Silicon Valley the successful hub that it is.
Read more at: http://www.brainyquote.com/quotes/keywords/population.html"
Francesco Biscani
@bluescarni
Jun 09 2016 12:01
holy fuck what did I start
Dario Izzo
@darioizzo
Jun 09 2016 12:01
random stuff from the internet
Francesco Biscani
@bluescarni
Jun 09 2016 12:01
but it shuold be completely unrelated to anything
Dario Izzo
@darioizzo
Jun 09 2016 12:01
ok then:
The passion of the Italian or the Italian-American population is endless for food and lore and everything about it.
Read more at: http://www.brainyquote.com/quotes/keywords/population.html
Francesco Biscani
@bluescarni
Jun 09 2016 12:02
maybe we shuold shuffle things around.. put the rosenbrock function in the rastrigin for instance
"The mind is like a parachute: it works best if it is open"
I mean we spend so much time trying to make things right and then we have these 2-pixel shitty gifs of the rosenbrock function
they have more grains than a corn field in summer
not on the web
the problem is that the pdf scales everything up to page width?
Francesco Biscani
@bluescarni
Jun 09 2016 12:04
the format is the problem, it's 2016 - we have pdf and svg formats fully supported by matplotlib
vector graphics
just complaining :)
Dario Izzo
@darioizzo
Jun 09 2016 12:06
I agree ... I consider the current images as placeholders ... when we release we can make then uniform and better
Francesco Biscani
@bluescarni
Jun 09 2016 12:06
good stuff
Dario Izzo
@darioizzo
Jun 09 2016 12:08
compiling core we get pragma shit and one warning ... do you too?
Francesco Biscani
@bluescarni
Jun 09 2016 12:08
can you paste
Dario Izzo
@darioizzo
Jun 09 2016 12:08
[ 86%] Building CXX object pygmo/CMakeFiles/core.dir/core.cpp.o
In file included from /usr/include/python3.5m/pytime.h:6:0,
                 from /usr/include/python3.5m/Python.h:65,
                 from /home/dario/Documents/PaGMOreborn/pygmo/python_includes.hpp:11,
                 from /home/dario/Documents/PaGMOreborn/pygmo/core.cpp:1:
/usr/include/boost/python/detail/caller.hpp: In function ‘unsigned int boost::python::detail::arity(PyObject* const&)’:
/usr/include/python3.5m/object.h:119:56: warning: conversion to ‘unsigned int’ from ‘Py_ssize_t {aka long int}’ may alter its value [-Wconversion]
 #define Py_SIZE(ob)             (((PyVarObject*)(ob))->ob_size)
                                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /usr/include/boost/type_traits/ice.hpp:15:0,
                 from /usr/include/boost/python/detail/def_helper.hpp:9,
                 from /usr/include/boost/python/class.hpp:29,
                 from /home/dario/Documents/PaGMOreborn/pygmo/core.cpp:5:
/usr/include/boost/type_traits/detail/ice_or.hpp: At global scope:
/usr/include/boost/type_traits/detail/ice_or.hpp:17:71: note: #pragma message: NOTE: Use of this header (ice_or.hpp) is deprecated
 # pragma message("NOTE: Use of this header (ice_or.hpp) is deprecated")
                                                                       ^
In file included from /usr/include/boost/type_traits/ice.hpp:16:0,
                 from /usr/include/boost/python/detail/def_helper.hpp:9,
                 from /usr/include/boost/python/class.hpp:29,
                 from /home/dario/Documents/PaGMOreborn/pygmo/core.cpp:5:
/usr/include/boost/type_traits/detail/ice_and.hpp:18:72: note: #pragma message: NOTE: Use of this header (ice_and.hpp) is deprecated
 # pragma message("NOTE: Use of this header (ice_and.hpp) is deprecated")
                                                                        ^
In file included from /usr/include/boost/type_traits/ice.hpp:17:0,
                 from /usr/include/boost/python/detail/def_helper.hpp:9,
                 from /usr/include/boost/python/class.hpp:29,
                 from /home/dario/Documents/PaGMOreborn/pygmo/core.cpp:5:
/usr/include/boost/type_traits/detail/ice_not.hpp:17:72: note: #pragma message: NOTE: Use of this header (ice_not.hpp) is deprecated
 # pragma message("NOTE: Use of this header (ice_not.hpp) is deprecated")
                                                                        ^
In file included from /usr/include/boost/type_traits/ice.hpp:18:0,
                 from /usr/include/boost/python/detail/def_helper.hpp:9,
                 from /usr/include/boost/python/class.hpp:29,
                 from /home/dario/Documents/PaGMOreborn/pygmo/core.cpp:5:
/usr/include/boost/type_traits/detail/ice_eq.hpp:17:71: note: #pragma message: NOTE: Use of this header (ice_eq.hpp) is deprecated
 # pragma message("NOTE: Use of this header (ice_eq.hpp) is deprecated")
Francesco Biscani
@bluescarni
Jun 09 2016 12:09
yeah the #pragma stuff cannot be silenced, the warning comes from inner boost
if you compile with clang it should be clean
Dario Izzo
@darioizzo
Jun 09 2016 12:09
the first warning is weird though
Francesco Biscani
@bluescarni
Jun 09 2016 12:10
actually comes from Python itself
Dario Izzo
@darioizzo
Jun 09 2016 12:10
exactly
weird
Francesco Biscani
@bluescarni
Jun 09 2016 12:10
you python is complete shit on the C side
Python 2.x is not even standard C
they fixed it for Python 3.x
"you know"
Dario Izzo
@darioizzo
Jun 09 2016 12:10
you python? its the opposite of IPython?
a right
they deployed the new gitlab but its buggy :)
They are pretty approximative in this .... how can you deploy such a piece of shit? The bar above and the one on the left is not even the same
nor has consistent info
where is the project setting now?
Francesco Biscani
@bluescarni
Jun 09 2016 12:15
I don't think it's buggy... the bar on the left is your stuff
the bar on top is the project stuff
Dario Izzo
@darioizzo
Jun 09 2016 12:15
so merge request 0 what is it?
why I do not have merge request on my personal stuff?
And where are the project settings to set the runners and web etc. ?
Francesco Biscani
@bluescarni
Jun 09 2016 12:16
I don't think you assigned yourself to the MR when you opened it
look here:
you see your MR does not have any user icon associated to it
you opened it but probably it's assigned to nobody
Dario Izzo
@darioizzo
Jun 09 2016 12:16
ok thats true ... still the settings?
Francesco Biscani
@bluescarni
Jun 09 2016 12:17
I opened the HV one and assigned it to marcus, so his icons appears there
that's a good question
ah yes
top right the gears icon
it's displayed a bit weirdly here, seems not totally aligned
Dario Izzo
@darioizzo
Jun 09 2016 13:09
ok builds all passed if you want you can merge
Francesco Biscani
@bluescarni
Jun 09 2016 13:38
// TODO: here if the problem is unbounded what happens? did you check about this?
Dario Izzo
@darioizzo
Jun 09 2016 13:39
I think I added a throw at the beginning
Is it not there?
        for (auto num : lb) {
            if (!std::isfinite(num)) {
                pagmo_throw(std::invalid_argument, "A " + std::to_string(num) + " is detected in the lower bounds " + prob.get_name() + " cannot deal with it.");
            }
        }
        for (auto num : ub) {
            if (!std::isfinite(num)) {
                pagmo_throw(std::invalid_argument, "A " + std::to_string(num) + " is detected in the lower bounds " + prob.get_name() + " cannot deal with it.");
            }
        }
upper ... lol fixing it skip ci
Francesco Biscani
@bluescarni
Jun 09 2016 13:40
shouldn't it be this->name()?
Dario Izzo
@darioizzo
Jun 09 2016 13:41
indeed
Francesco Biscani
@bluescarni
Jun 09 2016 13:41
or maybe I am misparsing the error message
it's lacking punteggiatura :)
Dario Izzo
@darioizzo
Jun 09 2016 13:41
no its me being slackish
Francesco Biscani
@bluescarni
Jun 09 2016 13:41
6- izzo
Dario Izzo
@darioizzo
Jun 09 2016 13:41
comma?
colon?
Francesco Biscani
@bluescarni
Jun 09 2016 13:41
I would put a heart shape and a diamond :)
Dario Izzo
@darioizzo
Jun 09 2016 13:43
pushed
Francesco Biscani
@bluescarni
Jun 09 2016 13:44
you also removed the TODO right?
Dario Izzo
@darioizzo
Jun 09 2016 13:45
yes
Francesco Biscani
@bluescarni
Jun 09 2016 13:46
do you think we should add another build to the CI that tests with all options on?
Dario Izzo
@darioizzo
Jun 09 2016 13:46
I think we should not overdo it during development
Francesco Biscani
@bluescarni
Jun 09 2016 13:46
it seems right now cmaes is not tested
development never finishes :)
Dario Izzo
@darioizzo
Jun 09 2016 13:47
Already now it takes 20 min to finish
if you double it its 40
What about just leaving all options on all the time
And testing the build system ability to cope with compinations by experience?
Francesco Biscani
@bluescarni
Jun 09 2016 13:47
most time is spent on appveyor and the codecov shit, if it weren't for that it would be 3/4 minutes
I think it's probably better all options on rather than off, if we have to choose
I'll merge anyway
Dario Izzo
@darioizzo
Jun 09 2016 13:48
the clang build could be duplicated yes
and the gcc could become all options on
but will it find eigen on ubuntu?
Francesco Biscani
@bluescarni
Jun 09 2016 13:49
it is a nice mistery
I installed it
Dario Izzo
@darioizzo
Jun 09 2016 13:49
try ... add one clang build
Francesco Biscani
@bluescarni
Jun 09 2016 13:49
so for the docs we want the full options on
did you also add the cmaes to the python algos doc?
Dario Izzo
@darioizzo
Jun 09 2016 13:49
as well yes docs and coverage with full on
damn
should I now?
Francesco Biscani
@bluescarni
Jun 09 2016 13:50
I can do it if you want
Dario Izzo
@darioizzo
Jun 09 2016 13:50
no let me see how the magic is done
Francesco Biscani
@bluescarni
Jun 09 2016 13:51
I'll try the CI stuff then
Dario Izzo
@darioizzo
Jun 09 2016 13:51
.. autoclass:: pygmo.core.null_algorithm
   :members:
thats it?
Francesco Biscani
@bluescarni
Jun 09 2016 13:51
yeps
Dario Izzo
@darioizzo
Jun 09 2016 13:51
done
should I trigger a cI? nope
Francesco Biscani
@bluescarni
Jun 09 2016 13:52
push with ci skip
Dario Izzo
@darioizzo
Jun 09 2016 13:52
done
Francesco Biscani
@bluescarni
Jun 09 2016 13:56
so now eigen3 has kind of become a hard dep for the docs
Dario Izzo
@darioizzo
Jun 09 2016 13:57
what do you mean?
Francesco Biscani
@bluescarni
Jun 09 2016 13:57
that now cmaes is in unconditionally in the python docs, so if you try to build them without eigen3 there will be an error
Dario Izzo
@darioizzo
Jun 09 2016 13:58
right .... thats not good
on the other hand we can just build the docs wth all options on
Dario Izzo
@darioizzo
Jun 09 2016 13:58
the user doeas not need to build the,
Francesco Biscani
@bluescarni
Jun 09 2016 13:58
that's what I was thinking
Dario Izzo
@darioizzo
Jun 09 2016 13:59
1.28 secs on cmaes test?
wtf is he doing .. let me chack
Francesco Biscani
@bluescarni
Jun 09 2016 13:59
https://gitlab.com/EuropeanSpaceAgency/PaGMOreborn/pipelines/3488161 you see all builds are down in 2 minutes, minus the codecov shit
and appveyor
Dario Izzo
@darioizzo
Jun 09 2016 14:00
can it be that in debug mode eigen is super slow?
Francesco Biscani
@bluescarni
Jun 09 2016 14:01
you never compiled in debug mode the tests?
Dario Izzo
@darioizzo
Jun 09 2016 14:01
always
but never noticed the timings
Francesco Biscani
@bluescarni
Jun 09 2016 14:01
ahh ok
it's possible yeah
Dario Izzo
@darioizzo
Jun 09 2016 14:01
fuck
hopefully in release is not .. I did not check if its as fast as in legacy ...
Francesco Biscani
@bluescarni
Jun 09 2016 14:31
well the CI stuff is good apparently, I'll merge ok?
Dario Izzo
@darioizzo
Jun 09 2016 14:31
full support its the best pull request ever
nothing will ever be better
perfection does not even begin to describe it
Francesco Biscani
@bluescarni
Jun 09 2016 14:31
it's like the mona lisa of merge requests
Dario Izzo
@darioizzo
Jun 09 2016 14:32
you got it!
Francesco Biscani
@bluescarni
Jun 09 2016 14:37
Dario Izzo
@darioizzo
Jun 09 2016 14:40
pushed again
directly to master
Francesco Biscani
@bluescarni
Jun 09 2016 14:41
ok
I think we need to run the doxygen/sphinx as part of the regular builds and catch this stuff
otherwise we realise it only after it's been merged
only run, not upload
Dario Izzo
@darioizzo
Jun 09 2016 14:41
makes sense yes
why appveyor triggers two builds?
Francesco Biscani
@bluescarni
Jun 09 2016 14:46
not sure
oh well it's not ours computing resources :)
Dario Izzo
@darioizzo
Jun 09 2016 14:54
appveyor does not build cmaes ... should we not activate all options there too?
Francesco Biscani
@bluescarni
Jun 09 2016 14:54
we need to bundle eigen in the dependencies, cannot do it from here
Dario Izzo
@darioizzo
Jun 09 2016 14:54
ah right .... ok
Francesco Biscani
@bluescarni
Jun 09 2016 14:55
I need to do a new bundle with boost python to test pygmo anyway
Dario Izzo
@darioizzo
Jun 09 2016 14:55
i thought pygmo was built ...
how did you create the wheel otherwise?
Francesco Biscani
@bluescarni
Jun 09 2016 14:55
I managed to compile it the first time yesterday evening
Dario Izzo
@darioizzo
Jun 09 2016 14:56
ah ok WIP
Francesco Biscani
@bluescarni
Jun 09 2016 14:57
there's so much stuff to do
Dario Izzo
@darioizzo
Jun 09 2016 14:57
its only getting worse
Francesco Biscani
@bluescarni
Jun 09 2016 14:57
it is
Dario Izzo
@darioizzo
Jun 09 2016 14:57
or maybe it will stabilize one day?
Francesco Biscani
@bluescarni
Jun 09 2016 14:57
well we just add cool things on top of cool things
so we need to stop doing cool stuff
Dario Izzo
@darioizzo
Jun 09 2016 14:58
too much coolness I cannot handle it!
Francesco Biscani
@bluescarni
Jun 09 2016 14:58
I'll head home, laters
Dario Izzo
@darioizzo
Jun 09 2016 14:59
cia
Dario Izzo
@darioizzo
Jun 09 2016 17:47
BOOST_AUTO_TEST_CASE(decompose_has_dense_sparsities_test)
{
    problem p{decompose{zdt{1u,2u}, {0.5,0.5}, {2.,2.}, "weighted", false}};
    BOOST_CHECK(p.gradient_sparsity() == detail::dense_gradient(1u, 2u));
    BOOST_CHECK(p.hessians_sparsity() == detail::dense_hessians(1u, 2u));
}
According to the coverage the methods gradient_sparsity and hessians_sparsity of the decompose problem are never called.
Lo lets walk through what happens in the lines above.
p.gradient_sparsity -> this calls the method of a pagmo::problem.
        sparsity_pattern gradient_sparsity() const
        {
            if (m_has_gradient_sparsity) {
                auto retval = ptr()->gradient_sparsity();
                check_gradient_sparsity(retval);
                return retval;
            }
            return detail::dense_gradient(get_nf(),get_nx());
        }
in this method the value of m_has_gradient_sparsity is checked. Such a value is assigned upon construction as:
m_has_gradient_sparsity = ptr()->has_gradient_sparsity();
Dario Izzo
@darioizzo
Jun 09 2016 17:52
This should detect that in decompose a method gradient sparisty is implemented and thus return true.
As a consequence I would expect the if(m_has_gradient_sparsity) to execute
and thus the gradient_sparsity of decompose (called by ptr()->gradient_sparsity) to be called
where am I wrong?
Francesco Biscani
@bluescarni
Jun 09 2016 17:54
I am in a rush, will check better later... but ptr() refiers to the user-defined problem, not the decompose
Dario Izzo
@darioizzo
Jun 09 2016 17:54
:) I though you were not even there....
I just log my thoughts
but thanks
Francesco Biscani
@bluescarni
Jun 09 2016 17:55
I just turned on to watch tv show while dinner, if Ben allows us :)
Dario Izzo
@darioizzo
Jun 09 2016 18:25
I do not get it .... when the line problem p{decompose{zdt{1u,2u}, {0.5,0.5}, {2.,2.}, "weighted", false}};
is executed the first thing that gets done is to construct a decompose from zdt. There in the initializer list the base class problem is constructed from zdt. SO yes in that call ptr is the user-defined problem.
Later, though, a problem p is constructed from decompose.
In that call the constructor of pagmo::problem is called with T = decompose
thus ptr points to a decompose.
Anyway. I am too dull to get it ... I will wait for your input ...
Dario Izzo
@darioizzo
Jun 09 2016 21:23
@bluescarni oi stai la?