1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//! Corresponds to `mp.h`
use crate::mzd::Mzd;
use libc;

extern "C" {
    /// Matrix multiplication via the cubic multiplication algorithm on multiple cores
    ///
    /// C: Preallocated product matrix, may be NULL for automatic creation
    /// A: Input matrix A
    /// B: Input matrix B
    /// cutoff: Minimal dimension for recursion
    pub fn mzd_mul_mp(c: *mut Mzd, a: *const Mzd, b: *const Mzd, cutoff: libc::c_int) -> *mut Mzd;

    /// Matrix multiplication and in-place additoin via th ecubic matrix multiplication
    /// algorithm on multiple cores. C = C + AB
    ///
    /// C: product matrix
    /// A: Input matrix
    /// B: Input matrix
    /// cutoff: Minimal dimension for recursion
    pub fn mzd_addmul_mp(
        c: *mut Mzd,
        a: *const Mzd,
        b: *const Mzd,
        cutoff: libc::c_int,
    ) -> *mut Mzd;
}