SpECTRE Documentation Coverage Report
Current view: top level - NumericalAlgorithms/RootFinding - QuadraticEquation.hpp Hit Total Coverage
Commit: 058fd9f3a53606b32c6beec17aafdb5fcf4268be Lines: 5 5 100.0 %
Date: 2024-04-27 02:05:51
Legend: Lines: hit not hit

          Line data    Source code
       1           1 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : /// \file
       5             : /// Declares functions for solving quadratic equations
       6             : 
       7             : #pragma once
       8             : 
       9             : #include <array>
      10             : #include <optional>
      11             : 
      12             : /*!
      13             :  * \ingroup NumericalAlgorithmsGroup
      14             :  * \brief Returns the positive root of a quadratic equation \f$ax^2 +
      15             :  * bx + c = 0\f$
      16             :  * \returns The positive root of a quadratic equation.
      17             :  * \requires That there are two real roots, of which only one is positive.
      18             :  */
      19           1 : double positive_root(double a, double b, double c);
      20             : 
      21             : /*!
      22             :  * \ingroup NumericalAlgorithmsGroup
      23             :  * \brief Returns the smallest root of a quadratic equation \f$ax^2 +
      24             :  * bx + c = 0\f$ that is greater than the given value, within roundoff.
      25             :  * \returns A root of a quadratic equation.
      26             :  * \requires That there are two real roots.
      27             :  * \requires At least one root is greater than the given value, to roundoff.
      28             :  */
      29             : template <typename T>
      30           1 : T smallest_root_greater_than_value_within_roundoff(const T& a, const T& b,
      31             :                                                    const T& c, double value);
      32             : /*!
      33             :  * \ingroup NumericalAlgorithmsGroup
      34             :  * \brief Returns the largest root of a quadratic equation
      35             :  * \f$ax^2 + bx + c = 0\f$ that is between min_value and max_value,
      36             :  * within roundoff.
      37             :  * \returns A root of a quadratic equation.
      38             :  * \requires That there are two real roots.
      39             :  * \requires At least one root is between min_value and max_value, to roundoff.
      40             :  */
      41             : template <typename T>
      42           1 : T largest_root_between_values_within_roundoff(const T& a, const T& b,
      43             :                                               const T& c, double min_value,
      44             :                                               double max_value);
      45             : /*!
      46             :  * \ingroup NumericalAlgorithmsGroup
      47             :  * \brief Returns the two real roots of a quadratic equation \f$ax^2 +
      48             :  * bx + c = 0\f$ with the root closer to \f$-\infty\f$ first, or an
      49             :  * empty optional if there are no real roots.
      50             :  */
      51           1 : std::optional<std::array<double, 2>> real_roots(double a, double b, double c);

Generated by: LCOV version 1.14