These are chat archives for bluescarni/pagmo_reborn

7th
Jun 2016
Francesco Biscani
@bluescarni
Jun 07 2016 08:29
attorno al 4.9
Dario Izzo
@darioizzo
Jun 07 2016 08:30
Yeah I figured something similar. Our guinea pig student had 4.8.1 and boost 1.54
The build system was pretty good at diagnosing the problem....
Francesco Biscani
@bluescarni
Jun 07 2016 08:30
gcc 4.8 was released 3 years ago... which distro is that
Dario Izzo
@darioizzo
Jun 07 2016 08:31
ubuntu 14.01
Francesco Biscani
@bluescarni
Jun 07 2016 08:31
he can try installing newer GCC from the ppa or maybe try with clang
Dario Izzo
@darioizzo
Jun 07 2016 08:31
I made him install 5.2
Francesco Biscani
@bluescarni
Jun 07 2016 08:31
that's what I do on travis anyway for piranha
Dario Izzo
@darioizzo
Jun 07 2016 08:31
indeed
but then some bulshit happened with the c++ symlink
solved now
He compiled and run the test successfully ...
Francesco Biscani
@bluescarni
Jun 07 2016 08:32
or tell him to use windows :)
Dario Izzo
@darioizzo
Jun 07 2016 08:32
I actually persuaded him no to !
Dario Izzo
@darioizzo
Jun 07 2016 09:30
did you see the GoT episode?
Francesco Biscani
@bluescarni
Jun 07 2016 09:37
yeah
Dario Izzo
@darioizzo
Jun 07 2016 09:37
did you note anything strange on arya?
Francesco Biscani
@bluescarni
Jun 07 2016 09:38
there's wild theories that's not arya
it seemed a bit strange the whole thing
Dario Izzo
@darioizzo
Jun 07 2016 09:38
did you see this:
Its from yesterday
Francesco Biscani
@bluescarni
Jun 07 2016 09:39
yep
Dario Izzo
@darioizzo
Jun 07 2016 09:39
wtf!
I did not notice while watching
Francesco Biscani
@bluescarni
Jun 07 2016 09:39
me neither
Marcus Märtens
@CoolRunning
Jun 07 2016 10:16
Arya twice?
Dario Izzo
@darioizzo
Jun 07 2016 10:17
yep.... pretty sick
did you see the episode? or I spoiled?
Marcus Märtens
@CoolRunning
Jun 07 2016 10:17
I know that you guys just spoil, so I do my best to watch fast
Dario Izzo
@darioizzo
Jun 07 2016 10:18
:)
did you notice?
Marcus Märtens
@CoolRunning
Jun 07 2016 10:18
nope
It was sort of weird how casual she was walking around during daylight though
Dario Izzo
@darioizzo
Jun 07 2016 10:18
yep fishy things are going on ...
Marcus Märtens
@CoolRunning
Jun 07 2016 10:19
But I loved the episode
Lady Mormont is adorable
and bear island looked a-ma-zing
Dario Izzo
@darioizzo
Jun 07 2016 10:19
whats bear island?
Marcus Märtens
@CoolRunning
Jun 07 2016 10:20
the place where the Mormonts are living
Dario Izzo
@darioizzo
Jun 07 2016 10:20
ah right ...
62
Marcus Märtens
@CoolRunning
Jun 07 2016 10:20
Elite warriors
Tells you in what Dire straits the armies in Westeros are
Francesco Biscani
@bluescarni
Jun 07 2016 10:47
it's pretty well done :)
Dario Izzo
@darioizzo
Jun 07 2016 11:50
     std::vector<population::size_type> best_idx(pop.size());
     std::iota(best_idx.begin(), best_idx.end(), 0u);
     std::sort(best_idx.begin(), best_idx.end(), [&pop](auto idx1, auto idx2) {return pop.get_f()[idx1][0] < pop.get_f()[idx2][0]};);
Is this doing what I think it does? That is to sort the population with respect to the fitness?
This message was deleted
Francesco Biscani
@bluescarni
Jun 07 2016 11:53
it sorts a vector of indices
Dario Izzo
@darioizzo
Jun 07 2016 11:53
so that I get 0 3 4 2 ... if the best individual has index 0, then 3 then 4 etc. correct?
added the iota
Francesco Biscani
@bluescarni
Jun 07 2016 11:54
you cannot compare vectors, but apart from that it looks good
Dario Izzo
@darioizzo
Jun 07 2016 11:55
ah right ... ok ... I am going crazy
Francesco Biscani
@bluescarni
Jun 07 2016 11:55
and the iota init
Dario Izzo
@darioizzo
Jun 07 2016 11:55
whats wrong with the init?
Francesco Biscani
@bluescarni
Jun 07 2016 11:56
the same thing that is always wrong :) population::size_type(0)
Dario Izzo
@darioizzo
Jun 07 2016 12:00
but, but
whats the problem? if I define it as 0u, then he will sum 1u to 0u
who cares if 0u is unsigned int or long long minchia?
Francesco Biscani
@bluescarni
Jun 07 2016 12:01
is population::size_type unsigned int?
Dario Izzo
@darioizzo
Jun 07 2016 12:01
maybe maybe not ....
my point is that if it is, then ok.
Francesco Biscani
@bluescarni
Jun 07 2016 12:01
so the maybe or maybe not have the same range
Dario Izzo
@darioizzo
Jun 07 2016 12:01
but I still do not see the range problem
0u is just an init
Dario Izzo
@darioizzo
Jun 07 2016 12:03
maledetto
        auto lam = pop.size();
        auto mu = lam / 2u;
and above: what is the type of mu?
if lam is population::size_type
Francesco Biscani
@bluescarni
Jun 07 2016 12:07
it's either unsigned int or the type of lam
Dario Izzo
@darioizzo
Jun 07 2016 12:07
according to?
Francesco Biscani
@bluescarni
Jun 07 2016 12:08
the type of lam. if lam is smaller than unsigned (i.e., unsigned short or unsigned char), it gets promoted to unsigned before the operation accordin to the integral conversion rules
if lam is unsigned int or bigger, the result is the type of lam
Dario Izzo
@darioizzo
Jun 07 2016 12:08
so its bad practice to do something like that ? better to explicitly put the type?
Francesco Biscani
@bluescarni
Jun 07 2016 12:09
you know that whatever lam is, mu is not narrower
that is enough in many situations
Dario Izzo
@darioizzo
Jun 07 2016 12:10
k thanks
We got rid in PaGMO of the champion. But I am now not sure it was a good idea. Recording the best ever lived in a population has several advantages. Now, if I evolve(10) with algo1 and then I evolve(10) with algo2, the best solution found by algo1 can be lost forever in case algo2 is shit on our problem
I can then imagine super complex setups where the user does not really care to think on what is the best algo and want to try them all. He would like PaGMO to record automatically whats the best solution ever found no?
Francesco Biscani
@bluescarni
Jun 07 2016 12:14
I thought the algo evolve would not replace better solutions?
Dario Izzo
@darioizzo
Jun 07 2016 12:15
Well, some algo are not elitists. So they do not keep the best solution. They replace it with new individuals. Nothing prevents evolve to just reinit the pop for example.
Francesco Biscani
@bluescarni
Jun 07 2016 12:16
yeah I understad that, but then if you are using an algo which nukes everything you should know that no?
maybe could be a parameter for the algorithm
or for a type of study like that the user maybe should take care of doing the recording of the best solutions?
you know I have nothing but contempt for users
fuck them entitled assholes
Dario Izzo
@darioizzo
Jun 07 2016 12:17
I think we either operate under the assumption that all algorithms are elitists, or we ask the user to record, or we add a champion, having pop record it.
The user could have troubles in recording this info in cluster setups with asynchronous archipelagos no?
Francesco Biscani
@bluescarni
Jun 07 2016 12:19
probably yeah, but as far as I remember (maybe I am wrong) most optimisation libraries I have seen don't give you back a worse input than thee one you put in if they canno toptimise
in any case it seems quite a edge case to justify the addition into the core
but whatevs
Dario Izzo
@darioizzo
Jun 07 2016 12:20
So you want to operate under the assumption that all algos are elitist. OK
Francesco Biscani
@bluescarni
Jun 07 2016 12:21
it sounds like we might want a system to track the evolution of individuals, or something like that
Francesco Biscani
@bluescarni
Jun 07 2016 12:30
I have a question on izzo compliancy
Dario Izzo
@darioizzo
Jun 07 2016 12:30
that is?
Francesco Biscani
@bluescarni
Jun 07 2016 12:30
I am putting doctests in the docstrings
how do you feel about that
Dario Izzo
@darioizzo
Jun 07 2016 12:30
example?
Francesco Biscani
@bluescarni
Jun 07 2016 12:31
Dario Izzo
@darioizzo
Jun 07 2016 12:32
And, how does it look in ipython?
Francesco Biscani
@bluescarni
Jun 07 2016 12:33
In [23]: pop.push_back?
Docstring:
push_back(x)

Adds one decision vector (chromosome) to the population.

Appends a new chromosome x to the population, evaluating its fitness and creating a new unique identifier for the newly
born individual. In case of exceptions, the population will not be altered.

Args:
    x (array or list of doubles): decision vector to be added to the population

Raises:
    ValueError: if the dimension of *x* is inconsistent with the problem dimension or the calculated fitness vector has
        a dimension which is inconsistent with the fitness dimension of the problem
    TypeError: if *x* cannot be converted to a vector of doubles

Examples:

>>> from numpy import array
>>> pop = population()
>>> pop.push_back([1])
>>> pop.push_back(array([2]))
>>> pop # doctest: +SKIP
[...]
List of individuals:
#0:
        ID:                     7905479722040097576
        Decision vector:        [1]
        Fitness vector:         [0, 0, 0]
#1:
        ID:                     11652046723302057419
        Decision vector:        [2]
        Fitness vector:         [0, 0, 0]
[...]
>>> pop.push_back(3) # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
   ...
TypeError: cannot convert the type '<class 'int'>' to a vector of doubles
Type:      method
Dario Izzo
@darioizzo
Jun 07 2016 12:33
I feel good ... tatatatatata
btw, look what I found on the internet: https://media.readthedocs.org/pdf/pygmo/newdocs/pygmo.pdf
Francesco Biscani
@bluescarni
Jun 07 2016 12:34
looks pretty professional
Dario Izzo
@darioizzo
Jun 07 2016 12:34
apparently we wrote it!
Francesco Biscani
@bluescarni
Jun 07 2016 12:35
make pdf from sphinx no
?
Dario Izzo
@darioizzo
Jun 07 2016 12:35
no idea .. I did not put it there
Francesco Biscani
@bluescarni
Jun 07 2016 12:35
holy fuck
are we really using .gif images in the current pygmo doc
latex chokes on them
Dario Izzo
@darioizzo
Jun 07 2016 12:36
what types are allowed then?
Francesco Biscani
@bluescarni
Jun 07 2016 12:36
png and jpg I think
Dario Izzo
@darioizzo
Jun 07 2016 12:37
only pagmo::de has a gif correct?
Francesco Biscani
@bluescarni
Jun 07 2016 12:37
schwefel too
Dario Izzo
@darioizzo
Jun 07 2016 12:41
fixed on cmaes branch
Dario Izzo
@darioizzo
Jun 07 2016 13:46
Do we like the naming get_problem, get_fevals etc. as opposed to problem, fevals .... ?
Francesco Biscani
@bluescarni
Jun 07 2016 13:46
@dario did you push the gif changes
Dario Izzo
@darioizzo
Jun 07 2016 13:46
nope
should I
Francesco Biscani
@bluescarni
Jun 07 2016 13:46
yes please
Dario Izzo
@darioizzo
Jun 07 2016 13:46
How can I cherry pick a commit?
I am on the cmaes branch
Francesco Biscani
@bluescarni
Jun 07 2016 13:47
just push it, I'll do it
Dario Izzo
@darioizzo
Jun 07 2016 13:47
good luck
I did not encapsulate it into one clean commit I am afraid ....
was probably better if you did it ....
convert a.gif a.jpg ....
did not even "test" it .... just run the command ...
let me know
Francesco Biscani
@bluescarni
Jun 07 2016 13:50
it's gonna mess up the merge, but ok
Dario Izzo
@darioizzo
Jun 07 2016 13:50
I pushed in any case
I think when I am done with cmaes we should merge everything and start from there again ....
Francesco Biscani
@bluescarni
Jun 07 2016 13:58
I did the merge, using pngs rather than jpgs
try pulling now
Dario Izzo
@darioizzo
Jun 07 2016 13:59
all good
Careful removing empty lines at the beginning of the docs .... may screw up the image placement ....
Francesco Biscani
@bluescarni
Jun 07 2016 14:02
holy fuck is this shit like AMPLshit
fucking doxygen
Dario Izzo
@darioizzo
Jun 07 2016 14:02
Not sure .... I think that it may matter (REST syntax is sensitive to spaces) if the option width is not specified ...
I am just saying .... I may be wrong though ... did not test it thoroughly once I found a solution.....
Francesco Biscani
@bluescarni
Jun 07 2016 14:04
the pdf now compiles, the only issue I see is that some images are the same width as the page
Dario Izzo
@darioizzo
Jun 07 2016 14:04
in theory we have a option width=3cm after images to take care of that ...
which images are wrong?
Francesco Biscani
@bluescarni
Jun 07 2016 14:05
population for instance
Dario Izzo
@darioizzo
Jun 07 2016 14:05
try putting * \image html population.jpg width=5cm
Francesco Biscani
@bluescarni
Jun 07 2016 14:06
it looks like only a couple images have the width specified
Dario Izzo
@darioizzo
Jun 07 2016 14:06
the problems mainly as I wanted the size to be uniform
for the rest I may have not put it ....
Francesco Biscani
@bluescarni
Jun 07 2016 14:06
I am surprised though that it works through this mess of conversion doxy -> sphinx -> latex
Dario Izzo
@darioizzo
Jun 07 2016 14:06
try to see if specifying a width solves it ...
Francesco Biscani
@bluescarni
Jun 07 2016 14:06
3 or 5?
Dario Izzo
@darioizzo
Jun 07 2016 14:06
to your tatse ....
try 5 if looks good
Francesco Biscani
@bluescarni
Jun 07 2016 14:10
it does not seem like the setting filters down to sphinx
or to the pdf, not sure
Dario Izzo
@darioizzo
Jun 07 2016 14:10
to sphinx it does in terms of html class ... without the problems images would be misplaced
to the pdf I hoped it did also in terms of the size ... but maybe not
Francesco Biscani
@bluescarni
Jun 07 2016 14:19
maybe... someday it'll be fixed
Dario Izzo
@darioizzo
Jun 07 2016 14:33
do you mind if for some mutable (algorithm memory) members I do not use the m_ convention?
they are fake data member anyway ... only there to allow the algo remember its previous evolve call
Francesco Biscani
@bluescarni
Jun 07 2016 14:33
does it bother you so much to add m_? :)
also think of thread safety with mutable
just saying
Dario Izzo
@darioizzo
Jun 07 2016 14:34
yes, they are a lot and the names are B, C, D, etc ... and they are used in a lot of equations
ading the _m makes the equations less readable ...
thread safety .... -> i though we discussed this memory mechanism already and is ok .. no?
Francesco Biscani
@bluescarni
Jun 07 2016 14:35
but on the other hand it makes it easier to understand they are member variables
Dario Izzo
@darioizzo
Jun 07 2016 14:35
which is less important in this case w.r.t. understanding the equations ....
Francesco Biscani
@bluescarni
Jun 07 2016 14:35
it's a matter of consistency in my view
not sure what you mean with the memory mechanism
Dario Izzo
@darioizzo
Jun 07 2016 14:36
I know .... but it really makes the code prettier in this case .....
it would be one only exception ....
Francesco Biscani
@bluescarni
Jun 07 2016 14:36
the memory is one thing, the mutability is another... the mutability of them makes it unsafe to call a const member concurrently, which is a trap
so it needs to be considered and documented carefully
Dario Izzo
@darioizzo
Jun 07 2016 14:37
how would you otherwise implement such a mechanism?
Francesco Biscani
@bluescarni
Jun 07 2016 14:38
I would need to know the specifics... what I am saying it that if I see a const function, my first thought is that function does not modify any state (it's const) so I can call it safely from multiple threads at the same time
that's the case in all the standard library for instance
but then if you have hidden state which changes, it's sneaky
Dario Izzo
@darioizzo
Jun 07 2016 14:39
I understand, I am trying to understand if its a necessity or if I made a wrong decision implementing it like that
Francesco Biscani
@bluescarni
Jun 07 2016 14:39
we have the same problem in the fitness() functions, I can't remember how we solved
if we did at all
I thought we said to put a lock or something
Dario Izzo
@darioizzo
Jun 07 2016 14:40
either a lock or we construct the random number generator at each call
But I am just looking at PaGMO legacy ... why is this problem not there?
Francesco Biscani
@bluescarni
Jun 07 2016 14:43
I am not saying it's necessarily a practical problem, it depends on how and what we implement in the parallel part of the code
Dario Izzo
@darioizzo
Jun 07 2016 14:43
ah right its a problem only if we need parallel inti of the pop
which is not in legacy ...
Francesco Biscani
@bluescarni
Jun 07 2016 14:43
at the minimum it needs to be displayed in flashy red in the documentation
for instance yes
Dario Izzo
@darioizzo
Jun 07 2016 14:44
the atomic counters do not have this problem right?
Francesco Biscani
@bluescarni
Jun 07 2016 14:45
no
Dario Izzo
@darioizzo
Jun 07 2016 14:45
well for the algo memory I can think of no other solution ...
and a lock is only an option if I write the code in some other way. Like copy the mutable params at the beginning of evolve, to then update their values at the end. At the moment I am coding so that these mutable params are updated a lot along the whole evolve cycle
Francesco Biscani
@bluescarni
Jun 07 2016 14:48
right, the next time you read a value in the evolve it might not be the same value you read earlier if another evolution is running in parallel on the same algorithm
Dario Izzo
@darioizzo
Jun 07 2016 14:49
So we need to make sure not to call that in parallel ...
which should be the case
Francesco Biscani
@bluescarni
Jun 07 2016 14:49
not only us, it needs to be documented for anyone using it, it is a public API marked const which is thread unsafe
Dario Izzo
@darioizzo
Jun 07 2016 14:50
documenting it is not a problem. the problem is if it is the correct decision
so, on the m_ ? you let it be?
Dario Izzo
@darioizzo
Jun 07 2016 15:32
Just noticed you reverted the css changes .... not good?
Dario Izzo
@darioizzo
Jun 07 2016 17:19
So here is a list of questions that I need your opinion on:
  • what about changing the names of the method pagmo::population::get_problem to pagmo::population::problem, same for get_fevals, get_hevals and get_gevals
  • can I make the up said exception on m_* for the data members? Or should we go for consistency?
  • Eigen represents all indexes of their classes with Index a.k.a. a signed type. So that when we construct them from our unsigned types (that is always) clang complains. What is the cleanest solution to deal with this? Load the code with static casts -> super ugly and honestly making an otherwise nice code horrible example:
    Eigen::MatrixXd::Identity(dim, dim);
    becomes:
    Eigen::MatrixXd::Identity(static_cast<Eigen::Index>(dim),static_cast<Eigen::Index>(dim));
Which is cleaner if we introduce an using Eigen; before, but still, is there not a better way?
Dario Izzo
@darioizzo
Jun 07 2016 17:40
Eigen::Index is actually only supported from eigen 3.3, older version would have to use Eigen::DenseIndex
Francesco Biscani
@bluescarni
Jun 07 2016 18:31
regarding the name changes, I am a bit hesitant because if later it turns out we need corresponding setters for some of those we will have to change them again

for the signed horribleness, there's no clean solution. I'd create a static private method in cmaes like this:

template <typename I>
static Eigen::Index _(I n)
{
    return static_cast<Eigen::Index>(n);
}

and then use is throughout the code:

Eigen::MatrixXd::Identity(_(dim),_(dim));

that's the least typing I can think of right now

Dario Izzo
@darioizzo
Jun 07 2016 18:42
But honestly ... could they not agree at least on the type of indexes ?? this must be creating horrible code for everybody using stl and eigen
What were they thinking?
Francesco Biscani
@bluescarni
Jun 07 2016 18:42
sfondi una porta aperta
but it is what it is I guess
Dario Izzo
@darioizzo
Jun 07 2016 18:44
il tutto perche un paio di coglioni nerd del cazzo dicono che con int e tutto piu veloce .....
Francesco Biscani
@bluescarni
Jun 07 2016 18:44
who?
Dario Izzo
@darioizzo
Jun 07 2016 18:44
piu veloce???? de che? di 1ns all anno? wow
Francesco Biscani
@bluescarni
Jun 07 2016 18:44
but it's complete bullshit anyway
it's most certainly not faster
e many more stronzi
Dario Izzo
@darioizzo
Jun 07 2016 18:56
I am really disappointed .... all the new cool c++14 stuff simplified the code and made it beatufil, and now this bullshi made it hugly again
but your template idea, at least made my day
clever stuff ...
Francesco Biscani
@bluescarni
Jun 07 2016 18:56
varie possibili ragioni per cui eigen vuole signed:
  • compatibilita' con fortran e librerie blas esistenti: blas nasce in fortran, dove non ci sono unsigned, e immagino che questo sia ereditato da molte librerie di linear algebra
  • forse piu' facile fare vettorizzazione
Dario Izzo
@darioizzo
Jun 07 2016 18:56
still ugly, but its the lesser evil
Francesco Biscani
@bluescarni
Jun 07 2016 18:57
ma sono int o long gli indici?
Dario Izzo
@darioizzo
Jun 07 2016 18:57
sono std::ptrdiff_t
Francesco Biscani
@bluescarni
Jun 07 2016 18:57
Dario Izzo
@darioizzo
Jun 07 2016 18:57
ma puoi decidere con un parametro template un qualsiasi tipo signed
Francesco Biscani
@bluescarni
Jun 07 2016 18:57
no unsigned?
Dario Izzo
@darioizzo
Jun 07 2016 18:58
in eigen3 credo siano tutti std::ptrdiff_t
no, cosi dicono nei docs
non so come lo evitano
devi vedere eigen 3.3 docs
Francesco Biscani
@bluescarni
Jun 07 2016 18:58
beh basta fare uno static assert
static_assert(std::is_signed<T>::value,"sad panda")
Dario Izzo
@darioizzo
Jun 07 2016 18:59
le bestemmie
non sai quante
Francesco Biscani
@bluescarni
Jun 07 2016 19:00
lol
Dario Izzo
@darioizzo
Jun 07 2016 19:00
no, no non ridere
qui c'e' da piangere solo
tie guarda che cagata
Dario Izzo
@darioizzo
Jun 07 2016 19:20
Poi non capisco .... ma fare lo static cast e' la stessa cosa che ignorare il problema vero?
se ho un unsigned int che non e rappresentabile come int che fa il cast? UB?
Francesco Biscani
@bluescarni
Jun 07 2016 19:32
yep
perche' non metti auto sdim = _(dim); all'inizio e usi questo?
il cast safe e' numeric_cast
ah adesso vedo che non usi solo dim
Marcus Märtens
@CoolRunning
Jun 07 2016 20:06
Guys, it is trivial, but I am a bit puzzled about this loop:
    auto fdim = m_points[0].size();
    vector_double ref_point(m_points[0].begin(), m_points[0].end());

    for (decltype(fdim) f_idx = 0u; f_idx < fdim; ++f_idx) {
      for (std::vector<vector_double>::size_type idx = 1; idx < m_points.size(); ++idx) {
        ref_point[f_idx] = std::max(ref_point[f_idx], m_points[idx][f_idx]);
      }
    }
how would you make it better? You mentioned std::max_element, but for it I need some iterators... I do not know how to iteratore m_points orthogonal.
Dario Izzo
@darioizzo
Jun 07 2016 20:45
what type is m_points ?
Dario Izzo
@darioizzo
Jun 07 2016 21:01
@bluescarni why using CEREAL_LOAD_FUNCTION_NAME and not load ?
Francesco Biscani
@bluescarni
Jun 07 2016 21:01
I just copied the way it's done in cereal
here I see the usual load, save ... the macros are only if we decide to change those names ...
Or I am understanding this wrong?
Francesco Biscani
@bluescarni
Jun 07 2016 21:04
I just copied what they do in their own implementation of the serialization functions, https://github.com/USCiLab/cereal/pull/277/files see here as well
the idea was to have this stuff included in cereal eventually, and that's the way they do it
Dario Izzo
@darioizzo
Jun 07 2016 21:05
k .. so for Eigen I follow the same idiom?
Francesco Biscani
@bluescarni
Jun 07 2016 21:07
probably not, I don't think they would accept eigen serialization in the core as far as I have understood
so you are not bound by whatever reason they have for the macro
Dario Izzo
@darioizzo
Jun 07 2016 21:15
but for consistency within PaGMO I will
I am also not serializing properly the templated Eigen Matrix class, only the one I use
Francesco Biscani
@bluescarni
Jun 07 2016 21:47
I think I am done with the population documentation in Python... that should set the template for the rest
Marcus Märtens
@CoolRunning
Jun 07 2016 23:22
m_points is a std::vector<vector_double> if i am not wrong