K-ballo changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar.cct.lsu.edu | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | Buildbot: http://rostam.cct.lsu.edu/ | Log: http://irclog.cct.lsu.edu/
weilewei has quit [Remote host closed the connection]
hkaiser has quit [Quit: bye]
jehelset has joined #ste||ar
shahrzad has quit [Quit: Leaving]
bita__ has quit [Ping timeout: 260 seconds]
parsa has quit [Ping timeout: 244 seconds]
parsa has joined #ste||ar
patrick22 has joined #ste||ar
diehlpk_work has joined #ste||ar
diehlpk_work_ has quit [Ping timeout: 264 seconds]
beauty1 has quit [Ping timeout: 244 seconds]
beauty1 has joined #ste||ar
hkaiser has joined #ste||ar
patrick22 has quit [Ping timeout: 272 seconds]
K-ballo has quit [Read error: Connection reset by peer]
K-ballo has joined #ste||ar
jehelset has quit [Remote host closed the connection]
bita has joined #ste||ar
bita has quit [Ping timeout: 256 seconds]
Coldblackice_ has joined #ste||ar
Coldblackice_ has quit [Client Quit]
Coldblackice has joined #ste||ar
Coldblackice has quit [Max SendQ exceeded]
Coldblackice has joined #ste||ar
bita has joined #ste||ar
bita has quit [Ping timeout: 265 seconds]
patrick22 has joined #ste||ar
weilewei has joined #ste||ar
bita has joined #ste||ar
<gonidelis[m]>
if i have two different `transform_`s
<gonidelis[m]>
first takes `transform_(a, b, is_seg)` and the other takes `transform_(a, b, is_not_seg)`
<gonidelis[m]>
as arguments
<gonidelis[m]>
should these transforms return the same type ?
<gonidelis[m]>
ahhh since they are invoked from the same CPO
<gonidelis[m]>
the must return the same thing
<gonidelis[m]>
I don't know if it's a proper move to change all the `segmented transform`s return types though
<K-ballo>
why would they must return the same thing?
<gonidelis[m]>
because they are invoked from the same function
<K-ballo>
and?
<K-ballo>
couldn't the return type depend on is_seg?
<gonidelis[m]>
how?
<K-ballo>
what am I missing?
<gonidelis[m]>
how can a return type be dependable?
<K-ballo>
the obvious way
<gonidelis[m]>
let me give you some code
<gonidelis[m]>
K-ballo: and what's that?
<K-ballo>
in its basic form, template <bool C> auto fun() -> std::conditional_t<C, one-return-type, the-other>
<K-ballo>
and this `is_seg` is presumably an instance of `std::bool_constant<C>`
<gonidelis[m]>
Ok that for sure wasn't obvious to me
<gonidelis[m]>
actually that's the first time i see something like that and it seems very very cool
<gonidelis[m]>
So I cannot change the design of tag invoke on my own
<gonidelis[m]>
since the team has already adapted most of the algos according to this onw
<gonidelis[m]>
one ^^
<gonidelis[m]>
and thus I should change the segmented
<gonidelis[m]>
result type
<hkaiser>
gonidelis[m]: do you understand what algorithm_result<>::type evaluates to?
<K-ballo>
ok so they don't return the same type after all, at least that makes sense
<K-ballo>
and it's just a matter of having the return type conditional
weilewei has quit [Remote host closed the connection]
<K-ballo>
hkaiser: uhm... so the return type is already different and conditional?
<hkaiser>
yes, algorithm_result<T>::type is T for sync execution and future<T> for async execution (par(task))
<gonidelis[m]>
hkaiser: not really... I think it's just a type that says: "We return a FwdIter, just keep i mind we have that X kind of exec policy on board"
<gonidelis[m]>
ok
<gonidelis[m]>
So it is conditional
<gonidelis[m]>
the thing is whether `T` should be the same for segmented and non-segmented (?)
<gonidelis[m]>
(my first statement answers to your first question btw)
<gonidelis[m]>
I think that's why I get this error but to be honest I can't fully iterpret it
<gonidelis[m]>
How do you understand the call the gives this/
<gonidelis[m]>
?
<gonidelis[m]>
K-ballo: ^^
parsa| has joined #ste||ar
diehlpk_work_ has joined #ste||ar
parsa has quit [Ping timeout: 260 seconds]
parsa| is now known as parsa
diehlpk_work has quit [Ping timeout: 260 seconds]
<gonidelis[m]>
It's really hard for me to trace this error. If anyone could lay some piece of advice here on why or where does it come from it would help