| --- Log opened Sat May 10 00:00:42 2014 | ||
| -!- chakri [srichakrad@gateway/shell/bnc4free/x-dhavdmppdgxnhffn] has joined #shogun | 00:03 | |
| -!- pickle27f [~pickle27@216.191.231.218] has joined #shogun | 00:30 | |
| -!- pickle27f [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 00:49 | |
| -!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 240 seconds] | 03:59 | |
| -!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has joined #shogun | 08:00 | |
| -!- mode/#shogun [+o iglesiasg] by ChanServ | 08:00 | |
| -!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 08:13 | |
| -!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 08:27 | |
| -!- parijat [671b082a@gateway/web/freenode/ip.103.27.8.42] has joined #shogun | 08:46 | |
| -!- parijat [671b082a@gateway/web/freenode/ip.103.27.8.42] has quit [Client Quit] | 08:47 | |
| -!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has quit [Quit: Leaving] | 09:26 | |
| -!- utsavjain [~utsav@113.193.139.138] has joined #shogun | 09:46 | |
| -!- kislay [~Abhijeet@103.240.205.12] has joined #shogun | 11:12 | |
| -!- thoralf [~thoralf@91-65-137-23-dynip.superkabel.de] has joined #shogun | 12:23 | |
| thoralf | Hey. | 12:24 | 
|---|---|---|
| -!- thoralf [~thoralf@91-65-137-23-dynip.superkabel.de] has quit [Quit: Konversation terminated!] | 12:34 | |
| -!- parijat [671b082a@gateway/web/freenode/ip.103.27.8.42] has joined #shogun | 13:14 | |
| -!- utsavjain [~utsav@113.193.139.138] has quit [Quit: Leaving.] | 13:25 | |
| -!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun | 13:45 | |
| -!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has joined #shogun | 14:43 | |
| -!- mode/#shogun [+o iglesiasg] by ChanServ | 14:43 | |
| @iglesiasg | hey parijat | 14:44 | 
| -!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 14:44 | |
| parijat | hello iglesiasg | 14:44 | 
| @iglesiasg | parijat, all good? | 14:44 | 
| @iglesiasg | parijat, I am not sure how much time I'll spend around here, but at least enough to start the discussion about tree printing. So shoot! | 14:46 | 
| -!- parijat_ [671b082a@gateway/web/freenode/ip.103.27.8.42] has joined #shogun | 14:47 | |
| @iglesiasg | parijat_, connection prolems? | 14:47 | 
| parijat_ | iglesiasg: yup I think so, the page stops get updating.. | 14:48 | 
| parijat_ | iglesiasg: about tree printing, I was saying that | 14:48 | 
| -!- parijat [671b082a@gateway/web/freenode/ip.103.27.8.42] has quit [Ping timeout: 240 seconds] | 14:48 | |
| parijat_ | iglesiasg: I need the tree structure while printing the tree | 14:49 | 
| parijat_ | iglesiasg: if I make a separate class in shogun/io it would be difficult accessing the tree.. isn't it? | 14:50 | 
| parijat_ | iglesiasg: also I may traverse the tree in say save method in ID3Tree class, I cant think of ways to transfer the data between ID3Class and the graphviz class in shogun IO | 14:52 | 
| @iglesiasg | parijat_, did you see the last comment I wrote in github about the DOT file format? | 14:54 | 
| -!- kislay [~Abhijeet@103.240.205.12] has quit [Quit: Leaving] | 14:56 | |
| parijat_ | iglesiasg: ya I glanced over it once.. but my problem is DOT file writer is static method in another class , save method is in another class.. how to share data between two? | 14:56 | 
| parijat_ | iglesiasg: maybe I can pass using string arguments? | 14:57 | 
| @iglesiasg | parijat_, hold on a second, I don't see your point | 14:59 | 
| @iglesiasg | parijat_, there's no DOT file class yet as far as I can see, so what do you mean with "writer is a static method in another class"? | 15:00 | 
| @iglesiasg | parijat_, and the idea is that the File classes in io support both read (load) and write (save) operations | 15:02 | 
| parijat_ | iglesiasg: no I was saying that when I create once DOT file class, the writer method will be a method in that class right? I would need to pass on string parameters from save method in ID#Tree class to that write method in DOT File class | 15:04 | 
| @iglesiasg | parijat_, not exactly like that | 15:04 | 
| @iglesiasg | parijat_, the DOT File class would have a set of attributes that describe what is necessary to create the .dot | 15:05 | 
| @iglesiasg | parijat_, in ID3 there would be something like CID3::save(DOTFile*) which would basically set all these attributes | 15:06 | 
| @iglesiasg | parijat_, but no io takes place in that method | 15:07 | 
| parijat_ | iglesiasg: in this case, the kind of attributes needed describe a tree like nodes/linkages would not be available to the DOT File class unless we inherit it from CTreeMachine. | 15:07 | 
| @iglesiasg | parijat_, why not? | 15:08 | 
| @iglesiasg | parijat_, see io/UAIFIle.h | 15:08 | 
| @iglesiasg | parijat_, the attributes that it has | 15:08 | 
| parijat_ | iglesiasg: alright let me see. | 15:09 | 
| @iglesiasg | parijat_, it's got basically everything that is necessary to represent a factor graph (think about it as a graph if you are not familiarised with factor graphs) | 15:09 | 
| @iglesiasg | parijat_, and it does it without inheriting from CFactorGraph | 15:10 | 
| parijat_ | iglesiasg: ok.. let me have a look at how its done. | 15:10 | 
| @iglesiasg | parijat_, so the idea is basically that the io is done in only place | 15:10 | 
| @iglesiasg | parijat_, which is a file class (DOTFile or another name if you prefer) | 15:11 | 
| @iglesiasg | parijat_, the ID3, C4.5, etc, have methods that fill in the attributes of the file class | 15:11 | 
| @iglesiasg | afk, brb | 15:12 | 
| parijat_ | iglesiasg: ya I think I am getting the point here | 15:12 | 
| @iglesiasg | parijat_, great :) | 15:16 | 
| parijat_ | iglesiasg: actually I went through the CFactorGraph class.. it describes the graph using primitive Shogun data structures | 15:17 | 
| -!- kislay [~Abhijeet@103.240.206.110] has joined #shogun | 15:18 | |
| @iglesiasg | parijat_, ok. what do you want to say with that? :) | 15:18 | 
| parijat_ | iglesiasg: but in the tree case we are using self-defined data structures. Thats the difference. | 15:18 | 
| parijat_ | iglesiasg: so in UAIFile.. its easy to recreate the graph from CFactorGraph class | 15:19 | 
| @iglesiasg | parijat_, ok, that's a point | 15:19 | 
| parijat_ | iglesiasg: but in DOTFile its not that trivial | 15:19 | 
| parijat_ | iglesiasg: ya! | 15:19 | 
| @iglesiasg | parijat_, but if UAIFile can contain info to save a graph, it must be possible to do something similar to save trees | 15:20 | 
| @iglesiasg | parijat_, although in general we would want to support graphs as well because I think that the DOT file format supports both | 15:20 | 
| @iglesiasg | parijat_, so I think we should think it more in this direction | 15:20 | 
| @iglesiasg | parijat_, see what are the contents of a dot file and design data structures for that | 15:20 | 
| -!- HeikoS [~heiko@0541877d.skybroadband.com] has joined #shogun | 15:20 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 15:20 | |
| -!- HeikoS [~heiko@0541877d.skybroadband.com] has quit [Remote host closed the connection] | 15:21 | |
| parijat_ | iglesiasg: let me try! I will have to find a way to recreate a graph or tree in DOTFile class | 15:22 | 
| parijat_ | iglesiasg: ie not using the data structures we have created for tree representation | 15:23 | 
| @iglesiasg | parijat_, at first sight, I'd say that a matrix of some general data type should do | 15:23 | 
| parijat_ | iglesiasg: ya but atleast in decision tree case, whats inside a node is also important apart from structure.. matrices only capture structures | 15:24 | 
| -!- kislay [~Abhijeet@103.240.206.110] has quit [Ping timeout: 250 seconds] | 15:25 | |
| parijat_ | iglesiasg: afk, brb | 15:27 | 
| @iglesiasg | parijat_, that's what I tried to say with some general data type | 15:28 | 
| @iglesiasg | parijat_, so apart from giving the adjacency information, there's room to store the node info | 15:28 | 
| parijat_ | iglesiasg: ok! Its clearer to me now. This conversion from one way to tree representation (using CTreeMachine) to other (using adjacency information) will be done in save method in ID3Tree class right? | 15:32 | 
| parijat_ | iglesiasg: its possible to do something like this.. let me try | 15:33 | 
| @iglesiasg | parijat_, yes | 15:34 | 
| @iglesiasg | parijat_, that is what makes sense to me | 15:35 | 
| parijat_ | iglesiasg: ok cool then! | 15:35 | 
| parijat_ | iglesiasg: I am also working on implementing C4.5 algo now | 15:35 | 
| @iglesiasg | parijat_, yeah, I read your mail :) | 15:35 | 
| @iglesiasg | parijat_, that's great | 15:35 | 
| @iglesiasg | parijat_, do you want to continue with that one and then once it is finished we work back the io part? | 15:36 | 
| parijat_ | iglesiasg: once that is done, we will no longer need the ID3 algo class as C4.5 encompasses all cases of ID3 | 15:36 | 
| @iglesiasg | parijat_, oh, good | 15:36 | 
| parijat_ | iglesiasg: yes I think I will finish off C4.5 first and then get back to io | 15:37 | 
| @iglesiasg | all right | 15:37 | 
| @iglesiasg | feel free to close the PR if so | 15:37 | 
| parijat_ | iglesiasg: ya sure :-) | 15:37 | 
| @iglesiasg | parijat_, it was good you made it in any case, it is not work that will be lost | 15:38 | 
| -!- kislay [~Abhijeet@103.240.205.98] has joined #shogun | 15:38 | |
| parijat_ | iglesiasg: ya its actually helping me a lot in C4.5. | 15:38 | 
| @iglesiasg | great | 15:39 | 
| parijat_ | iglesiasg: I could re-use some parts of it. | 15:39 | 
| parijat_ | :-) | 15:39 | 
| @iglesiasg | parijat_, I will be leaving in a few minutes | 15:44 | 
| @iglesiasg | parijat_, what is your current time or timezone btw? | 15:44 | 
| parijat_ | iglesiasg: its 7:15 PM here.. UTC+5:30 | 15:44 | 
| @iglesiasg | all right! | 15:44 | 
| @iglesiasg | so +3:30 wrt me | 15:45 | 
| parijat_ | iglesiasg: whats yours btw? | 15:45 | 
| -!- kislay [~Abhijeet@103.240.205.98] has quit [Ping timeout: 250 seconds] | 15:45 | |
| @iglesiasg | UTC+2 | 15:45 | 
| @iglesiasg | CEST | 15:45 | 
| parijat_ | iglesiasg: ok cool | 15:45 | 
| parijat_ | iglesiasg: thats not much time difference, we can definitely find some common time to communicate in irc | 15:46 | 
| parijat_ | iglesiasg: also I am setting up my blog probably in octopress. | 15:47 | 
| @iglesiasg | parijat_, awesome | 15:47 | 
| @iglesiasg | parijat_, all right then, I hear from you and C4.5 then! | 15:49 | 
| @iglesiasg | parijat_, and enjoy the weekend ;) | 15:49 | 
| parijat_ | parijat_: yup! very soon hopefully!.. | 15:49 | 
| parijat_ | iglesiasg: it was meant for you not ME | 15:49 | 
| @iglesiasg | haha yeah | 15:49 | 
| @iglesiasg | I have done that thousands of times | 15:50 | 
| -!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has quit [Quit: Leaving] | 15:50 | |
| -!- parijat_ [671b082a@gateway/web/freenode/ip.103.27.8.42] has quit [Quit: Page closed] | 15:50 | |
| -!- kislay [~Abhijeet@103.240.205.76] has joined #shogun | 15:57 | |
| -!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 240 seconds] | 17:44 | |
| -!- lisitsyn [~qdrgsm@5-28-31-38.clients.tlt.100megabit.ru] has joined #shogun | 18:06 | |
| -!- lisitsyn1 [~qdrgsm@5-28-31-38.clients.tlt.100megabit.ru] has quit [Ping timeout: 240 seconds] | 18:09 | |
| -!- lisitsyn [~qdrgsm@5-28-31-38.clients.tlt.100megabit.ru] has quit [Read error: Connection reset by peer] | 18:12 | |
| -!- sunil1337 [~AndChat56@183.83.134.244] has joined #shogun | 19:06 | |
| -!- sunil1337 [~AndChat56@183.83.134.244] has quit [Read error: Connection reset by peer] | 19:10 | |
| -!- sunil1337 [~AndChat56@183.83.134.244] has joined #shogun | 19:11 | |
| -!- sunil1337 [~AndChat56@183.83.134.244] has quit [Read error: No route to host] | 19:19 | |
| -!- pickle27 [~pickle27@192-0-136-118.cpe.teksavvy.com] has joined #shogun | 19:22 | |
| -!- lisitsyn [~qdrgsm@5-28-31-38.clients.tlt.100megabit.ru] has joined #shogun | 19:25 | |
| -!- kislay [~Abhijeet@103.240.205.76] has quit [Ping timeout: 250 seconds] | 20:39 | |
| -!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 20:41 | |
| -!- kislay [~Abhijeet@103.240.205.33] has joined #shogun | 20:51 | |
| -!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun | 21:04 | |
| lambday | lisitsyn: hi! | 21:06 | 
| lisitsyn | lambday: hey | 21:07 | 
| lambday | lisitsyn: hey | 21:07 | 
| lisitsyn | what's up? | 21:08 | 
| lambday | lisitsyn: so I pushed few things to my fork! | 21:08 | 
| lisitsyn | cool | 21:08 | 
| lambday | lisitsyn: now I want to send a PR against feature/linalg in upstream | 21:08 | 
| lambday | lisitsyn: how to do that? | 21:08 | 
| lambday | choose different base? | 21:08 | 
| lambday | lisitsyn: https://github.com/lambday/shogun/compare/feature;linalg | 21:09 | 
| lisitsyn | lambday: you mean you want a PR against some not-develop branch | 21:10 | 
| lisitsyn | ? | 21:10 | 
| lambday | lisitsyn: exactly | 21:10 | 
| lisitsyn | well you can select these things | 21:10 | 
| lambday | lisitsyn: so it won't matter that that branch doesn't exist there? | 21:11 | 
| lambday | lisitsyn: it will create it? | 21:11 | 
| lisitsyn | ah I guess you'd need it | 21:11 | 
| lisitsyn | not sure about it | 21:11 | 
| lisitsyn | lambday: just create it if it is not here | 21:11 | 
| -!- kislay [~Abhijeet@103.240.205.33] has quit [Quit: Leaving] | 21:12 | |
| -!- kislay [~Abhijeet@103.240.205.33] has joined #shogun | 21:12 | |
| -!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 21:14 | |
| lambday | lisitsyn: got it man! thanks :) | 21:17 | 
| @wiking | lambday: cmake mod is not good | 21:43 | 
| @wiking | i have now like 15 mins | 21:43 | 
| @wiking | why the hell do we need to set linalg backend compile time? | 21:44 | 
| lambday | wiking: well firstly its just the global one - secondly its a lot faster | 21:44 | 
| lambday | wiking: I mean we can always use any backend I want in my code | 21:45 | 
| @wiking | no u cant | 21:45 | 
| lambday | if I just wanna leave it to default, then its easier way | 21:45 | 
| @wiking | and if so | 21:45 | 
| @wiking | why do you want it to set with a configure flag? | 21:45 | 
| lambday | wiking: that's for inside shogun methods | 21:46 | 
| lambday | wiking: I don't understand why its bad | 21:46 | 
| lambday | wiking: you mentioned about shogun-linalg-eigen3 and shogun-linalg-viennacl | 21:47 | 
| lambday | but how about we just leave things as they were? no explicit cmake option == eigen3 backend | 21:47 | 
| lambday | and that's what we use in packages | 21:47 | 
| @wiking | ok i'm just commenting the hell out of your pr | 21:50 | 
| @wiking | ok more or less done | 21:54 | 
| lambday | wiking: thanks for the comments :) | 21:54 | 
| @wiking | no | 21:54 | 
| @wiking | 21:47 < lambday> but how about we just leave things as they were? no explicit cmake option == eigen3 backend | 21:54 | 
| lambday | wiking: I'll take care of these | 21:54 | 
| @wiking | 21:47 < lambday> and that's what we use in packages | 21:55 | 
| @wiking | this is actually a bad idea | 21:55 | 
| @wiking | lambday: how will u take care of src/shogun/mathematics/linalg/linalg.h | 21:55 | 
| @wiking | ? | 21:55 | 
| @wiking | that should be discussed as it's really really not a good design atm | 21:55 | 
| @wiking | and again | 21:55 | 
| @wiking | why can't we have a linalg backend simply set during runtime | 21:56 | 
| @wiking | even if it's in the init_shogun() case | 21:56 | 
| @wiking | i dont care | 21:56 | 
| @wiking | but deciding this during compile time is really not a good decision | 21:56 | 
| @wiking | especially if once ever we are going to be able to modularize shogun | 21:56 | 
| lambday | wiking: well the idea behind keeping default backend is that - we cannot provide all default implementation for all linalg tasks - that's why having one as default sounded good to me | 21:58 | 
| lambday | wiking: and regarding compile time and runtime - I noticed 10x speedup using compile time option | 21:58 | 
| -!- travis-ci [~travis-ci@ec2-54-198-29-194.compute-1.amazonaws.com] has joined #shogun | 21:58 | |
| travis-ci | [travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/24878994 | 21:58 | 
| -!- travis-ci [~travis-ci@ec2-54-198-29-194.compute-1.amazonaws.com] has left #shogun [] | 21:58 | |
| lambday | wiking: I didn't get what you meant by taking care of linalg.h | 21:59 | 
| lambday | could you please explain a bit? | 21:59 | 
| -!- abinash_panda [0126136e@gateway/web/freenode/ip.1.38.19.110] has joined #shogun | 22:02 | |
| @wiking | lambday: i've just managed to check your benchmarking code | 22:09 | 
| lambday | wiking: alright | 22:09 | 
| @wiking | lambday: if u use 'switch (linalg_backend)' to decide what backend to use | 22:09 | 
| @wiking | that's obvious that you are going to have a big difference | 22:09 | 
| @wiking | u r adding to each call at least one extra branch | 22:09 | 
| lambday | wiking: that will cause so much difference? | 22:10 | 
| lambday | 1 mil vector dot product | 22:10 | 
| lambday | the difference is like 10x on my machine | 22:11 | 
| @wiking | get_dot_computer | 22:11 | 
| @wiking | with a reinterpret_cast | 22:11 | 
| lambday | wiking: yeah its bad! but I didn't understand that time how else we can manage this | 22:13 | 
| lambday | wiking: and its leading to super slow and *massive* code which seems totally unnecessary | 22:13 | 
| lambday | wiking: I started trying out with the other option just because of that! else we had almost decided to go by this design | 22:14 | 
| lambday | just imagine this has to be done for *all* the operations that we're gonna have! that's gonna be huge! | 22:15 | 
| @wiking | but because of this | 22:15 | 
| @wiking | i'm saying that it wasn't a good design | 22:15 | 
| lambday | the factory one? | 22:16 | 
| @wiking | yes | 22:16 | 
| @wiking | this should have been done very differently | 22:16 | 
| lambday | yeah that I felt too | 22:16 | 
| @wiking | the problem is that this way there's no fucking way in the future | 22:17 | 
| @wiking | to be able to have shogun that can support different linalg plugins | 22:17 | 
| lambday | using config options you mean? | 22:17 | 
| @wiking | and what happens when u want to use 2 different linalg backends in one code? | 22:17 | 
| @wiking | say i know that some linalg i'm doing will be much better to be used with GPU based backend | 22:18 | 
| lambday | wiking: I can always use any backend I want by explicitly mentioning it | 22:18 | 
| lambday | wiking: I can choose not to use what backend was set globally | 22:18 | 
| @wiking | but then for other data it'll make like totally misreable because the data is so small | 22:18 | 
| -!- pickle27 [~pickle27@192-0-136-118.cpe.teksavvy.com] has quit [Quit: Leaving] | 22:18 | |
| @wiking | that the memmove operation between cpu-gpu is just too big compared to the linalg op | 22:19 | 
| @wiking | lambday: how if u do this compile time? | 22:19 | 
| lambday | wiking: that's why I kept it this way so that one can directly pass ViennaCL vectors or Eigen3 vectors | 22:19 | 
| lambday | without hvaing to convert from SGVector each time | 22:20 | 
| @wiking | i wasn't talking about htis now | 22:20 | 
| @wiking | *this | 22:20 | 
| @wiking | i'm saying that i have a matrix and a vector in my code | 22:20 | 
| lambday | wiking: well, using directly methods from implementation which takes backend as a template arg | 22:20 | 
| @wiking | i want u use viennacl for the matrix and i want to use eigen for the vectors | 22:20 | 
| lambday | wiking: can be done | 22:21 | 
| @wiking | but then if so | 22:21 | 
| @wiking | then why the hell do we want to do anything compile time? | 22:21 | 
| lambday | well, what i thought is that when we can do pretty much anything we want in runtime and in compile time, then I should use compile time because of speed | 22:22 | 
| lambday | no overhead of virtual calls | 22:22 | 
| lambday | templated methods which decides things when they are used | 22:23 | 
| @wiking | 22:21 < lambday> wiking: can be done | 22:23 | 
| lambday | in compile time | 22:23 | 
| @wiking | i'm repeating myself | 22:23 | 
| @wiking | you are saying that 22:21 < lambday> wiking: can be done | 22:23 | 
| @wiking | meaning no matter what u set for cmake, u can switch to another backend, right? | 22:23 | 
| lambday | wiking: yep, if I wish! cmake option is global option but in my code I can choose any backend I want if I *know* that using this particular backend is going to be profitable | 22:24 | 
| lambday | if I just wanna rely on globally set backend by cmake, then I just use linalg::method() without caring about backend | 22:25 | 
| @wiking | lambday: but then why do you want to set this with a cmake option | 22:25 | 
| @wiking | i really dont get this | 22:25 | 
| @wiking | why do you need cmake at all if this can be changed later | 22:25 | 
| @wiking | after build | 22:25 | 
| lambday | wiking: not changed later - decided during compile time | 22:26 | 
| lambday | wiking: and global is set because not everytime we wanna specify backend for each method so for ease of use inside shogun | 22:26 | 
| @wiking | ok so now you then misunderstood my question | 22:27 | 
| @wiking | i said | 22:27 | 
| @wiking | i have shogun compiled as it is | 22:27 | 
| @wiking | say eigen backend | 22:27 | 
| lambday | yep! | 22:27 | 
| @wiking | but what if i want to use viennacl | 22:27 | 
| @wiking | i have to recompile? | 22:27 | 
| lambday | wiking: inside shogun or in some code that uses shogun | 22:27 | 
| lambday | ?? | 22:27 | 
| lambday | say, in examples | 22:29 | 
| lambday | in a shogun example you use viennacl vector | 22:29 | 
| lambday | shogun doesn't need to be recompiled | 22:29 | 
| lambday | linalg its header only | 22:29 | 
| lambday | *but* | 22:29 | 
| @wiking | both | 22:31 | 
| lambday | if inside shogun you change a method to use viennacl backend from default one you'll of course need to recompile | 22:31 | 
| lambday | if inside shogun you change anything of course you need to recompile, right? | 22:31 | 
| lambday | but as a shogun user you wanna play around with a different backend in those methods - you don't have to recompile shogun for that | 22:31 | 
| lambday | just recompile your application | 22:31 | 
| -!- abinash_panda [0126136e@gateway/web/freenode/ip.1.38.19.110] has quit [Ping timeout: 240 seconds] | 22:31 | |
| lambday | so is it that bad? | 22:32 | 
| lambday | I mean even relying on set_backend() calls - say, if I change inside shogun from set_backend(Eigen3) to set_backend(viennacl) we'll have to recompile shogun | 22:33 | 
| @wiking | yes | 22:33 | 
| @wiking | it's bad | 22:33 | 
| @wiking | because it's already a bad design decision that if one doesn't have say eigen | 22:33 | 
| lambday | wiking: what flexibility are we losing here? | 22:33 | 
| @wiking | you dont have some major feature of shogun | 22:33 | 
| lambday | wiking: that can be modified | 22:34 | 
| @wiking | GP related things are generally like hat | 22:34 | 
| @wiking | *that | 22:34 | 
| @wiking | #ifdef HAVE_EIGEN3 | 22:34 | 
| @wiking | ... | 22:34 | 
| @wiking | and then u totally miss a whole class if u dont have eigen | 22:34 | 
| @wiking | it was the same with lapack | 22:34 | 
| lambday | that's true even now | 22:34 | 
| @wiking | "22:33 <@wiking> because it's already a bad design decision that if one doesn't have say eigen" | 22:34 | 
| @wiking | *already* | 22:35 | 
| lambday | yeah | 22:35 | 
| @wiking | implying -> it's already like this | 22:35 | 
| lambday | but the pt is, we can change that | 22:35 | 
| lambday | so having eigen3 as default is not something you like | 22:35 | 
| @wiking | no | 22:35 | 
| @wiking | it's really not about that | 22:35 | 
| @wiking | it's about having a shogun class being glued to a shogun class | 22:36 | 
| @wiking | it's about having a shogun class being glued to a library | 22:36 | 
| lambday | wiking: okay so the other option is - we can remove these HAVE_DEFAULT thing | 22:37 | 
| lambday | no default per se | 22:37 | 
| lambday | and it should work even when eigen3 is not there but viennacl is there to the rescue | 22:38 | 
| lambday | right? | 22:38 | 
| @wiking | mmm | 22:38 | 
| @wiking | i dont know but i have a feeling that we are talking in parallel | 22:38 | 
| lambday | okay did I get you right on this - you don't want shogun to be glued to any particular library | 22:39 | 
| @wiking | indeed | 22:39 | 
| @wiking | we already have that | 22:39 | 
| @wiking | which is of course hard to change | 22:39 | 
| @wiking | but at least we should try to not to add more things like this | 22:39 | 
| lambday | alright then if I get you right, these linalg methods should work if *any* of the available backends are there | 22:40 | 
| lambday | and if *none* of them are found, we're missing linalg library | 22:41 | 
| lambday | (because we cannot write a whole linalg library on our own) | 22:41 | 
| lambday | wiking: | 22:42 | 
| -!- soumyaC [uid15286@gateway/web/irccloud.com/x-laocytcyesefzakl] has joined #shogun | 23:01 | |
| -!- ChanServ [ChanServ@services.] has quit [shutting down] | 23:14 | |
| -!- ChanServ [ChanServ@services.] has joined #shogun | 23:30 | |
| -!- ServerMode/#shogun [+o ChanServ] by sendak.freenode.net | 23:30 | |
| -!- naywhayare [~ryan@spoon.lugatgt.org] has quit [Ping timeout: 252 seconds] | 23:35 | |
| -!- naywhayare [~ryan@spoon.lugatgt.org] has joined #shogun | 23:36 | |
| -!- naywhayare [~ryan@spoon.lugatgt.org] has quit [Ping timeout: 252 seconds] | 23:41 | |
| -!- naywhayare [~ryan@spoon.lugatgt.org] has joined #shogun | 23:42 | |
| -!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Quit: Leaving.] | 23:44 | |
| --- Log closed Sun May 11 00:00:43 2014 | ||
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!