| 404 | typename = std::void_t<decltype(F::Differentiability), |
| 405 | decltype(G::Differentiability)>> |
| 406 | auto operator+(const F& f, const G& g) { |
| 407 | static_assert( |
| 408 | std::is_same<typename F::ScalarType, typename G::ScalarType>::value, |
| 409 | "ScalarType must match in addition."); |
| 410 | static_assert( |
| 411 | F::Dimension == G::Dimension, |
| 412 | "Dimension mismatch: F and G must have the same compile-time dimension."); |
| 413 | constexpr auto TMode = MinDifferentiability<F, G>::value; |
| 414 | return AddExpression<F, G, TMode>(f, g); |
| 415 | } |
| 416 | |
| 417 | // For subtraction. |
| 418 | template <typename F, typename G, |
nothing calls this directly
no outgoing calls
no test coverage detected