poulpy/src/poly.rs
src/poly.rsRaw
1pub mod poly;
2
3#[derive(Clone, Debug, PartialEq, Eq)]
4pub struct Poly<O>(pub Vec<O>);
5
6impl<O> Poly<O>where
7 O: Default + Clone,
8 {
9 pub fn new(n: usize) -> Self{
10 Self(vec![O::default();n])
11 }
12
13 pub fn new_montgomery(n: usize) -> Self{
14 Self(vec![O::default();n])
15 }
16
17 pub fn buffer_size(&self) -> usize{
18 return self.0.len()
19 }
20
21 pub fn from_buffer(&mut self, n: usize, buf: &mut [O]){
22 assert!(buf.len() >= n, "invalid buffer: buf.len()={} < n={}", buf.len(), n);
23 self.0 = Vec::from(&buf[..n]);
24 }
25
26 pub fn n(&self) -> usize{
27 return self.0.len()
28 }
29}