| 1 |
1 |
| 2 //! Things for constructing new kernels from component kernels and traits for analysing them |
2 //! Things for constructing new kernels from component kernels and traits for analysing them |
| 3 use serde::Serialize; |
3 use serde::{Serialize, Deserialize}; |
| 4 use numeric_literals::replace_float_literals; |
4 use numeric_literals::replace_float_literals; |
| 5 |
5 |
| 6 use alg_tools::types::*; |
6 use alg_tools::types::*; |
| 7 use alg_tools::norms::*; |
7 use alg_tools::norms::*; |
| 8 use alg_tools::loc::Loc; |
8 use alg_tools::loc::Loc; |
| 294 /// Representation of the convolution of two kernels. |
294 /// Representation of the convolution of two kernels. |
| 295 /// |
295 /// |
| 296 /// The kernels typically implement [`Support`]s and [`Mapping`]. |
296 /// The kernels typically implement [`Support`]s and [`Mapping`]. |
| 297 // |
297 // |
| 298 /// Trait implementations have to be on a case-by-case basis. |
298 /// Trait implementations have to be on a case-by-case basis. |
| 299 #[derive(Copy,Clone,Serialize,Debug,Eq,PartialEq)] |
299 #[derive(Copy,Clone,Serialize,Deserialize,Debug,Eq,PartialEq)] |
| 300 pub struct Convolution<A, B>( |
300 pub struct Convolution<A, B>( |
| 301 /// First kernel |
301 /// First kernel |
| 302 pub A, |
302 pub A, |
| 303 /// Second kernel |
303 /// Second kernel |
| 304 pub B |
304 pub B |