Hi Axel, sorry for late reply.
Ruby-Gsl defines these as M= U S V^tr,
where U can have uneven dimensions, but many
authors require U to
be square (and softwares, eg. Mathematica)
This is because GSL can do so.
I still don’t know why I don’t get singular
values to higher precision …
does one have to convert to Float or something ?
All the values in Ruby/GSL including elements
in a GSL::Vector object are calculated in double
precision. But when you use e.g.
irb> p v or
only 4 digits of each element are displayed using
printf() with the format “%4.3e”. This does not
mean the precision of 4 significant digits. If you
need to “see” vector elements, you can obtain
them as Ruby Float by accessing with indices as
If you really need more higher precision better
than double, I have no idea.