1
- from suitesparse_graphblas import check_status , ffi , lib
1
+ from suitesparse_graphblas import check_status , ffi , lib , vararg
2
2
3
3
from .io .serialize import deserialize_matrix as deserialize # noqa
4
4
from .io .serialize import serialize_matrix as serialize # noqa
@@ -109,7 +109,7 @@ def format(A):
109
109
110
110
"""
111
111
format = ffi .new ("GxB_Format_Value*" )
112
- check_status (A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_FORMAT , format ))
112
+ check_status (A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_FORMAT , vararg ( format ) ))
113
113
return format [0 ]
114
114
115
115
@@ -122,58 +122,60 @@ def set_format(A, format):
122
122
True
123
123
124
124
"""
125
- check_status (
126
- A , lib .GxB_Matrix_Option_set (A [0 ], lib .GxB_FORMAT , ffi .cast ("GxB_Format_Value" , format ))
127
- )
125
+ format_val = ffi .cast ("GxB_Format_Value" , format )
126
+ check_status (A , lib .GxB_Matrix_Option_set (A [0 ], lib .GxB_FORMAT , vararg (format_val )))
128
127
129
128
130
129
def sparsity_status (A ):
131
130
"""Get the sparsity status of the matrix."""
132
131
sparsity_status = ffi .new ("int32_t*" )
133
- check_status (A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_SPARSITY_STATUS , sparsity_status ))
132
+ check_status (
133
+ A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_SPARSITY_STATUS , vararg (sparsity_status ))
134
+ )
134
135
return sparsity_status [0 ]
135
136
136
137
137
138
def sparsity_control (A ):
138
139
"""Get the sparsity control of the matrix."""
139
140
sparsity_control = ffi .new ("int32_t*" )
140
- check_status (A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_SPARSITY_CONTROL , sparsity_control ))
141
+ check_status (
142
+ A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_SPARSITY_CONTROL , vararg (sparsity_control ))
143
+ )
141
144
return sparsity_control [0 ]
142
145
143
146
144
147
def set_sparsity_control (A , sparsity ):
145
148
"""Set the sparsity control of the matrix."""
149
+ sparsity_control = ffi .cast ("int32_t" , sparsity )
146
150
check_status (
147
- A , lib .GxB_Matrix_Option_set (A [0 ], lib .GxB_SPARSITY_CONTROL , ffi . cast ( "int" , sparsity ))
151
+ A , lib .GxB_Matrix_Option_set (A [0 ], lib .GxB_SPARSITY_CONTROL , vararg ( sparsity_control ))
148
152
)
149
153
150
154
151
155
def hyper_switch (A ):
152
156
"""Get the hyper switch of the matrix."""
153
157
hyper_switch = ffi .new ("double*" )
154
- check_status (A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_HYPER_SWITCH , hyper_switch ))
158
+ check_status (A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_HYPER_SWITCH , vararg ( hyper_switch ) ))
155
159
return hyper_switch [0 ]
156
160
157
161
158
162
def set_hyper_switch (A , hyper_switch ):
159
163
"""Set the hyper switch of the matrix."""
160
- check_status (
161
- A , lib .GxB_Matrix_Option_set (A [0 ], lib .GxB_HYPER_SWITCH , ffi .cast ("double" , hyper_switch ))
162
- )
164
+ hyper_switch = ffi .cast ("double" , hyper_switch )
165
+ check_status (A , lib .GxB_Matrix_Option_set (A [0 ], lib .GxB_HYPER_SWITCH , vararg (hyper_switch )))
163
166
164
167
165
168
def bitmap_switch (A ):
166
169
"""Get the bitmap switch of the matrix."""
167
170
bitmap_switch = ffi .new ("double*" )
168
- check_status (A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_BITMAP_SWITCH , bitmap_switch ))
171
+ check_status (A , lib .GxB_Matrix_Option_get (A [0 ], lib .GxB_BITMAP_SWITCH , vararg ( bitmap_switch ) ))
169
172
return bitmap_switch [0 ]
170
173
171
174
172
175
def set_bitmap_switch (A , bitmap_switch ):
173
176
"""Set the bitmap switch of the matrix."""
174
- check_status (
175
- A , lib .GxB_Matrix_Option_set (A [0 ], lib .GxB_BITMAP_SWITCH , ffi .cast ("double" , bitmap_switch ))
176
- )
177
+ bitmap_switch = ffi .cast ("double" , bitmap_switch )
178
+ check_status (A , lib .GxB_Matrix_Option_set (A [0 ], lib .GxB_BITMAP_SWITCH , vararg (bitmap_switch )))
177
179
178
180
179
181
def set_bool (A , value , i , j ):
0 commit comments