pub struct SurfaceView {
pub x_axis: String,
pub y_axis: String,
pub x_values: Vec<f64>,
pub y_values: Vec<f64>,
pub cells: Vec<SurfaceCell>,
pub null_bar: Option<f64>,
pub best: f64,
pub collapsed: Vec<String>,
}Expand description
Every shape at the root as well, because a window names a view on nearly
every line and arvo_api::research::StudyView would be noise. The names
do not collide: proto has no overloading and neither does this.
The in-sample score of every configuration the search tried.
§Why this exists at all
Reporting only the winner shows two completely different situations identically: a broad region of configurations that all scored well, which suggests something real and robust to the exact parameters; and one bright cell surrounded by nothing, which is what fitting noise looks like from above. The verdict machinery already deflates for the size of the search; this is the part a person has to look at.
Fields§
§x_axis: StringThe two axes drawn, by name.
y_axis: String§x_values: Vec<f64>§y_values: Vec<f64>§cells: Vec<SurfaceCell>§null_bar: Option<f64>The bar a cell has to clear to be worth anything. None when there
were too few trials to say.
best: f64§collapsed: Vec<String>Axes not drawn, because a surface has two dimensions and a grid may have more. Named so nobody reads the chart as the whole search.
Implementations§
Trait Implementations§
Source§impl Clone for SurfaceView
impl Clone for SurfaceView
Source§impl Debug for SurfaceView
impl Debug for SurfaceView
Source§impl Default for SurfaceView
impl Default for SurfaceView
Source§impl<'de> Deserialize<'de> for SurfaceView
impl<'de> Deserialize<'de> for SurfaceView
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Message for SurfaceView
impl Message for SurfaceView
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.