> Unfortunately, I get the feeling that we get the same problems in Julia as in 
> C++ ;-(
> 
I am actually quite optimistic for the future: problems like inplace-ops are 
known, actively discussed and already partially adressed. Until there is a 
"canonical" solution one can use other means to get decent performance 
(although sometimes those are not pretty). And after all we are talking about 
version 0.4-eps() of the language ...

Best,

Alex.


> 
> It is obvious that things need to be done inplace:
> [1] There is no solution so far and I don't think that kind of problems can 
> be solved easily, except passing "memory location" to functions and mutating 
> them.
> [2] Template metaprogramming is already a mess in C++. Julia starts with 
> better meta-programming capabilities but I prefer to keep simple things 
> simple (KISS). We mainly need to define : add_linear_combination!(y, lambda1, 
> y1, lambda2, y2, ... , lamdan, yn) and for various values of n which is where 
> meta-programming can be used.
> 
> 
> I'll implement that in my code.
> The problem is that `y = y + delta_t * dy_dt` currently makes two copies, as 
> you have observed. There is an open discussion about in-place assignment 
> operators [1], which would help. There is also Devectorize.jl [2]. However, I 
> agree that having something like add!(y, x, beta) would be nice and I think 
> this also came up in some discussion. Funnily enough we just recently 
> discussed this strategy for ODE.jl [3] ...

Reply via email to