|
| 1 | + |
| 2 | +function GrB_mxm( # C<Mask> = accum (C, A*B) |
| 3 | + C::GrB_Matrix, # input/output matrix for results |
| 4 | + Mask::GrB_Matrix, # optional mask for C, unused if NULL |
| 5 | + accum::GrB_BinaryOp, # optional accum for Z=accum(C,T) |
| 6 | + semiring::GrB_Semiring, # defines '+' and '*' for A*B |
| 7 | + A::GrB_Matrix, # first input: matrix A |
| 8 | + B::GrB_Matrix, # second input: matrix B |
| 9 | + desc::GrB_Descriptor # descriptor for C, Mask, A, and B |
| 10 | +) |
| 11 | + |
| 12 | + return GrB_Info( |
| 13 | + ccall( |
| 14 | + dlsym(graphblas_lib, "GrB_mxm"), |
| 15 | + Cint, |
| 16 | + (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}), |
| 17 | + C.p, Mask.p, accum.p, semiring.p, A.p, B.p, desc.p |
| 18 | + ) |
| 19 | + ) |
| 20 | +end |
| 21 | + |
| 22 | +function GrB_vxm( # w'<Mask> = accum (w, u'*A) |
| 23 | + w::GrB_Vector, # input/output vector for results |
| 24 | + mask::GrB_Vector, # optional mask for w, unused if NULL |
| 25 | + accum::GrB_BinaryOp, # optional accum for z=accum(w,t) |
| 26 | + semiring::GrB_Semiring, # defines '+' and '*' for u'*A |
| 27 | + u::GrB_Vector, # first input: vector u |
| 28 | + A::GrB_Matrix, # second input: matrix A |
| 29 | + desc::GrB_Descriptor # descriptor for w, mask, and A |
| 30 | +) |
| 31 | + |
| 32 | + return GrB_Info( |
| 33 | + ccall( |
| 34 | + dlsym(graphblas_lib, "GrB_vxm"), |
| 35 | + Cint, |
| 36 | + (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}), |
| 37 | + w.p, mask.p, accum.p, semiring.p, u.p, A.p, desc.p |
| 38 | + ) |
| 39 | + ) |
| 40 | +end |
| 41 | + |
| 42 | +function GrB_mxv( # w<Mask> = accum (w, A*u) |
| 43 | + w::GrB_Vector, # input/output vector for results |
| 44 | + mask::GrB_Vector, # optional mask for w, unused if NULL |
| 45 | + accum::GrB_BinaryOp, # optional accum for z=accum(w,t) |
| 46 | + semiring::GrB_Semiring, # defines '+' and '*' for A*B |
| 47 | + A::GrB_Matrix, # first input: matrix A |
| 48 | + u::GrB_Vector, # second input: vector u |
| 49 | + desc::GrB_Descriptor # descriptor for w, mask, and A |
| 50 | +) |
| 51 | + |
| 52 | + return GrB_Info( |
| 53 | + ccall( |
| 54 | + dlsym(graphblas_lib, "GrB_mxv"), |
| 55 | + Cint, |
| 56 | + (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}), |
| 57 | + w.p, mask.p, accum.p, semiring.p, A.p, u.p, desc.p |
| 58 | + ) |
| 59 | + ) |
| 60 | +end |
0 commit comments