mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 21:26:41 +01:00
added Added vmp_extract_row, vmp_extract_row_dft, vmp_extract_tmp_bytes, vmp_prepare_row_dft
-
This commit is contained in:
@@ -59,40 +59,40 @@ pub struct reim_to_znx64_precomp {
|
||||
}
|
||||
pub type REIM_TO_ZNX64_PRECOMP = reim_to_znx64_precomp;
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_fft_precomp(m: u32, num_buffers: u32) -> *mut REIM_FFT_PRECOMP;
|
||||
pub unsafe fn new_reim_fft_precomp(m: u32, num_buffers: u32) -> *mut REIM_FFT_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_fft_precomp_get_buffer(
|
||||
pub unsafe fn reim_fft_precomp_get_buffer(
|
||||
tables: *const REIM_FFT_PRECOMP,
|
||||
buffer_index: u32,
|
||||
) -> *mut f64;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_fft_buffer(m: u32) -> *mut f64;
|
||||
pub unsafe fn new_reim_fft_buffer(m: u32) -> *mut f64;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn delete_reim_fft_buffer(buffer: *mut f64);
|
||||
pub unsafe fn delete_reim_fft_buffer(buffer: *mut f64);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_fft(tables: *const REIM_FFT_PRECOMP, data: *mut f64);
|
||||
pub unsafe fn reim_fft(tables: *const REIM_FFT_PRECOMP, data: *mut f64);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_ifft_precomp(m: u32, num_buffers: u32) -> *mut REIM_IFFT_PRECOMP;
|
||||
pub unsafe fn new_reim_ifft_precomp(m: u32, num_buffers: u32) -> *mut REIM_IFFT_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_ifft_precomp_get_buffer(
|
||||
pub unsafe fn reim_ifft_precomp_get_buffer(
|
||||
tables: *const REIM_IFFT_PRECOMP,
|
||||
buffer_index: u32,
|
||||
) -> *mut f64;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_ifft(tables: *const REIM_IFFT_PRECOMP, data: *mut f64);
|
||||
pub unsafe fn reim_ifft(tables: *const REIM_IFFT_PRECOMP, data: *mut f64);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_fftvec_mul_precomp(m: u32) -> *mut REIM_FFTVEC_MUL_PRECOMP;
|
||||
pub unsafe fn new_reim_fftvec_mul_precomp(m: u32) -> *mut REIM_FFTVEC_MUL_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_fftvec_mul(
|
||||
pub unsafe fn reim_fftvec_mul(
|
||||
tables: *const REIM_FFTVEC_MUL_PRECOMP,
|
||||
r: *mut f64,
|
||||
a: *const f64,
|
||||
@@ -100,10 +100,10 @@ unsafe extern "C" {
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_fftvec_addmul_precomp(m: u32) -> *mut REIM_FFTVEC_ADDMUL_PRECOMP;
|
||||
pub unsafe fn new_reim_fftvec_addmul_precomp(m: u32) -> *mut REIM_FFTVEC_ADDMUL_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_fftvec_addmul(
|
||||
pub unsafe fn reim_fftvec_addmul(
|
||||
tables: *const REIM_FFTVEC_ADDMUL_PRECOMP,
|
||||
r: *mut f64,
|
||||
a: *const f64,
|
||||
@@ -111,27 +111,30 @@ unsafe extern "C" {
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_from_znx32_precomp(m: u32, log2bound: u32) -> *mut REIM_FROM_ZNX32_PRECOMP;
|
||||
pub unsafe fn new_reim_from_znx32_precomp(
|
||||
m: u32,
|
||||
log2bound: u32,
|
||||
) -> *mut REIM_FROM_ZNX32_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_from_znx32(
|
||||
pub unsafe fn reim_from_znx32(
|
||||
tables: *const REIM_FROM_ZNX32_PRECOMP,
|
||||
r: *mut ::std::os::raw::c_void,
|
||||
a: *const i32,
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_from_znx64(
|
||||
pub unsafe fn reim_from_znx64(
|
||||
tables: *const REIM_FROM_ZNX64_PRECOMP,
|
||||
r: *mut ::std::os::raw::c_void,
|
||||
a: *const i64,
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_from_znx64_precomp(m: u32, maxbnd: u32) -> *mut REIM_FROM_ZNX64_PRECOMP;
|
||||
pub unsafe fn new_reim_from_znx64_precomp(m: u32, maxbnd: u32) -> *mut REIM_FROM_ZNX64_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_from_znx64_simple(
|
||||
pub unsafe fn reim_from_znx64_simple(
|
||||
m: u32,
|
||||
log2bound: u32,
|
||||
r: *mut ::std::os::raw::c_void,
|
||||
@@ -139,58 +142,64 @@ unsafe extern "C" {
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_from_tnx32_precomp(m: u32) -> *mut REIM_FROM_TNX32_PRECOMP;
|
||||
pub unsafe fn new_reim_from_tnx32_precomp(m: u32) -> *mut REIM_FROM_TNX32_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_from_tnx32(
|
||||
pub unsafe fn reim_from_tnx32(
|
||||
tables: *const REIM_FROM_TNX32_PRECOMP,
|
||||
r: *mut ::std::os::raw::c_void,
|
||||
a: *const i32,
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_to_tnx32_precomp(
|
||||
pub unsafe fn new_reim_to_tnx32_precomp(
|
||||
m: u32,
|
||||
divisor: f64,
|
||||
log2overhead: u32,
|
||||
) -> *mut REIM_TO_TNX32_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_to_tnx32(
|
||||
pub unsafe fn reim_to_tnx32(
|
||||
tables: *const REIM_TO_TNX32_PRECOMP,
|
||||
r: *mut i32,
|
||||
a: *const ::std::os::raw::c_void,
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_to_tnx_precomp(
|
||||
pub unsafe fn new_reim_to_tnx_precomp(
|
||||
m: u32,
|
||||
divisor: f64,
|
||||
log2overhead: u32,
|
||||
) -> *mut REIM_TO_TNX_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_to_tnx(tables: *const REIM_TO_TNX_PRECOMP, r: *mut f64, a: *const f64);
|
||||
pub unsafe fn reim_to_tnx(tables: *const REIM_TO_TNX_PRECOMP, r: *mut f64, a: *const f64);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_to_tnx_simple(m: u32, divisor: f64, log2overhead: u32, r: *mut f64, a: *const f64);
|
||||
pub unsafe fn reim_to_tnx_simple(
|
||||
m: u32,
|
||||
divisor: f64,
|
||||
log2overhead: u32,
|
||||
r: *mut f64,
|
||||
a: *const f64,
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn new_reim_to_znx64_precomp(
|
||||
pub unsafe fn new_reim_to_znx64_precomp(
|
||||
m: u32,
|
||||
divisor: f64,
|
||||
log2bound: u32,
|
||||
) -> *mut REIM_TO_ZNX64_PRECOMP;
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_to_znx64(
|
||||
pub unsafe fn reim_to_znx64(
|
||||
precomp: *const REIM_TO_ZNX64_PRECOMP,
|
||||
r: *mut i64,
|
||||
a: *const ::std::os::raw::c_void,
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_to_znx64_simple(
|
||||
pub unsafe fn reim_to_znx64_simple(
|
||||
m: u32,
|
||||
divisor: f64,
|
||||
log2bound: u32,
|
||||
@@ -199,13 +208,13 @@ unsafe extern "C" {
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_fft_simple(m: u32, data: *mut ::std::os::raw::c_void);
|
||||
pub unsafe fn reim_fft_simple(m: u32, data: *mut ::std::os::raw::c_void);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_ifft_simple(m: u32, data: *mut ::std::os::raw::c_void);
|
||||
pub unsafe fn reim_ifft_simple(m: u32, data: *mut ::std::os::raw::c_void);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_fftvec_mul_simple(
|
||||
pub unsafe fn reim_fftvec_mul_simple(
|
||||
m: u32,
|
||||
r: *mut ::std::os::raw::c_void,
|
||||
a: *const ::std::os::raw::c_void,
|
||||
@@ -213,7 +222,7 @@ unsafe extern "C" {
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_fftvec_addmul_simple(
|
||||
pub unsafe fn reim_fftvec_addmul_simple(
|
||||
m: u32,
|
||||
r: *mut ::std::os::raw::c_void,
|
||||
a: *const ::std::os::raw::c_void,
|
||||
@@ -221,7 +230,7 @@ unsafe extern "C" {
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_from_znx32_simple(
|
||||
pub unsafe fn reim_from_znx32_simple(
|
||||
m: u32,
|
||||
log2bound: u32,
|
||||
r: *mut ::std::os::raw::c_void,
|
||||
@@ -229,10 +238,10 @@ unsafe extern "C" {
|
||||
);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_from_tnx32_simple(m: u32, r: *mut ::std::os::raw::c_void, x: *const i32);
|
||||
pub unsafe fn reim_from_tnx32_simple(m: u32, r: *mut ::std::os::raw::c_void, x: *const i32);
|
||||
}
|
||||
unsafe extern "C" {
|
||||
pub fn reim_to_tnx32_simple(
|
||||
pub unsafe fn reim_to_tnx32_simple(
|
||||
m: u32,
|
||||
divisor: f64,
|
||||
log2overhead: u32,
|
||||
|
||||
@@ -2,10 +2,10 @@ use crate::ffi::module::MODULE;
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
pub struct vec_znx_bigcoeff_t {
|
||||
pub struct vec_znx_big_t {
|
||||
_unused: [u8; 0],
|
||||
}
|
||||
pub type VEC_ZNX_BIG = vec_znx_bigcoeff_t;
|
||||
pub type VEC_ZNX_BIG = vec_znx_big_t;
|
||||
|
||||
unsafe extern "C" {
|
||||
pub fn bytes_of_vec_znx_big(module: *const MODULE, size: u64) -> u64;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use crate::ffi::module::MODULE;
|
||||
use crate::ffi::vec_znx_big::VEC_ZNX_BIG;
|
||||
use crate::ffi::vec_znx_dft::VEC_ZNX_DFT;
|
||||
|
||||
#[repr(C)]
|
||||
@@ -103,6 +104,39 @@ unsafe extern "C" {
|
||||
);
|
||||
}
|
||||
|
||||
unsafe extern "C" {
|
||||
pub unsafe fn vmp_prepare_row_dft(
|
||||
module: *const MODULE,
|
||||
pmat: *mut VMP_PMAT,
|
||||
row: *const VEC_ZNX_DFT,
|
||||
row_i: u64,
|
||||
nrows: u64,
|
||||
ncols: u64,
|
||||
);
|
||||
}
|
||||
|
||||
unsafe extern "C" {
|
||||
pub unsafe fn vmp_extract_row_dft(
|
||||
module: *const MODULE,
|
||||
res: *mut VEC_ZNX_DFT,
|
||||
pmat: *const VMP_PMAT,
|
||||
row_i: u64,
|
||||
nrows: u64,
|
||||
ncols: u64,
|
||||
);
|
||||
}
|
||||
|
||||
unsafe extern "C" {
|
||||
pub unsafe fn vmp_extract_row(
|
||||
module: *const MODULE,
|
||||
res: *mut VEC_ZNX_BIG,
|
||||
pmat: *const VMP_PMAT,
|
||||
row_i: u64,
|
||||
nrows: u64,
|
||||
ncols: u64,
|
||||
);
|
||||
}
|
||||
|
||||
unsafe extern "C" {
|
||||
pub unsafe fn vmp_prepare_tmp_bytes(module: *const MODULE, nrows: u64, ncols: u64) -> u64;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user