| 419 | typename = std::void_t<decltype(F::Differentiability), |
| 420 | decltype(G::Differentiability)>> |
| 421 | auto operator-(const F& f, const G& g) { |
| 422 | static_assert( |
| 423 | std::is_same<typename F::ScalarType, typename G::ScalarType>::value, |
| 424 | "ScalarType must match in addition."); |
| 425 | static_assert( |
| 426 | F::Dimension == G::Dimension, |
| 427 | "Dimension mismatch: F and G must have the same compile-time dimension."); |
| 428 | constexpr auto TMode = MinDifferentiability<F, G>::value; |
| 429 | return SubExpression<F, G, TMode>(f, g); |
| 430 | } |
| 431 | |
| 432 | // For multiplication (F * c and c * F). |
| 433 | template <typename F> |
nothing calls this directly
no outgoing calls
no test coverage detected