| 1 /*! |
1 /*! |
| 2 Arithmetic of [`Mapping`]s. |
2 Arithmetic of [`Mapping`]s. |
| 3 */ |
3 */ |
| 4 |
4 |
| 5 use crate::instance::{Instance, Space}; |
5 use crate::instance::{ClosedSpace, Instance, Space}; |
| 6 use crate::mapping::{DifferentiableImpl, DifferentiableMapping, Mapping}; |
6 use crate::mapping::{DifferentiableImpl, DifferentiableMapping, Mapping}; |
| 7 use crate::types::*; |
7 use crate::types::*; |
| 8 use serde::Serialize; |
8 use serde::Serialize; |
| 9 |
9 |
| 10 /// A trait for encoding constant [`Float`] values |
10 /// A trait for encoding constant [`Float`] values |
| 61 impl<'a, T, V, D, F, C> DifferentiableImpl<D> for Weighted<T, C> |
61 impl<'a, T, V, D, F, C> DifferentiableImpl<D> for Weighted<T, C> |
| 62 where |
62 where |
| 63 F: Float, |
63 F: Float, |
| 64 D: Space, |
64 D: Space, |
| 65 T: DifferentiableMapping<D, DerivativeDomain = V>, |
65 T: DifferentiableMapping<D, DerivativeDomain = V>, |
| 66 V: Space + std::ops::Mul<F, Output = V>, |
66 V: ClosedSpace + std::ops::Mul<F, Output = V>, |
| 67 C: Constant<Type = F>, |
67 C: Constant<Type = F>, |
| 68 { |
68 { |
| 69 type Derivative = V; |
69 type Derivative = V; |
| 70 |
70 |
| 71 #[inline] |
71 #[inline] |