ChanServ changed the topic of #mlpack to: "mlpack: a fast, flexible machine learning library :: We don't always respond instantly, but we will respond; please be patient :: Logs at http://www.mlpack.org/irc/
d1 is now known as [DONG]DrGibby
[DONG]DrGibby is now known as d1
ImQ009 has joined #mlpack
gtank___ has quit [Read error: Connection reset by peer]
gtank___ has joined #mlpack
< rcurtin> shrit[m]: how is the debugging going? did you manage to figure out why that overload is being called?
< shrit[m]> Not exactly, I am getting some SFINAE errors that I am not understanding
< shrit[m]> But I have managed to not get archive to be an `aram::Mat`
< shrit[m]> I will do a push and you can see the code directly
< shrit[m]> I have tried a lot of things, non have worked.
< rcurtin> okay, do you want to provide a full build log or something that I can look at?
< rcurtin> that, or I can try to reproduce it
< shrit[m]> I will paste a part here in the chat, but I think you can pull directly to see all the errors and just compile
< rcurtin> why are you using SFINAE in the definition of is_loading?
< shrit[m]> I thought that if I use SFINAE in the definition of is_loading, this will prevent different types such as `arma::Mat` of being used as the Archive type. In this case, the function `is_loading` will be called only if the type is one of the true cereal type declared in SFINAE. correct me If I understood things wrong
< rcurtin> I see; I think that can work, but you also need an overload to return `false` when the SFINAE conditions are not met
< rcurtin> also, you probably want 'type* = 0' not 'type = 0'
< rcurtin> so, try adding another overload of is_loading that uses boost::disable_if<> with the same conditions, and then return `false` from that overload
< shrit[m]> OK, I see, Just a question, why we need to use `type* =0` I search for this on the internet, I did not get a good answer
< rcurtin> often `enable_if<...>::type` evaluates to `void`, and you can't have a `void` arguments, but you can have a `void*` argument :)
< rcurtin> what have you tried to debug the issue?
< shrit[m]> Actually I am not understanding the error of `no type named type`. Since the type should be provided be `boost::enable_t` So I do not how to debug this one
< rcurtin> if you wrote your expression the same way as you did in the is_loading.hpp that is checked into git, notice that you have three enable_if calls on separate lines
< rcurtin> that means the function can only be instantiated if *all* three conditions are true
< rcurtin> which is clearly impossible
< rcurtin> so, more likely, you want to combine all of the conditions into a single enable_if
< rcurtin> you could use the variant of enable_if that takes a boolean instead of a class as the first parameter, like this:
< rcurtin> std::enable_if<cond1 || cond2 || cond3>::type* = 0
< rcurtin> where cond1 could be, e.g., std::is_same<Archive, cereal::XMLInputArchive>::value
< shrit[m]> 👍️ 👍️
< rcurtin> you may want to think through the same logic for the disable_if<> case, to make sure that the function can be instantiated for *all* non-cereal archive types
< shrit[m]> Exactly, I will give it a try.
yuvraj has joined #mlpack
< walragatver[m]> jeffin143: Sorry I missed Sunday's meet.
< RyanBirminghamGi> Same here. But I'm back in Atlanta after touring the USA :P
< RyanBirminghamGi> So, as has been typical for me this summer/life, I'm just catching up some
< walragatver[m]> jeffin143: Do you need my help in any of the issues?
< walragatver[m]> Feel free to drop mail or ping me on IRC
< walragatver[m]> I will give you review on the callback PR soon in next two days.
< walragatver[m]> I am signing off now will have some urgent work to do
< walragatver[m]> birm: Great, I hope you're fine.
< RyanBirminghamGi> I am. I'll look over the active prs now(ish) :)
< RyanBirminghamGi> jeffin143: this is optional as far as I'm concerned, but would you be able to show off the work in a demo video/screencast/whatnot?
< jeffin143[m]> walragatver: no issues
< jeffin143[m]> rcurtin : how should I share 2020 work
< jeffin143[m]> Gsocblog can only be sorted on based on authors name
< jeffin143[m]> Nd not on date
< jeffin143[m]> Ryan Birmingham (Gitter): i will do it :)
< zoq> jeffin143[m]: Do ou mean the mlpack blog?
< zoq> jeffin143[m]: What about linking to the blog post itself and list the weekly reports in the blog post.
< jeffin143[m]> Yes zoq (@freenode_zoq:matrix.org)
< jeffin143[m]> Sorry I didn't understand
< zoq> jeffin143[m]: Maybe I misunderstood what you are trying to do; I thought you like to share a bunch of reports, which will also include the reports from the previous year?
< zoq> So my idea was to write a blog post that includes link to this years posts.
< jeffin143[m]> Ok final summary and link to
< jeffin143[m]> All weeks report
< jeffin143[m]> Ok understood
< zoq> Right, it's like here is the summary and if you like to know more - "I got you, here are the weekly reports"
< jeffin143[m]> Ok thanks :)
yuvraj has quit [Ping timeout: 245 seconds]
< shrit[m]> @rcurtin as you have told me I had tried to add several conditions inside `boost::enable_t<Cond || Cond2 || Cond3>` but with no success yet. However, I separated the several conditions into different functions as I have pushed in the last commit. It seems that the compiler is complaining from `call overloaded function is ambiguous`.
< shrit[m]> Either one condition per function or several conditions in one function should do the same right?
< rcurtin> let me look at the latest code you have sent
< rcurtin> you need to think through the `disable_if` logic a bit more
< rcurtin> take, for instance, the case where `Archive` is `cereal::JSONInputArchive`
< rcurtin> the following functions can be compiled for `Archive = cereal::JSONInputArchive`:
< rcurtin> - line 48
< rcurtin> - line 64
< rcurtin> - line 72
< rcurtin> - line 80
< rcurtin> so you can see, those `disable_if`s will only ensure that the function can't be formed if the type is the one type you've specified
< rcurtin> you want to write one is_loading() function that has a disable_if<> that disables the function if it's *any* of the InputArchive types
< rcurtin> remember that with SFINAE, the entire trick is that given some type, the compiler can only instantiate *one* possible overload
< rcurtin> I don't know how much you have worked with SFINAE before, but if not, this could be a useful resource: https://www.bfilipek.com/2016/02/notes-on-c-sfinae.html
< shrit[m]> I will get into these resource, I knew the concept before, but I never wrote any code using SFINAE. Your understanding is perfect, it is true that the compiler is complaining about all these disable, but I will figure out why
ImQ009 has quit [Quit: Leaving]
yuvraj has joined #mlpack
yuvraj has quit [Remote host closed the connection]
< himanshu_pathak[> Hey sakshamb189 here is the link to my GSOC work report https://github.com/himanshupathak21061998/GSOC-Work-Report
< himanshu_pathak[> Can you please have a look