These are chat archives for bluescarni/pagmo_reborn

13th
May 2016
Dario Izzo
@darioizzo
May 13 2016 07:31
At the moment we construct population as:
population pop{problem{rosenbrock{5u}}, pop_size);
Should we also add a constructor to let the following syntax work:
population pop{rosenbrock{5u}, pop_size);
This would need a templated constructor of the sort:
template <typename T>
        explicit population(const T &p, size_type pop_size = 0u, unsigned int seed = pagmo::random_device::next()) : m_prob(problem{T}), m_e(seed), m_seed(seed)
        {
            for (size_type i = 0u; i < pop_size; ++i) {
                push_back(decision_vector());
            }
        }
Dario Izzo
@darioizzo
May 13 2016 07:39
or maybe, and here I am going in unknown terrain for me:
template <typename T>
        explicit population(T &&x, size_type pop_size = 0u, unsigned int seed = pagmo::random_device::next()) : m_prob(problem{std::forward<T>(x)}), m_e(seed), m_seed(seed)
        {
            for (size_type i = 0u; i < pop_size; ++i) {
                push_back(decision_vector());
            }
        }
Marcus Märtens
@CoolRunning
May 13 2016 07:40
&&x ?!
Dario Izzo
@darioizzo
May 13 2016 07:41
I am just playing around stuff I do not know / understand :) Its a universal reference in this case. Which is confusing as in c++11 they also introduced the same to indicate an r-value reference
Marcus Märtens
@CoolRunning
May 13 2016 07:41
as for the original questions: I have no strong opinion
It is true that the problem-object is sort of not needed for much more than pushing it into pop
so with this syntax we could just skip one repeating step
however, I am also fine without it.
Dario Izzo
@darioizzo
May 13 2016 08:02
I tried it out, works (the universal reference version) after I disable the generic constructor it T is population (otherwise it would shadow the copy constructor). @bluescarni Is this something we want? I see the following pro/con
  • PRO: we would offer a cleaner syntax
  • CONS: one template per problem would have to be instantiated for the python exposition
Dario Izzo
@darioizzo
May 13 2016 08:16

:) cool I just realized that the generic constructor:

        template <typename T, generic_ctor_enabler<T> = 0>
        explicit population(T &&x, size_type pop_size = 0u, unsigned int seed = pagmo::random_device::next()) : m_prob(problem{std::forward<T>(x)}), m_e(seed), m_seed(seed)
        {
            for (size_type i = 0u; i < pop_size; ++i) {
                push_back(decision_vector());
            }
        }

is the only one needed and allows for both population pop{problem{rosenbrock{5u}}, pop_size); and population pop{rosenbrock{5u}, pop_size);

The power of Universal references, they can bind to anything!!!
Francesco Biscani
@bluescarni
May 13 2016 08:57
The constructor is good, but the implementation can be improved
you got it right with the universal reference :+1:
but here:
Dario Izzo
@darioizzo
May 13 2016 08:58
Lets see if I get it .. direct me
Francesco Biscani
@bluescarni
May 13 2016 08:58
m_prob(problem{std::forward<T>(x)})
Dario Izzo
@darioizzo
May 13 2016 08:58
no need for problem
use directly the forward?
Francesco Biscani
@bluescarni
May 13 2016 08:58
yep.. it still works because the generic problem can be used as a concrete problem, but it introduces unnecessary indirections
yes
Dario Izzo
@darioizzo
May 13 2016 08:59
indeed ...
Francesco Biscani
@bluescarni
May 13 2016 08:59
basically what you wrote above is a forwarding ctor... construct the problem with whatever was passed as argument
that's what universal references are for :)
Dario Izzo
@darioizzo
May 13 2016 09:00
and it takes priority over all overloads?
Francesco Biscani
@bluescarni
May 13 2016 09:00
what do you mean
Dario Izzo
@darioizzo
May 13 2016 09:00
if i do write population(type d, unsigned int) ... which will be called when
T = type
Francesco Biscani
@bluescarni
May 13 2016 09:01
it's not about taking precedence, it is about whether the signature of the ctor is valid for the arguments you pass to it
as it is written, it will accept basically any T as argument
(except for T = population, as I imagine you disabled that)
but of course it will fail at compile time if the problem cannot be constructed from T
Dario Izzo
@darioizzo
May 13 2016 09:02
        explicit population(GIggio x, size_type pop_size = 0u, unsigned int seed = pagmo::random_device::next()) : m_prob(problem{giggio}), m_e(seed), m_seed(seed)
        {
            for (size_type i = 0u; i < pop_size; ++i) {
                push_back(decision_vector());
            }
        }
so if I add this one, and then call population pop(GIggio{});
which constructor will be called?
yes its disabled.
Francesco Biscani
@bluescarni
May 13 2016 09:03
as it is written above, the Giggio constructor will be called... but it would be different according to how you write the giggio ctor
for instance, if you write:
population(const GIggio &x,...(

Gigggio g;
population p(g,...);
then the forwarding ctor would be called
the reason is that here g is a non-const instance of Giggio
so the compilar has to choose between:
Dario Izzo
@darioizzo
May 13 2016 09:05
so the universal takes precedence in the list of possible overloads.....
Francesco Biscani
@bluescarni
May 13 2016 09:05
yes because the const reference ctor requires a conversion
Dario Izzo
@darioizzo
May 13 2016 09:05
k
anyway, so we leave the new population constructor?
no troubles in python?
Francesco Biscani
@bluescarni
May 13 2016 09:06
I think it's useful, but we should start adding some conceptual checking to enable these generic constructors
Dario Izzo
@darioizzo
May 13 2016 09:06
such as?
Francesco Biscani
@bluescarni
May 13 2016 09:07
for instance, the generic problem ctor right now is enabled only if T is not a problem, but, apart from that, it swallows everythin
Dario Izzo
@darioizzo
May 13 2016 09:07
if problem cannot be contstructed from T it does not work ...
is that not the conceptual check?
Francesco Biscani
@bluescarni
May 13 2016 09:07
no because it raises an error only if you actually instantiate the constructor
it does not raise an error when it examines the declaration of the ctor
ideally, we would add a clause to the generic ctor enabler
like this:
enable_if<!std::is_same<T,problem>::value && is_concrete_problem<T>::value>
Dario Izzo
@darioizzo
May 13 2016 09:09
is_user_problem maybe ... but ok
Francesco Biscani
@bluescarni
May 13 2016 09:09
is_concrete_problem would be a trait that is true it T has at least fitness, bounds, etc.
then when you try, let's say:
problem p(123);
this will not see any suitable ctor
Dario Izzo
@darioizzo
May 13 2016 09:10
python or c++ ?
Francesco Biscani
@bluescarni
May 13 2016 09:10
c++
Dario Izzo
@darioizzo
May 13 2016 09:10
and raise a compilation error
whiche he would anyway as problem cannot be constructed from 123
Francesco Biscani
@bluescarni
May 13 2016 09:11
yes but a different one :) because then you could write in the generic ctor enabler of population
enable_if<std::is_constructible<problem,T>::value
now that is_construstible would be false
Dario Izzo
@darioizzo
May 13 2016 09:11
SO you want to add some scaffolding to generate better error messages?
Francesco Biscani
@bluescarni
May 13 2016 09:11
whereas at the moment that type trait would be true because problem swallows everything
well this would also disambiguate giggio
because the constructor would not be considered any more if giggio is not a problem
regardless of references and stuff like that
Dario Izzo
@darioizzo
May 13 2016 09:13
Let me see what error is raised by population{123}
/home/dario/Documents/PaGMOreborn/tests/../include/problem.hpp:116:5: error: static assertion failed: A problem must provide a fitness function 'vector_double fitness(const vector_double &x) const' and a method to query the number of objectives 'vector_double::size_type get_nobj() const'.
     static_assert(has_fitness<T>::value,
     ^
/home/dario/Documents/PaGMOreborn/tests/../include/problem.hpp:119:5: error: static assertion failed: A problem must provide getters for its bounds [std::pair<vector_double, vector_double> get_bounds() const].
     static_assert(has_bounds<T>::value,
So as far as error goes this is clear enough for me at least.
Francesco Biscani
@bluescarni
May 13 2016 09:14
it's not only about error messages, as I said above
Dario Izzo
@darioizzo
May 13 2016 09:14
the disambiguation?
Francesco Biscani
@bluescarni
May 13 2016 09:14
right now we have generic constructors that will swallow everything, and we cannot understand if they are valid or not before instantiating them... std::is_constructible<problem,int>::value returns true right now, which is not so ideal
it's not urgent
or anything like that
but if we start using these facilities in a generic way we should take care of this sooner or later
Dario Izzo
@darioizzo
May 13 2016 09:16
I get the point, its just that I am not convinced we need this added scaffolding, maybe we could wait to see if this is a problem?
I see it as important only if we need to add one more constructor and want to disambiguate, otherwise as it is meets all requirment no?
Francesco Biscani
@bluescarni
May 13 2016 09:17
it gives clearer error messages and it is future proof when they add concepts in the language, but we can live with it for now
we just need to be extra careful about how the consturctors are called
Dario Izzo
@darioizzo
May 13 2016 09:18
ok. Just FYI this is one of the few error messages I actually got immediatly ..... (i mean the one above)
Francesco Biscani
@bluescarni
May 13 2016 09:18
thanks to static assertion yeah
in C++14 the message you would get with my proposal would probably be less understandable :)
but with concepts you would get something like:
The constructor has been disabled because the type Giggio does not meet the requirements of the ``problem`` concept
Dario Izzo
@darioizzo
May 13 2016 09:19
concepts -> c++17 right
Francesco Biscani
@bluescarni
May 13 2016 09:19
This message was deleted
as far as standardization goes
Dario Izzo
@darioizzo
May 13 2016 09:20
cool
Francesco Biscani
@bluescarni
May 13 2016 09:20
btw
you could also implement a similar templated push back
maybe it's a good idea to just remove any reference to the problem class in the population interface
Dario Izzo
@darioizzo
May 13 2016 09:21
why would you push back anything else but vector_double?
Francesco Biscani
@bluescarni
May 13 2016 09:21
lol you are right
I thought about pushing back problems for some reason
Dario Izzo
@darioizzo
May 13 2016 09:22
in racing .... we may have to ...
like racing problems, individuals or algorithms ...
we will see
Francesco Biscani
@bluescarni
May 13 2016 09:23
well in archipelago as well we should have archi.push_back(de,roesnbrock,...)
maybe, we'll see
Dario Izzo
@darioizzo
May 13 2016 09:23
woah, woah .... no island or the island automatically deduced from the user problem?
Francesco Biscani
@bluescarni
May 13 2016 09:23
maybe just use the default island
Dario Izzo
@darioizzo
May 13 2016 09:24
an island though as a pop and an algo
archi.push_back({de, pop1},{pso, pop2} ...)
anyway just brainsotrming here
Francesco Biscani
@bluescarni
May 13 2016 09:25
yeah I mean that the arguments to push_back should just be forwarded to the ctor of island, which presumably would have a ctor from algo, prob, etc.
Dario Izzo
@darioizzo
May 13 2016 09:25
difficult... what is the meanin og pushing back an aglorithm? What should the island problem be?
Francesco Biscani
@bluescarni
May 13 2016 09:26
template <typename Algo, typename Prob>
explicit island(Algo &&a, Prob &&p, size_type n);
something like this
template <typename Algo, typename Prob>
void archipelago::push_back(Algo &&a, Prob &&p, size_type n)
{
    push_back(island(std::forward<...));
}
anyway we'll see
Dario Izzo
@darioizzo
May 13 2016 09:28
ah right now I get it .. yes maybe cool
Francesco Biscani
@bluescarni
May 13 2016 11:04
so now pygmo compiles again at least
Francesco Biscani
@bluescarni
May 13 2016 11:23

should we have a full exposition of the concrete C++ problems? right now in Python you can do:

p = _core.problem(_core.hock_schittkowsky_71())

and p has all the stuff exposed. But if you do:

p = _core.hock_schittkowsky_71()

this one has no stuff exposed

Dario Izzo
@darioizzo
May 13 2016 11:24
May be nice not to expose to the user those, preventing misuse ... :)
I would say no, if needed in the future we can add
Francesco Biscani
@bluescarni
May 13 2016 11:25
looks good to me, less code to write :p
Dario Izzo
@darioizzo
May 13 2016 11:25
you can still extract in anycase
Francesco Biscani
@bluescarni
May 13 2016 11:25
yeah but you still have no methods exposed
Dario Izzo
@darioizzo
May 13 2016 11:26
so I cannot call prob.extract(ackley).best_known?
Francesco Biscani
@bluescarni
May 13 2016 11:26
right now the constructor is the only stuff which is exposed in the concrete problems
well hs71 anyway, haven't exposed others :)
Dario Izzo
@darioizzo
May 13 2016 11:27
Can I access in python the best_known?
Francesco Biscani
@bluescarni
May 13 2016 11:27
right now the constructor is the only stuff which is exposed in the concrete problems
Dario Izzo
@darioizzo
May 13 2016 11:27
Can I access in python the best_known?
Francesco Biscani
@bluescarni
May 13 2016 11:27
:)
it's not hard to write a function that exposes correctly the problems, generically
then I suppose one can add custom expositions for specific problems
it was more a question of intent
Dario Izzo
@darioizzo
May 13 2016 11:29
and then add manually the specific cases?
ok
I think it should be done then.
Francesco Biscani
@bluescarni
May 13 2016 11:30
another thing is... do we need to have has_gradient_sparsity in the problem?
Dario Izzo
@darioizzo
May 13 2016 11:30
In the zdt suite for example there are methods that need to be called ...
where is this question from?
Francesco Biscani
@bluescarni
May 13 2016 11:30
because right now regardless of what that returns, a call to gradient_sparsity will never fail
C++ or Python, does not matter
so that is really a flag for user provided sparsity
is it really important to know if the sparsity is provided by the user or it is assumed and computed dense?
Dario Izzo
@darioizzo
May 13 2016 11:32
Not sure. Probably not.
Francesco Biscani
@bluescarni
May 13 2016 11:35
In [25]: p.has_gradient()
Out[25]: False

In [26]: p.gradient([1.])
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-26-f20a22bee010> in <module>()
----> 1 p.gradient([1.])

RuntimeError: 
function: gradient
where: /home/yardbird/repos/PaGMOreborn/pygmo/_core.cpp, 186
what: Gradients have been requested but they are not implemented or not implemented correctly.

this makes sense

In [27]: p.gradient_sparsity()
Out[27]: [(0, 0)]

In [28]: p.has_gradient_sparsity()
Out[28]: False

This a bit less :)

Dario Izzo
@darioizzo
May 13 2016 11:36
remove
its probably a result of trying to be consistent
Francesco Biscani
@bluescarni
May 13 2016 11:36
but then we need to do it from C++ as well
Dario Izzo
@darioizzo
May 13 2016 11:36
yep
Francesco Biscani
@bluescarni
May 13 2016 11:39
I'll do it at home, cannot do heavy editing on this shitty setup with the laptop
I fucking hate it
to work on laptops
Dario Izzo
@darioizzo
May 13 2016 11:39
:) btw i passed to atom ... love it
and no more trailing spaces commits :)
Francesco Biscani
@bluescarni
May 13 2016 11:41
it's pretty good
Francesco Biscani
@bluescarni
May 13 2016 11:51
I have 7 packages and 2 themes installed at the moment
Dario Izzo
@darioizzo
May 13 2016 11:52
which packages?
Let me clone your settings :)
Francesco Biscani
@bluescarni
May 13 2016 11:52
I am wondering how it deals with the situation when 2 packages want to touch the same thing (e.g., syntax highlighting)
Dario Izzo
@darioizzo
May 13 2016 11:52
I installed the python outo completionj ninja
works very well
gives you the suggestions and docs as if you were in a notrbook
Francesco Biscani
@bluescarni
May 13 2016 11:53
I am using:
  • auto-detect-indentation
  • docblockr
  • language-cmake
  • language-cpp14
  • language-latex
  • latex
  • minimap
  • clang-format (currently disabled)
Themes:
  • atom-material-ui
  • atom-material-syntax
https://atom.io/packages/hydrogen this one looks interesting as well but haven't tried it yet :)
Francesco Biscani
@bluescarni
May 13 2016 12:03
so regarding the numpy stuff... we gonna require numpy as prereq for pygmo?
Dario Izzo
@darioizzo
May 13 2016 12:06
I think its fair
numpy is to python what std is to c++
in my mind
Francesco Biscani
@bluescarni
May 13 2016 12:07
well now non allarghiamoci :)
so the question is
do we require that when one implements a python problem, one has to work with arrays, or should lists be ok too?
Dario Izzo
@darioizzo
May 13 2016 12:08
lists should be ok too IMO
Francesco Biscani
@bluescarni
May 13 2016 12:08
class prob(object):
    def fitness(self,a):
        return [a[0]*a[0]]
or
class prob(object):
    def fitness(self,a):
        return array([a[0]*a[0]])
and is it ok to force that a must be considered as a numpy array always
sometimes I really hate python, the type system is so squishy
Dario Izzo
@darioizzo
May 13 2016 12:11
I prefer the first version. Would be ideal if both worked
I would like a system where if I use arrays ok, it works, but I am not forced to
Francesco Biscani
@bluescarni
May 13 2016 12:12
yeah it would be best, but then there's gonna be some code that does all this checking and converting
Dario Izzo
@darioizzo
May 13 2016 12:13
So we need to stick to one decision / syntax? If so lets go for the most efficient. If equal for the one without array
Francesco Biscani
@bluescarni
May 13 2016 12:13
I think we can have both, just trying to fix ideas down
    virtual vector_double fitness(const vector_double &dv) const override final
    {
        return attr(m_value,"fitness").call(dv).cast<vector_double>();
    }
that's the binding code right now that implements the fitness calculation from the user-defined python problem
that is, get the fitness method from the python problem, call it with dv as argument, and cast the result back to vector_double
so in order to support arrays we need the following changes:
  • convert dv to a numpy object (as right now it is converted to a list of floats before being passed to the concrete fitness function)
  • examine the result of the user fitness: if it is a list, convert it to an array, if it is an array it's good, otherwise error out
something along these lines
Dario Izzo
@darioizzo
May 13 2016 12:23
Hey did you follow the PaGMO channel?
We could get some funding in the PaGMO fundation to develop PaGMO 2.x :)
Some guy wants to pay 40000 dollars to fix the windows multithreading problem in PyGMO :)
Francesco Biscani
@bluescarni
May 13 2016 12:25
so should I just resign here? :)
Dario Izzo
@darioizzo
May 13 2016 12:26
:) I doubt we would pocket any of that. .... probably better to accept a donation to some obscure PaGMO fundation entity ... but shall we organize this web x
?
Francesco Biscani
@bluescarni
May 13 2016 12:27
but what would be the use of the money then?
if it is money intended for development I mean
Dario Izzo
@darioizzo
May 13 2016 12:29
we can pay developers (you also) from the fundation, I guess
I have no fucking idea
Francesco Biscani
@bluescarni
May 13 2016 12:30
I was joking about resigning of course ;)
Dario Izzo
@darioizzo
May 13 2016 12:30
but its cool that someone is willing to pay 40000$ to fix a bug in PaGMO
Francesco Biscani
@bluescarni
May 13 2016 12:31
well it's a rather big issue
I still don't understand where this guy comes from
Dario Izzo
@darioizzo
May 13 2016 12:31
easily fixed
use linux
Ask him
I guess some company that does consultancy?
Marcus Märtens
@CoolRunning
May 13 2016 12:33
I read it
Francesco Biscani
@bluescarni
May 13 2016 12:33
@LucGuj
that I'm ready to pay 41000$ to have it
to continuum
analytics
Marcus Märtens
@CoolRunning
May 13 2016 12:33
I don't think that guy is serious
Francesco Biscani
@bluescarni
May 13 2016 12:33
why would he pay continuum
bluescarni @bluescarni scratches head
Francesco Biscani
@bluescarni
May 13 2016 12:34
pagmo is GPL, even if they fixed it on their own they would need to get it back into pagmo or fork it or something like that
Marcus Märtens
@CoolRunning
May 13 2016 12:34
I would say: donations are welcome :D
Dario Izzo
@darioizzo
May 13 2016 12:34
Still worth to talk to him in a web ex maybe he could donate 5000 euros ... its still a conference for us or a few months of devel ...
Francesco Biscani
@bluescarni
May 13 2016 12:35
talking does no harm
Marcus Märtens
@CoolRunning
May 13 2016 12:35
But what is his problem?
Francesco Biscani
@bluescarni
May 13 2016 12:35
but 5000 euro is maybe 1 months of full development
Marcus Märtens
@CoolRunning
May 13 2016 12:35
Is it fixable?
Francesco Biscani
@bluescarni
May 13 2016 12:35
unless you get a student
Dario Izzo
@darioizzo
May 13 2016 12:35
Multiprocessing doesn not work in Windows ..... its an old bug in python / pagmo
I guess so, not by me :)
Marcus Märtens
@CoolRunning
May 13 2016 12:36
I have no clue - I just copy and paste old stuff
Francesco Biscani
@bluescarni
May 13 2016 12:36
after taxes it's half of that, about 1 month wage
Dario Izzo
@darioizzo
May 13 2016 12:36
the point of having some sort of fundation would be to not pay taxes
Francesco Biscani
@bluescarni
May 13 2016 12:37
but if you pay a developer he still has to pay income tax on that
Dario Izzo
@darioizzo
May 13 2016 12:37
"al nero" ... :) a napolitan developer
Francesco Biscani
@bluescarni
May 13 2016 12:37
unless it becomes a travel reimbursement of something lke that
yeah lol
Marcus Märtens
@CoolRunning
May 13 2016 12:37
I guess though, we should provide an option for people to support us financial
Dario Izzo
@darioizzo
May 13 2016 12:38
Any ideas? How can this be done easily?
Francesco Biscani
@bluescarni
May 13 2016 12:38
let's talk to the guy, let's see
Dario Izzo
@darioizzo
May 13 2016 12:38
ok can I propose next week?
Marcus Märtens
@CoolRunning
May 13 2016 12:38
In general - not only for this guy
Dario Izzo
@darioizzo
May 13 2016 12:38
At what time?
Marcus Märtens
@CoolRunning
May 13 2016 12:38
Next week is cool
I have almost no constraints timewise
Francesco Biscani
@bluescarni
May 13 2016 12:38
it's national holiday here on Monday, so that would be nice for me
Marcus Märtens
@CoolRunning
May 13 2016 12:38
Might even go to ESTEC out of boredom
Dario Izzo
@darioizzo
May 13 2016 12:38
:)
monday i will not be home ...
Francesco Biscani
@bluescarni
May 13 2016 12:39
how can you still get into estec?
Dario Izzo
@darioizzo
May 13 2016 12:39
ATC community
ACT
We make badges with unlimited entry rights
Marcus Märtens
@CoolRunning
May 13 2016 12:39
Visit0r badge
Francesco Biscani
@bluescarni
May 13 2016 12:39
I am working from home on wednesday, but I think I might be alone with Ben for a while so not sure
Dario Izzo
@darioizzo
May 13 2016 12:40
I will say wednsday then .. 14:00 hrs?
Francesco Biscani
@bluescarni
May 13 2016 12:40
I need to check with Miriam
Marcus Märtens
@CoolRunning
May 13 2016 12:40
Fine with me
Francesco Biscani
@bluescarni
May 13 2016 12:40
she told me something about wednesday but of course I was not paying much attention ;)
I just registred the timestamp
Dario Izzo
@darioizzo
May 13 2016 12:41
:)
Francesco Biscani
@bluescarni
May 13 2016 12:43
let's say wednesday, but I have no idea if webex works from linux.. does it?
how about a webrtc or a hangout
Marcus Märtens
@CoolRunning
May 13 2016 12:43
I never used webex - difficult?
Dario Izzo
@darioizzo
May 13 2016 12:43
let me propose it
Francesco Biscani
@bluescarni
May 13 2016 12:43
it's some software that corporations love
Marcus Märtens
@CoolRunning
May 13 2016 12:45
like Lotus Notes?
Francesco Biscani
@bluescarni
May 13 2016 12:45
it's for conferences
video conferences I mean
Marcus Märtens
@CoolRunning
May 13 2016 12:45
:smile:
Francesco Biscani
@bluescarni
May 13 2016 12:46
not the conferences that are social happenings in which scientist talk about irrelevant results, derivative research and have good food and wine
Dario Izzo
@darioizzo
May 13 2016 13:00
We need the webex plugin installed on the browser if I am not mistaken.
Marcus Märtens
@CoolRunning
May 13 2016 13:05
This is funny
Francesco Biscani
@bluescarni
May 13 2016 13:06
I think these guys are from Dow Chemical
Dario Izzo
@darioizzo
May 13 2016 13:06
SO how do they harm the world? guns? weapons? slavery trade?
Dario Izzo
@darioizzo
May 13 2016 13:08
Is this them? really?
looks like your regular megacorp
Dario Izzo
@darioizzo
May 13 2016 13:08
well then 4000000$ is the minimum
toto talk to us :)
Francesco Biscani
@bluescarni
May 13 2016 13:09
yeah my thoughts exactly
:)
these guys must be loaded
Dario Izzo
@darioizzo
May 13 2016 13:11
what install prefix should I use to install locally pygmo?
Francesco Biscani
@bluescarni
May 13 2016 13:12
there's no intallation target at the moment
just run ipython from the build dir
Dario Izzo
@darioizzo
May 13 2016 13:12
k
Francesco Biscani
@bluescarni
May 13 2016 13:12
from pygmo import _core
Dario Izzo
@darioizzo
May 13 2016 13:12
just commited the last of the three open points logged above ....
the counter reset ...
now algo docs are missing, then we are ready to implement the first algos
Francesco Biscani
@bluescarni
May 13 2016 13:14
ok nice
Dario Izzo
@darioizzo
May 13 2016 13:15
cool works here :)
How will we deal with docs in python? Usual way of rewriting the init ?
Francesco Biscani
@bluescarni
May 13 2016 13:15
we just need to document the problem class don't we?
and the concrete C++ problems I guess
Dario Izzo
@darioizzo
May 13 2016 13:16
and the algo and the pop and the concrete algo etc ...
Francesco Biscani
@bluescarni
May 13 2016 13:16
yeah
Dario Izzo
@darioizzo
May 13 2016 13:16
"just"
Francesco Biscani
@bluescarni
May 13 2016 13:16
but I think we can do it from pybind11 directly
Dario Izzo
@darioizzo
May 13 2016 13:17
Obtaining a nice effect? lets hope ... also there is the kwarg issue
Francesco Biscani
@bluescarni
May 13 2016 13:17
for instance we can build automatic docs for the concrete problems
with a bit of metaprogramming
Dario Izzo
@darioizzo
May 13 2016 13:17
but we cannot have kwargs right?
Thats something users love and me too
algo = algorithm(de(cr=0.4, gen=4));
Francesco Biscani
@bluescarni
May 13 2016 13:18
there's some support in pybind for stuff like that, but I've never used it
Dario Izzo
@darioizzo
May 13 2016 13:18
let look into it then ..
need to go now boat trip today. and weekend with visitors ... will be off the grid mainly ...
Francesco Biscani
@bluescarni
May 13 2016 13:19
pfft
Dario Izzo
@darioizzo
May 13 2016 13:19
gia' ...
cia'
Francesco Biscani
@bluescarni
May 13 2016 13:19
ciao!
Marcus Märtens
@CoolRunning
May 13 2016 13:19
ciao