pub trait FFTPoly<F: IsFFTField> {
// Required methods
fn evaluate_fft(
&self,
blowup_factor: usize,
domain_size: Option<usize>
) -> Result<Vec<FieldElement<F>>, FFTError>;
fn evaluate_offset_fft(
&self,
blowup_factor: usize,
domain_size: Option<usize>,
offset: &FieldElement<F>
) -> Result<Vec<FieldElement<F>>, FFTError>;
fn interpolate_fft(
fft_evals: &[FieldElement<F>]
) -> Result<Polynomial<FieldElement<F>>, FFTError>;
fn interpolate_offset_fft(
fft_evals: &[FieldElement<F>],
offset: &FieldElement<F>
) -> Result<Polynomial<FieldElement<F>>, FFTError>;
}