use ndarray::Array1;
use super::raman_spectrum::RamanSpectrum;
use super::spectra::RamanSpectrumResult;
use crate::compute::error::ComputeError;
use crate::compute::traits::Fit;
#[derive(Debug, Clone, Copy)]
pub struct RoaSpectrum {
pub incident_frequency_cm1: f64,
pub temperature_k: f64,
pub averaged: bool,
}
impl Fit for RoaSpectrum {
type Input<'a> = (&'a Array1<f64>, &'a Array1<f64>, f64);
type Output = RamanSpectrumResult;
fn fit<'a>(&self, input: Self::Input<'a>) -> Result<Self::Output, ComputeError> {
RamanSpectrum {
incident_frequency_cm1: self.incident_frequency_cm1,
temperature_k: self.temperature_k,
averaged: self.averaged,
}
.fit(input)
}
}