fma overloads

Synopses

Declared in <mp‐units/math.h>

Computes the fma of 3 quantities

template<
    auto R,
    auto S,
    auto T,
    typename Rep1,
    typename Rep2,
    typename Rep3>
requires requires { get_common_quantity_spec(get_quantity_spec® * get_quantity_spec(S), get_quantity_spec(T)); } &&
           (equivalent(get_unit® * get_unit(S), get_unit(T))) && requires(Rep1 v1, Rep2 v2, Rep3 v3) {
             requires requires { fma(v1, v2, v3); } || requires { std::fma(v1, v2, v3); };
           }
[[nodiscard]]
constexpr
QuantityOf<get_common_quantity_spec(get_quantity_spec® * get_quantity_spec(S), get_quantity_spec(T))> auto
fma(
    quantity<R, Rep1> const& a,
    quantity<S, Rep2> const& x,
    quantity<T, Rep3> const& b) noexcept;

Computes the fma of 2 quantities and a quantity point

template<
    auto R,
    auto S,
    auto T,
    auto Origin,
    typename Rep1,
    typename Rep2,
    typename Rep3>
requires requires { get_common_quantity_spec(get_quantity_spec® * get_quantity_spec(S), get_quantity_spec(T)); } &&
           (equivalent(get_unit® * get_unit(S), get_unit(T))) && requires(Rep1 v1, Rep2 v2, Rep3 v3) {
             requires requires { fma(v1, v2, v3); } || requires { std::fma(v1, v2, v3); };
           }
[[nodiscard]]
constexpr
QuantityPointOf<get_common_quantity_spec(get_quantity_spec® * get_quantity_spec(S), get_quantity_spec(T))> auto
fma(
    quantity<R, Rep1> const& a,
    quantity<S, Rep2> const& x,
    quantity_point<T, Origin, Rep3> const& b) noexcept;

Return Value

  • Quantity: The nearest floating point representable to ax+b

  • QuantityPoint: The nearest floating point representable to ax+b

Parameters

Name

Description

a:

Multiplicand

x:

Multiplicand

b:

Addend

Created with MrDocs