@@ -256,118 +256,122 @@ end
256
256
mutable struct GB_Monoid_opaque end
257
257
258
258
const GrB_Monoid = Ptr{GB_Monoid_opaque}
259
+ const monoididnew = Dict {DataType, Function} ()
259
260
260
261
function GrB_Monoid_new_BOOL (monoid, op, identity)
261
262
@wraperror ccall ((:GrB_Monoid_new_BOOL , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Bool), monoid, op, identity)
262
263
end
263
-
264
+ monoididnew[Bool] = GrB_Monoid_new_BOOL
264
265
function GrB_Monoid_new_INT8 (monoid, op, identity)
265
266
@wraperror ccall ((:GrB_Monoid_new_INT8 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Int8), monoid, op, identity)
266
267
end
267
-
268
+ monoididnew[Int8] = GrB_Monoid_new_INT8
268
269
function GrB_Monoid_new_UINT8 (monoid, op, identity)
269
270
@wraperror ccall ((:GrB_Monoid_new_UINT8 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, UInt8), monoid, op, identity)
270
271
end
271
-
272
+ monoididnew[UInt8] = GrB_Monoid_new_UINT8
272
273
function GrB_Monoid_new_INT16 (monoid, op, identity)
273
274
@wraperror ccall ((:GrB_Monoid_new_INT16 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Int16), monoid, op, identity)
274
275
end
275
-
276
+ monoididnew[Int16] = GrB_Monoid_new_INT16
276
277
function GrB_Monoid_new_UINT16 (monoid, op, identity)
277
278
@wraperror ccall ((:GrB_Monoid_new_UINT16 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, UInt16), monoid, op, identity)
278
279
end
279
-
280
+ monoididnew[UInt16] = GrB_Monoid_new_UINT16
280
281
function GrB_Monoid_new_INT32 (monoid, op, identity)
281
282
@wraperror ccall ((:GrB_Monoid_new_INT32 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Int32), monoid, op, identity)
282
283
end
283
-
284
+ monoididnew[Int32] = GrB_Monoid_new_INT32
284
285
function GrB_Monoid_new_UINT32 (monoid, op, identity)
285
286
@wraperror ccall ((:GrB_Monoid_new_UINT32 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, UInt32), monoid, op, identity)
286
287
end
287
-
288
+ monoididnew[UInt32] = GrB_Monoid_new_UINT32
288
289
function GrB_Monoid_new_INT64 (monoid, op, identity)
289
290
@wraperror ccall ((:GrB_Monoid_new_INT64 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Int64), monoid, op, identity)
290
291
end
291
-
292
+ monoididnew[Int64] = GrB_Monoid_new_INT64
292
293
function GrB_Monoid_new_UINT64 (monoid, op, identity)
293
294
@wraperror ccall ((:GrB_Monoid_new_UINT64 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, UInt64), monoid, op, identity)
294
295
end
295
-
296
+ monoididnew[UInt64] = GrB_Monoid_new_UINT64
296
297
function GrB_Monoid_new_FP32 (monoid, op, identity)
297
298
@wraperror ccall ((:GrB_Monoid_new_FP32 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Cfloat), monoid, op, identity)
298
299
end
299
-
300
+ monoididnew[Float32] = GrB_Monoid_new_FP32
300
301
function GrB_Monoid_new_FP64 (monoid, op, identity)
301
302
@wraperror ccall ((:GrB_Monoid_new_FP64 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Cdouble), monoid, op, identity)
302
303
end
303
-
304
+ monoididnew[Float64] = GrB_Monoid_new_FP64
304
305
function GxB_Monoid_new_FC32 (monoid, op, identity)
305
306
@wraperror ccall ((:GxB_Monoid_new_FC32 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, GxB_FC32_t), monoid, op, identity)
306
307
end
307
-
308
+ monoididnew[ComplexF32] = GxB_Monoid_new_FC32
308
309
function GxB_Monoid_new_FC64 (monoid, op, identity)
309
310
@wraperror ccall ((:GxB_Monoid_new_FC64 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, GxB_FC64_t), monoid, op, identity)
310
311
end
311
-
312
+ monoididnew[ComplexF64] = GxB_Monoid_new_FC64
312
313
function GrB_Monoid_new_UDT (monoid, op, identity)
313
314
@wraperror ccall ((:GrB_Monoid_new_UDT , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Ptr{Cvoid}), monoid, op, identity)
314
315
end
316
+ monoididnew[Any] = GrB_Monoid_new_UDT
315
317
318
+ const monoidtermnew = Dict {DataType, Function} ()
316
319
function GxB_Monoid_terminal_new_BOOL (monoid, op, identity, terminal)
317
320
@wraperror ccall ((:GxB_Monoid_terminal_new_BOOL , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Bool, Bool), monoid, op, identity, terminal)
318
321
end
319
-
322
+ monoidtermnew[Bool] = GxB_Monoid_terminal_new_BOOL
320
323
function GxB_Monoid_terminal_new_INT8 (monoid, op, identity, terminal)
321
324
@wraperror ccall ((:GxB_Monoid_terminal_new_INT8 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Int8, Int8), monoid, op, identity, terminal)
322
325
end
323
-
326
+ monoidtermnew[Int8] = GxB_Monoid_terminal_new_INT8
324
327
function GxB_Monoid_terminal_new_UINT8 (monoid, op, identity, terminal)
325
328
@wraperror ccall ((:GxB_Monoid_terminal_new_UINT8 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, UInt8, UInt8), monoid, op, identity, terminal)
326
329
end
327
-
330
+ monoidtermnew[UInt8] = GxB_Monoid_terminal_new_UINT8
328
331
function GxB_Monoid_terminal_new_INT16 (monoid, op, identity, terminal)
329
332
@wraperror ccall ((:GxB_Monoid_terminal_new_INT16 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Int16, Int16), monoid, op, identity, terminal)
330
333
end
331
-
334
+ monoidtermnew[Int16] = GxB_Monoid_terminal_new_INT16
332
335
function GxB_Monoid_terminal_new_UINT16 (monoid, op, identity, terminal)
333
336
@wraperror ccall ((:GxB_Monoid_terminal_new_UINT16 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, UInt16, UInt16), monoid, op, identity, terminal)
334
337
end
335
-
338
+ monoidtermnew[UInt16] = GxB_Monoid_terminal_new_UINT16
336
339
function GxB_Monoid_terminal_new_INT32 (monoid, op, identity, terminal)
337
340
@wraperror ccall ((:GxB_Monoid_terminal_new_INT32 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Int32, Int32), monoid, op, identity, terminal)
338
341
end
339
-
342
+ monoidtermnew[Int32] = GxB_Monoid_terminal_new_INT32
340
343
function GxB_Monoid_terminal_new_UINT32 (monoid, op, identity, terminal)
341
344
@wraperror ccall ((:GxB_Monoid_terminal_new_UINT32 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, UInt32, UInt32), monoid, op, identity, terminal)
342
345
end
343
-
346
+ monoidtermnew[UInt32] = GxB_Monoid_terminal_new_UINT32
344
347
function GxB_Monoid_terminal_new_INT64 (monoid, op, identity, terminal)
345
348
@wraperror ccall ((:GxB_Monoid_terminal_new_INT64 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Int64, Int64), monoid, op, identity, terminal)
346
349
end
347
-
350
+ monoidtermnew[Int64] = GxB_Monoid_terminal_new_INT64
348
351
function GxB_Monoid_terminal_new_UINT64 (monoid, op, identity, terminal)
349
352
@wraperror ccall ((:GxB_Monoid_terminal_new_UINT64 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, UInt64, UInt64), monoid, op, identity, terminal)
350
353
end
351
-
354
+ monoidtermnew[UInt64] = GxB_Monoid_terminal_new_UINT64
352
355
function GxB_Monoid_terminal_new_FP32 (monoid, op, identity, terminal)
353
356
@wraperror ccall ((:GxB_Monoid_terminal_new_FP32 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Cfloat, Cfloat), monoid, op, identity, terminal)
354
357
end
355
-
358
+ monoidtermnew[Float32] = GxB_Monoid_terminal_new_FP32
356
359
function GxB_Monoid_terminal_new_FP64 (monoid, op, identity, terminal)
357
360
@wraperror ccall ((:GxB_Monoid_terminal_new_FP64 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Cdouble, Cdouble), monoid, op, identity, terminal)
358
361
end
359
-
362
+ monoidtermnew[Float64] = GxB_Monoid_terminal_new_FP64
360
363
function GxB_Monoid_terminal_new_FC32 (monoid, op, identity, terminal)
361
364
@wraperror ccall ((:GxB_Monoid_terminal_new_FC32 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, GxB_FC32_t, GxB_FC32_t), monoid, op, identity, terminal)
362
365
end
363
-
366
+ monoidtermnew[ComplexF32] = GxB_Monoid_terminal_new_FC32
364
367
function GxB_Monoid_terminal_new_FC64 (monoid, op, identity, terminal)
365
368
@wraperror ccall ((:GxB_Monoid_terminal_new_FC64 , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, GxB_FC64_t, GxB_FC64_t), monoid, op, identity, terminal)
366
369
end
367
-
370
+ monoidtermnew[ComplexF64] = GxB_Monoid_terminal_new_FC64
368
371
function GxB_Monoid_terminal_new_UDT (monoid, op, identity, terminal)
369
372
@wraperror ccall ((:GxB_Monoid_terminal_new_UDT , libgraphblas), GrB_Info, (Ptr{GrB_Monoid}, GrB_BinaryOp, Ptr{Cvoid}, Ptr{Cvoid}), monoid, op, identity, terminal)
370
373
end
374
+ monoidtermnew[Any] = GxB_Monoid_terminal_new_UDT
371
375
372
376
function GxB_Monoid_operator (op, monoid)
373
377
@wraperror ccall ((:GxB_Monoid_operator , libgraphblas), GrB_Info, (Ptr{GrB_BinaryOp}, GrB_Monoid), op, monoid)
@@ -381,8 +385,18 @@ function GxB_Monoid_identity(identity, monoid)
381
385
@wraperror ccall ((:GxB_Monoid_identity , libgraphblas), GrB_Info, (Ptr{Cvoid}, GrB_Monoid), identity, monoid)
382
386
end
383
387
384
- function GxB_Monoid_terminal (has_terminal, terminal, monoid)
385
- @wraperror ccall ((:GxB_Monoid_terminal , libgraphblas), GrB_Info, (Ptr{Bool}, Ptr{Cvoid}, GrB_Monoid), has_terminal, terminal, monoid)
388
+ function GxB_Monoid_terminal (T, monoid)
389
+
390
+ has_terminal = Ref {Bool} ()
391
+ terminal = Ref {T} ()
392
+ ccall ((:GxB_Monoid_terminal , libgraphblas), GrB_Info, (Ptr{Bool}, Ptr{Cvoid}, GrB_Monoid), has_terminal, terminal, monoid)
393
+ has_terminal = has_terminal[]
394
+ println (has_terminal)
395
+ if has_terminal
396
+ return terminal[]
397
+ else
398
+ return nothing
399
+ end
386
400
end
387
401
388
402
function GrB_Monoid_free (monoid)
0 commit comments