As a general principle in FriCAS I normally try to arrange routines
so that when matrix needs to be treated as collection of vectors
we use row vectors (unless there is good reason to do otherwise).
In case of LLL current docstring says "matrix" and routine is doing
(modulo possible differences due to roundoff) what other LLL routines
are doing.
Concerning linear independence of rows: this is standard assumption
for LLL. There are bunch of extentions of LLL, and some extentions
do not need independence. I treat current implementation as initial
one and tried to keep it simple. Certainly, it would be good to improve
it. My point of view was that there are some fundamental things
to work out before implementing improvements (mainly working
out how much numeric accuracy is needed to have reasonable progress
of LLL computation). But if you want some specific improvement,
I will not stop you doing it...
Certainly it would be good to state more precisely what LLL is
doing.
--
Waldek Hebisch