14 template<
size_t MAXN,
typename T,
typename T0,
typename... Ts>
15 inline constexpr auto poly(T&& x, T0&& c0, Ts&&... c)
17 if constexpr (MAXN == 1 ||
sizeof...(Ts) == 0)
return c0;
18 else return poly<MAXN-1>(std::forward<T>(x), std::forward<Ts>(c)...)*
x + c0;
34 template<
typename T,
typename T0,
typename... Ts>
35 inline constexpr auto poly(T&& x, T0&& c0, Ts&&... c)
37 return bbm::detail::poly<
sizeof...(Ts)+1>(std::forward<T>(x), std::forward<T0>(c0), std::forward<Ts>(c)...);
52 template<
size_t N,
typename T,
typename T0,
typename... Ts>
53 inline constexpr auto poly(T&& x, T0&& c0, Ts&&... c)
55 return bbm::detail::poly<N>(std::forward<T>(x), std::forward<T0>(c0), std::forward<Ts>(c)...);
constexpr decltype(auto) x(bbm::vec3d< T > &v)
Definition: vec.h:20
Definition: aggregatebsdf.h:29
constexpr auto poly(T &&x, T0 &&c0, Ts &&... c)
Compute a polynomial .
Definition: poly.h:35