relax class constraints on constructAlgorithm
implement algorithm conversion to arbitrary floating, not just to Expr