--- Log opened Thu May 08 00:00:39 2014 | ||
-!- thoralf [~thoralf@91-65-139-113-dynip.superkabel.de] has joined #shogun | 00:11 | |
thoralf | Hello. | 00:12 |
---|---|---|
-!- thoralf [~thoralf@91-65-139-113-dynip.superkabel.de] has quit [Client Quit] | 00:13 | |
-!- HeikoS [~heiko@0541877d.skybroadband.com] has joined #shogun | 00:16 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 00:16 | |
-!- lisitsyn [~qdrgsm@80.252.20.67] has joined #shogun | 00:20 | |
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has quit [Quit: Leaving] | 00:20 | |
-!- pickle27f [~pickle27@216.191.231.218] has joined #shogun | 00:51 | |
-!- pickle27f [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 01:08 | |
-!- lisitsyn [~qdrgsm@80.252.20.67] has quit [Quit: Leaving.] | 01:11 | |
-!- rho__ [~quassel@41.199.144.205] has quit [Ping timeout: 252 seconds] | 01:18 | |
-!- Theo_ [8ca3fe9e@gateway/web/freenode/ip.140.163.254.158] has quit [Ping timeout: 240 seconds] | 01:19 | |
-!- khalednasr [~k.nasr92@41.69.186.232] has joined #shogun | 01:32 | |
-!- HeikoS [~heiko@0541877d.skybroadband.com] has quit [Quit: Leaving.] | 01:35 | |
-!- khalednasr [~k.nasr92@41.69.186.232] has quit [Quit: Leaving] | 01:40 | |
-!- soumyaC [uid15286@gateway/web/irccloud.com/x-jftezjniyrvpjxep] has quit [Quit: Connection closed for inactivity] | 02:46 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 03:27 | |
-!- pickle27f [~pickle27@216.191.231.218] has joined #shogun | 03:41 | |
-!- pickle27f [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 03:53 | |
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun | 05:25 | |
shogun-notifier- | shogun: Viktor Gal :develop * 8f7847e / CMakeLists.txt,cmake/FindPythonLibs.cmake: https://github.com/shogun-toolbox/shogun/commit/8f7847e0abd4aa8f8b29d0266d09a5fd79827ac3 | 05:25 |
shogun-notifier- | shogun: Fix python interpreter and library version detection | 05:25 |
shogun-notifier- | shogun: Viktor Gal :develop * 704010f / .travis.yml: https://github.com/shogun-toolbox/shogun/commit/704010f5533b8f3a92d1c1668e8cfb09f3333758 | 05:25 |
shogun-notifier- | shogun: Enable ccache and caching the output of it on travis | 05:25 |
shogun-notifier- | shogun: Viktor Gal :develop * e2dfa74 / .travis.yml: https://github.com/shogun-toolbox/shogun/commit/e2dfa74b9446e9d73aaf001a4e10812e5e6fca69 | 05:25 |
shogun-notifier- | shogun: Switch to anaconda when building python3.3 | 05:25 |
shogun-notifier- | shogun: remove caching in travis as it is only available for private repositories | 05:25 |
shogun-notifier- | shogun: Viktor Gal :develop * a0ed9b2 / .travis.yml: https://github.com/shogun-toolbox/shogun/commit/a0ed9b2a21c43b021f19562dffbb429dde7a1613 | 05:25 |
shogun-notifier- | shogun: travis: add fast_finish option and fix anaconda path | 05:25 |
shogun-notifier- | shogun: Viktor Gal :develop * 7012034 / .travis.yml: https://github.com/shogun-toolbox/shogun/commit/7012034969c7346f2a22e490ce5a98fd0da7e0b4 | 05:25 |
shogun-notifier- | shogun: travis: upgrade miniconda version and activate conda environment | 05:25 |
shogun-notifier- | shogun: Viktor Gal :develop * 93fec06 / .travis.yml: https://github.com/shogun-toolbox/shogun/commit/93fec060f8645a91e91f601e3aab34478805e42b | 05:25 |
shogun-notifier- | shogun: travis specify PYTHON_LIBRARY for cmake when using miniconda | 05:25 |
shogun-notifier- | shogun: Viktor Gal :develop * 3466b62 / .travis.yml: https://github.com/shogun-toolbox/shogun/commit/3466b622383826f8bb2b5084edb668d3e07f91f3 | 05:25 |
-!- utsavjain [~utsav@1.22.62.109] has left #shogun [] | 05:37 | |
-!- travis-ci [~travis-ci@ec2-54-237-181-185.compute-1.amazonaws.com] has joined #shogun | 05:51 | |
travis-ci | [travis-ci] it's Viktor Gal'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/24678573 | 05:51 |
-!- travis-ci [~travis-ci@ec2-54-237-181-185.compute-1.amazonaws.com] has left #shogun [] | 05:51 | |
-!- travis-ci [~travis-ci@ec2-54-82-254-151.compute-1.amazonaws.com] has joined #shogun | 06:18 | |
travis-ci | [travis-ci] it's Viktor Gal'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/24678573 | 06:18 |
-!- travis-ci [~travis-ci@ec2-54-82-254-151.compute-1.amazonaws.com] has left #shogun [] | 06:18 | |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun | 06:22 | |
-!- pickle27 [~pickle27@192-0-136-118.cpe.teksavvy.com] has joined #shogun | 06:43 | |
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has joined #shogun | 07:02 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 07:02 | |
-!- pickle27 [~pickle27@192-0-136-118.cpe.teksavvy.com] has quit [Remote host closed the connection] | 07:04 | |
-!- Saurabh7 [~Saurabh7@115.248.45.78] has quit [Ping timeout: 252 seconds] | 07:07 | |
@iglesiasg | Hey guys | 07:27 |
shogun-buildbot | build #295 of debian wheezy - memcheck is complete: Failure [failed memory check] Build details are at http://buildbot.shogun-toolbox.org/builders/debian%20wheezy%20-%20memcheck/builds/295 blamelist: Viktor Gal <viktor.gal@maeth.com> | 08:01 |
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has quit [Quit: Leaving] | 08:21 | |
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout] | 08:25 | |
-!- witness___ [uid10044@gateway/web/irccloud.com/x-pelnjoseqmuphbue] has joined #shogun | 08:29 | |
-!- Saurabh7 [~Saurabh7@115.248.45.78] has joined #shogun | 08:31 | |
-!- Saurabh7 [~Saurabh7@115.248.45.78] has quit [Quit: Leaving] | 09:44 | |
-!- thoralf [~thoralf@91-66-177-150-dynip.superkabel.de] has joined #shogun | 10:35 | |
thoralf | Heyhey. | 10:35 |
-!- HeikoS [~heiko@0541877d.skybroadband.com] has joined #shogun | 11:25 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 11:25 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 11:39 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 11:53 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 12:09 | |
-!- soumyaC [uid15286@gateway/web/irccloud.com/x-cillcushvctzxqji] has joined #shogun | 12:14 | |
-!- HeikoS [~heiko@0541877d.skybroadband.com] has quit [Ping timeout: 240 seconds] | 12:30 | |
-!- Saurabh7 [~Saurabh7@115.248.45.78] has joined #shogun | 12:39 | |
-!- HeikoS [~heiko@ra-vpn125.ra-vpn.ucl.ac.uk] has joined #shogun | 12:45 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 12:45 | |
-!- wiking_ [~wiking@info2k1.hu] has joined #shogun | 12:47 | |
@HeikoS | wiking_: hi! thanks a lot for the travis fix! | 12:48 |
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun | 12:48 | |
shogun-notifier- | shogun: khalednasr :develop * 1a9cb16 / / (8 files): https://github.com/shogun-toolbox/shogun/commit/1a9cb169a161110f9865939d360ca90ffb8d6121 | 12:48 |
shogun-notifier- | shogun: added more unit tests for neuralnets | 12:48 |
shogun-notifier- | shogun: Heiko Strathmann :develop * c08dc9d / / (8 files): https://github.com/shogun-toolbox/shogun/commit/c08dc9d1db4451c92554530d1c44c69dca2c950c | 12:48 |
shogun-notifier- | shogun: Merge pull request #2210 from khalednasr/develop | 12:48 |
shogun-notifier- | shogun: | 12:48 |
shogun-notifier- | shogun: added more unit tests for neuralnets | 12:48 |
shogun-notifier- | shogun: Wu Lin :develop * bfabcfa / / (8 files): https://github.com/shogun-toolbox/shogun/commit/bfabcfaadc8f0fd8e6b90a14b67f1c172eaaf122 | 12:49 |
shogun-notifier- | shogun: rename LogitPiecewiseBoundLikelihood class | 12:49 |
shogun-notifier- | shogun: Heiko Strathmann :develop * bdaf87e / / (8 files): https://github.com/shogun-toolbox/shogun/commit/bdaf87edcfa03273a16426c861f43e38e92d912f | 12:49 |
shogun-notifier- | shogun: Merge pull request #2214 from yorkerlin/rename_PiecewiseBoundLikelihood | 12:49 |
shogun-notifier- | shogun: | 12:49 |
shogun-notifier- | shogun: rename LogitPiecewiseBoundLikelihood class | 12:49 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 252 seconds] | 12:55 | |
shogun-buildbot | build #657 of FC19 - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/FC19%20-%20libshogun/builds/657 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Wu Lin <yorker.lin@gmail.com>, khalednasr <k.nasr92@gmail.com> | 13:00 |
lambday | HeikoS: hey | 13:03 |
@HeikoS | lambday: hey! | 13:04 |
@HeikoS | just commented on your stuff | 13:04 |
@HeikoS | lambday: really like it | 13:05 |
@HeikoS | the traits | 13:05 |
lambday | HeikoS: checking your comment | 13:05 |
lambday | haha :D | 13:05 |
@HeikoS | and the precompiler settings ... very nice | 13:05 |
@HeikoS | lambday: green from my side, so please go ahead | 13:05 |
lambday | so we'd use it like cmake -DSetLinalgBackend=Eigen3 .. | 13:05 |
lambday | alright :) | 13:05 |
lambday | HeikoS: plus I was thinking that pulling out some things from SGVector and SGMatrix and use this linalg methods instead internally | 13:06 |
lambday | so users won't have to bother at all | 13:06 |
lambday | just a.dot(b) would work | 13:06 |
lambday | with whatever backend they choose | 13:06 |
shogun-buildbot | build #2276 of bsd1 - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/bsd1%20-%20libshogun/builds/2276 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 13:09 |
@HeikoS | lambday: yes very nice! | 13:10 |
@HeikoS | lambday: that was the original motivation in fact | 13:10 |
@HeikoS | lambday: all these ugly half-baked operations in there should go | 13:10 |
-!- PirosB3_ [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 13:10 | |
@HeikoS | lambday: like eigenvectors in SGMatrix, just so not clean | 13:10 |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 240 seconds] | 13:11 | |
-!- lisitsyn [~lisitsin@mxs.kg.ru] has joined #shogun | 13:13 | |
@HeikoS | lisitsyn: pls comment in the shogun-team mail | 13:13 |
lisitsyn | HeikoS:already :) | 13:14 |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun | 13:15 | |
lambday | HeikoS: sorry I got dc :( | 13:15 |
lambday | so I think it can be used like cmake -DSetLinalgLib=Eigen3 .. | 13:16 |
shogun-buildbot | build #658 of FC19 - libshogun is complete: Success [build successful] Build details are at http://buildbot.shogun-toolbox.org/builders/FC19%20-%20libshogun/builds/658 | 13:16 |
lambday | just checked how to do that - total novice in cmake :D | 13:16 |
wiking_ | lambday: do we really want compile time restriction on linalg engine? | 13:18 |
lambday | wiking_: I think its better otherwise its being too hard to maintain | 13:19 |
wiking_ | lambday: mmm but having it compile time is really a big restriction | 13:19 |
wiking_ | i mean it's just really fucking pain that one will have like | 13:19 |
wiking_ | 4 different packages | 13:19 |
wiking_ | shogun-linalg-eigen | 13:19 |
wiking_ | shogun-linalg-viennacl | 13:19 |
lambday | wiking_: only the global setting is set that way | 13:19 |
wiking_ | etc. | 13:19 |
lambday | wiking_: we can use whatever we want in the code | 13:19 |
lambday | no matter what global setting was use | 13:20 |
lambday | used* | 13:20 |
wiking_ | yeah but see having it as a configure parameter | 13:20 |
wiking_ | it will make it compile time dependent | 13:20 |
-!- wiking_ is now known as wiking | 13:20 | |
-!- wiking [~wiking@info2k1.hu] has quit [Changing host] | 13:20 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 13:20 | |
-!- mode/#shogun [+o wiking] by ChanServ | 13:20 | |
lambday | wiking: what's the restriction? | 13:20 |
@wiking | lambday: just mentioned it above | 13:21 |
@wiking | 13:19 < wiking_> 4 different packages | 13:21 |
@wiking | 13:19 < wiking_> shogun-linalg-eigen | 13:21 |
@wiking | 13:19 < wiking_> shogun-linalg-viennacl | 13:21 |
lambday | wiking: well we do have checks for each of them whether they exist | 13:22 |
@wiking | yes | 13:22 |
@wiking | that's another story | 13:22 |
@wiking | i'm just saying | 13:22 |
lambday | and if I write a code using sg_linalg->set_backend(Eigen3) | 13:22 |
lambday | then why can't we use -DSetLinalgBackend=Eigen3 instead? | 13:22 |
@wiking | because that's runtime | 13:22 |
@wiking | and what you are saying is compile time | 13:22 |
lambday | that's better isn't it | 13:23 |
lambday | performance wise | 13:23 |
-!- Netsplit *.net <-> *.split quits: sonne|work, PirosB3 | 13:23 | |
-!- PirosB3_ is now known as PirosB3 | 13:23 | |
@wiking | what? | 13:23 |
@wiking | i don't see why would there be performance difference | 13:23 |
lambday | no overhead of virtual calls | 13:23 |
@wiking | if -DSetLinalgBackend == sg_linalg->set_backend(Eigen3 | 13:23 |
lambday | wiking: I guess its better when the alternative looks like this - https://github.com/shogun-toolbox/shogun/pull/2209/files | 13:25 |
lambday | check LinearAlgebra.cpp line 80 | 13:25 |
lambday | now if that has to be done just for dot product | 13:26 |
lambday | (and has to be done - for all PTYPES we need everything set) | 13:26 |
lambday | then its a total nightmare | 13:26 |
lambday | moving this pain in compile time is a better soln according to me | 13:26 |
lambday | the code will be small and simple | 13:27 |
lambday | whoa! sonney just added me to shogun maintainers :D | 13:27 |
@HeikoS | lambday: congrats :) | 13:32 |
lambday | HeikoS: hehe thanks :D :D | 13:32 |
lambday | yooo | 13:32 |
-!- Netsplit over, joins: sonne|work | 13:34 | |
lambday | sonne|work: hey! :D | 13:34 |
@HeikoS | wiking: so you think runtime solutions would be better? | 13:41 |
@HeikoS | wiking: so we had a few examples where it showed an order of magnitude speedup if we dont do those calls. | 13:42 |
lambday | even in terms of code managing its super bad :( | 13:42 |
@HeikoS | wiking: this wont happen on all systems in the same way, but still some evidence | 13:42 |
@HeikoS | wiking: I agree its painful to re-compile if one wants to change backend though - however, will people (apart from developers) really do that? | 13:43 |
@HeikoS | lambday: now you can join us reviewing patches haha ;) | 13:46 |
lambday | HeikoS: haha :D | 13:46 |
lambday | HeikoS: thanks man! writing my thank you mail | 13:47 |
lambday | HeikoS: well, re-compile is required only when we want to change the global setting | 13:47 |
lambday | and if say, we changed set_backend(Eigen3) to set_backend(ViennaCL) in shogun classes, we're gonna have to recompile anyway | 13:48 |
lambday | the users cannot use set_backend() from their code (and they shouldn't I guess - since as HeikoS said, we're not planning to be a linalg library :D) | 13:49 |
lambday | but they can use any explicit backend they want | 13:49 |
@HeikoS | lambday: so just to get this right, changing the default global backend (by shogun user) require re-compile, same for changing say only the linear solve solver used everywhere | 13:52 |
@HeikoS | lambday: but the shogun developers can use specific implementations if they want | 13:52 |
@HeikoS | then those are fixed in shogun (and doe not require to re-compile things) | 13:53 |
lambday | HeikoS: you mean specific implementation, not using the global setting, right? | 13:54 |
lambday | it doesn't need to recompile | 13:54 |
lambday | once I write the code, its there in the binary which method its gonna call - Eigen3 one or ViennaCL one | 13:54 |
lambday | so changing global backend isn't gonna change that | 13:55 |
lambday | even a shogun user can use it this way | 13:55 |
lambday | impl<some-template-params, Backend::Eigen3>::method(..) | 13:56 |
lambday | we provide those other wrappers in src/linalg/modules for ease of use | 13:56 |
lisitsyn | argh I am sorry I am now folliwng that | 13:57 |
lisitsyn | so where do we stop lambday? | 13:58 |
lambday | lisitsyn: :D | 13:58 |
lisitsyn | impl<Backend>? | 13:58 |
lisitsyn | is this the best solution found so far? | 13:58 |
lambday | that's internal | 13:58 |
lambday | lisitsyn: wait let me show you | 13:58 |
lisitsyn | sure | 13:58 |
lambday | lisitsyn: https://github.com/lambday/shogun-linalg/blob/master/src/test.cpp#L31 | 13:58 |
lambday | lisitsyn: see? no backend | 13:59 |
lambday | :D | 13:59 |
lambday | lisitsyn: I am just saying, that *if* someone wants to use a specific backend, he can | 13:59 |
lambday | irrespective of what global backend was set | 13:59 |
lambday | lisitsyn: even better, we're put this inside SGVector::dot - so users would just do v1.dot(v2) | 14:00 |
lisitsyn | okay actually I have some weak objections on that ;) | 14:00 |
lambday | lisitsyn: on which one? | 14:00 |
lisitsyn | 'prefer non-member non-friend functions' | 14:01 |
lisitsyn | ;) | 14:01 |
lisitsyn | about v1.dot(v2) | 14:01 |
lisitsyn | linalg::dot<float, SGVector<float> >(a, b); | 14:01 |
lisitsyn | can't we just infer these types? | 14:01 |
lisitsyn | why to put them here explicitly? | 14:01 |
lambday | lisitsyn: its because in linalg we're dealing with generic vectors and matrices | 14:01 |
lambday | lisitsyn: its going to be there already | 14:02 |
lisitsyn | ehmm why not | 14:02 |
lisitsyn | linalg::dot(a,b) | 14:02 |
lisitsyn | shouldn't it be just inferred from a and b? | 14:02 |
lambday | lisitsyn: specialization for each PTYPE? | 14:02 |
lambday | of course can be done | 14:02 |
lisitsyn | no | 14:02 |
lambday | overloaded methods? | 14:03 |
lisitsyn | template <typename T> void someMyFunc(T a); | 14:03 |
lisitsyn | someMyFunc(3); | 14:03 |
lisitsyn | calls with int | 14:03 |
lisitsyn | someMyFunc("fdfd"); | 14:03 |
lisitsyn | calls with const char* | 14:03 |
lisitsyn | what restricts us to do the same thing? | 14:04 |
lambday | lisitsyn: I guess we can! | 14:04 |
lisitsyn | lambday: I see one thing | 14:05 |
lisitsyn | you need float | 14:05 |
lisitsyn | to do that just put a typedef to SGVector | 14:05 |
lisitsyn | typedef T ValueType; | 14:05 |
lisitsyn | so it would be like T::ValueType, T | 14:05 |
lambday | lisitsyn: where? | 14:05 |
lisitsyn | where T is SGVector<float> | 14:05 |
lambday | lisitsyn: oh in SGVector | 14:06 |
lambday | yeah | 14:06 |
lisitsyn | just inside SGVector | 14:06 |
lambday | that's best solution! | 14:06 |
lambday | same for SGMatrix | 14:06 |
lisitsyn | so we have | 14:06 |
lisitsyn | linalg::dot(a,b) | 14:06 |
lisitsyn | that's cleaner | 14:06 |
lambday | yep! | 14:06 |
lambday | great idea! | 14:06 |
lisitsyn | as for v1.dot(v2); | 14:06 |
lisitsyn | I think we don't need it | 14:06 |
lisitsyn | lets just keep sgvector clean | 14:06 |
lisitsyn | see how they did that in viennacl | 14:06 |
lambday | in SGVector we already have it | 14:07 |
lisitsyn | lets drop it ;) | 14:07 |
lambday | alrighty | 14:07 |
lisitsyn | I think it would be better this way | 14:07 |
lambday | cool! | 14:07 |
lambday | one problem though! | 14:07 |
lisitsyn | what's it? | 14:07 |
lambday | lisitsyn: ummm na its okay | 14:08 |
lambday | on second thought | 14:08 |
lisitsyn | we can also have functions like | 14:08 |
lisitsyn | fill(x, 0); | 14:08 |
lambday | lisitsyn: well, actually I wanted this to work with Eigen3::Matrix<...>, ViennaCL::matrix .... everything.. | 14:08 |
lisitsyn | fills matrix/vector with specified value | 14:08 |
lisitsyn | and so on | 14:08 |
lambday | so the typedef thig would work there or not I was confused | 14:08 |
lambday | yeah | 14:09 |
lisitsyn | like | 14:09 |
lisitsyn | dot(Eigen3::Matrix, SGMatrix) | 14:09 |
lisitsyn | this way? | 14:09 |
lambday | nono | 14:09 |
lambday | some_method(Eigen3::Matrix, ...) | 14:09 |
lambday | I mean, internally we can totally use methods, move around objects from other libs | 14:09 |
lisitsyn | I lost it a bit | 14:10 |
lambday | e.g. get_cholesky().. method | 14:10 |
lisitsyn | do we put cholesky stuff to linalg as well? | 14:10 |
lambday | lisitsyn: that's the dream! | 14:10 |
lambday | :D | 14:10 |
lisitsyn | ok ok so | 14:11 |
lambday | I mean, we can use these methods to pass our local eigen3 matrices as well | 14:11 |
lisitsyn | yeah why not | 14:11 |
lambday | but Eigen3::MatrixBase has this Scalar, right? | 14:11 |
lambday | so that can be used as typefef | 14:11 |
lambday | def* | 14:11 |
lambday | not sure about ViennaCL | 14:11 |
lisitsyn | ah I see | 14:11 |
lisitsyn | so you mean they typedef their type | 14:11 |
lisitsyn | with different name | 14:11 |
lambday | yeah | 14:11 |
lisitsyn | viennacl should eigen3 compatible | 14:11 |
lisitsyn | so if they have Scalar | 14:12 |
lisitsyn | lets have Scalar as well | 14:12 |
lambday | yep that's better | 14:12 |
lisitsyn | if they are really different | 14:12 |
lisitsyn | well | 14:12 |
lambday | if something fails - compilation error! | 14:12 |
lambday | :D | 14:12 |
lisitsyn | no | 14:12 |
lisitsyn | we can actually select between Scalar or something else | 14:12 |
lisitsyn | some trickery | 14:13 |
lambday | actually shouldn't be a problem | 14:13 |
lisitsyn | what I am sure about is that we shouldn't put these types here | 14:13 |
lisitsyn | C++ has good thing on types for that | 14:13 |
lambday | which ones? | 14:13 |
lisitsyn | I mean it can infer types and we can typedef things | 14:14 |
lambday | yeah! | 14:14 |
lambday | I am sure that its a better way | 14:14 |
lisitsyn | so if we have template parameters we don't need to put them explicit | 14:14 |
lambday | just gotta make sure it works for those template <class Vector> type of things | 14:14 |
lambday | lisitsyn: viennacl calls this self_type | 14:22 |
lambday | no value_type | 14:22 |
lambday | lisitsyn: eigen3 calls scalar | 14:23 |
lisitsyn | lambday: ok so you need some selector | 14:23 |
lisitsyn | there is a way | 14:23 |
lambday | add another level | 14:23 |
lisitsyn | lambday: nah no no | 14:23 |
lisitsyn | lambday: you can do better | 14:24 |
lisitsyn | it looks like | 14:24 |
lisitsyn | dot<Either<T::Scalar,T::self_type>,T> | 14:25 |
lambday | ah IF thing | 14:25 |
lambday | yeah! | 14:25 |
lisitsyn | yeah we can do like that | 14:25 |
lambday | yep! | 14:25 |
lambday | BUT | 14:25 |
lambday | umm what about 3-4 backends? | 14:25 |
lisitsyn | I am not sure about details but should be solvable | 14:25 |
lambday | its gonna be a bit long | 14:26 |
lisitsyn | why? | 14:26 |
lisitsyn | what's gonna be long? | 14:26 |
lambday | this expression | 14:26 |
lambday | say some other library calls it ValueType | 14:26 |
lisitsyn | we just define some template struct | 14:26 |
lisitsyn | template <typename T> Scalar | 14:26 |
lisitsyn | and partially specialize for SGVector/Eigen3/ViennaCl | 14:27 |
lisitsyn | then we do | 14:27 |
lisitsyn | dot<Scalar<T>::type, T> | 14:27 |
lisitsyn | all you need to add a new type is to specialize Scalar thing | 14:27 |
sonne|work | wiking: op lambday ... | 14:27 |
lisitsyn | good enough? ;) | 14:27 |
lambday | lisitsyn: sounds great! let me try | 14:28 |
lambday | sonne|work: :D | 14:28 |
lisitsyn | lambday: you'd need template template though | 14:28 |
lisitsyn | ah no | 14:28 |
lisitsyn | :D | 14:28 |
lisitsyn | ok easy thing | 14:28 |
lambday | lisitsyn: what is it | 14:29 |
lambday | (btw I'm totally liking this :D) | 14:29 |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 14:30 | |
lisitsyn | template <template<class> class Storage, class Type> Scalar; | 14:30 |
lisitsyn | template <> Scalar<SGVector<T>> { typedef T Type; }; | 14:30 |
lisitsyn | something like that? | 14:30 |
lisitsyn | could you try it so we can be sure it works | 14:30 |
lisitsyn | Eigen3 matrix is not a template of one parameter though | 14:31 |
lisitsyn | this sucks a bit | 14:31 |
lisitsyn | but I am pretty sure we would resolve it whatever shit it takes | 14:31 |
lambday | lisitsyn: yeah I am trying - I'm sure there must be some way | 14:33 |
lambday | variable template args | 14:38 |
lambday | lisitsyn: | 14:38 |
lambday | c++11 | 14:38 |
lambday | so let it be like template <template<class,...> > struct Scalar | 14:39 |
lambday | then we specialize for SGVector, Eigen3Vector etc | 14:39 |
lisitsyn | ha yeah why not | 14:39 |
lambday | lisitsyn: let me try if it works | 14:40 |
-!- HeikoS [~heiko@ra-vpn125.ra-vpn.ucl.ac.uk] has quit [Quit: Leaving.] | 15:09 | |
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout] | 15:49 | |
-!- HeikoS [~heiko@ra-vpn125.ra-vpn.ucl.ac.uk] has joined #shogun | 15:56 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:56 | |
-!- HeikoS [~heiko@ra-vpn125.ra-vpn.ucl.ac.uk] has quit [Quit: Leaving.] | 16:04 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 16:11 | |
shogun-buildbot | build #296 of debian wheezy - memcheck is complete: Failure [failed memory check] Build details are at http://buildbot.shogun-toolbox.org/builders/debian%20wheezy%20-%20memcheck/builds/296 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Wu Lin <yorker.lin@gmail.com>, khalednasr <k.nasr92@gmail.com> | 16:14 |
-!- pickle27f [~pickle27@216.191.231.218] has joined #shogun | 16:16 | |
-!- lisitsyn [~lisitsin@mxs.kg.ru] has quit [Quit: Leaving.] | 16:28 | |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 240 seconds] | 16:31 | |
-!- Saurabh7 [~Saurabh7@115.248.45.78] has quit [Read error: Connection reset by peer] | 17:06 | |
-!- Saurabh7 [~Saurabh7@117.246.229.143] has joined #shogun | 17:08 | |
-!- Saurabh7 [~Saurabh7@117.246.229.143] has quit [Ping timeout: 240 seconds] | 17:16 | |
-!- HeikoS [~heiko@pat-191-250.internal.eduroam.ucl.ac.uk] has joined #shogun | 17:29 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:29 | |
-!- HeikoS [~heiko@pat-191-250.internal.eduroam.ucl.ac.uk] has quit [Ping timeout: 265 seconds] | 18:46 | |
-!- thoralf [~thoralf@91-66-177-150-dynip.superkabel.de] has quit [Quit: Konversation terminated!] | 18:58 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 18:58 | |
-!- HeikoS [~heiko@ra-vpn53.ra-vpn.ucl.ac.uk] has joined #shogun | 19:00 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 19:00 | |
-!- witness___ [uid10044@gateway/web/irccloud.com/x-pelnjoseqmuphbue] has quit [Quit: Connection closed for inactivity] | 19:03 | |
-!- thoralf [~thoralf@91-65-139-113-dynip.superkabel.de] has joined #shogun | 19:50 | |
thoralf | Hello | 19:51 |
shogun-buildbot | build #113 of osx2 - python is complete: Failure [failed test python modular] Build details are at http://buildbot.shogun-toolbox.org/builders/osx2%20-%20python/builds/113 blamelist: Viktor Gal <viktor.gal@maeth.com> | 19:52 |
-!- pickle27_ [~pickle27@216.191.231.218] has joined #shogun | 20:06 | |
-!- pickle27f [~pickle27@216.191.231.218] has quit [Ping timeout: 258 seconds] | 20:09 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 20:13 | |
-!- HeikoS [~heiko@ra-vpn53.ra-vpn.ucl.ac.uk] has quit [Ping timeout: 258 seconds] | 20:13 | |
-!- HeikoS [~heiko@ra-vpn53.ra-vpn.ucl.ac.uk] has joined #shogun | 20:14 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 20:14 | |
-!- pickle27_ [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 20:16 | |
-!- utsavjain [~utsav@1.22.61.201] has joined #shogun | 20:21 | |
-!- HeikoS [~heiko@ra-vpn53.ra-vpn.ucl.ac.uk] has quit [Quit: Leaving.] | 20:37 | |
-!- pickle27f [~pickle27@216.191.231.218] has joined #shogun | 20:47 | |
-!- utsavjain1 [~utsav@1.22.61.201] has joined #shogun | 20:51 | |
-!- utsavjain [~utsav@1.22.61.201] has quit [Ping timeout: 250 seconds] | 20:53 | |
-!- thoralf [~thoralf@91-65-139-113-dynip.superkabel.de] has left #shogun ["Konversation terminated!"] | 21:08 | |
-!- thoralf [~thoralf@91-65-139-113-dynip.superkabel.de] has joined #shogun | 21:14 | |
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has joined #shogun | 21:33 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 21:33 | |
thoralf | Hey iglesiasg | 21:34 |
@iglesiasg | Hey thoralf | 21:36 |
-!- iglesiasg [~iglesiasg@524AE0A7.cm-4-3d.dynamic.ziggo.nl] has quit [Quit: Leaving] | 23:14 | |
-!- thoralf [~thoralf@91-65-139-113-dynip.superkabel.de] has quit [Quit: Konversation terminated!] | 23:22 | |
-!- khalednasr [~k.nasr92@41.69.183.238] has joined #shogun | 23:36 | |
-!- utsavjain1 [~utsav@1.22.61.201] has quit [Ping timeout: 252 seconds] | 23:55 | |
--- Log closed Fri May 09 00:00:40 2014 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!