IRC logs of #shogun for Friday, 2018-02-23

--- Log opened Fri Feb 23 00:00:14 2018
-!- travis-ci [~travis-ci@ec2-54-159-25-82.compute-1.amazonaws.com] has joined #shogun00:02
travis-ciit's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/34502853400:02
-!- travis-ci [~travis-ci@ec2-54-159-25-82.compute-1.amazonaws.com] has left #shogun []00:02
-!- witness [uid10044@gateway/web/irccloud.com/x-eeknbaklfwlebfqp] has quit [Quit: Connection closed for inactivity]00:24
-!- Netsplit *.net <-> *.split quits: shogun-buildbot_08:31
-!- lisitsyn [~lisitsyn@37.139.2.75] has quit [Ping timeout: 260 seconds]08:34
-!- lisitsyn [~lisitsyn@37.139.2.75] has joined #shogun08:34
-!- Netsplit over, joins: shogun-buildbot_08:57
-!- Netsplit *.net <-> *.split quits: shogun-buildbot_09:12
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun09:33
-!- shogitter [~nodebot@ks312251.kimsufi.com] has quit [Remote host closed the connection]10:24
-!- shogitter [~nodebot@ks312251.kimsufi.com] has joined #shogun10:25
-!- sukey [~nodebot@ks312251.kimsufi.com] has joined #shogun10:25
-!- mode/#shogun [+o sukey] by ChanServ10:25
-!- travis-ci [~travis-ci@ec2-54-159-172-186.compute-1.amazonaws.com] has joined #shogun10:40
travis-ciit's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/34516463010:40
-!- travis-ci [~travis-ci@ec2-54-159-172-186.compute-1.amazonaws.com] has left #shogun []10:40
-!- shenghac [uid281668@gateway/web/irccloud.com/x-nxgvoqoyogpzaksq] has quit [Quit: Connection closed for inactivity]10:52
-!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Remote host closed the connection]11:12
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun11:15
@wikingshogun-buildbot: force build 'woboq - nightly'11:15
lisitsynoh woboq?11:16
lisitsynwiking: did you set up woboq?11:16
@wikingyes11:17
@wikingor trying to11:17
lisitsynah you naughty devops11:17
@wiking?11:17
lisitsyn:P11:17
lisitsynjk11:17
@wikingif you call me one more time devop11:17
@wikingi'm gonna rm -rf mysekf11:17
@wikingfrom all machines11:17
@wiking:)11:17
lisitsynhahah11:18
-!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Remote host closed the connection]11:18
lisitsynwiking: nooo don't destroy buildbot11:18
lisitsyn:)11:18
lisitsynwiking: why do you want woboq?11:18
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun11:18
@wikingshogun-buildbot: force build 'woboq - nightly'11:18
@wikinglisitsyn, some more understanding of this mess11:19
lisitsynokie11:19
@wikingbut i should do breathe as well11:19
@wikingcurrently working on random refactor11:19
@wikingits a mess11:19
lisitsynbut you need quantum physics to understand the mess, don't you11:19
lisitsyn:P11:19
@wiking:)11:19
lisitsynok sounds like I have time to clone arrays11:20
lisitsynwiking: did you know cloning arrays is forbidden everywhere but in china?11:20
@wiking?11:20
lisitsynwiking: oh my jokes are missing the target today11:20
lisitsyn:(11:21
@wiking:)11:22
@wikingoh man this is shit11:24
@wikingstopping it11:24
@wiking:)11:24
@wikingthnx11:24
@wiking:>11:24
@wikingsomebody should pick it up one day11:24
lisitsynwiking: pick what?11:24
@wikingwoboq11:24
lisitsynno work?11:25
@wikingnowork11:25
@wiking:)11:25
lisitsynno trabaje11:25
@wikingthis is super swap11:27
@wikingstatic inline void swap(T &a,T &b)11:27
@wiking{11:27
@wikingT c=a;11:27
@wikinga=b;11:27
@wikingb=c;11:27
@wiking}11:27
@wiking:))))11:27
@wikingman shit we have in this codebase is amazing11:27
lisitsynwiking: std::tie(a, b) = std::tie(b, a)!11:28
@wiking:)11:28
lisitsynwiking: but what's wrong with that swap en general?11:29
lisitsynuna puedo a utilizar eso11:29
lisitsynno?11:29
lisitsyn:P11:29
@wikingi mean11:29
@wikingi doubt that the compiler can detect that11:30
@wikingin case of int or other primitive types11:30
@wikingthat swap is 1 instrucation11:30
@wikingright? :)11:30
lisitsynyes but there is no standard way to swap11:30
lisitsynhow to solve that?11:30
@wikingstd::swap?11:31
lisitsynah11:31
lisitsynoops11:31
lisitsyn:P11:31
@wiking:D11:31
lisitsynwiking: well that's from ancient times then11:31
lisitsynwhen std was no std11:31
@wikingbut this actually should be changes more11:31
@wikingas this is about random shuffling an array11:31
@wikingwoohoooo11:50
@wikinglisitsyn, how do you feel about SGObject to be a template? :)11:50
lisitsynwiking: what's T?11:51
@wikinglisitsyn, class T = std::mt19937_6411:51
lisitsynoh no whyy11:51
@wikingwe need a prng11:51
@wikingfor sgobjects11:51
lisitsynwiking: put it to Self11:51
@wikingso then the prng of a class is11:51
@wikingthis->self->prng ?11:51
@wikinga bit quircky11:52
lisitsynyes but make it accessible via prng()11:52
lisitsynah11:52
lisitsynyou need the type?11:52
lisitsynwiking: but it has some very specific interface11:52
lisitsynwhy not making it virtual11:52
@wikingproblem that it doesn't have a common tiype11:52
@wikingonly a concept :P11:52
lisitsynyeah but you can introduce an interface11:53
@wikinghttp://en.cppreference.com/w/cpp/numeric/random11:53
lisitsynand then implement simple delegate for mt19937 and everything else11:53
lisitsynMt19937Random : public Random11:53
lisitsynblabla?11:53
@wikingso you want me to do that everybody in c++ standard solved with11:53
@wikinga nice template11:53
@wiking? :)11:53
@wiking:D11:53
lisitsyntemplate is nice if you develop 10-liner11:53
lisitsyn:P11:53
@wikingthis is the problem11:54
@wikinghttp://en.cppreference.com/w/cpp/concept/UniformRandomBitGenerator11:54
@wikingthat there's no bla for this11:54
@wikingbtw i mean one should only use prng within the implementation11:54
lisitsynbut it is super simple11:54
lisitsynlet me sketch11:54
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has joined #shogun11:58
-!- mode/#shogun [+o HeikoS] by ChanServ11:58
lisitsynwiking: https://ideone.com/BFxbZq12:00
lisitsynwiking: template impl but non-template base12:00
lisitsynno?12:00
@wikingno12:00
@wiking:)12:00
lisitsynwhy?12:00
@wikingi mean then what you want12:00
@wikingis to have the interface12:00
@wikingof the concept12:00
lisitsynyes exactly12:00
@wiking:)12:00
@wikingthe concept needs more12:00
lisitsynconvert concept to interface12:01
@wikingoperator()12:01
@wikingmin()12:01
@wikingmax()12:01
@wikingetc12:01
@wiking:)12:01
lisitsynyou can rename these methods in interfaces12:01
@wikingyeye12:01
@wikingbut i mean12:01
@wikingon the other hand12:01
@wikingthis could be simpley compiled there12:01
@wikingw/o vtables12:01
@wikingetc12:01
@wikingright? :)12:01
lisitsynyes but you have no concepts for 3 more years12:01
@wiking:D12:01
@wikingbut me haz templates :)12:02
@wikingbut yeah i get it that it'd be shit heavy12:02
lisitsynwiking: just make Self or something inside Self templated12:02
@wikingand actually nobody ever would change the prng12:02
lisitsynthen it is okish12:02
@wikingso i could actually just fix there the prng12:02
@wikingin sgobject12:02
@wikingand forgetit12:02
lisitsynotherwise every user of SGObject would get a shitload12:02
@wikinghow about that?12:03
@wiking^ fixing12:03
lisitsynI am fine also12:03
@wikingthe prng to a specific instance12:03
lisitsynif it is bad then change12:03
lisitsyn:D12:03
lisitsynHeikoS: hey12:03
@HeikoShihi12:03
@HeikoSwhazzup?12:03
@wikinglisitsyn, we've benchmarked and the mersenne 64bit is as fast as ours atm12:03
@wikingso should be find12:04
@wiking*fine12:04
lisitsynHeikoS: let me gist you something that would help you12:04
@HeikoSlisitsyn: ehm sure :)12:04
lisitsynHeikoS: https://gist.github.com/lisitsyn/9f69efa966c7a9b1b099643b5ff51ceb12:05
lisitsynhere you go12:05
lisitsynHeikoS: put it to tests/unit/lib and rinse-repeat until something you want works12:05
@HeikoSah coolio12:05
@HeikoSwill try12:05
lisitsynHeikoS: we don't change library often12:06
lisitsynbut you can hack .h this way12:06
@HeikoSyeah12:06
lisitsynif you change .cpp you should recompile12:06
@HeikoSnice12:06
lisitsynit links to built libshogun12:06
lisitsynHeikoS: this was my preparation for array clone so lets see if I get something to work12:07
@HeikoShehe12:07
@HeikoSok12:07
@HeikoSlisitsyn: we should be able to register std::vector at some point btw12:07
lisitsynHeikoS: you can register12:07
lisitsynbut no sg_add then12:07
@HeikoSkk might try that12:08
@HeikoSI guess clone/equals also needs work in that case12:08
lisitsynHeikoS: ah ok12:08
lisitsynyeah needs patching probably12:08
lisitsynHeikoS: not clone12:08
lisitsynbut equals12:08
Trixiswiking: gsoc apps are in march right?12:08
lisitsynHeikoS: we need to specialize for 'iterable' 'concept'12:09
@HeikoSyep12:09
@wikingTrixis, yes12:10
@wikingTrixis, https://developers.google.com/open-source/gsoc/timeline12:11
Trixismmk. I might be applying.12:11
@HeikoSlisitsyn: the makefile doesnt work12:11
@HeikoSdoes it work for you?12:11
@HeikoSI mean I can fix it12:12
@wikingTrixis, should!12:12
lisitsynHeikoS: yes that's what I use12:12
lisitsynHeikoS: what doesn't work?12:12
@HeikoSgmock include dir12:13
Trixiswiking: kk12:13
lisitsynHeikoS: uhm don't you have gmock there?12:13
@wikinglisitsyn, lemme know when u got a sec12:13
lisitsynwiking: n0w!12:13
Trixiswiking: i will unless i get response from another thing first (MPI-IS, tuebingen, I have discussed it with group lead there, she's going to now discuss it with Bernhard Sch?lkopf)12:14
@wikinglisitsyn, think of a BaggingMachine or any other stuff that has some other method wrapped that is based on randoms... (baggingmachine is good for this)... how would you fix all the seeds for all the machines ?12:14
@wikinglisitsyn, in this case a function programming approach would be the best12:15
@wikingwhere seed is either a function that generates a proper random seed12:15
@wikingor the fixed one that one supplied12:15
lisitsynwiking: uhmm I think it should be either set or be unspecified12:15
lisitsynlike12:16
lisitsynwiking: it is actually better be inherited12:16
lisitsynif it is set12:16
@wikingbut how?12:16
@wikingyou imagine that seed is a nullptr?12:16
@wikingand then if !nullptr12:16
@wikingthen just set?12:16
lisitsynwiking: I don't know implementation wise12:16
lisitsynyeah maybe12:16
@wikingyeye no what i mena12:17
@wikingi mean if i pass a function12:17
@wikingfor seed12:17
@wikingthen i can play with thing in the background12:17
@wikingsee what i mean?12:17
@wikingso if i have a generator for a seed then i can always pass that around12:17
@wikingregardless whether the seed is actually fixed or not12:17
@wikingif not fixed the generator will generate seed based on your /dev/urandom12:18
@wikingif it's set it always returns the same seed12:18
lisitsynwiking: from user point of view probably12:18
lisitsynit makes sense to have a global function12:18
lisitsynset_seed12:18
@wikingyeyea12:18
lisitsynand then any new object12:18
lisitsyninherits this seed12:18
@wikingbut i'm talking internally12:18
@wikingso that when you are a method dewvelop12:19
lisitsyninternally I guess it is Optional<int> seed;12:19
@wikingyou always pass around the seed generator function12:19
lisitsynand you use seed.getOrElse(globalSeed)12:19
@wikingglobal seed?12:19
@wikingglobal seed is fsck12:19
lisitsynwiking: we need a way to set seed for everything12:20
@wikinghehe no12:20
@wikingwe currently have that12:20
@wikingand that is fucked12:20
@wiking:)12:20
@wikingsee the story of unit testing12:20
@wiking:D12:20
@wikingif you put a breakpoint on set_global_seed12:20
@wikingyou'll see what i mean12:20
@wikingwe have fixtures12:21
@wikingtaht are setting global seeds12:21
@wikingand then we have various methods (unit tests) that are fixing seeds12:21
@wikingand they are all contradicting12:21
@wikingand imagine that you wanna run 2 models12:21
@wikingwith 2 different seeds12:21
@wikingif you rely on global seeds12:21
@wikingwhat happens?12:21
@wiking(in parallel)12:21
@wikingso global seed = only if it's coming from /dev/urandom12:22
@wiking:)12:22
lisitsynnono12:22
lisitsynI mean global default seed12:22
lisitsynit is either present or not12:23
lisitsynI mean it is cruel to force users to find all the objects that may use something random12:23
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has quit [Ping timeout: 240 seconds]12:23
@wikinglisitsyn, nobody does this12:24
@wikingi mean global seed12:24
@wikingbecause of the above mentioned reason12:24
@wikingi mean you as a method developer12:25
lisitsynwiking: don't you need a way to set everything in stone?12:25
@wikingshould take care that your seed is being set12:25
@wikingto all the objects12:25
@wikingyou use12:25
@wikingand then that seed either can be a totally random seed12:25
@wikingso say i have random machine12:26
lisitsynso you mean you set a seed for bagging machine?12:26
@wikingthat uses random kernel12:26
lisitsynI kinda agree but totally clueless how to inherit that stuff12:26
@wikingrandom machine implementor12:26
@wikingmake sure that it sets the seed of random kernel12:26
lisitsynwe might need to move factory methods to objects then12:26
@wikingthat is the same seed that the random machine has12:26
lisitsynah ok12:27
@wikingthis is why i said12:27
@wikingthat if it's a function12:27
lisitsynthis might work12:27
@wikingand not an actual value12:27
@wikingi mean this method you are setting around12:27
@wikingi.e. wiring12:27
@wikingthen the random kernel and all these stuff12:27
@wikingshouldn't care about anything else12:27
@wikingthey just call12:27
@wikingget_seed()12:27
@wikingthat is either a nice seed from a prng12:28
@wikingor a fixed seed12:28
lisitsynyeah but I am worried about need to manually inherit them12:28
lisitsynprobably we can do it via parameter map somehow12:28
@wikingthe only other way is12:28
@wikingglobal12:28
@wikingthat we have now12:28
lisitsynno, semi-automatic via parameter map12:28
lisitsynwalk through the graph and let everyone now you have a seed now12:28
lisitsynknow*12:29
@wikingok we have a reserved word12:29
@wiking"seed"12:29
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has joined #shogun12:29
-!- mode/#shogun [+o HeikoS] by ChanServ12:29
@wikingand then you just traverse the tree?12:29
@wikingand put("seed",...)12:29
@wiking?12:29
lisitsynyeah12:29
@wikingmmm12:29
lisitsynmight work?12:29
@wikingwould be nice if it is a std::function12:29
@wikinginstead of a value12:29
lisitsynfunction of what?12:30
lisitsynit computes seed based on?12:30
@wikingstd::function(unsigned[]())12:30
lisitsynno args?12:30
@wikingnoup12:30
@wikingit's a function12:30
lisitsynwhy function?12:30
@wikingbecause if you wanna be truly random12:30
@wikingthen your seed should be generated12:30
@wikingwhen you want it12:30
@wikingas it depends on a random_device12:31
lisitsynwhy not generate it if it is not set/12:31
lisitsynif it is 0/nullptr/blabla then generate12:31
@wikingdo we have optional?12:31
@wiking++17?12:31
@wiking:(12:31
@wikinganyways has12:32
lisitsynwiking: we have optional in our lib but you don't need optional12:32
lisitsynyou can check if it has that parameter12:32
lisitsynif not - generate and put it12:32
@wiking(see my last sentence)12:32
@wikingput?12:32
@wikingwhy put? :)12:32
lisitsynto remember it12:32
lisitsyn:)12:32
@wikingbut why?12:32
lisitsynuhm12:33
lisitsynyeah no need to12:33
@wikingi mean you want to repriduce12:33
@wikingi understand12:33
@wikingbut then set the seed12:33
@wiking:)12:33
lisitsynyeah ok12:33
@wikingif you wanna reproduce that it's triuly random12:33
@wikingthen just simply not have it set12:33
@wikingok shity12:33
@wiking:)12:33
lisitsynso get_prng() = if has(seed) create_prng(generate_seed()) else create_prng(seed)12:33
@wikingthis assumes12:34
@wikingthat actually we dont have a prng on ctor time12:34
@wiking:)12:34
lisitsynyes I'd make it lazy12:34
@wikingoptional? :)12:34
@wikingmeaning how else would you make it lazy?12:34
lisitsynyes12:34
lisitsynwe call it Maybe in shogun :P12:35
@wikingas some classes need a object level prng12:35
@wikingmeaning that they are inited on ctor/first call12:35
lisitsynyes and put it to Self of SGObject12:35
@wikingbut what?12:35
@wikingthe prng?12:35
lisitsynSelf would have Maybe<PRNG>12:35
@wikingare you crazy?12:35
@wiking:)12:35
lisitsynwhy so?12:36
@wikingah ok12:36
@wikingmisunderstood12:36
@wikingi thought you wanna put it into the parammap12:36
@wiking:)))12:36
lisitsynno12:36
@wikingkk12:36
lisitsynno need to12:36
@wikingbut the interface of Self is foobar12:36
@wiking:)12:36
lisitsynit is just pimpl12:36
lisitsynto reduce compile time12:36
@wikingyeye i get it12:36
@wikingbut no other method has access to it12:37
@wikingor you say to expose it via a protected getter12:37
@wikingor something12:37
@wiking:)12:37
lisitsynyes sure12:37
lisitsynlet it be protected12:37
@wikingno need to expose12:37
@wikingimo12:37
@wikingok so seed is then reserved?12:37
lisitsynyes12:37
@wikingk12:38
@wikingfor the traversal12:38
@wikingi have to do a full breath/depth traversal unfortunately afaik12:38
@wikingright12:38
@wiking?12:38
lisitsynyes12:38
@wikingk12:38
@wikinggood12:39
lisitsynbut we don't have graphs of more than 50 objects I think12:39
@wikingyeye i mean12:39
@wikingit just that we need this in the set_seed12:39
lisitsynyeah exactly12:39
@wikingof course there's a good question12:39
@wikingwhether there's a situation12:39
@wikingwhen you wanna set partially a seed12:39
@wikingbut i guess it fucku time12:39
@wiking:)12:39
lisitsynwiking: one more method is easy to add12:39
@wikinglisitsyn, std::set<std::string> exlude12:40
@wiking:)12:40
@wiking*exclude :P12:40
lisitsynset_seed might do the seed distribution and set_seed_here might not12:40
lisitsynno, I think just two methods would suffice12:40
@wikingk12:40
lisitsynone does graph thingy and one sets only for the very concrete object12:40
@wikingwe dont have yet a standard for constexpr/static12:40
@wikingshould we go like macro12:41
@wikingor the kKeyName12:41
@wiking?12:41
lisitsyn?12:41
lisitsyndon't get12:41
lisitsynfor what?12:41
@wikingconstexpr static std::string kSeedKey = "seed";12:41
lisitsynahh12:41
lisitsynidk12:41
@wikingas we dont wanna write the literal everywhere right? :)12:41
lisitsynwiking: I think it is actually here twice12:41
lisitsynget_seed and set_seed12:42
lisitsynwiking: you can actually call the parameter __seed_fsck12:42
lisitsynor any other name12:42
lisitsyn:)12:42
@wiking:>12:42
@wikingmmm12:43
@wikingsince it's protected12:43
@wikingwe could use Some<> ?12:43
lisitsynSome what?12:43
@wikingthe prng12:43
lisitsynah maybe12:43
@wikingSome<std::mt19937_64> get_prng() const;12:43
@wikingdont want to pass around a ptr12:44
@wikingif possible12:44
@wikingand it cannot be Unique12:44
@wikingor actual;ly12:44
@wikingthere's that crazy stuff12:44
lisitsynwiking: I'd add typedef for mt1993712:44
lisitsynso you don't write it too many times12:44
@wikingstd::unique_ptr<prng> const &prng12:45
@wikingthis works :)12:45
@wikingdepends which one you like more :)12:45
lisitsynI'd go for shared_ptr12:45
lisitsynaka some12:45
@wikingyeah12:45
@wikingbut no some12:46
@wikingas it calls ref12:46
@wikingno?12:46
@wiking:)12:46
@wikingdoes shared_ptr has it?12:46
lisitsynah we need to patch Some then12:46
lisitsynto not call any refs12:46
lisitsynif it is not SGObject12:46
lisitsynbut I am also fine with shared_ptr12:46
@wikingk12:46
@wikingit's all internal12:46
@wikingshould never surface to swig12:47
@wikingimo12:47
lisitsynyes12:47
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has quit [Ping timeout: 260 seconds]13:26
@wikinglisitsyn, btw i hope we dont have cycles in the param map :P13:27
lisitsynwiking: we have13:28
lisitsynyou can be sure :)13:28
@wiking:<13:29
@wikingsame_type for checking the type of any?13:30
lisitsynwiking: compile time? yes13:40
@wikingmmm13:40
@wikingruntime13:41
@wikingas?13:41
@wikingand then catch the exception?13:41
@wikingor i have to use the visitor pattern?13:48
lisitsynwiking: depends13:48
lisitsynwhat do you do?13:48
@wikingwanna get all the CSGobjects13:49
@wikingof a class in the param map13:49
lisitsynah13:49
lisitsynwiking: why not any.same_type<CSGObject*>()?13:50
lisitsynshould work13:50
@wikingyeah13:50
@wikingi did that13:50
@wikingbut then i need the obj itself13:50
@wikingso i need .as<>13:50
lisitsynyes13:50
lisitsynit is double-check but okish13:51
@wikingwell13:51
@wikingthis is not called13:51
@wikingevery time :)13:51
lisitsynyeah13:51
@wikingi mean not a lot13:51
@wikingmooooo14:05
@wikingstd::seed_seq14:05
@wikinglisitsyn, ^14:05
lisitsynidk dik14:12
lisitsynidk14:12
lisitsyn:)14:12
lisitsyntoo complex14:12
lisitsyn:D14:12
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has joined #shogun14:16
-!- mode/#shogun [+o HeikoS] by ChanServ14:16
@wikinglisitsyn, lol plz i mean it's just an array :)14:21
@wikinghow will we support std::vector?14:21
@wikingHeikoS, ok so things are settled with serialization but there's a fabs error with sparse gp14:22
@HeikoSwiking: whats the error?14:23
@wikingprecision14:23
@sukey[https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/d5c26ede1c3cd661f71c88b7d70485947fc1bffd by karlnapf14:23
@HeikoSwiking: now can register using SG_ADD without casting to CSGObject14:24
@HeikoSim off for lunch now14:24
@HeikoSlet me know if I can help with the fabs stuff14:24
@HeikoSback in an hour or so14:24
@wikingHeikoS, what i mean is that14:24
@wikingdunno how you set the fabs14:24
@wikingbut that's not enough14:25
@wikingfor that implementation14:25
@HeikoSyou want to know how to set it?14:25
@wikingidk14:25
@HeikoSset_global_fequals_epsilon(1e-7);14:25
@wikingand i dont care :)14:25
@HeikoSand then might need to reset to 0.0 after (if another test runs)14:25
@wikingjust saying that it's currently not enugh14:25
@HeikoSah I see14:26
@HeikoSwhich format?14:26
@wiking?14:26
@wikingby format what do yo umean?14:26
@HeikoSit is the integration tests?14:26
@HeikoSfor those ascii is used iirc14:26
@HeikoSserialization format14:26
@wiking-value float64 0.0372693403001744514:26
@wiking+value float64 0.0372693403002262714:26
@wikingi dont touch anything14:27
@wikingit's the same format14:27
@wiking-value SGVector<float64> 12 ({1.068315284705704}{1.057734922698309}{1.081507165667063}{1.091346135773989}{1.286784570411328}{1.780577706477988}{1.972441415484553}{1.997923467960996}{1.99991027302381}{1.99998226490016}{1.999999545391685}{1.999999920504624})14:27
@wiking+value SGVector<float64> 12 ({1.068315175134558}{1.0577349293821}{1.081507268883797}{1.091346236002757}{1.286784604541026}{1.78057771228749}{1.972441415165065}{1.997923467953036}{1.999910273024177}{1.999982264900162}{1.999999545391686}{1.999999920504624})14:27
@wikingthese are the diffs14:27
@HeikoSmmh that is 1-814:27
@wikingthe vector fails obviously14:27
@wikingno the value14:27
@HeikoSah no 1e-614:28
@HeikoSmmh14:28
@HeikoSmaybe just decrease accuracy? :D14:28
@HeikoSbut it is weird that this suddenly happens14:28
@HeikoSI am fine with decreasing14:28
@wikingset_global_fequals_epsilon?14:28
@HeikoSyes14:28
@wikingk14:28
@HeikoSthese tests are not meant for checking accuracy14:29
@HeikoSjust that things are roughly the same14:29
@HeikoSor actually14:29
@HeikoSbetter than changing14:29
@HeikoSis regenerating the test data14:29
@HeikoSand commit that14:29
@HeikoSand leave the old accuracy14:29
@HeikoSif that helps14:29
@HeikoSotherwise decrease is fine as well14:29
@wikingdunno if its consistent14:29
@HeikoSok i gotta run14:29
@HeikoStalk in a bit14:29
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has quit [Ping timeout: 276 seconds]14:51
-!- travis-ci [~travis-ci@ec2-54-166-128-254.compute-1.amazonaws.com] has joined #shogun15:40
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/34524712315:40
-!- travis-ci [~travis-ci@ec2-54-166-128-254.compute-1.amazonaws.com] has left #shogun []15:40
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun15:44
-!- mode/#shogun [+o HeikoS] by ChanServ15:44
@HeikoSwiking: got it resolved?15:45
@wikingno15:45
@wikingi mean i havent' worked on it15:45
@wikingso not yet15:45
@HeikoSok15:45
@HeikoSwiking: I want to put swig 3.0.12 into the docker image, you any recommendations about the best way?15:45
@wikingcannot recall15:45
@wikingis it a strecth15:45
@wikingor xenial img?15:45
@HeikoSstretch15:45
@wikingFROM debian:stretch15:46
@wikingk15:46
@wikingso idk15:46
@HeikoSmanually compile install like rxCpp?15:46
@wikingi have spent 10 mins on stretch backport15:46
@wikingHeikoS, rxcpp is header only => no compile15:46
@wikingjust install15:46
@HeikoSi see15:46
@wikingthe same is not true for swig15:46
@wikingwhat you could do i15:46
@wikings15:47
@wikingthat take that ppa package15:47
@wikingand see if that's installeable15:47
@wikingon stretch15:47
@HeikoSok15:47
@wikingi would think that it would15:47
@HeikoSI have the image locally so can try there15:47
@wikingbut needs to be tested15:47
@wikingimo ppa hacker scripts are not really working15:47
@wikingso you need to wget etc15:47
@HeikoSwiking: you know how to find out the wget link for downloading a ppa .deb?15:56
@wiking worst case you can find it in your local machine under /var/db15:56
@wikingif you haven't cleaned it up yet15:56
@wikinghttps://launchpad.net/~shogun-toolbox/+archive/ubuntu/nightly/+packages15:56
@wikingthis is for shogun15:57
@wikingand ther eyou can click on the pkg itself15:57
@wikingjust replace the url with the right strs15:57
@HeikoSgood idea15:57
@wikinghttps://launchpad.net/~shogun-toolbox/+archive/ubuntu/nightly/+files/libshogun-dev_6.1.3+1SNAPSHOT201802220200-1ubuntu1ppa1~xenial_amd64.deb15:57
@wikingthis is from that html15:57
@wikingsomething along this line you'll find what u want15:58
@HeikoSok have it installed locally16:00
@wikingso if that works16:00
@HeikoSwill compile16:01
@HeikoSto see whether it works16:01
@wikingah if the binary runs16:01
@HeikoSi used amd6416:01
@wikingthen it should be good16:01
@wikingimo there's a way that ou can actually add this ppa as a source.d16:01
@wikingto the apt16:01
@wikingand then simply apt-get install would work16:01
@wikingi reckon you can dig out the apt source line16:02
@wikingfrom your own16:02
@wiking /etc/apt/source.list.d16:02
@wikingas the apt-add should just add stuff to there16:02
@HeikoSdeb http://ppa.launchpad.net/timsc/swig-3.0.12/ubuntu xenial main16:04
-!- travis-ci [~travis-ci@ec2-54-198-187-196.compute-1.amazonaws.com] has joined #shogun16:04
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/34524712316:04
-!- travis-ci [~travis-ci@ec2-54-198-187-196.compute-1.amazonaws.com] has left #shogun []16:04
@HeikoSpublic key issues16:04
@HeikoSbut the apt-add doesnt work eiterh16:05
@HeikoSmaybe I just wget and dpkg?16:05
@wikingbtw16:12
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4185 opened by karlnapf16:12
@wikingdo we wanna have statistics.cpp still be a utility class16:12
@wikingfor stats?16:12
@wikingHeikoS, you can simply add the key16:12
@wikingplz add the key16:12
@wikingif you already found the solution for this16:12
@wikingi mean the src16:13
@HeikoSsolution?16:13
@wikingmeaning a source16:13
@wikingfor the deb file16:13
@wikingonly reason you go with wget16:14
@wikingis beause you dont add the key16:14
@wikingright/16:14
@wiking?16:14
@HeikoSI thought it was a bit simpler than adding the line in the source.list file and adding the key in gpg16:14
@wikinggpg -a --export KEY | sudo apt-key add -16:15
@wikingi mean it's less line16:15
@wikingless error prone16:15
@wikingthan your solution16:15
@wikingjust saying16:15
@HeikoSkk16:15
@HeikoSlet me try16:15
@wikingyou need to find the key16:15
@wikingfor that ppa16:15
@HeikoSI guess it is this one?16:17
@HeikoShttps://launchpadlibrarian.net/336311358/swig_3.0.12-ppa0-xenial1.dsc16:17
@wikingmmm16:20
@wikingyoju need the gpg id16:20
@HeikoSit tells me actually16:20
@HeikoSjust a sec16:20
@HeikoS8A9CA30DB3C431E316:23
@wikingyes16:23
@wikingyou need to apt-key that one16:23
@HeikoSok that worked16:24
@HeikoSso I do that before all the packages are installed16:25
@wikingno you do that16:26
@wikingbefore adding the ubuntu line16:26
@wiking deb http://ppa.launchpad.net/timsc/swig-3.0.12/ubuntu xenial main16:26
@wikingor at least16:26
@wikingbefore the apt-get update16:26
@HeikoSnono I mean16:26
@HeikoSthe whole precedure16:26
@HeikoSlet me push and you see what I have16:26
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4185 synchronized by karlnapf16:27
@wikingHeikoS, i guess you should sudo the tee16:28
@wikingor no?16:28
@HeikoSis there a sudo on that docker?16:28
@wikingoh i see16:28
@HeikoSlocally no16:28
@wikingi guess it's a root?16:28
@wikingdunno really16:28
@HeikoSyes16:28
@wikingseems its a root there16:28
@HeikoSno sudos in other cmds16:28
@wikingok lemme check this one16:28
@wikingon hedo16:28
@HeikoSwiking: go ahead and merge the PR if you think it is ok16:29
@wikingjust a sec16:29
@wikingtesting16:29
@wikingok16:29
@wikingworked on hedo16:29
@wikinghehe16:30
@wikingcan you plz amend16:30
@wikingand add [skip ci]16:30
@wiking?16:30
@HeikoSsure16:30
@wikingas we dont need that one16:30
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4185 synchronized by karlnapf16:31
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4185 merged by vigsterkr16:31
@sukey[https://github.com/shogun-toolbox/shogun] vigsterkr pushed 2 commits:16:31
@wikingok16:31
@sukeyhttps://github.com/shogun-toolbox/shogun/commit/952fe2ff1045a8fdce04d843110c2e25a61cb4ac16:31
@sukeyhttps://github.com/shogun-toolbox/shogun/commit/50125a5c8a99034d033dba43eb95838da14b182f16:31
@HeikoSthx16:31
@wikingthis will take about 10-30 miuns16:31
@wikingthis will take about 10-30 mins16:31
@wikingto get u the docker img16:31
@HeikoSok,16:31
@HeikoSwill restart the typedo thing after16:31
@HeikoSshould work then16:31
@wikingafter that you can restart travis16:31
@wikingfor the last commit16:31
@wikingso16:31
@wikingback to the question16:31
@wikingstatistics.cpp16:31
@wikingutility stuff16:32
@HeikoSyeah good q16:32
@wikingfor stats/randomvars16:32
@wiking?16:32
@HeikoSI think that the cdf and random var stuff yes16:32
@HeikoSshould be there16:32
@wikingbecause i have some more template shit16:32
@wikingi need16:32
@HeikoSutility functions16:32
@wikingfor how to fill16:32
@wikinga vector of a given distro16:32
@wikingetc16:32
@HeikoSah16:32
@wikingi mean to be honest16:32
@HeikoSyeah would be good to have that as well16:32
@wikingthat should be linalg16:32
@HeikoSbut maybe it can go to linalg?16:32
@wiking:D16:32
@wikingif you think about it16:32
@wikingbuuuuut16:32
@HeikoSthe cdf not sure16:33
@wikingstatistics could be a a wrapper16:33
@HeikoSas this is just interfacing low level libs16:33
@HeikoSlike normal_cdf16:33
@wiking because currently we only have16:33
@HeikoSor gamma_cdf16:33
@wikingcpu side stats16:33
@HeikoSit is not even templated16:33
@wikingso i reckon we can just have there now16:33
@HeikoSrandom could go linalg imo16:33
@wikingthe std:: based stuf16:33
@wikingf16:33
@wikingas i would definitely16:33
@HeikoSah yes16:33
@wikingi mean oin the end of the day16:33
@wikingwe can have a linalg thing16:33
@wikingit's just a wrapper16:33
@wikingonce somebody refactors linalg16:34
@wikingas it's really shitty still :/916:34
@wikingi.e. xtensor looks much nicer16:34
@wiking:D16:34
@wikingand i reckon having something like an xpression16:34
@wikingin linalg::16:34
@wikingis not something IMPOSSIBLE16:34
@wikingto have16:34
@wikingbut that is of course a lot of work16:34
@HeikoSyeah16:34
@HeikoSbetter api would be good :D16:35
@wikingi mean i can actually add a fill(begin, end, distro)16:35
@wikingbut yeah16:35
@wikingit's shitty now that everything is16:35
@wikingvoid f(.....)16:35
@wikingi mean we could easily as well use tuples16:35
@wikingor whatever fuck16:35
@wikingin case of return values16:35
@wikingas all that is compile time16:36
@wikinganyhow16:36
@wikingi'll add then some helper methods16:36
@wikingto stats for the time being16:36
@wikingstatic float64_t variance(SGVector<float64_t> values);16:36
@wikingthis should actually based on this logioc16:37
@wikingbe in linalg16:37
@wikingno? :)16:37
@HeikoSyes16:37
@wikingso i mean16:37
@wikingon the end of the day16:37
@wikingwhat you are suggesting16:37
@wikingis16:37
@wikinglinalg::statistics16:37
@HeikoSyes kind of16:37
@HeikoSvar and mean is kind of basic16:37
@wikingyeah but there's other stuff16:37
@wikingsample_indices16:38
@HeikoSbut more complicated things could go to that16:38
@wikingsame story16:38
@HeikoSyes exactly16:38
@HeikoSthat method16:38
@HeikoScould also just be deleted :)16:38
@wikingmmm16:38
@wikingint32_t* idxs=SG_MALLOC(int32_t,N);16:38
@wikingint32_t i, rnd;16:38
@wikingint32_t* permuted_idxs=SG_MALLOC(int32_t,sample_size);16:38
@wikingsergeyovich16:39
@wiking:D16:39
@HeikoShaha16:39
@HeikoSwell probably that was written bc16:39
@wikingwhy do you idxs is on heap16:39
@wikingand not on stak16:39
@wiking*stack16:39
@wiking:D16:39
@HeikoSwhen sergey was pre teen :D16:39
@wikingi mean on the other hand16:39
@wikingwe had this thing for everything being on heap16:39
@wikingfor some magical reason16:39
@wiking:)16:39
@wikingmy fav is this line16:40
@wikingCMath::qsort(result);16:40
@wiking:)16:40
@wikingi mean std::sort is16:41
@wikingApproximately N log N comparisons16:41
@wiking:D16:41
@wikingso that makes you think about all the CMath:: stuff16:41
@HeikoShaha16:50
@HeikoSwiking: I think there was a reason for this16:50
@HeikoSthat is was faster that std::sort in certain contexts16:50
@HeikoSlong long time ago in a place far far awya16:50
@wikingHeikoS, i think std::sort wasn't existing16:50
@HeikoSentrance task -> replace qsort with std::sort16:50
@HeikoSobjections?16:50
@wikingi mean rather16:51
@wikingentrance task: drop CMath16:51
@wiking:)16:51
@HeikoSI thikn there is16:51
@wikingthen prio that16:51
@wiking:)))16:51
@HeikoShaha :D16:51
@HeikoSok ill put it up16:51
@wikingi mean that can be sliced up into smaller chunks16:51
@wikingbut essentially that is the same16:51
@HeikoStada16:53
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4186 opened by karlnapf16:53
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4186 karlnapf added label: "good first issue"16:53
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4186 karlnapf added label: "Cleanups"16:53
@HeikoSwiking: I would like to add factory methods for features17:05
@HeikoSCFeatures* features(SGMatrix<T>)17:05
@HeikoSfor example17:05
@HeikoSwiking: objections?17:05
@HeikoSlisitsyn:  ^17:05
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4166 synchronized by durovo17:07
@wikingHeikoS, yes17:13
@wikingdont do that17:13
@wiking:)17:13
@HeikoSthe goal is to create features by the base class17:13
@HeikoSbut can of course also just create empty instance and then put17:14
@wikingyes17:18
@wikingi understand your goal17:18
@wikingbut what i've tried to convey is that17:19
@wikingwoudl be nice if you could hold back a bit17:19
@wikingon that17:19
@wikingif possible17:19
@HeikoSsure17:20
@wikingi mean if you nee dit right away17:21
@wikingadd it in a nice separate commit17:21
@HeikoSuh docker failed17:21
@wikingso that way we can just simply17:21
@HeikoSno i dont need now17:21
@wikingremove that one when/if needed17:21
@wikinghow did docker fail?17:21
@HeikoShttps://hub.docker.com/r/shogun/shogun-dev/builds/boh3njnh23k2jimuk7ezd89/17:21
@HeikoSah yeah17:22
@HeikoSdamn17:22
@HeikoSforgot to install gnugp17:22
@wikingmmmm17:22
@wikingwhat?17:22
@wikingnot even apt-key is present17:23
@wiking?17:23
@wikingah i guess its like a totally clear install17:23
@wikingonly having busybox style stuff17:23
@HeikoSmmh weird thought I tried this on my image17:23
@wikingclear image?17:24
@wikingor the one from there?17:24
@wikingmeaning shogun-sdk17:24
@wikingor stretch17:24
@wiking?17:24
@HeikoSyeah that was the problem17:24
@HeikoSi used the sdk17:24
@HeikoSnot stretch17:24
@wikingyeah that one already had a lot of dependencies pulld17:24
@wiking*17:24
@wiking*pulled17:24
@HeikoSI will move the lines below the apt-get install stuff17:24
@HeikoSand then update and install swig?17:25
@wikingmmm that is a bit trickier :)17:25
@wikingbut yeah17:25
@wikingyou can do that17:25
@wikingshould work17:25
@sukey[https://github.com/shogun-toolbox/shogun] karlnapf pushed 2 commits:17:30
@sukeyhttps://github.com/shogun-toolbox/shogun/commit/fb95294ae8c61158e4ccc0a63a670722b7f3979217:30
@sukeyhttps://github.com/shogun-toolbox/shogun/commit/60b70b2af017851ef0fa398a12039c7221314cc317:30
@HeikoSah screw17:31
@sukey[https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/d92ae890f04a807bdbbcc276d24757c2df3c828d by karlnapf17:34
-!- travis-ci [~travis-ci@ec2-54-198-187-196.compute-1.amazonaws.com] has joined #shogun17:46
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/34524712317:46
-!- travis-ci [~travis-ci@ec2-54-198-187-196.compute-1.amazonaws.com] has left #shogun []17:46
@HeikoSlisitsyn: you around?17:50
lisitsynHeikoS: ja17:50
@HeikoSlisitsyn: what is your opinion on creating features17:50
@HeikoSwith factory17:51
@HeikoSlike machine("LibSVM")17:51
lisitsynfeatures(df)17:51
lisitsyn?17:51
@HeikoSI am asking about types and stuff17:51
lisitsynfeatures(df) features(list_of_strings) ... ?17:51
@HeikoShow do you create real features without writing the type?17:52
lisitsynfactory17:52
lisitsynit should infer17:52
@HeikoSyou have CFeatures* features(SGMatrix<float64_t>)17:52
lisitsyngut17:52
@HeikoSor templated17:52
@HeikoSbut then swig17:52
@HeikoS...17:52
lisitsynCFeatures* is fine17:52
lisitsynah17:52
@HeikoSCFeatures* features(SGMatrix<T>)17:52
lisitsynyou mean arg?17:53
lisitsynidk17:53
@HeikoSrenamed to features_real17:53
lisitsynwhy not provide all of them?17:53
@HeikoSor done like in put17:53
lisitsynlike in put is bettah17:53
lisitsynHeikoS: won't overloading work?17:54
@HeikoSI think it would17:54
@HeikoSworks for put17:54
@HeikoSat least with matrix17:54
@HeikoSwhy would one create features from vector ?17:54
lisitsynHeikoS: to apply to just one vector17:55
@HeikoSmmh17:55
@HeikoSyeah ok17:55
@HeikoSbut it is still dense features17:55
lisitsynyeah17:55
@HeikoSokok17:55
@HeikoSwiking seemed to not like it17:56
lisitsynwhat is the other approach?17:56
@HeikoSnot sure17:56
@HeikoSor more wanted me to wait17:56
@HeikoSor at least make it in revertable commit17:56
@HeikoSso will play a bit with that17:56
@HeikoSI think put get now is on17:56
lisitsyncool!17:57
-!- travis-ci [~travis-ci@ec2-54-166-128-254.compute-1.amazonaws.com] has joined #shogun17:58
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/34524712317:58
-!- travis-ci [~travis-ci@ec2-54-166-128-254.compute-1.amazonaws.com] has left #shogun []17:58
@sukey[https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/c785fdf9e4ecd57e53134e2c28b4a5f527c76dc9 by karlnapf17:59
@HeikoSlisitsyn:  https://github.com/shogun-toolbox/shogun/blob/typedo/examples/meta/src/base_api/put_get.sg18:01
-!- zxtx_ is now known as zxtx18:45
-!- sukey1 [~nodebot@ks312251.kimsufi.com] has joined #shogun19:35
-!- Netsplit *.net <-> *.split quits: @sukey19:45
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 260 seconds]19:47
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun19:49
-!- mode/#shogun [+o wiking] by ChanServ19:49
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 276 seconds]20:06
--- Log closed Sat Feb 24 00:00:15 2018

Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!