The Elt class includes Floats, while they PrintDense class works only for things over Doubles. This means that some functions, like lu, which requires only Elts, work for matrices of Floats, while e.g. qr (needing PrintDense) works only for matrices of Doubles. Some of the constructors, e.g. vr and vc, also only work with Doubles.
Could you either allow Floats as elements everywhere, or disallow them completely? Or at the very least, more cleanly delineate exactly what operations (exact solvers / iterative solvers / other stuff) they will be allowed in?
@gilgamec Hi, good catch; this is inconsistent. The API has been in need of attention for quite some time now. If you have an idea on how to fix this I'll happily merge a PR.
The
Elt
class includesFloat
s, while theyPrintDense
class works only for things overDouble
s. This means that some functions, likelu
, which requires onlyElt
s, work for matrices ofFloat
s, while e.g.qr
(needingPrintDense
) works only for matrices ofDouble
s. Some of the constructors, e.g.vr
andvc
, also only work withDouble
s.Could you either allow
Float
s as elements everywhere, or disallow them completely? Or at the very least, more cleanly delineate exactly what operations (exact solvers / iterative solvers / other stuff) they will be allowed in?