{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/10019","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/10019/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/10019/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/10019/events","html_url":"https://github.com/JuliaLang/julia/issues/10019","id":56251385,"number":10019,"title":"In-place right multiply by a Triangular Matrix?","user":{"login":"aviks","id":378918,"avatar_url":"https://avatars.githubusercontent.com/u/378918?v=3","gravatar_id":"","url":"https://api.github.com/users/aviks","html_url":"https://github.com/aviks","followers_url":"https://api.github.com/users/aviks/followers","following_url":"https://api.github.com/users/aviks/following{/other_user}","gists_url":"https://api.github.com/users/aviks/gists{/gist_id}","starred_url":"https://api.github.com/users/aviks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aviks/subscriptions","organizations_url":"https://api.github.com/users/aviks/orgs","repos_url":"https://api.github.com/users/aviks/repos","events_url":"https://api.github.com/users/aviks/events{/privacy}","received_events_url":"https://api.github.com/users/aviks/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/JuliaLang/julia/labels/linear%20algebra","name":"linear algebra","color":"aa8800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-02-02T15:38:52Z","updated_at":"2015-02-03T01:53:34Z","closed_at":null,"body":"`A_mul_B!` does not have a method with the third parameter as a `Triangular` . Should this not be possible?\r\n\r\n```julia\r\njulia> A\r\n3x3 Array{Float64,2}:\r\n  1.0        -0.0844873  -0.246655\r\n -0.0844873   1.0        -0.648492\r\n -0.246655   -0.648492    1.0     \r\n\r\njulia> A_mul_B!(similar(A), rand(size(A)), chol(A,:L))\r\nERROR: `A_mul_B!` has no method matching A_mul_B!(::Array{Float64,2}, ::Array{Float64,2}, ::Triangular{Float64,Array{Float64,2},:L,false})\r\n\r\njulia> A_mul_B!(similar(A), chol(A,:L), rand(size(A)))\r\n3x3 Array{Float64,2}:\r\n  0.602234   0.832127   0.964959\r\n  0.788473   0.491243   0.844884\r\n -0.550021  -0.48907   -0.646176\r\n\r\njulia> A_mul_B!(similar(A), rand(size(A)), full(chol(A,:L)))\r\n3x3 Array{Float64,2}:\r\n 0.832313   0.123504   0.0572825\r\n 0.407831  -0.0760749  0.651606 \r\n 0.253726  -0.511957   0.697846 \r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/72577591","html_url":"https://github.com/JuliaLang/julia/issues/10019#issuecomment-72577591","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/10019","id":72577591,"user":{"login":"andreasnoack","id":505001,"avatar_url":"https://avatars.githubusercontent.com/u/505001?v=3","gravatar_id":"","url":"https://api.github.com/users/andreasnoack","html_url":"https://github.com/andreasnoack","followers_url":"https://api.github.com/users/andreasnoack/followers","following_url":"https://api.github.com/users/andreasnoack/following{/other_user}","gists_url":"https://api.github.com/users/andreasnoack/gists{/gist_id}","starred_url":"https://api.github.com/users/andreasnoack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreasnoack/subscriptions","organizations_url":"https://api.github.com/users/andreasnoack/orgs","repos_url":"https://api.github.com/users/andreasnoack/repos","events_url":"https://api.github.com/users/andreasnoack/events{/privacy}","received_events_url":"https://api.github.com/users/andreasnoack/received_events","type":"User","site_admin":false},"created_at":"2015-02-03T01:53:34Z","updated_at":"2015-02-03T01:53:34Z","body":"Just to be sure that we are not misunderstanding each other here. Is you use case like the following example?\r\n```julia\r\njulia> C = chol(randn(3,3) |> t -> t't, :L)\r\n3x3 Base.LinAlg.LowerTriangular{Float64,Array{Float64,2}}:\r\n  1.21231   0.0       0.0    \r\n -0.157495  1.60136   0.0    \r\n -1.04009   0.326573  1.79356\r\n\r\njulia> A1 = randn(1000, 3, 1000);\r\n\r\njulia> A2 = randn(1000, 3, 1000);\r\n\r\njulia> copy!(A2, A1);\r\n\r\njulia> for i = 1:size(A2, 3); A_mul_B!(sub(A2,:,:,i), C);end\r\n```\r\nand would this way of solving it be less convenient and/or slower than you suggested solution with a three argument `A_mul_B!`?\r\n\r\nMy point was that `copy!(A2,A1)` is probably faster than copying each slice at a time."}}