Open in new window / Try shogun cloud
--- Log opened Sun Jul 21 00:00:40 2013
-!- travis-ci [] has joined #shogun00:13
travis-ci[travis-ci] it's Sergey Lisitsyn's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []00:13
-!- thoralf [] has joined #shogun00:29
lisitsynthoralf: hey00:33
thoralflisitsyn: Hey last man standing. ;)00:34
lisitsynthoralf: haha00:35
lisitsynthoralf: I start to think I won't be forgiven for my disappearance00:36
thoralflisitsyn: In which timezone are you right now?  iow: What's your time now?00:38
lisitsynthoralf: +4 utc00:38
lisitsynso 02:3800:38
thoralflisitsyn: Oh.00:38
thoralflisitsyn: You will be forgiven. ;)00:38
thoralf0:38 here00:39
lisitsynthoralf: yeah I know berlin timezone now ;)00:40
lisitsynthoralf: what is the weather in berlin?00:43
thoralflisitsyn: Have to check my weather app.  One second. ;)00:44
lisitsynthoralf: where are you then?00:44
thoralfIn Berlin. ;)00:44
thoralf19 degree at night, that's good.00:45
thoralf28 degree yesterday, no rain.00:45
lisitsynthoralf: oh you have that calm day tomorrow00:45
lisitsynI was a bit surprised00:45
thoralfWhat do you mean with "calm day"?  Sunday?00:46
thoralfWhat exactly did surprise you?00:46
lisitsynthoralf: no shops etc00:47
lisitsynthoralf: we had to go to hauptbahnhof :D00:47
thoralfI see.00:47
lisitsynthat's my bad I didn't check such features00:47
lisitsynthoralf: I already asked heiko - have you been to einstein stammhaus?00:48
lisitsynon kurfuerstenstr. just near to einemstr.00:49
thoralfI know einstein caf?s, but what's special about this one?00:50
thoralfStammhaus could mean something like "main house".00:50
thoralfIt's probably bigger than others?00:50
lisitsynthoralf: no idea if it is really special but we liked it a lot00:50
lisitsynwhere are others?00:50
lisitsynI have seen one near to checkpoint00:50
lisitsynthoralf: it is pretty big indeed and has some garden00:51
lisitsynthoralf: the worst place we've been is 'FBI' near potsdamer platz :D00:54
lisitsynoh sh it is awful00:54
thoralfOh, I was wrong.00:54
lisitsynthoralf: about what?00:54
thoralf is different from Einstein Stammhaus.00:54
thoralfDifferent companies.00:54
lisitsynthoralf: oh I see00:55
lisitsyneverything is einstein in germany00:55
lisitsynthoralf: what do they say when asking to leave a train?00:55
lisitsynwell I don't really recognize all the words but something similar to einstein agai00:55
thoralfYou can't protect Einstein.00:56
thoralfSo everyone uses it.  Sounds good. :)00:57
lisitsynthoralf: but what do they say?00:57
lisitsynin trains00:57
thoralfEinsteigen bitte.00:58
lisitsyneinsteigen haha!00:58
lisitsyneinstein everywhere00:58
thoralfDidn't realize it sounds so similar.00:59
thoralfBut you're right.00:59
thoralfEinstein bitte.00:59
lisitsynthoralf: well I was in train and they said that00:59
lisitsynI tried to understand but what I heard was00:59
lisitsyneinstein bitte01:00
lisitsynexactly how you said01:00
lisitsynwell not that but einstei***01:00
lisitsynthoralf: we also met ticket control twice01:01
lisitsyngood we bought fahrausweis01:01
thoralfSomething different: How do you cast strings to integers in c++?  I know atoi, but that's for (char*).  Do you know something similar?01:01
lisitsynthoralf: just cast it to char*?01:02
lisitsynboost has lexical_cast01:02
thoralfYeah, that's no problem.01:02
lisitsynbut atoi(str.c_str()) is ok too01:02
lisitsynthoralf: you may read it to stream01:02
thoralfI can do string.c_str() and get (char*).01:02
lisitsynlike form a stringstream from your string01:03
lisitsynand then01:03
lisitsynint << str;01:03
thoralflisitsyn: atoi does not handle any error.01:03
lisitsynyeah that's the worst part of C++ I believe01:03
lisitsynnot atoi but IO in general01:04
lisitsynthoralf: you may try streams thing I think there is a way to customize that stuff01:04
thoralfI just re-discovered strtol().01:05
thoralfFor you information.01:05
lisitsynthoralf: haha I didn't know about it01:05
thoralf"a way to customize that stuff" <-- Sounds to complicated for 1:00 am. ;)01:05
lisitsynthoralf: well there is always a way to customize in C++ - that's a nice thing01:06
lisitsynthoralf: for example I was tired with %d etc so I wrote that:
lisitsynhaha that's pretty neat atoi goes crazy01:08
lisitsynin case of any emergency01:08
lisitsynundefined behaviour in case of any trouble haha really cool01:08
lisitsynI vote for more undefined behaviour01:08
lisitsynthe next great step would be random undefined behaviour01:09
lisitsynok thoralf may the force be with you I am powering myself off ;)01:12
thoralfundefined behaviour does not hurt most of the time01:13
thoralfbut worst cast behaviour would ;)01:13
thoralfPleasant night :)01:14
-!- thoralf [] has quit [Quit: Konversation terminated!]01:27
-!- shogun-notifier- [] has quit [Quit: transmission timeout]02:29
-!- nube [~rho@] has joined #shogun02:49
shogun-buildbotbuild #399 of nightly_all is complete: Failure [failed compile]  Build details are at
-!- foulwall [~user@2001:da8:215:503:dc0e:86e6:8a74:2a68] has joined #shogun04:18
shogun-buildbotbuild #464 of nightly_default is complete: Failure [failed test]  Build details are at
gsomixwoo-hoo, csv reader finally works06:57
gsomixbut unittests are needed06:57
gsomixso, good morning07:16
-!- foulwall [~user@2001:da8:215:503:dc0e:86e6:8a74:2a68] has quit [Remote host closed the connection]07:47
-!- gsomix [~gsomix@] has quit [Ping timeout: 246 seconds]08:47
-!- nube [~rho@] has quit [Quit: Leaving.]08:59
-!- gsomix [~gsomix@] has joined #shogun08:59
-!- iglesiasg [] has joined #shogun11:32
-!- mode/#shogun [+o iglesiasg] by ChanServ11:32
@iglesiasggood morning!11:32
@sonney2kgsomix, good morning!12:31
@sonney2kgsomix, if you know that it works than unit test are simple :)12:43
@sonney2kiglesiasg, did you read thoralfs PR?12:57
@iglesiasgsonney2k: the one for the makefile? yes12:57
@sonney2kiglesiasg, what do you think should we use the lib in shogun/src when we run make check-examples etc?12:57
@sonney2kor the one that is installed?12:57
@iglesiasgsonney2k: mmm12:58
@sonney2kbesides hmmhh :P12:58
@iglesiasgsonney2k:  the one in shogun/src makes sense to me too12:58
@iglesiasgwas thinking :)12:58
@sonney2kok then please vote for it in the PR12:59
@sonney2kwe should have a way then to check if an install is good too though12:59
@sonney2kno idea how but we should have this12:59
@iglesiasgsonney2k: can we give an option to make check-examples?13:00
@iglesiasgdefault is the one in shogun/src, if another one is given then use that other one13:00
@sonney2kiglesiasg, I would assume that one wants to run make check-examples from the src dir13:04
@sonney2kto check the local code13:04
@sonney2kand maybe run sth from the installed directory13:04
@iglesiasgit makes sense13:06
-!- shogun-notifier- [] has joined #shogun13:42
shogun-notifier-shogun: Soeren Sonnenburg :develop * 942ce10 / src/ (10 files):
shogun-notifier-shogun: add cxx11 support13:42
shogun-notifier-shogun: - fix compile errors when compiling with -std=c++1113:42
shogun-notifier-shogun: - use atomic int for referenced data (no memory overhead + faster)13:42
shogun-notifier-shogun: - use templated new's for SGMatrix(-List)13:42
-!- travis-ci [] has joined #shogun13:48
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []13:48
-!- gsomix [~gsomix@] has quit [Remote host closed the connection]13:54
shogun-buildbotbuild #1489 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Soeren Sonnenburg <>13:58
-!- iglesiasg [] has quit [Quit: Leaving]14:16
-!- shogun-notifier- [] has quit [Quit: transmission timeout]16:42
-!- nube [~rho@] has joined #shogun17:30
-!- pickle27 [] has joined #shogun17:57
-!- pickle27 [] has quit [Quit: Leaving]18:26
-!- gsomix [~gsomix@] has joined #shogun19:02
gsomixgood evening19:02
gsomixanother hard day is done19:02
gsomixwell that weekend is ended19:03
gsomixcoding session!19:03
-!- nube [~rho@] has quit [Remote host closed the connection]19:48
-!- nube [~rho@] has joined #shogun20:21
@sonney2klisitsyn, c++11 needed quite a bit of changes w/i shogun21:17
lisitsynsonney2k: what kind of?21:18
lisitsynsonney2k: I have compilation issue with new now21:21
lisitsynI guess that's related21:21
@sonney2klisitsyn, new what?21:23
lisitsynsonney2k: operator new21:24
lisitsynlib/memory.cpp:83:31: error: declaration of 'void* operator new(size_t)' has a different exception specifier21:24
lisitsynIn file included from ../shogun/lib/common.h:67:0,21:24
lisitsyn                 from lib/memory.cpp:12:21:24
lisitsyn../shogun/lib/memory.h:26:7: error: from previous declaration 'void* operator new(std::size_t) throw (std::bad_alloc)'21:24
@sonney2klisitsyn, haha the opposite of what I was getting21:25
@sonney2kwhich g++ version?21:25
@sonney2khere too21:25
@sonney2kand with c++11 enabled?21:25
lisitsyn4.7.3 to be precise21:25
@sonney2k4.7.2-5 here :D21:25
lisitsynsonney2k: I just reconfigured21:25
@sonney2kc++11 on?21:26
lisitsynsonney2k: let me check21:26
lisitsynsonney2k: I think it was off  and now on21:26
lisitsynyes now it is enabled for sure21:26
lisitsynand no error21:26
@sonney2kshogun-buildbot, force build 'rpm1 - libshogun'21:28
shogun-buildbotbuild forced [ETA 7m43s]21:28
shogun-buildbotI'll give a shout when the build finishes21:28
@sonney2klets try a bot with old gcc21:28
@sonney2klisitsyn, it sucks big time that all builds are red due to the change of wiking/Heiko21:28
gsomixsonney2k, hey. I'm close to finish with csv. Now implementing some buffered writing stuff. Next I'll add it to CSVFile.21:28
@sonney2know we don't know if stuff fails due to their or other changes :/21:30
@sonney2kgsomix, stop21:30
@sonney2kgsomix, please send PR's as often as possible21:30
@sonney2ksmall pieces21:30
@sonney2kgsomix, if you can send a daily PR21:30
@sonney2kwith a small but tested change21:30
gsomixsonney2k, ok21:30
@sonney2klisitsyn, I am currently thinking that we don't need all these K_LOG, K_BESSEL whatever enums in shogun specifying kernel/feature class /type21:31
lisitsynsonney2k: yes of course they are not needed21:32
gsomixsonney2k, btw, what do you think about interface for CFile like this?
@sonney2klisitsyn, how to do it differently?21:32
gsomixthere is no many usage of CFile in shogun it seems. so, no many changes.21:32
lisitsynsonney2k: let me check where they are used21:32
@sonney2kgsomix, yes very much appreciated21:32
lisitsynsonney2k: so it is like instanceof here, right?21:33
@sonney2klisitsyn, also I would rather want to have a virtual print function of the kernel21:33
@sonney2klisitsyn, yeah21:33
@sonney2klisitsyn, but with cases ...21:33
@sonney2klisitsyn, currently we have a print_kernel function or sth21:34
shogun-buildbotbuild #744 of rpm1 - libshogun is complete: Success [build successful]  Build details are at
@sonney2kthat does an enum switch over all kernels21:34
@sonney2ktotally crappy21:34
@sonney2klisitsyn, hmmhh the buildbot built for some old master revision21:35
lisitsynsonney2k: well we use RTTI so we can use things like typeid and dynamic cast21:36
@sonney2ktypeid is not helpful though or is it?21:37
gsomixsonney2k, wwhere can I store data for unit-tests?21:37
-!- naywhayare [] has quit [Ping timeout: 264 seconds]21:41
-!- naywhayare [~ryan@] has joined #shogun21:55
@sonney2kI mean it returns some random compiler dependent name21:55
-!- shogun-toolbox [] has quit [Ping timeout: 263 seconds]21:55
--- Log closed Sun Jul 21 21:55:24 2013
--- Log opened Sun Jul 21 21:59:27 2013
-!- shogun-toolbox [~shogun@] has joined #shogun21:59
-!- Irssi: #shogun: Total of 8 nicks [2 ops, 0 halfops, 0 voices, 6 normal]21:59
-!- Irssi: Join to #shogun was synced in 63 secs21:59
@sonney2kgsomix, or alternatively just create a string yourself that you write/read to some tmpname22:00
-!- naywhayare [] has joined #shogun22:00
-!- iglesiasg [~Fernando@] has joined #shogun22:08
-!- mode/#shogun [+o iglesiasg] by ChanServ22:08
@iglesiasggood evening guys22:10
@sonney2kiglesiasg, evening!22:45
@sonney2klisitsyn, so who is gonna get rid of the EkernelType FeatureClass/FeatureType?22:47
lisitsynsonney2k: we should decide how first22:48
@sonney2klisitsyn, btw do we have more than that?22:48
lisitsynsonney2k: yeah I think there are some more22:48
@sonney2klisitsyn, well how I would say a) add rtti check to configure and then use dynamic_cast22:48
-!- thoralf [] has joined #shogun22:49
@sonney2kthoralf, so do it in $DEITY's name22:50
thoralfHey :)22:52
@sonney2kthoralf, what is your g++ version?22:54
thoralfsonney2k: g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.322:55
@sonney2kthoralf, I added a test for c++11 support and now I don't know if stuff works on old compilers (that dont' have it)22:56
thoralfWhich c++11 features do you want to use?23:01
@sonney2kthoralf, we are using atomic<int> now23:02
@sonney2kfor SGReferencedData23:02
thoralfWould gcc 4.5.2 help?23:02
@sonney2kthoralf, yes23:02
thoralfsonney2k: What shall I do?23:03
@sonney2kjust try to compile23:03
@sonney2kif it works all good23:04
-!- FSCV [] has joined #shogun23:09
@iglesiasgsonney2k, lisitsyn : how should the DOXYGEN_SHOULD_SKIP_THIS be used?23:11
lisitsyniglesiasg: #ifndef DOXYGEN_SHOULD_SKIP_THIS ... your stuff ... #endf23:12
@iglesiasglisitsyn: why ifndef?23:12
lisitsyndoxygen scans source files23:12
@iglesiasgI saw that in some files, but it confuses me23:12
lisitsynand it defines DOXYGEN_SHOULD_SKIP_THIS23:12
lisitsynso when it is defined the thing inside #ifndef is skipped23:12
thoralfsonney2k: I'm getting a compile error in memory.h23:12
@iglesiasglisitsyn: understood, thanks!23:13
lisitsynthoralf: reconfigure23:13
@iglesiasglisitsyn: does it make sense to put it in cpp files? I thought doxygen only scans heades23:13
thoralflisitsyn: It's a fresh clone on a machine that never saw shogun before. ;)23:13
lisitsynthoralf: ohh that's interesting then23:13
lisitsyniglesiasg: no should not23:13
@iglesiasglisitsyn: there are some cpp files with it, that's why I wonder23:14
lisitsyniglesiasg: but may be I am wrong23:16
@iglesiasgwho knows23:17
@sonney2kthoralf, ok so show us the error23:17
@sonney2kiglesiasg, no only .h files are scanned by doxygen23:17
@iglesiasgsonney2k: then these #ifndef DOXYGEN_SHOULD_SKIP_THIS ... #endif in cpp files make no sense23:18
@sonney2kiglesiasg, yes where are those?23:18
@iglesiasgsonney2k: quite a few places CombinedKernel, tapkee/defines/methods.cpp, shogun_libsvm.cpp, etc23:20
@iglesiasggrep and see23:20
@sonney2klisitsyn, btw I just did some speed comparison of std::vector resize vs. realloc increasing a memory block by 100 ints each time23:20
lisitsynsonney2k: and what you got?23:21
@sonney2klisitsyn, std::vector does a lot *less* reallocations it seems but is much slower23:21
thoralflib/memory.cpp: In function 'void* operator new(size_t)':23:21
@sonney2kas in 20 times slower23:21
thoralflib/memory.cpp:83:31: error: declaration of 'void* operator new(size_t)' throws different exceptions23:21
lisitsynsonney2k: std::vector does copy23:21
thoralf../shogun/lib/memory.h:26:7: error: from previous declaration 'void* operator new(size_t) throw (std::bad_alloc)'23:21
thoralflib/memory.cpp:114:33: error: declaration of 'void* operator new [](size_t)' throws different exceptions23:21
thoralf../shogun/lib/memory.h:30:7: error: from previous declaration 'void* operator new [](size_t) throw (std::bad_alloc)'23:21
@sonney2kthoralf, ok let me attempt a fix23:21
lisitsynsonney2k: it doesn't use realloc23:21
@sonney2klisitsyn, yeah but how can it be slower23:21
lisitsynwell you used std::vector wrong way23:21
@sonney2kit needed 22 reallocs23:22
@sonney2kand realloc 12723:22
@sonney2klisitsyn, v.resize(size)23:22
@sonney2khow else would you do it?23:22
lisitsynsonney2k: yes that's true I mean it is not well suited for multiple resizes23:22
@sonney2klisitsyn, well just 2223:22
@iglesiasgsonney2k: I think there is one method to change the capacity but not the size23:22
lisitsynyes reserve23:23
@sonney2krealloc came up with 127 different memory allocs23:23
@iglesiasgthat one, you should go with that one23:23
lisitsynsonney2k: when you do resize you fill with 023:23
@sonney2klisitsyn, that doesn't explain it23:23
lisitsynsonney2k: realloc does no filling23:23
@sonney2kiglesiasg, lisitsyn how do I specify reserve23:24
@sonney2klisitsyn, yes but filling is too cheap23:24
@iglesiasgsonney2k: vector.reserve(int)23:24
lisitsynsonney2k: it is not that cheap I think23:24
@sonney2kiglesiasg, and then it will be a reserve per slot?23:24
lisitsynit is not just memcpy23:24
@sonney2klisitsyn, well I am using an int23:25
@sonney2kjust 1 million objects23:25
lisitsynsonney2k: it is generic still23:25
lisitsynreserve will be much faster I am sure23:25
@iglesiasgsonney2k: it will reserve space (called capacity) not changing the effective size, so you can push_back as many times as you wish without going over that capacity and no realloc will be needed23:25
@iglesiasglisitsyn: yes, sure23:26
@iglesiasgI think the concept is similar to the matlab one. Memory pre-allocate, even if you don't know the exact size23:27
lisitsynwell if you constantly resize it you may need a list23:27
@sonney2kiglesiasg, but it is not doing that for future resizes right?23:27
@sonney2kiglesiasg, I mean consider that I reach the reserve23:28
@sonney2kthen the next resizes are expensive?23:28
lisitsynsonney2k: it resizes when you reach the reserve23:28
@sonney2kcrap then23:28
lisitsynsonney2k: why?23:28
@sonney2kwhy not do it the same way like dynarray does?23:28
@sonney2klisitsyn, well consider you give it 100k reserve23:28
@sonney2kbut you grow over 1MB23:28
lisitsynnot get it23:29
@sonney2kthen 100k ... 1MB is expensive23:29
thoralfsonney2k: Just tell me when I can checkout you fix.23:29
@iglesiasgwell then you should be reserving 1MB :)23:29
@sonney2kit will resize all te time23:29
@sonney2kiglesiasg, but if I don't know?23:29
@sonney2kthoralf, ok let me do it right away23:29
@iglesiasgsonney2k: how does dyn array makes it better in that case?23:29
lisitsynI don't see the difference23:30
@iglesiasgsonney2k: I think that at least you should have a rough estimate. The diff between 100k and 1MB goes beyond a rough estimate23:30
@sonney2kthoralf, please try!23:32
thoralfsonney2k: On develop?23:32
@sonney2kthoralf, yes23:32
-!- shogun-notifier- [] has joined #shogun23:33
shogun-notifier-shogun: Soeren Sonnenburg :develop * 3df0dd0 / src/shogun/lib/memory.cpp:
shogun-notifier-shogun: fix compile error occurring with non-c++11 compilers23:33
@sonney2klisitsyn, iglesiasg why not give it a granularity like dynarray has? then whenever you reach a block you still have the same slack for the next block23:33
lisitsynagain I don't get23:33
lisitsynsonney2k: granularity like how to resize?23:34
lisitsynwell I don't like that's hidden too23:35
@sonney2klisitsyn, iglesiasg it is still 10 times slower with reserve23:35
@sonney2kand 0 realloc's23:35
thoralfsonney2k: memory.cpp.o did compile.  The complete build will take a few minutes...23:36
lisitsynsonney2k: so what do you do exactly23:36
lisitsynrealloc and reserve?23:36
shogun-buildbotbuild #1490 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Soeren Sonnenburg <>23:37
@sonney2klisitsyn, so it must be initing the memory23:39
lisitsynsonney2k: that's implementation specific I don't know exaclty23:40
lisitsynahh it says it has linear complexity23:41
lisitsynwhen reallocation happens23:41
thoralfsonney2k: Done. Check the subdirectories for binaries. :)23:41
@sonney2kthoralf, thanks. now if your make check-examples would run the local stuff we would know if stuff is ok ;)23:42
lisitsynsonney2k: so you first reserve then resize?23:49
lisitsynmakes no sense to me23:49
@sonney2kdon't get it23:50
lisitsynsonney2k: well once you call reserve23:50
lisitsynit allocates that 1000000000 memory chunk23:50
lisitsynthen once you resize23:50
lisitsynit shrinks it again23:50
lisitsynto the size you provide23:50
@sonney2kit does 0 reallocations in the background23:51
@sonney2kit just sets the size to the value I give it23:51
lisitsynahh yes23:51
@sonney2kso that part is very cheap23:51
lisitsynthen you just fill it with zeros23:51
@sonney2kbut it fills the memory with 0 I guess23:51
lisitsynyes with int()23:51
@sonney2kwith real objects that doesn't matter23:52
@sonney2kcreating those is probably orders of magnitude more expensive23:52
lisitsynyes but you measure different things23:52
@sonney2kbut it is the memory filling23:52
@sonney2kresizing is still slow though when they have to be done23:52
lisitsynrealloc doesn't filling23:53
lisitsynvector does23:53
@sonney2klisitsyn, if I fill at the end and don't do reserve() it is still 2 times faster23:53
@sonney2kbtw memset is slower than a for loop clearing the memory23:53
@iglesiasglol that about memset is funny23:54
lisitsynwhat memset implementation is called btw?23:54
lisitsynthere is vectorized memset iirc23:54
lisitsynsonney2k: once you do filling it is not 10x already23:55
@sonney2klisitsyn, yes it is same speed23:55
@sonney2klisitsyn, how do I find which one it is?23:55
lisitsynit could be that std::vector uses new/delete23:55
lisitsynsonney2k: gdb23:55
@sonney2klisitsyn, it certainly does23:56
lisitsynsonney2k: it could be the reason to slow things down too23:56
thoralfsonney2k: 9 examples are failing.  Details will follow.23:57
lisitsynbut 2x is already not worth it23:57
lisitsynI wouldn't use realloc in my code because of that I mean23:57
@sonney2klisitsyn, depends where you have to use it.23:58
lisitsynsonney2k: the best example of useless realloc usage is v_array23:58
@sonney2kthoralf, hmmhh23:58
lisitsyn1) it makes covertree a bit faster but it is still slower than balltree most of the times23:58
thoralfsonney2k: One second, data files are missing.23:59
lisitsyn2) it DIES on windows23:59
--- Log closed Mon Jul 22 00:00:27 2013