xref: /libCEED/julia/LibCEED.jl/src/generated/libceed_bindings.jl (revision bc251d84045f19174d64c067f78a1766a73c1ffc)
1using CEnum
2
3#! format: off
4
5
6const CeedInt = Int32
7
8const CeedScalar = Cdouble
9
10mutable struct Ceed_private end
11
12const Ceed = Ptr{Ceed_private}
13
14mutable struct CeedRequest_private end
15
16const CeedRequest = Ptr{CeedRequest_private}
17
18mutable struct CeedVector_private end
19
20const CeedVector = Ptr{CeedVector_private}
21
22mutable struct CeedElemRestriction_private end
23
24const CeedElemRestriction = Ptr{CeedElemRestriction_private}
25
26mutable struct CeedBasis_private end
27
28const CeedBasis = Ptr{CeedBasis_private}
29
30mutable struct CeedQFunction_private end
31
32const CeedQFunction = Ptr{CeedQFunction_private}
33
34mutable struct CeedQFunctionContext_private end
35
36const CeedQFunctionContext = Ptr{CeedQFunctionContext_private}
37
38mutable struct CeedOperator_private end
39
40const CeedOperator = Ptr{CeedOperator_private}
41
42function CeedRegistryGetList(n, resources, array)
43    ccall((:CeedRegistryGetList, libceed), Cint, (Ptr{Csize_t}, Ptr{Ptr{Ptr{Cchar}}}, Ptr{Ptr{CeedInt}}), n, resources, array)
44end
45
46function CeedInit(resource, ceed)
47    ccall((:CeedInit, libceed), Cint, (Ptr{Cchar}, Ptr{Ceed}), resource, ceed)
48end
49
50function CeedReferenceCopy(ceed, ceed_copy)
51    ccall((:CeedReferenceCopy, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, ceed_copy)
52end
53
54function CeedGetResource(ceed, resource)
55    ccall((:CeedGetResource, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), ceed, resource)
56end
57
58function CeedIsDeterministic(ceed, is_deterministic)
59    ccall((:CeedIsDeterministic, libceed), Cint, (Ceed, Ptr{Bool}), ceed, is_deterministic)
60end
61
62function CeedView(ceed, stream)
63    ccall((:CeedView, libceed), Cint, (Ceed, Ptr{Libc.FILE}), ceed, stream)
64end
65
66function CeedDestroy(ceed)
67    ccall((:CeedDestroy, libceed), Cint, (Ptr{Ceed},), ceed)
68end
69
70# automatic type deduction for variadic arguments may not be what you want, please use with caution
71@generated function CeedErrorImpl(arg1, arg2, arg3, arg4, arg5, arg6, va_list...)
72        :(@ccall(libceed.CeedErrorImpl(arg1::Ceed, arg2::Ptr{Cchar}, arg3::Cint, arg4::Ptr{Cchar}, arg5::Cint, arg6::Ptr{Cchar}; $(to_c_type_pairs(va_list)...))::Cint))
73    end
74
75# typedef int ( * CeedErrorHandler ) ( Ceed , const char * , int , const char * , int , const char * , va_list * )
76const CeedErrorHandler = Ptr{Cvoid}
77
78function CeedSetErrorHandler(ceed, eh)
79    ccall((:CeedSetErrorHandler, libceed), Cint, (Ceed, CeedErrorHandler), ceed, eh)
80end
81
82function CeedGetErrorMessage(arg1, err_msg)
83    ccall((:CeedGetErrorMessage, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), arg1, err_msg)
84end
85
86function CeedResetErrorMessage(arg1, err_msg)
87    ccall((:CeedResetErrorMessage, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), arg1, err_msg)
88end
89
90function CeedGetVersion(major, minor, patch, release)
91    ccall((:CeedGetVersion, libceed), Cint, (Ptr{Cint}, Ptr{Cint}, Ptr{Cint}, Ptr{Bool}), major, minor, patch, release)
92end
93
94@cenum CeedErrorType::Int32 begin
95    CEED_ERROR_SUCCESS = 0
96    CEED_ERROR_MINOR = 1
97    CEED_ERROR_DIMENSION = 2
98    CEED_ERROR_INCOMPLETE = 3
99    CEED_ERROR_INCOMPATIBLE = 4
100    CEED_ERROR_ACCESS = 5
101    CEED_ERROR_MAJOR = -1
102    CEED_ERROR_BACKEND = -2
103    CEED_ERROR_UNSUPPORTED = -3
104end
105
106@cenum CeedMemType::UInt32 begin
107    CEED_MEM_HOST = 0
108    CEED_MEM_DEVICE = 1
109end
110
111function CeedGetPreferredMemType(ceed, type)
112    ccall((:CeedGetPreferredMemType, libceed), Cint, (Ceed, Ptr{CeedMemType}), ceed, type)
113end
114
115@cenum CeedCopyMode::UInt32 begin
116    CEED_COPY_VALUES = 0
117    CEED_USE_POINTER = 1
118    CEED_OWN_POINTER = 2
119end
120
121@cenum CeedNormType::UInt32 begin
122    CEED_NORM_1 = 0
123    CEED_NORM_2 = 1
124    CEED_NORM_MAX = 2
125end
126
127function CeedVectorCreate(ceed, len, vec)
128    ccall((:CeedVectorCreate, libceed), Cint, (Ceed, CeedInt, Ptr{CeedVector}), ceed, len, vec)
129end
130
131function CeedVectorReferenceCopy(vec, vec_copy)
132    ccall((:CeedVectorReferenceCopy, libceed), Cint, (CeedVector, Ptr{CeedVector}), vec, vec_copy)
133end
134
135function CeedVectorSetArray(vec, mem_type, copy_mode, array)
136    ccall((:CeedVectorSetArray, libceed), Cint, (CeedVector, CeedMemType, CeedCopyMode, Ptr{CeedScalar}), vec, mem_type, copy_mode, array)
137end
138
139function CeedVectorSetValue(vec, value)
140    ccall((:CeedVectorSetValue, libceed), Cint, (CeedVector, CeedScalar), vec, value)
141end
142
143function CeedVectorSyncArray(vec, mem_type)
144    ccall((:CeedVectorSyncArray, libceed), Cint, (CeedVector, CeedMemType), vec, mem_type)
145end
146
147function CeedVectorTakeArray(vec, mem_type, array)
148    ccall((:CeedVectorTakeArray, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array)
149end
150
151function CeedVectorGetArray(vec, mem_type, array)
152    ccall((:CeedVectorGetArray, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array)
153end
154
155function CeedVectorGetArrayRead(vec, mem_type, array)
156    ccall((:CeedVectorGetArrayRead, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array)
157end
158
159function CeedVectorRestoreArray(vec, array)
160    ccall((:CeedVectorRestoreArray, libceed), Cint, (CeedVector, Ptr{Ptr{CeedScalar}}), vec, array)
161end
162
163function CeedVectorRestoreArrayRead(vec, array)
164    ccall((:CeedVectorRestoreArrayRead, libceed), Cint, (CeedVector, Ptr{Ptr{CeedScalar}}), vec, array)
165end
166
167function CeedVectorNorm(vec, type, norm)
168    ccall((:CeedVectorNorm, libceed), Cint, (CeedVector, CeedNormType, Ptr{CeedScalar}), vec, type, norm)
169end
170
171function CeedVectorScale(x, alpha)
172    ccall((:CeedVectorScale, libceed), Cint, (CeedVector, CeedScalar), x, alpha)
173end
174
175function CeedVectorAXPY(y, alpha, x)
176    ccall((:CeedVectorAXPY, libceed), Cint, (CeedVector, CeedScalar, CeedVector), y, alpha, x)
177end
178
179function CeedVectorPointwiseMult(w, x, y)
180    ccall((:CeedVectorPointwiseMult, libceed), Cint, (CeedVector, CeedVector, CeedVector), w, x, y)
181end
182
183function CeedVectorReciprocal(vec)
184    ccall((:CeedVectorReciprocal, libceed), Cint, (CeedVector,), vec)
185end
186
187function CeedVectorView(vec, fp_fmt, stream)
188    ccall((:CeedVectorView, libceed), Cint, (CeedVector, Ptr{Cchar}, Ptr{Libc.FILE}), vec, fp_fmt, stream)
189end
190
191function CeedVectorGetLength(vec, length)
192    ccall((:CeedVectorGetLength, libceed), Cint, (CeedVector, Ptr{CeedInt}), vec, length)
193end
194
195function CeedVectorDestroy(vec)
196    ccall((:CeedVectorDestroy, libceed), Cint, (Ptr{CeedVector},), vec)
197end
198
199function CeedRequestWait(req)
200    ccall((:CeedRequestWait, libceed), Cint, (Ptr{CeedRequest},), req)
201end
202
203@cenum CeedTransposeMode::UInt32 begin
204    CEED_NOTRANSPOSE = 0
205    CEED_TRANSPOSE = 1
206end
207
208function CeedElemRestrictionCreate(ceed, num_elem, elem_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr)
209    ccall((:CeedElemRestrictionCreate, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr)
210end
211
212function CeedElemRestrictionCreateStrided(ceed, num_elem, elem_size, num_comp, l_size, strides, rstr)
213    ccall((:CeedElemRestrictionCreateStrided, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, num_comp, l_size, strides, rstr)
214end
215
216function CeedElemRestrictionCreateBlocked(ceed, num_elem, elem_size, blk_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr)
217    ccall((:CeedElemRestrictionCreateBlocked, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, blk_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr)
218end
219
220function CeedElemRestrictionCreateBlockedStrided(ceed, num_elem, elem_size, blk_size, num_comp, l_size, strides, rstr)
221    ccall((:CeedElemRestrictionCreateBlockedStrided, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, blk_size, num_comp, l_size, strides, rstr)
222end
223
224function CeedElemRestrictionReferenceCopy(rstr, rstr_copy)
225    ccall((:CeedElemRestrictionReferenceCopy, libceed), Cint, (CeedElemRestriction, Ptr{CeedElemRestriction}), rstr, rstr_copy)
226end
227
228function CeedElemRestrictionCreateVector(rstr, lvec, evec)
229    ccall((:CeedElemRestrictionCreateVector, libceed), Cint, (CeedElemRestriction, Ptr{CeedVector}, Ptr{CeedVector}), rstr, lvec, evec)
230end
231
232function CeedElemRestrictionApply(rstr, t_mode, u, ru, request)
233    ccall((:CeedElemRestrictionApply, libceed), Cint, (CeedElemRestriction, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, t_mode, u, ru, request)
234end
235
236function CeedElemRestrictionApplyBlock(rstr, block, t_mode, u, ru, request)
237    ccall((:CeedElemRestrictionApplyBlock, libceed), Cint, (CeedElemRestriction, CeedInt, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, block, t_mode, u, ru, request)
238end
239
240function CeedElemRestrictionGetCompStride(rstr, comp_stride)
241    ccall((:CeedElemRestrictionGetCompStride, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, comp_stride)
242end
243
244function CeedElemRestrictionGetNumElements(rstr, num_elem)
245    ccall((:CeedElemRestrictionGetNumElements, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_elem)
246end
247
248function CeedElemRestrictionGetElementSize(rstr, elem_size)
249    ccall((:CeedElemRestrictionGetElementSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, elem_size)
250end
251
252function CeedElemRestrictionGetLVectorSize(rstr, l_size)
253    ccall((:CeedElemRestrictionGetLVectorSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, l_size)
254end
255
256function CeedElemRestrictionGetNumComponents(rstr, num_comp)
257    ccall((:CeedElemRestrictionGetNumComponents, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_comp)
258end
259
260function CeedElemRestrictionGetNumBlocks(rstr, num_blk)
261    ccall((:CeedElemRestrictionGetNumBlocks, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_blk)
262end
263
264function CeedElemRestrictionGetBlockSize(rstr, blk_size)
265    ccall((:CeedElemRestrictionGetBlockSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, blk_size)
266end
267
268function CeedElemRestrictionGetMultiplicity(rstr, mult)
269    ccall((:CeedElemRestrictionGetMultiplicity, libceed), Cint, (CeedElemRestriction, CeedVector), rstr, mult)
270end
271
272function CeedElemRestrictionView(rstr, stream)
273    ccall((:CeedElemRestrictionView, libceed), Cint, (CeedElemRestriction, Ptr{Libc.FILE}), rstr, stream)
274end
275
276function CeedElemRestrictionDestroy(rstr)
277    ccall((:CeedElemRestrictionDestroy, libceed), Cint, (Ptr{CeedElemRestriction},), rstr)
278end
279
280@cenum CeedEvalMode::UInt32 begin
281    CEED_EVAL_NONE = 0
282    CEED_EVAL_INTERP = 1
283    CEED_EVAL_GRAD = 2
284    CEED_EVAL_DIV = 4
285    CEED_EVAL_CURL = 8
286    CEED_EVAL_WEIGHT = 16
287end
288
289@cenum CeedQuadMode::UInt32 begin
290    CEED_GAUSS = 0
291    CEED_GAUSS_LOBATTO = 1
292end
293
294@cenum CeedElemTopology::UInt32 begin
295    CEED_LINE = 65536
296    CEED_TRIANGLE = 131073
297    CEED_QUAD = 131074
298    CEED_TET = 196611
299    CEED_PYRAMID = 196612
300    CEED_PRISM = 196613
301    CEED_HEX = 196614
302end
303
304function CeedBasisCreateTensorH1Lagrange(ceed, dim, num_comp, P, Q, quad_mode, basis)
305    ccall((:CeedBasisCreateTensorH1Lagrange, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedQuadMode, Ptr{CeedBasis}), ceed, dim, num_comp, P, Q, quad_mode, basis)
306end
307
308function CeedBasisCreateTensorH1(ceed, dim, num_comp, P_1d, Q_1d, interp_1d, grad_1d, q_ref_1d, q_weight_1d, basis)
309    ccall((:CeedBasisCreateTensorH1, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedBasis}), ceed, dim, num_comp, P_1d, Q_1d, interp_1d, grad_1d, q_ref_1d, q_weight_1d, basis)
310end
311
312function CeedBasisCreateH1(ceed, topo, num_comp, num_nodes, nqpts, interp, grad, q_ref, q_weights, basis)
313    ccall((:CeedBasisCreateH1, libceed), Cint, (Ceed, CeedElemTopology, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedBasis}), ceed, topo, num_comp, num_nodes, nqpts, interp, grad, q_ref, q_weights, basis)
314end
315
316function CeedBasisReferenceCopy(basis, basis_copy)
317    ccall((:CeedBasisReferenceCopy, libceed), Cint, (CeedBasis, Ptr{CeedBasis}), basis, basis_copy)
318end
319
320function CeedBasisView(basis, stream)
321    ccall((:CeedBasisView, libceed), Cint, (CeedBasis, Ptr{Libc.FILE}), basis, stream)
322end
323
324function CeedBasisApply(basis, num_elem, t_mode, eval_mode, u, v)
325    ccall((:CeedBasisApply, libceed), Cint, (CeedBasis, CeedInt, CeedTransposeMode, CeedEvalMode, CeedVector, CeedVector), basis, num_elem, t_mode, eval_mode, u, v)
326end
327
328function CeedBasisGetDimension(basis, dim)
329    ccall((:CeedBasisGetDimension, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, dim)
330end
331
332function CeedBasisGetTopology(basis, topo)
333    ccall((:CeedBasisGetTopology, libceed), Cint, (CeedBasis, Ptr{CeedElemTopology}), basis, topo)
334end
335
336function CeedBasisGetNumComponents(basis, num_comp)
337    ccall((:CeedBasisGetNumComponents, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, num_comp)
338end
339
340function CeedBasisGetNumNodes(basis, P)
341    ccall((:CeedBasisGetNumNodes, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, P)
342end
343
344function CeedBasisGetNumNodes1D(basis, P_1d)
345    ccall((:CeedBasisGetNumNodes1D, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, P_1d)
346end
347
348function CeedBasisGetNumQuadraturePoints(basis, Q)
349    ccall((:CeedBasisGetNumQuadraturePoints, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, Q)
350end
351
352function CeedBasisGetNumQuadraturePoints1D(basis, Q_1d)
353    ccall((:CeedBasisGetNumQuadraturePoints1D, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, Q_1d)
354end
355
356function CeedBasisGetQRef(basis, q_ref)
357    ccall((:CeedBasisGetQRef, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, q_ref)
358end
359
360function CeedBasisGetQWeights(basis, q_weights)
361    ccall((:CeedBasisGetQWeights, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, q_weights)
362end
363
364function CeedBasisGetInterp(basis, interp)
365    ccall((:CeedBasisGetInterp, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, interp)
366end
367
368function CeedBasisGetInterp1D(basis, interp_1d)
369    ccall((:CeedBasisGetInterp1D, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, interp_1d)
370end
371
372function CeedBasisGetGrad(basis, grad)
373    ccall((:CeedBasisGetGrad, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, grad)
374end
375
376function CeedBasisGetGrad1D(basis, grad_1d)
377    ccall((:CeedBasisGetGrad1D, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, grad_1d)
378end
379
380function CeedBasisDestroy(basis)
381    ccall((:CeedBasisDestroy, libceed), Cint, (Ptr{CeedBasis},), basis)
382end
383
384function CeedGaussQuadrature(Q, q_ref_1d, q_weight_1d)
385    ccall((:CeedGaussQuadrature, libceed), Cint, (CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), Q, q_ref_1d, q_weight_1d)
386end
387
388function CeedLobattoQuadrature(Q, q_ref_1d, q_weight_1d)
389    ccall((:CeedLobattoQuadrature, libceed), Cint, (CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), Q, q_ref_1d, q_weight_1d)
390end
391
392function CeedQRFactorization(ceed, mat, tau, m, n)
393    ccall((:CeedQRFactorization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt), ceed, mat, tau, m, n)
394end
395
396function CeedSymmetricSchurDecomposition(ceed, mat, lambda, n)
397    ccall((:CeedSymmetricSchurDecomposition, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat, lambda, n)
398end
399
400function CeedSimultaneousDiagonalization(ceed, mat_A, mat_B, x, lambda, n)
401    ccall((:CeedSimultaneousDiagonalization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat_A, mat_B, x, lambda, n)
402end
403
404# typedef int ( * CeedQFunctionUser ) ( void * ctx , const CeedInt Q , const CeedScalar * const * in , CeedScalar * const * out )
405const CeedQFunctionUser = Ptr{Cvoid}
406
407function CeedQFunctionCreateInterior(ceed, vec_length, f, source, qf)
408    ccall((:CeedQFunctionCreateInterior, libceed), Cint, (Ceed, CeedInt, CeedQFunctionUser, Ptr{Cchar}, Ptr{CeedQFunction}), ceed, vec_length, f, source, qf)
409end
410
411function CeedQFunctionCreateInteriorByName(ceed, name, qf)
412    ccall((:CeedQFunctionCreateInteriorByName, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{CeedQFunction}), ceed, name, qf)
413end
414
415function CeedQFunctionCreateIdentity(ceed, size, in_mode, out_mode, qf)
416    ccall((:CeedQFunctionCreateIdentity, libceed), Cint, (Ceed, CeedInt, CeedEvalMode, CeedEvalMode, Ptr{CeedQFunction}), ceed, size, in_mode, out_mode, qf)
417end
418
419function CeedQFunctionReferenceCopy(qf, qf_copy)
420    ccall((:CeedQFunctionReferenceCopy, libceed), Cint, (CeedQFunction, Ptr{CeedQFunction}), qf, qf_copy)
421end
422
423function CeedQFunctionAddInput(qf, field_name, size, eval_mode)
424    ccall((:CeedQFunctionAddInput, libceed), Cint, (CeedQFunction, Ptr{Cchar}, CeedInt, CeedEvalMode), qf, field_name, size, eval_mode)
425end
426
427function CeedQFunctionAddOutput(qf, field_name, size, eval_mode)
428    ccall((:CeedQFunctionAddOutput, libceed), Cint, (CeedQFunction, Ptr{Cchar}, CeedInt, CeedEvalMode), qf, field_name, size, eval_mode)
429end
430
431function CeedQFunctionSetContext(qf, ctx)
432    ccall((:CeedQFunctionSetContext, libceed), Cint, (CeedQFunction, CeedQFunctionContext), qf, ctx)
433end
434
435function CeedQFunctionView(qf, stream)
436    ccall((:CeedQFunctionView, libceed), Cint, (CeedQFunction, Ptr{Libc.FILE}), qf, stream)
437end
438
439function CeedQFunctionApply(qf, Q, u, v)
440    ccall((:CeedQFunctionApply, libceed), Cint, (CeedQFunction, CeedInt, Ptr{CeedVector}, Ptr{CeedVector}), qf, Q, u, v)
441end
442
443function CeedQFunctionDestroy(qf)
444    ccall((:CeedQFunctionDestroy, libceed), Cint, (Ptr{CeedQFunction},), qf)
445end
446
447function CeedQFunctionContextCreate(ceed, ctx)
448    ccall((:CeedQFunctionContextCreate, libceed), Cint, (Ceed, Ptr{CeedQFunctionContext}), ceed, ctx)
449end
450
451function CeedQFunctionContextReferenceCopy(ctx, ctx_copy)
452    ccall((:CeedQFunctionContextReferenceCopy, libceed), Cint, (CeedQFunctionContext, Ptr{CeedQFunctionContext}), ctx, ctx_copy)
453end
454
455function CeedQFunctionContextSetData(ctx, mem_type, copy_mode, size, data)
456    ccall((:CeedQFunctionContextSetData, libceed), Cint, (CeedQFunctionContext, CeedMemType, CeedCopyMode, Csize_t, Ptr{Cvoid}), ctx, mem_type, copy_mode, size, data)
457end
458
459function CeedQFunctionContextTakeData(ctx, mem_type, data)
460    ccall((:CeedQFunctionContextTakeData, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data)
461end
462
463function CeedQFunctionContextGetData(ctx, mem_type, data)
464    ccall((:CeedQFunctionContextGetData, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data)
465end
466
467function CeedQFunctionContextRestoreData(ctx, data)
468    ccall((:CeedQFunctionContextRestoreData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data)
469end
470
471function CeedQFunctionContextView(ctx, stream)
472    ccall((:CeedQFunctionContextView, libceed), Cint, (CeedQFunctionContext, Ptr{Libc.FILE}), ctx, stream)
473end
474
475function CeedQFunctionContextDestroy(ctx)
476    ccall((:CeedQFunctionContextDestroy, libceed), Cint, (Ptr{CeedQFunctionContext},), ctx)
477end
478
479function CeedOperatorCreate(ceed, qf, dqf, dqfT, op)
480    ccall((:CeedOperatorCreate, libceed), Cint, (Ceed, CeedQFunction, CeedQFunction, CeedQFunction, Ptr{CeedOperator}), ceed, qf, dqf, dqfT, op)
481end
482
483function CeedCompositeOperatorCreate(ceed, op)
484    ccall((:CeedCompositeOperatorCreate, libceed), Cint, (Ceed, Ptr{CeedOperator}), ceed, op)
485end
486
487function CeedOperatorReferenceCopy(op, op_copy)
488    ccall((:CeedOperatorReferenceCopy, libceed), Cint, (CeedOperator, Ptr{CeedOperator}), op, op_copy)
489end
490
491function CeedOperatorSetField(op, field_name, r, b, v)
492    ccall((:CeedOperatorSetField, libceed), Cint, (CeedOperator, Ptr{Cchar}, CeedElemRestriction, CeedBasis, CeedVector), op, field_name, r, b, v)
493end
494
495function CeedCompositeOperatorAddSub(composite_op, sub_op)
496    ccall((:CeedCompositeOperatorAddSub, libceed), Cint, (CeedOperator, CeedOperator), composite_op, sub_op)
497end
498
499function CeedOperatorLinearAssembleQFunction(op, assembled, rstr, request)
500    ccall((:CeedOperatorLinearAssembleQFunction, libceed), Cint, (CeedOperator, Ptr{CeedVector}, Ptr{CeedElemRestriction}, Ptr{CeedRequest}), op, assembled, rstr, request)
501end
502
503function CeedOperatorLinearAssembleDiagonal(op, assembled, request)
504    ccall((:CeedOperatorLinearAssembleDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request)
505end
506
507function CeedOperatorLinearAssembleAddDiagonal(op, assembled, request)
508    ccall((:CeedOperatorLinearAssembleAddDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request)
509end
510
511function CeedOperatorLinearAssemblePointBlockDiagonal(op, assembled, request)
512    ccall((:CeedOperatorLinearAssemblePointBlockDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request)
513end
514
515function CeedOperatorLinearAssembleAddPointBlockDiagonal(op, assembled, request)
516    ccall((:CeedOperatorLinearAssembleAddPointBlockDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request)
517end
518
519function CeedOperatorLinearAssembleSymbolic(op, num_entries, rows, cols)
520    ccall((:CeedOperatorLinearAssembleSymbolic, libceed), Cint, (CeedOperator, Ptr{CeedInt}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{CeedInt}}), op, num_entries, rows, cols)
521end
522
523function CeedOperatorLinearAssemble(op, values)
524    ccall((:CeedOperatorLinearAssemble, libceed), Cint, (CeedOperator, CeedVector), op, values)
525end
526
527function CeedOperatorMultigridLevelCreate(op_fine, p_mult_fine, rstr_coarse, basis_coarse, op_coarse, op_prolong, op_restrict)
528    ccall((:CeedOperatorMultigridLevelCreate, libceed), Cint, (CeedOperator, CeedVector, CeedElemRestriction, CeedBasis, Ptr{CeedOperator}, Ptr{CeedOperator}, Ptr{CeedOperator}), op_fine, p_mult_fine, rstr_coarse, basis_coarse, op_coarse, op_prolong, op_restrict)
529end
530
531function CeedOperatorMultigridLevelCreateTensorH1(op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict)
532    ccall((:CeedOperatorMultigridLevelCreateTensorH1, libceed), Cint, (CeedOperator, CeedVector, CeedElemRestriction, CeedBasis, Ptr{CeedScalar}, Ptr{CeedOperator}, Ptr{CeedOperator}, Ptr{CeedOperator}), op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict)
533end
534
535function CeedOperatorMultigridLevelCreateH1(op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict)
536    ccall((:CeedOperatorMultigridLevelCreateH1, libceed), Cint, (CeedOperator, CeedVector, CeedElemRestriction, CeedBasis, Ptr{CeedScalar}, Ptr{CeedOperator}, Ptr{CeedOperator}, Ptr{CeedOperator}), op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict)
537end
538
539function CeedOperatorCreateFDMElementInverse(op, fdm_inv, request)
540    ccall((:CeedOperatorCreateFDMElementInverse, libceed), Cint, (CeedOperator, Ptr{CeedOperator}, Ptr{CeedRequest}), op, fdm_inv, request)
541end
542
543function CeedOperatorSetNumQuadraturePoints(op, num_qpts)
544    ccall((:CeedOperatorSetNumQuadraturePoints, libceed), Cint, (CeedOperator, CeedInt), op, num_qpts)
545end
546
547function CeedOperatorView(op, stream)
548    ccall((:CeedOperatorView, libceed), Cint, (CeedOperator, Ptr{Libc.FILE}), op, stream)
549end
550
551function CeedOperatorApply(op, in, out, request)
552    ccall((:CeedOperatorApply, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request)
553end
554
555function CeedOperatorApplyAdd(op, in, out, request)
556    ccall((:CeedOperatorApplyAdd, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request)
557end
558
559function CeedOperatorDestroy(op)
560    ccall((:CeedOperatorDestroy, libceed), Cint, (Ptr{CeedOperator},), op)
561end
562
563function CeedIntPow(base, power)
564    ccall((:CeedIntPow, libceed), CeedInt, (CeedInt, CeedInt), base, power)
565end
566
567function CeedIntMin(a, b)
568    ccall((:CeedIntMin, libceed), CeedInt, (CeedInt, CeedInt), a, b)
569end
570
571function CeedIntMax(a, b)
572    ccall((:CeedIntMax, libceed), CeedInt, (CeedInt, CeedInt), a, b)
573end
574
575function CeedRegisterAll()
576    ccall((:CeedRegisterAll, libceed), Cint, ())
577end
578
579function CeedQFunctionRegisterAll()
580    ccall((:CeedQFunctionRegisterAll, libceed), Cint, ())
581end
582
583function CeedQFunctionSetCUDAUserFunction(qf, f)
584    ccall((:CeedQFunctionSetCUDAUserFunction, libceed), Cint, (CeedQFunction, Cint), qf, f)
585end
586
587# automatic type deduction for variadic arguments may not be what you want, please use with caution
588@generated function CeedDebugImpl(arg1, arg2, va_list...)
589        :(@ccall(libceed.CeedDebugImpl(arg1::Ceed, arg2::Ptr{Cchar}; $(to_c_type_pairs(va_list)...))::Cvoid))
590    end
591
592# automatic type deduction for variadic arguments may not be what you want, please use with caution
593@generated function CeedDebugImpl256(arg1, arg2, arg3, va_list...)
594        :(@ccall(libceed.CeedDebugImpl256(arg1::Ceed, arg2::Cuchar, arg3::Ptr{Cchar}; $(to_c_type_pairs(va_list)...))::Cvoid))
595    end
596
597mutable struct CeedTensorContract_private end
598
599const CeedTensorContract = Ptr{CeedTensorContract_private}
600
601function CeedMallocArray(n, unit, p)
602    ccall((:CeedMallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p)
603end
604
605function CeedCallocArray(n, unit, p)
606    ccall((:CeedCallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p)
607end
608
609function CeedReallocArray(n, unit, p)
610    ccall((:CeedReallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p)
611end
612
613function CeedFree(p)
614    ccall((:CeedFree, libceed), Cint, (Ptr{Cvoid},), p)
615end
616
617mutable struct CeedQFunctionField_private end
618
619const CeedQFunctionField = Ptr{CeedQFunctionField_private}
620
621mutable struct CeedOperatorField_private end
622
623const CeedOperatorField = Ptr{CeedOperatorField_private}
624
625function CeedRegister(prefix, init, priority)
626    ccall((:CeedRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cvoid}, Cuint), prefix, init, priority)
627end
628
629function CeedIsDebug(ceed, is_debug)
630    ccall((:CeedIsDebug, libceed), Cint, (Ceed, Ptr{Bool}), ceed, is_debug)
631end
632
633function CeedGetParent(ceed, parent)
634    ccall((:CeedGetParent, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, parent)
635end
636
637function CeedGetDelegate(ceed, delegate)
638    ccall((:CeedGetDelegate, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, delegate)
639end
640
641function CeedSetDelegate(ceed, delegate)
642    ccall((:CeedSetDelegate, libceed), Cint, (Ceed, Ceed), ceed, delegate)
643end
644
645function CeedGetObjectDelegate(ceed, delegate, obj_name)
646    ccall((:CeedGetObjectDelegate, libceed), Cint, (Ceed, Ptr{Ceed}, Ptr{Cchar}), ceed, delegate, obj_name)
647end
648
649function CeedSetObjectDelegate(ceed, delegate, obj_name)
650    ccall((:CeedSetObjectDelegate, libceed), Cint, (Ceed, Ceed, Ptr{Cchar}), ceed, delegate, obj_name)
651end
652
653function CeedGetOperatorFallbackResource(ceed, resource)
654    ccall((:CeedGetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), ceed, resource)
655end
656
657function CeedSetOperatorFallbackResource(ceed, resource)
658    ccall((:CeedSetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Cchar}), ceed, resource)
659end
660
661function CeedGetOperatorFallbackParentCeed(ceed, parent)
662    ccall((:CeedGetOperatorFallbackParentCeed, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, parent)
663end
664
665function CeedSetDeterministic(ceed, is_deterministic)
666    ccall((:CeedSetDeterministic, libceed), Cint, (Ceed, Bool), ceed, is_deterministic)
667end
668
669function CeedSetBackendFunction(ceed, type, object, func_name, f)
670    ccall((:CeedSetBackendFunction, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{Cvoid}, Ptr{Cchar}, Ptr{Cvoid}), ceed, type, object, func_name, f)
671end
672
673function CeedGetData(ceed, data)
674    ccall((:CeedGetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data)
675end
676
677function CeedSetData(ceed, data)
678    ccall((:CeedSetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data)
679end
680
681function CeedReference(ceed)
682    ccall((:CeedReference, libceed), Cint, (Ceed,), ceed)
683end
684
685function CeedVectorGetCeed(vec, ceed)
686    ccall((:CeedVectorGetCeed, libceed), Cint, (CeedVector, Ptr{Ceed}), vec, ceed)
687end
688
689function CeedVectorGetState(vec, state)
690    ccall((:CeedVectorGetState, libceed), Cint, (CeedVector, Ptr{UInt64}), vec, state)
691end
692
693function CeedVectorAddReference(vec)
694    ccall((:CeedVectorAddReference, libceed), Cint, (CeedVector,), vec)
695end
696
697function CeedVectorGetData(vec, data)
698    ccall((:CeedVectorGetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data)
699end
700
701function CeedVectorSetData(vec, data)
702    ccall((:CeedVectorSetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data)
703end
704
705function CeedVectorReference(vec)
706    ccall((:CeedVectorReference, libceed), Cint, (CeedVector,), vec)
707end
708
709function CeedElemRestrictionGetCeed(rstr, ceed)
710    ccall((:CeedElemRestrictionGetCeed, libceed), Cint, (CeedElemRestriction, Ptr{Ceed}), rstr, ceed)
711end
712
713function CeedElemRestrictionGetStrides(rstr, strides)
714    ccall((:CeedElemRestrictionGetStrides, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, strides)
715end
716
717function CeedElemRestrictionGetOffsets(rstr, mem_type, offsets)
718    ccall((:CeedElemRestrictionGetOffsets, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{CeedInt}}), rstr, mem_type, offsets)
719end
720
721function CeedElemRestrictionRestoreOffsets(rstr, offsets)
722    ccall((:CeedElemRestrictionRestoreOffsets, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{CeedInt}}), rstr, offsets)
723end
724
725function CeedElemRestrictionIsStrided(rstr, is_strided)
726    ccall((:CeedElemRestrictionIsStrided, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, is_strided)
727end
728
729function CeedElemRestrictionHasBackendStrides(rstr, has_backend_strides)
730    ccall((:CeedElemRestrictionHasBackendStrides, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, has_backend_strides)
731end
732
733function CeedElemRestrictionGetELayout(rstr, layout)
734    ccall((:CeedElemRestrictionGetELayout, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, layout)
735end
736
737function CeedElemRestrictionSetELayout(rstr, layout)
738    ccall((:CeedElemRestrictionSetELayout, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, layout)
739end
740
741function CeedElemRestrictionGetData(rstr, data)
742    ccall((:CeedElemRestrictionGetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data)
743end
744
745function CeedElemRestrictionSetData(rstr, data)
746    ccall((:CeedElemRestrictionSetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data)
747end
748
749function CeedElemRestrictionReference(rstr)
750    ccall((:CeedElemRestrictionReference, libceed), Cint, (CeedElemRestriction,), rstr)
751end
752
753function CeedBasisGetCollocatedGrad(basis, colo_grad_1d)
754    ccall((:CeedBasisGetCollocatedGrad, libceed), Cint, (CeedBasis, Ptr{CeedScalar}), basis, colo_grad_1d)
755end
756
757function CeedHouseholderApplyQ(A, Q, tau, t_mode, m, n, k, row, col)
758    ccall((:CeedHouseholderApplyQ, libceed), Cint, (Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedTransposeMode, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt), A, Q, tau, t_mode, m, n, k, row, col)
759end
760
761function CeedBasisGetCeed(basis, ceed)
762    ccall((:CeedBasisGetCeed, libceed), Cint, (CeedBasis, Ptr{Ceed}), basis, ceed)
763end
764
765function CeedBasisIsTensor(basis, is_tensor)
766    ccall((:CeedBasisIsTensor, libceed), Cint, (CeedBasis, Ptr{Bool}), basis, is_tensor)
767end
768
769function CeedBasisGetData(basis, data)
770    ccall((:CeedBasisGetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data)
771end
772
773function CeedBasisSetData(basis, data)
774    ccall((:CeedBasisSetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data)
775end
776
777function CeedBasisReference(basis)
778    ccall((:CeedBasisReference, libceed), Cint, (CeedBasis,), basis)
779end
780
781function CeedBasisGetTopologyDimension(topo, dim)
782    ccall((:CeedBasisGetTopologyDimension, libceed), Cint, (CeedElemTopology, Ptr{CeedInt}), topo, dim)
783end
784
785function CeedBasisGetTensorContract(basis, contract)
786    ccall((:CeedBasisGetTensorContract, libceed), Cint, (CeedBasis, Ptr{CeedTensorContract}), basis, contract)
787end
788
789function CeedBasisSetTensorContract(basis, contract)
790    ccall((:CeedBasisSetTensorContract, libceed), Cint, (CeedBasis, CeedTensorContract), basis, contract)
791end
792
793function CeedTensorContractCreate(ceed, basis, contract)
794    ccall((:CeedTensorContractCreate, libceed), Cint, (Ceed, CeedBasis, Ptr{CeedTensorContract}), ceed, basis, contract)
795end
796
797function CeedTensorContractApply(contract, A, B, C, J, t, t_mode, Add, u, v)
798    ccall((:CeedTensorContractApply, libceed), Cint, (CeedTensorContract, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, CeedTransposeMode, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), contract, A, B, C, J, t, t_mode, Add, u, v)
799end
800
801function CeedTensorContractGetCeed(contract, ceed)
802    ccall((:CeedTensorContractGetCeed, libceed), Cint, (CeedTensorContract, Ptr{Ceed}), contract, ceed)
803end
804
805function CeedTensorContractGetData(contract, data)
806    ccall((:CeedTensorContractGetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data)
807end
808
809function CeedTensorContractSetData(contract, data)
810    ccall((:CeedTensorContractSetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data)
811end
812
813function CeedTensorContractReference(contract)
814    ccall((:CeedTensorContractReference, libceed), Cint, (CeedTensorContract,), contract)
815end
816
817function CeedTensorContractDestroy(contract)
818    ccall((:CeedTensorContractDestroy, libceed), Cint, (Ptr{CeedTensorContract},), contract)
819end
820
821function CeedQFunctionRegister(arg1, arg2, arg3, arg4, init)
822    ccall((:CeedQFunctionRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cchar}, CeedInt, CeedQFunctionUser, Ptr{Cvoid}), arg1, arg2, arg3, arg4, init)
823end
824
825function CeedQFunctionSetFortranStatus(qf, status)
826    ccall((:CeedQFunctionSetFortranStatus, libceed), Cint, (CeedQFunction, Bool), qf, status)
827end
828
829function CeedQFunctionGetCeed(qf, ceed)
830    ccall((:CeedQFunctionGetCeed, libceed), Cint, (CeedQFunction, Ptr{Ceed}), qf, ceed)
831end
832
833function CeedQFunctionGetVectorLength(qf, vec_length)
834    ccall((:CeedQFunctionGetVectorLength, libceed), Cint, (CeedQFunction, Ptr{CeedInt}), qf, vec_length)
835end
836
837function CeedQFunctionGetNumArgs(qf, num_input_fields, num_output_fields)
838    ccall((:CeedQFunctionGetNumArgs, libceed), Cint, (CeedQFunction, Ptr{CeedInt}, Ptr{CeedInt}), qf, num_input_fields, num_output_fields)
839end
840
841function CeedQFunctionGetSourcePath(qf, source)
842    ccall((:CeedQFunctionGetSourcePath, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, source)
843end
844
845function CeedQFunctionGetUserFunction(qf, f)
846    ccall((:CeedQFunctionGetUserFunction, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionUser}), qf, f)
847end
848
849function CeedQFunctionGetContext(qf, ctx)
850    ccall((:CeedQFunctionGetContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx)
851end
852
853function CeedQFunctionGetInnerContext(qf, ctx)
854    ccall((:CeedQFunctionGetInnerContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx)
855end
856
857function CeedQFunctionIsIdentity(qf, is_identity)
858    ccall((:CeedQFunctionIsIdentity, libceed), Cint, (CeedQFunction, Ptr{Bool}), qf, is_identity)
859end
860
861function CeedQFunctionGetData(qf, data)
862    ccall((:CeedQFunctionGetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data)
863end
864
865function CeedQFunctionSetData(qf, data)
866    ccall((:CeedQFunctionSetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data)
867end
868
869function CeedQFunctionReference(qf)
870    ccall((:CeedQFunctionReference, libceed), Cint, (CeedQFunction,), qf)
871end
872
873function CeedQFunctionGetFields(qf, input_fields, output_fields)
874    ccall((:CeedQFunctionGetFields, libceed), Cint, (CeedQFunction, Ptr{Ptr{CeedQFunctionField}}, Ptr{Ptr{CeedQFunctionField}}), qf, input_fields, output_fields)
875end
876
877function CeedQFunctionFieldGetName(qf_field, field_name)
878    ccall((:CeedQFunctionFieldGetName, libceed), Cint, (CeedQFunctionField, Ptr{Ptr{Cchar}}), qf_field, field_name)
879end
880
881function CeedQFunctionFieldGetSize(qf_field, size)
882    ccall((:CeedQFunctionFieldGetSize, libceed), Cint, (CeedQFunctionField, Ptr{CeedInt}), qf_field, size)
883end
884
885function CeedQFunctionFieldGetEvalMode(qf_field, eval_mode)
886    ccall((:CeedQFunctionFieldGetEvalMode, libceed), Cint, (CeedQFunctionField, Ptr{CeedEvalMode}), qf_field, eval_mode)
887end
888
889function CeedQFunctionContextGetCeed(cxt, ceed)
890    ccall((:CeedQFunctionContextGetCeed, libceed), Cint, (CeedQFunctionContext, Ptr{Ceed}), cxt, ceed)
891end
892
893function CeedQFunctionContextGetState(ctx, state)
894    ccall((:CeedQFunctionContextGetState, libceed), Cint, (CeedQFunctionContext, Ptr{UInt64}), ctx, state)
895end
896
897function CeedQFunctionContextGetContextSize(ctx, ctx_size)
898    ccall((:CeedQFunctionContextGetContextSize, libceed), Cint, (CeedQFunctionContext, Ptr{Csize_t}), ctx, ctx_size)
899end
900
901function CeedQFunctionContextGetBackendData(ctx, data)
902    ccall((:CeedQFunctionContextGetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data)
903end
904
905function CeedQFunctionContextSetBackendData(ctx, data)
906    ccall((:CeedQFunctionContextSetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data)
907end
908
909function CeedQFunctionContextReference(ctx)
910    ccall((:CeedQFunctionContextReference, libceed), Cint, (CeedQFunctionContext,), ctx)
911end
912
913function CeedOperatorGetCeed(op, ceed)
914    ccall((:CeedOperatorGetCeed, libceed), Cint, (CeedOperator, Ptr{Ceed}), op, ceed)
915end
916
917function CeedOperatorGetNumElements(op, num_elem)
918    ccall((:CeedOperatorGetNumElements, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_elem)
919end
920
921function CeedOperatorGetNumQuadraturePoints(op, num_qpts)
922    ccall((:CeedOperatorGetNumQuadraturePoints, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_qpts)
923end
924
925function CeedOperatorGetNumArgs(op, num_args)
926    ccall((:CeedOperatorGetNumArgs, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_args)
927end
928
929function CeedOperatorIsSetupDone(op, is_setup_done)
930    ccall((:CeedOperatorIsSetupDone, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_setup_done)
931end
932
933function CeedOperatorGetQFunction(op, qf)
934    ccall((:CeedOperatorGetQFunction, libceed), Cint, (CeedOperator, Ptr{CeedQFunction}), op, qf)
935end
936
937function CeedOperatorIsComposite(op, is_composite)
938    ccall((:CeedOperatorIsComposite, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_composite)
939end
940
941function CeedOperatorGetNumSub(op, num_suboperators)
942    ccall((:CeedOperatorGetNumSub, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_suboperators)
943end
944
945function CeedOperatorGetSubList(op, sub_operators)
946    ccall((:CeedOperatorGetSubList, libceed), Cint, (CeedOperator, Ptr{Ptr{CeedOperator}}), op, sub_operators)
947end
948
949function CeedOperatorGetData(op, data)
950    ccall((:CeedOperatorGetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data)
951end
952
953function CeedOperatorSetData(op, data)
954    ccall((:CeedOperatorSetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data)
955end
956
957function CeedOperatorReference(op)
958    ccall((:CeedOperatorReference, libceed), Cint, (CeedOperator,), op)
959end
960
961function CeedOperatorSetSetupDone(op)
962    ccall((:CeedOperatorSetSetupDone, libceed), Cint, (CeedOperator,), op)
963end
964
965function CeedOperatorGetFields(op, input_fields, output_fields)
966    ccall((:CeedOperatorGetFields, libceed), Cint, (CeedOperator, Ptr{Ptr{CeedOperatorField}}, Ptr{Ptr{CeedOperatorField}}), op, input_fields, output_fields)
967end
968
969function CeedOperatorFieldGetElemRestriction(op_field, rstr)
970    ccall((:CeedOperatorFieldGetElemRestriction, libceed), Cint, (CeedOperatorField, Ptr{CeedElemRestriction}), op_field, rstr)
971end
972
973function CeedOperatorFieldGetBasis(op_field, basis)
974    ccall((:CeedOperatorFieldGetBasis, libceed), Cint, (CeedOperatorField, Ptr{CeedBasis}), op_field, basis)
975end
976
977function CeedOperatorFieldGetVector(op_field, vec)
978    ccall((:CeedOperatorFieldGetVector, libceed), Cint, (CeedOperatorField, Ptr{CeedVector}), op_field, vec)
979end
980
981function CeedMatrixMultiply(ceed, mat_A, mat_B, mat_C, m, n, kk)
982    ccall((:CeedMatrixMultiply, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt, CeedInt), ceed, mat_A, mat_B, mat_C, m, n, kk)
983end
984
985# Skipping MacroDefinition: CEED_EXTERN extern
986
987# Skipping MacroDefinition: CEED_QFUNCTION_HELPER static inline
988
989const CEED_VERSION_MAJOR = 0
990
991const CEED_VERSION_MINOR = 9
992
993const CEED_VERSION_PATCH = 0
994
995const CEED_VERSION_RELEASE = false
996
997# Skipping MacroDefinition: CEED_INTERN CEED_EXTERN __attribute__ ( ( visibility ( "hidden" ) ) )
998
999# Skipping MacroDefinition: CEED_UNUSED __attribute__ ( ( unused ) )
1000
1001const CEED_MAX_RESOURCE_LEN = 1024
1002
1003const CEED_MAX_BACKEND_PRIORITY = UINT_MAX
1004
1005const CEED_ALIGN = 64
1006
1007const CEED_COMPOSITE_MAX = 16
1008
1009const CEED_EPSILON = 1.0e-16
1010
1011# Skipping MacroDefinition: CeedPragmaOptimizeOff _Pragma ( "clang optimize off" )
1012
1013# Skipping MacroDefinition: CeedPragmaOptimizeOn _Pragma ( "clang optimize on" )
1014
1015const CEED_DEBUG_COLOR = 0
1016