9 template<
typename RAN >
18 std::variant<roots_t, nullified_t, non_univariate_t>
m_data;
42 return std::holds_alternative<nullified_t>(
m_data);
46 return std::holds_alternative<roots_t>(
m_data);
50 return std::holds_alternative<non_univariate_t>(
m_data);
54 return std::get<roots_t>(
m_data);
carl is the main namespace for the library.
RealRootsResult< IntRepRealAlgebraicNumber< Number > > real_roots(const UnivariatePolynomial< Coeff > &polynomial, const Interval< Number > &interval=Interval< Number >::unbounded_interval())
Find all real roots of a univariate 'polynomial' with numeric coefficients within a given 'interval'.
RealRootsResult(roots_t &&real_roots)
std::variant< roots_t, nullified_t, non_univariate_t > m_data
RealRootsResult(nullified_t)
bool is_nullified() const
static RealRootsResult nullified_response()
RealRootsResult(non_univariate_t)
const roots_t & roots() const
static RealRootsResult non_univariate_response()
std::vector< RAN > roots_t
bool is_non_univariate() const
bool is_univariate() const
static RealRootsResult roots_response(roots_t &&real_roots)
static RealRootsResult no_roots_response()