src/bisection_tree/support.rs

branch
dev
changeset 86
d5b0e496b72f
parent 75
e9f4550cfa18
equal deleted inserted replaced
76:99ad55974e62 86:d5b0e496b72f
1 1
2 /*! 2 /*!
3 Traits for representing the support of a [`Mapping`], and analysing the mapping on a [`Cube`]. 3 Traits for representing the support of a [`Mapping`], and analysing the mapping on a [`Cube`].
4 */ 4 */
5 use serde::Serialize; 5 use serde::{Serialize, Deserialize};
6 use std::ops::{MulAssign,DivAssign,Neg}; 6 use std::ops::{MulAssign,DivAssign,Neg};
7 use crate::types::{Float, Num}; 7 use crate::types::{Float, Num};
8 use crate::maputil::map2; 8 use crate::maputil::map2;
9 use crate::mapping::{ 9 use crate::mapping::{
10 Instance, Mapping, DifferentiableImpl, DifferentiableMapping, Space 10 Instance, Mapping, DifferentiableImpl, DifferentiableMapping, Space
101 } 101 }
102 102
103 impl<F : Float, T : GlobalAnalysis<F, Bounds<F>>> Bounded<F> for T { } 103 impl<F : Float, T : GlobalAnalysis<F, Bounds<F>>> Bounded<F> for T { }
104 104
105 /// Shift of [`Support`] and [`Mapping`]; output of [`Support::shift`]. 105 /// Shift of [`Support`] and [`Mapping`]; output of [`Support::shift`].
106 #[derive(Copy,Clone,Debug,Serialize)] // Serialize! but not implemented by Loc. 106 #[derive(Copy,Clone,Debug,Serialize,Deserialize)]
107 #[serde(bound(
108 serialize = "Loc<F, N> : Serialize,
109 T : Serialize,",
110 deserialize = "Loc<F, N> : for<'a> Deserialize<'a>,
111 T : for<'a> Deserialize<'a>",
112 ))]
107 pub struct Shift<T, F, const N : usize> { 113 pub struct Shift<T, F, const N : usize> {
108 shift : Loc<F, N>, 114 shift : Loc<F, N>,
109 base_fn : T, 115 base_fn : T,
110 } 116 }
111 117

mercurial