Open in new window / Try shogun cloud
--- Log opened Fri Jul 14 00:00:54 2017
@wikinglisitsyn, here?09:04
-!- geektoni [] has joined #shogun09:20
@wikinggeektoni, hey09:21
geektoniwiking: hi09:21
-!- iglesiasg [~iglesiasg@] has joined #shogun09:36
@wikingmicmn, here?09:37
-!- mode/#shogun [+o iglesiasg] by ChanServ09:37
micmnwiking: here11:05
lisitsynwiking: yes sir11:13
@wikinglisitsyn, i have a problem ;)11:27
@wikingso say i have a class that is a base class A11:28
@wikingand it has many derived classes... and those derived classes has static const char*11:28
@wikingbut since there's no way to virtual a static variable11:28
@wikinghow sould you define these variables that a) they are static so no virtual function wrappers needs to be around b) they could be accessed from class A functions11:29
@wiking ;)11:29
@wikingmy initial idea is to make class A templated where the template parameter is a class that contains the static variables...11:30
@wikingmicmn, do you think we could 'normalize' the linalgbackend interface using CRTP pattern? the thing is that i hate those macros :)11:30
micmnyeah they are awful11:31
lisitsynwiking: yeah it looks like static polymorphism11:32
lisitsynwhich is done by CRTP11:32
@wikinglisitsyn, you mean my problem i've described above?11:32
lisitsynwiking: yes11:32
@wikingmmm i just dont like adding a template param11:32
lisitsynalthough it is not static11:33
@wikingto the base class11:33
@wikingbecause i use it around11:33
@wikingas A*11:33
lisitsynwhy do you want them to be static?11:33
@wiking(in function args)11:33
@wikinglisitsyn, coz they are just really some strings11:33
@wikingthat are fixed11:33
@wiking(basically REST paths)11:34
lisitsynyeah but static is painful in this case11:34
@wikinglisitsyn, i mean the script kiddie solution is that you maintain a map in class A :P11:34
@wikingand you fill that map in the derived classes11:35
@wikingbut it's super aweful11:35
lisitsynstatic map? how to fill?11:35
@wikingsimple map11:35
@wikingit's super aweful11:35
@wikingbut i'd like to be able to check this during compile time11:35
@wikingi mean the correctness11:36
@wikingbecause if i store the paths in like map<string, string>11:36
@wikingthen i would do callREST(map["auth"])11:36
lisitsynah ok11:36
@wikingbut then what if the user fucked up the map and did not fill he value11:37
@wikingnote this is super python solution11:37
lisitsynyeah everything is dict11:37
lisitsynlookup in a dict like a pro11:37
@wikinghence i wanna switch to something that uses the compiler11:37
lisitsynall night long haha11:37
@wikingand i wondering what's the nice solution in this case11:37
lisitsynwiking: well you basically need static polymorphism right? :)11:44
Trixiswiking: is there a document that summarises the rationale behind svmlight?11:46
Trixiswiking: asking b/c i noticed it runs to issues with numeric stability under certain circumstances, hence i would like to see if it's an intentional caveat or an unintentional implementation error11:47
-!- HeikoS [] has joined #shogun12:00
-!- mode/#shogun [+o HeikoS] by ChanServ12:00
@sukey[] Pull Request opened by geektoni12:41
micmnwiking: currently we have get_cpu_backend() that returns a pointer to a LinalgBackendBase object, so how do we achieve that with a templated base class like in CRTP?12:42
@wikingeverything is LinalgBackendBase12:47
@wikingbut LinalgBackendBase has a template param that is the actual backend12:47
micmnyeah I mean we have std::unique_ptr<LinalgBackendBase> cpu_backend; we need a workaround for this12:50
@sukey[] Pull Request synchronized by geektoni12:51
@wikingmicmn, i undersand12:53
@wikingbut the thing is that if we use only the base class12:53
@wikingtemplate<class ActualBackend> class LinalgBackend {....};12:54
@wikingthen we could actually have12:54
-!- geektoni [] has quit [Ping timeout: 240 seconds]13:40
-!- HeikoS [] has quit [Quit: Leaving.]14:14
-!- HeikoS [] has joined #shogun14:19
-!- mode/#shogun [+o HeikoS] by ChanServ14:19
-!- geektoni [] has joined #shogun14:31
@sukey[] Pull Request synchronized by geektoni14:47
-!- HeikoS [] has quit [Quit: Leaving.]14:55
@sukey[] Pull Request synchronized by geektoni14:57
@sukey[] Pull Request synchronized by geektoni15:00
-!- iglesiasg [~iglesiasg@] has quit [Quit: leaving]16:28
-!- geektoni [] has quit [Quit: Leaving.]16:31
-!- geektoni1 [] has joined #shogun16:31
-!- HeikoS [] has joined #shogun16:32
-!- mode/#shogun [+o HeikoS] by ChanServ16:32
Trixislol i managed to use shogun in a way that results in a segfault16:37
lisitsynoh it is not that difficult believe me :P16:42
Trixisi think i know which part of the code is exactly causing it16:43
Trixislisitsyn: right, question: the issue is to do with unsafe element access CCombinedFeatures::get_feature_obj(), im about to fix this and submit a PR, however im not sure if i should throw an error if the idx is out of bounds, or simply return as expected by CCombinedKernel::init16:58
Trixisor wiking if you're around17:01
@sukey[] Pull Request closed by geektoni17:13
Trixishow the hell does one submit a PR from the github desktop app ...17:54
@sukey[] Pull Request synchronized by geektoni18:33
@sukey[] Pull Request synchronized by geektoni18:49
-!- HeikoS [] has quit [Ping timeout: 276 seconds]19:00
-!- HeikoS [] has joined #shogun19:14
-!- mode/#shogun [+o HeikoS] by ChanServ19:14
-!- geektoni1 [] has quit [Ping timeout: 248 seconds]19:17
-!- HeikoS [] has quit [Quit: Leaving.]19:52
-!- OXPHOS [92bd305b@gateway/web/freenode/ip.] has quit [Quit: Page closed]22:55
@sukey[] Pull Request opened by HeyItsDavid23:02
Trixisyay finally managed to create the PR23:02
Trixisand it looks like i flipped an inequality, fuc k23:12
Trixisright, no that's only the variables in the error message i flipped around23:18
@sukey[] Pull Request closed by HeyItsDavid23:25
@sukey[] Pull Request opened by HeyItsDavid23:37
Trixis so far its green23:59
Trixislooks much better23:59
--- Log closed Sat Jul 15 00:00:56 2017