We currently use the cauchy::Scalar trait for Householder. It is well designed but not without problems.
It has no separate trait for Real types. This causes unnecessary code complexities when something requires real scalars.
There are some functions that we want to add (e.g. `atan2)
It introduces a dependency on an external library purely for a single trait that deals with scalar numbers.
It might be useful to design our own scalar traits based around num::float
As real trait we might be able to just use num::float.
The num trait already has a complex type (the one that is also used by cauchy.). We should build a dedicated complex trait around this.
Probably need 3 traits in total, a real trait (e.g. Num::Float), a purely complex trait (e.g. Num::Complex) and a generic real or complex trait (e.g. HScalar, etc.).
We currently use the cauchy::Scalar trait for Householder. It is well designed but not without problems.
It might be useful to design our own scalar traits based around num::float
num::float
.cauchy
.). We should build a dedicated complex trait around this.Num::Float
), a purely complex trait (e.g.Num::Complex
) and a generic real or complex trait (e.g.HScalar
, etc.).