I have seen that now. And the "quick" versions are not used. That's
very handy. In fact, again with Julia, this is just to be a little
more complete with usual returned values from Julia, I just added
access to properties/fields of Julia objects:
(35) -> a:=nrand(4,4)
(35) -1.42136 -1.742 0.979898 -0.48064
-0.0343245 0.602809 1.58283 -0.859754
-2.6258 -1.35866 1.83935 0.420829
1.71514 -0.529176 -1.43319 0.578933
Type: JuliaFloat64Matrix
Time: 0.01 sec
(36) -> svd:=jlApply("svd", nrand(4,4)::JOBJECT)
(36)
SVD{Float64, Float64, Matrix{Float64}, Vector{Float64}}
U factor:
4×4 Matrix{Float64}:
0.417831 -0.57559 -0.400583 -0.577622
0.866547 0.270253 0.413597 0.0706958
-0.138286 0.653413 -0.01002 -0.744196
0.235353 0.410745 -0.817539 0.327913
singular values:
4-element Vector{Float64}:
3.088850520328464
1.3640765718602572
0.3053658244498711
0.08269730187774406
Vt factor:
4×4 Matrix{Float64}:
0.143299 0.562979 -0.73529 -0.349096
0.903295 -0.0780267 -0.0803261 0.414148
0.120522 -0.792531 -0.354939 -0.481027
0.386003 0.221045 0.571764 -0.689367
Type: JuliaObject
Time: 0.02 (EV) = 0.03 sec
(38) -> jlApply("*", svd.U, jlApply("transpose", (svd.U)))
(38)
4×4 Matrix{Float64}:
1.0 -6.36168e-18 1.47838e-16 -4.17e-18
-6.36168e-18 1.0 1.52234e-16 -8.99941e-17
1.47838e-16 1.52234e-16 1.0 -2.40414e-16
-4.17e-18 -8.99941e-17 -2.40414e-16 1.0
Type: JuliaObject
Time: 0.01 sec