verne.freenode.net changed the topic of #mlpack to: http://www.mlpack.org/ -- We don't respond instantly... but we will respond. Give it a few minutes. Or hours. -- Channel logs: http://www.mlpack.org/irc/
< rcurtin> sure, whichever is easier, we don't have to do it now, but I agree, we should eventually
marcosirc has quit [Quit: WeeChat 1.4]
nilay has joined #mlpack
nilay has quit [Ping timeout: 250 seconds]
Mathnerd314 has quit [Ping timeout: 244 seconds]
< mentekid> I get a weird error when trying to use Intel's icc to compile either mlpack or my own code that links with mlpack
< mentekid> "...mlpack/src/mlpack/../mlpack/core/tree/binary_space_tree/binary_space_tree.hpp(71): error: too few arguments for template template parameter "BoundType""
< mentekid> "BoundType<MetricType> bound"
< mentekid> g++ compiles it with no problems
< mentekid> full error: http://pastebin.com/huiSEssN
< mentekid> I configured cmake with cmake -DCMAKE_CXX_COMPILER=/home/mentekid/intel/bin/icpc -DDEBUG=OFF -DPROFILE=OFF ../
< mentekid> also tried /home/mentekid/intel/bin/icc but got the same error :|
Stellar_Mind has joined #mlpack
tsathoggua has joined #mlpack
carbon_addict has joined #mlpack
< carbon_addict> Armadillo 7.200 released: http://arma.sourceforge.net/download.html
carbon_addict has left #mlpack []
tsathoggua has quit [Quit: Konversation terminated!]
Stellar_Mind has quit [Ping timeout: 252 seconds]
Stellar_Mind has joined #mlpack
Stellar_Mind has quit [Ping timeout: 250 seconds]
Stellar_Mind has joined #mlpack
marcosirc has joined #mlpack
Stellar_Mind has quit [Ping timeout: 260 seconds]
< keonkim> whenever I try to edit cli_impl.hpp or cli.cpp, it gives me segmentation fault. even if I just added one line (Log::Info << "test" << std::endl;) what keyword should I search for in this case?
< keonkim> and is there a way I can specify a unit test in mlpack_test?
< rcurtin> keonkim: you can run an individual test suite with 'bin/mlpack_test -t CLITest'
< rcurtin> or whatever the name of the test suite is
< rcurtin> you can run an individual test with bin/mlpack_test -t TestSuiteName/TestName
< rcurtin> mentekid: does icc not support template aliases?
zorro_blue has joined #mlpack
< rcurtin> er actually I guess that would be variadic templates and template default parameters
< mentekid> I googled it a lot and found some icc/icpc bugs
< mentekid> so that might be it
< marcosirc> zoq: I have pushed a blog post some hours ago, but I can't see it in the website. Does it take some time to get updated?
< rcurtin> mentekid: do you have the newest version of icc?
< rcurtin> I'll produce what I think is a minimal example when I get to my desk
< rcurtin> I know what trick is causing this, I thought it was valid C++
< rcurtin> this would be a weird situation, we might need to ask Stack Overfloew's army of people who have apparently memorized the C++ standard
< mentekid> I think I do, let me check
< mentekid> I installed it two weeks ago so it should be current
< mentekid> icc version 16.0.3 (gcc version 5.0.0 compatibility)
< mentekid> oh but g++ is version 5.3.1
< rcurtin> I think that gcc 5.0.0 compiles mlpack but I am not sure
< rcurtin> writing up the code now...
< rcurtin> try that... see what it does...
zorro_blue has quit [Ping timeout: 250 seconds]
< mentekid> struct.cpp(12): error: too few arguments for template template parameter "F"
< mentekid> F<D> h;
< mentekid> ^
< mentekid> detected during instantiation of class "G<D, F> [with D=char, F=C]" at line 17
< mentekid> compilation aborted for struct.cpp (code 2)
< mentekid> yup fails
< mentekid> so it's icc's fault huh?
< mentekid> because I checked the issues and found something similar, but it had been fixed
< zoq> marcosirc: Looks like you used the same title twice: http://big.mlpack.org:7780/job/gsoc-blog/99/console
< rcurtin> mentekid: I don't know, maybe it is icc's fault, maybe it is invalid code
< marcosirc> zoq: ups! Ok, I will fix it. Thanks!
< mentekid> if I compile it with g++ it works though, just asks for c++11
< rcurtin> #446 was a bit different, in that case I had done something like
< rcurtin> template<typename A, template<typename A, typename B> class C>
< rcurtin> but clang did not like the duplicated use of the name 'A'
< mentekid> ah, I see
< mentekid> different bug then
< mentekid> well I'll go with g++'s fork that uses Intel Cilk
< mentekid> if I do find something I'll let you know though
< rcurtin> yeah, do you think this is worth posting on stack overflow? if you find nothing else about this particular type of issue, maybe that is the best solution
< rcurtin> but it's really hard to come up with terms to search for
< rcurtin> ..."default template parameter for template template parameter with variadic template arguments"?
< mentekid> i googled for "icc default template arguments" and found this: https://software.intel.com/en-us/forums/intel-c-compiler/topic/310970
< mentekid> not sure if it's the same problem
< mentekid> I could post on SO if you want, maybe they'll find a solution
< rcurtin> your call, I can do it too
< rcurtin> I think that intel forum post is not right, since that is 2003 and there were no variadic templates then
< mentekid> I always get the feeling I get ignored in such forums
< rcurtin> but I wonder if it is related
< mentekid> I think you would understand the solutions better so go ahead and post it
< mentekid> I am very (very very) far from fluent in C++ yet... Hopefully by summer's end I'll stop being afraid by it :P
< rcurtin> sure, let me do that
< rcurtin> it takes a long time... I still learn new things about C++ every day
< rcurtin> and it's been 6 years that I've been working with it basically every day :)
< mentekid> I found it so funny when I found the "C++ programing language" book somewhere
< mentekid> when I got K&R I thought I had been duped because it's only like 100 pages
zorro_blue has joined #mlpack
< mentekid> and then C++ is huge
< zorro_blue> Hi! I am Rameshwar and I also would like to contribute to mlpack. I have a reasonably good grasp over C++ and OOP. I am quite comfortable with algorithms , but well, I am a noob in ML. I am doing Andrew Ng's course side-by-side. Can anyone help me get started? :)
zorro_blue has quit [Client Quit]
zorro_blue has joined #mlpack
< rcurtin> zorro_blue: hello there Rameshwar! maybe a good place to look first is http://www.mlpack.org/involved.html
< rcurtin> and then you could take a look through the existing code, and maybe through the Github issues to see if there are any that you might be interested in solving
< rcurtin> mentekid: haha, yeah, it still surprises me how simple C is by comparison
< rcurtin> but at the same time, that simplicity has its drawbacks... like... working with strings in C :(
< zorro_blue> rcurtin: Thanks!
< rcurtin> mentekid: before I submit this, just to check, you use icc with the C++11 standard option? (I guess -std=c++11?)
< mentekid> oh wait
< mentekid> let me check
< mentekid> that I did that
< rcurtin> you probably did, mlpack's CMake configuration should enable that by default
< mentekid> phew
< mentekid> yes I did
< mentekid> I thought I hadn't
< mentekid> actually it's weird
< rcurtin> yeah, if not it probably would have given other horrible errors
< mentekid> even if i don't add it
< mentekid> it's the same exact error
< rcurtin> I guess maybe icc has c++11 support enabled by default
< mentekid> but --std=c++11 isn't ignored because if I do something stupid like --std=c++17 it complains
< mentekid> yeah probably that's it
< mentekid> we wouldn't be the first to discover icc doesn't support c++11 if that was the case :P
< mentekid> cool. Now the elders shall convene
< rcurtin> probably very quickly, I've noticed that a lot of the crazy complex C++ questions get answers in... like... 15 minutes
< rcurtin> makes me wonder how many C++ experts really have not much better to do than hang out on SO
< mentekid> maybe it's that their expertise makes them invaluable in their places of work so nobody fires them for spending all day on SO
< rcurtin> yeah, it does seem like that if you get really well versed with technology then you spend all your time at work just answering people's questions anyway
< rcurtin> er, really well versed with a specific technology, that is
Mathnerd314 has joined #mlpack
< rcurtin> mentekid: what happens if you change the example I sent a little bit...
< rcurtin> change the definition of F to 'template<typename E, typename ...J> class F'
< rcurtin> and then inside of G, instantiate h as 'F<D, J> h;'
< rcurtin> does that compile on icc?
< rcurtin> ah, well, it won't, because my C++ is wrong there... hang on...
nilay has joined #mlpack
< nilay> zoq rcurtin: can you give me an example of some function backported in arma_extend. I can look at that and get an idea about what we want to do. I am not sure I understand quite clearly right now how it needs to be done after looking at typedef.hpp and arma_extend.hpp
zorro_blue has quit [Ping timeout: 250 seconds]
< rcurtin> nilay: take a look at hdf5_misc.hpp
< rcurtin> that's not backported, but you can see, we use #ifdefs to determine whether or not to include the code
< rcurtin> mentekid: nevermind, my proposed workaround does not make sense
< nilay> rcurtin: yes, i get it. so i make a ind2sub.hpp in a similar way.
< nilay> rcurtin: one more thing i wanted to ask, it's probably very basic but very useful, for libraries that do not directly reference source code in their documentation, how do you search for a specific method, do you clone the repo and do find in folder like grep, or something else?
< rcurtin> yep, I use grep mostly
< rcurtin> in Armadillo's case it's all in include/armadillo_bits/
< rcurtin> and I bet what you need will be in fn_ind2sub.hpp or something like this
< nilay> rcurtin: ok thanks.
< rcurtin> ah actually it's in fn_misc.hpp
< rcurtin> I'd backport all ind2sub() overloads and also sub2ind() overloads for completeness
< nilay> ok
< rcurtin> can you open that as a separate PR? we can get that in more quickly since it will be easier
< nilay> yes, i was thinking of that only :)
< rcurtin> ok, great, I will take a quick look when you submit it
< rcurtin> I am a bit busy today, so there may be some time until I am able to look at it, but I should be able to fit it in today if you submit the PR today
< nilay> fast_mks gives make error: CMakeFiles/mlpack_fastmks.dir/fastmks_main.cpp.o: file not recognized: File format not recognized . I commented it and built mlpack. I thought to share if someone wants to know.
< rcurtin> File format not recognized... are you out of hard drive space maybe?
< rcurtin> a 'make clean' and then 'make mlpack_fastmks' might fix it, maybe something was corrupted, but beware if you do 'make clean' CMake will have to compile everything again from the beginning, it may take a while :)
Stellar_Mind has joined #mlpack
< nilay> no I didn't run out of any space. it wasn't happening for me. anyways I don't need it. I thought a new user installing shouldn't encounter same error so i shared.
< zoq> I can reproduce the error on FreeBSD by disabling compiler optimizations (DEBUG), however, haven't had the time to look into the issue.
Stellar_Mind has quit [Ping timeout: 264 seconds]
< nilay> if I have many mlpack cloned, i can ensure that it takes include of 1 specific version by giving absolute path in #include<...> ?
travis-ci has joined #mlpack
< travis-ci> mlpack/mlpack#920 (master - 44883af : Ryan Curtin): The build was broken.
travis-ci has left #mlpack []
< zoq> ilay: cmake/make should always pick the right header file, the one from ../src ... depending on your settings it first searches for header files in /usr/local/include so you should remove all mlpack related header files in /usr/local/include. If you don't want to delete the header files in /usr/local/include everytime maybe to avoid weird issues, don't call 'make install'. Also you can include header files
< zoq> with '#include "path/to/header/file.hpp"'
< nilay> zoq: i am writing a custom program like this: http://pastebin.com/SL595qc9 i am not doing cmake
< nilay> so i made a namespace ind_sub in one of the versions and it doesn't recognize it
< nilay> zoq : is there any other way i should go about testing this?
< zoq> nilay: You should specify the directories for header files by using 'g++ -I/home/nilay/....' and you should also buld against the right mlpack lib.
< zoq> nilay: You could/should also write a unit test for the ind2sub function to ensure it works as expected. This way you don't have to write an example program, you could just use the boost unit test framework. Take a look at one of the tests for more informations: https://github.com/mlpack/mlpack/tree/master/src/mlpack/tests
< nilay> zoq: ok thanks, let me try this. this seems to be a better way.
marcosirc has quit [Quit: WeeChat 1.4]
< nilay> zoq: this conditional compilation should always occur right? http://pastebin.com/Zc0bcz0z
< nilay> i included the file in CMakeLists in arma_extend directory. and did a make. but when i compile test, it doesn't seem to capture this thing.
< rcurtin> nilay: it should be in the "arma" namespace only, I think
< rcurtin> and inside of arma_extend.hpp, do you have an #include "fn_ind2sub.hpp" (or whatever you called the file)?
tsathoggua has joined #mlpack
tsathoggua has quit [Client Quit]
< nilay> ok let me check
< nilay> yeah i didn't include it in arma_extend.hpp , i guess i don't have to give any namespace for this?
< nilay> in the file that is.
< rcurtin> yeah, the way the armadillo code is structured, include/armadillo has a "namespace arma { }"
< rcurtin> and does all of the includes inside of that
< rcurtin> so I structured arma_extend.hpp the same way
< nilay> when i run a test will it use armadillo that mlpack provides (4), or will it use the better version (7) that is installed?
< rcurtin> mlpack doesn't provide armadillo...
< rcurtin> I guess, maybe I am not sure what you mean
< rcurtin> when you run the test, it'll use the armadillo version that mlpack is linked against
< rcurtin> which is the version shown when you run cmake (that is, mlpack uses the version that cmake found)
< nilay> ok, so i guess then i can't test this thing if i have a version > 6 installed on machine
< rcurtin> you can, but it is a little tricky, you have to set up an older armadillo version somewhere else
< rcurtin> do you want me to help you do that? I am happy to walk you through the process :)
< nilay> i added everything and it doesn't show a redefinition error of the ind2sub function
< nilay> so i guess it'll work?
< rcurtin> ok, so it sounds like it'll work for newer versions of armadillo
< rcurtin> but we do still need to test that it works for older versions of armadillo that don't have ind2sub
< nilay> yeah
< rcurtin> mentekid: the SO question got a few responses, but I'm not 100% happy with them yet
< rcurtin> one guy suggested using "template<typename...> class F", can you test that? I don't have icc
< rcurtin> nilay: you'll need to download an old version of armadillo, which is probably the most difficult part since Conrad takes them off sourceforge ... hang on
< mentekid> sure let me check
< rcurtin> nilay: you can unpack that into some directory and build it with "./configure" "make"
< rcurtin> once you have done that, say in the directory /home/nilay/armadillo-4.200.0/ (pick whatever directory you want, you'll just have to substitute your path in my commands),
< rcurtin> make a new mlpack build directory or remove everything in your existing one
< rcurtin> then configure with cmake like this:
< rcurtin> cmake -D ARMADILLO_INCLUDE_DIR=/home/nilay/armadillo-4.200.0/tmp/include/ -D ARMADILLO_LIBRARY=/home/nilay/armadillo-4.200.0/libarmadillo.so ../
< rcurtin> and if that works right, it should show that Armadillo 4.200.0 was found (instead of a newer version)
< rcurtin> then you can just make again
< rcurtin> or, I guess, if you were compiling your code by hand instead of with cmake, you just need to specify -I /home/nilay/armadillo-4.200.0/tmp/include/ -L /home/nilay/armadillo-4.200.0/ in the g++ command to use the older version of armadillo
< rcurtin> hopefully that helps, I have to go for a few minutes (back soon), so let me know if you have any problems
< nilay> rcurtin: let me do this and get back to you
< mentekid> rcurtin: do you mean like template<typename D, template<typename ...> class F>
< mentekid> (this has the same result)
< mentekid> or template<typename ...> class F which has a different error (struct.cpp(11): error: invalid combination of type specifiers)
< mentekid> to be honest I have no idea what variadicts are so I'm just following your code blindly
< rcurtin> mentekid: ok, thanks for giving that a shot
< rcurtin> I'll update the SO post
< rcurtin> variadic templates are crazy, I am not 100% familiar with them
< mentekid> let's see if they come up with anything else
< mentekid> if not it's ok i'm compiling the Cilk g++ branch so I should not have a problem
< mentekid> and I'm not sure how many people use icc anyway, I think it's too expensive (I got it free as a student otherwise I wouldn't have it...)
mentekid-mobile has joined #mlpack
< rcurtin> mentekid: there are some, occasionally I hear from icc users
< rcurtin> but evidently not too many because that code has been in mlpack for four months and nobody has said anything...
< nilay> rcurtin: it works for the 4.2 version also.
< rcurtin> sweet
< rcurtin> go ahead and file the PR
< nilay> i didn't do much i just wrote a if statement in a file
< nilay> and of course followed your instructions
< rcurtin> yeah, backporting is pretty straightforward :)
TD has joined #mlpack
TD has quit [Client Quit]
mentekid-mobile has quit [Ping timeout: 264 seconds]
nilay has quit [Ping timeout: 250 seconds]
mentekid-mobile has joined #mlpack
benchmark has joined #mlpack
benchmark has quit [Client Quit]
mentekid-mobile has quit [Client Quit]
mentekid-mobile has joined #mlpack
nilay has joined #mlpack
< nilay> sorry we had a power cut at 2AM at night :p
< nilay> rcurtin: when i am creating a pull request it also shows the changes of edge boxes algorithm
< nilay> do i need a new fork for this
< zoq> nilay: No need to apologize :) ... you could just create a new branch.
< nilay> zoq: ok
< rcurtin> eek, power cut at 2am, sorry to hear that :(
mentekid-mobile has quit [Ping timeout: 264 seconds]
TD has joined #mlpack
mentekid-mobile has joined #mlpack
< nilay> yeah it is pretty regular here.
mentekid-mobile has quit [Ping timeout: 264 seconds]
nilay has quit [Ping timeout: 250 seconds]
marcosirc has joined #mlpack
< TD> I am attempting to build mlpack using the following link http://keon.io/mlpack-on-windows.html
< TD> I am at the step 3 and when I copy and paste the code. I receive the message in the command prompt that " 'cmake is not recongized as an internal or external command, operable program or batch file.
< zoq> TD: You installed cmake right? If yes, add the cmake bin path (e.g. C:\Program Files (x86)\CMake\bin) to the enviroment variable PATH.
< zoq> TD: You could also test if it works using the PowerShell.
< TD> Yes, cmake is installed properly
< TD> set PATH=C:\Program Files (x86)\CMake 2.8\bin\;%PATH%
< zoq> TD: If you use cmake 2.8 that looks good to me.
< zoq> TD: It's still not working?
< TD> Not yet. I am going to reinstall cmake
< TD> See if that solves it
< zoq> TD: You could also explicitly specify the full path.
< TD> Good Idea
< TD> Hope it works
< TD> Is there a way to accomplish this using the GUI on cmake?
< zoq> Still not working? It should be possible to use the GUI, never used it: https://github.com/mlpack/mlpack/issues/613
< zoq> Also I guess, you need to reload your path, I think opening a new console will do the trick.
< TD> K, I appreciate the help with thi
< TD> this
< TD> It gave some insight about what the issue is at least
< TD> The C compiler identification is MSVC 19.0.23918.0 The CXX compiler identification is MSVC 19.0.23918.0 Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works Detecting C compiler ABI info Detecting C compiler ABI info - done Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visua
< TD> CMake Warning (dev) at CMakeLists.txt:42 (if): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning.
< TD> Quoted variables like "MSVC" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. This warning is for project developers. Use -Wno-dev to suppress it.
< TD> CMake Error at CMake/FindArmadillo.cmake:326 (message): ARMADILLO_INCLUDE_DIR-NOTFOUND/armadillo_bits/config.hpp not found! Cannot determine what to link against. Call Stack (most recent call first): CMakeLists.txt:130 (find_package)
< rcurtin> TD: you should be able to use the GUI to specify ARMADILLO_INCLUDE_DIR and ARMADILLO_LIBRARY, and that should help fix the issue
< rcurtin> the location of those is going to depend on how and where you installed Armadillo