Skip to main content

cuest_ffi/ffi_dynamic/
dyload_struct.rs

1//! Library struct definition for dynamic loading.
2//!
3//! This file is generated automatically by `scripts/generate_ffi.py`; do not
4//! edit it manually.
5//!
6//! All functions are resolved when the shared library is loaded; a runtime
7//! panic occurs if a function is not found.
8
9use super::*;
10use core::ffi::{c_int, c_void};
11
12pub struct DyLoadLib {
13    pub __libraries: Vec<libloading::Library>,
14    pub __libraries_path: Vec<String>,
15    pub __error: Option<String>,
16    pub cuestCreate: Option<
17        unsafe extern "C" fn(
18            parameters: cuestHandleParameters_t,
19            handle: *mut cuestHandle_t,
20        ) -> cuestStatus_t,
21    >,
22    pub cuestDestroy: Option<unsafe extern "C" fn(handle: cuestHandle_t) -> cuestStatus_t>,
23    pub cuestSetMathMode:
24        Option<unsafe extern "C" fn(handle: cuestHandle_t, mode: cuestMathMode_t) -> cuestStatus_t>,
25    pub cuestGetMathMode: Option<
26        unsafe extern "C" fn(handle: cuestHandle_t, mode: *mut cuestMathMode_t) -> cuestStatus_t,
27    >,
28    pub cuestSetComputeCapabilityTarget: Option<
29        unsafe extern "C" fn(
30            handle: cuestHandle_t,
31            targetMajorVersion: u32,
32            targetMinorVersion: u32,
33        ) -> cuestStatus_t,
34    >,
35    pub cuestGetComputeCapabilityTarget: Option<
36        unsafe extern "C" fn(
37            handle: cuestHandle_t,
38            targetMajorVersion: *mut u32,
39            targetMinorVersion: *mut u32,
40        ) -> cuestStatus_t,
41    >,
42    pub cuestGetMajorVersion: Option<
43        unsafe extern "C" fn(handle: cuestHandle_t, majorVersion: *mut u32) -> cuestStatus_t,
44    >,
45    pub cuestGetMinorVersion: Option<
46        unsafe extern "C" fn(handle: cuestHandle_t, minorVersion: *mut u32) -> cuestStatus_t,
47    >,
48    pub cuestGetPatchVersion: Option<
49        unsafe extern "C" fn(handle: cuestHandle_t, patchVersion: *mut u32) -> cuestStatus_t,
50    >,
51    pub cuestAOShellCreate: Option<
52        unsafe extern "C" fn(
53            handle: cuestHandle_t,
54            isPure: i32,
55            L: u64,
56            numPrimitive: u64,
57            exponents: *const f64,
58            coefficients: *const f64,
59            parameters: cuestAOShellParameters_t,
60            outShell: *mut cuestAOShell_t,
61        ) -> cuestStatus_t,
62    >,
63    pub cuestAOShellDestroy: Option<unsafe extern "C" fn(shell: cuestAOShell_t) -> cuestStatus_t>,
64    pub cuestAOBasisCreate: Option<
65        unsafe extern "C" fn(
66            handle: cuestHandle_t,
67            numAtoms: u64,
68            numShellsPerAtom: *const u64,
69            shells: *const cuestAOShell_t,
70            parameters: cuestAOBasisParameters_t,
71            persistentWorkspace: *mut cuestWorkspace_t,
72            temporaryWorkspace: *mut cuestWorkspace_t,
73            outBasis: *mut cuestAOBasis_t,
74        ) -> cuestStatus_t,
75    >,
76    pub cuestAOBasisCreateWorkspaceQuery: Option<
77        unsafe extern "C" fn(
78            handle: cuestHandle_t,
79            numAtoms: u64,
80            numShellsPerAtom: *const u64,
81            shells: *const cuestAOShell_t,
82            parameters: cuestAOBasisParameters_t,
83            persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
84            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
85            outBasis: *mut cuestAOBasis_t,
86        ) -> cuestStatus_t,
87    >,
88    pub cuestAOBasisDestroy: Option<unsafe extern "C" fn(basis: cuestAOBasis_t) -> cuestStatus_t>,
89    pub cuestAOPairListCreate: Option<
90        unsafe extern "C" fn(
91            handle: cuestHandle_t,
92            basis: cuestAOBasis_t,
93            numAtoms: u64,
94            xyz: *const f64,
95            thresholdPQ: f64,
96            parameters: cuestAOPairListParameters_t,
97            persistentWorkspace: *mut cuestWorkspace_t,
98            temporaryWorkspace: *mut cuestWorkspace_t,
99            outPairList: *mut cuestAOPairList_t,
100        ) -> cuestStatus_t,
101    >,
102    pub cuestAOPairListCreateWorkspaceQuery: Option<
103        unsafe extern "C" fn(
104            handle: cuestHandle_t,
105            basis: cuestAOBasis_t,
106            numAtoms: u64,
107            xyz: *const f64,
108            thresholdPQ: f64,
109            parameters: cuestAOPairListParameters_t,
110            persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
111            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
112            outPairList: *mut cuestAOPairList_t,
113        ) -> cuestStatus_t,
114    >,
115    pub cuestAOPairListDestroy:
116        Option<unsafe extern "C" fn(pairList: cuestAOPairList_t) -> cuestStatus_t>,
117    pub cuestECPCompute: Option<
118        unsafe extern "C" fn(
119            handle: cuestHandle_t,
120            plan: cuestECPIntPlan_t,
121            parameters: cuestECPComputeParameters_t,
122            variableBufferSize: *const cuestWorkspaceDescriptor_t,
123            temporaryWorkspace: *mut cuestWorkspace_t,
124            outECPMatrix: *mut f64,
125        ) -> cuestStatus_t,
126    >,
127    pub cuestECPComputeWorkspaceQuery: Option<
128        unsafe extern "C" fn(
129            handle: cuestHandle_t,
130            plan: cuestECPIntPlan_t,
131            parameters: cuestECPComputeParameters_t,
132            variableBufferSize: *const cuestWorkspaceDescriptor_t,
133            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
134            outECPMatrix: *mut f64,
135        ) -> cuestStatus_t,
136    >,
137    pub cuestECPDerivativeCompute: Option<
138        unsafe extern "C" fn(
139            handle: cuestHandle_t,
140            plan: cuestECPIntPlan_t,
141            parameters: cuestECPDerivativeComputeParameters_t,
142            variableBufferSize: *const cuestWorkspaceDescriptor_t,
143            temporaryWorkspace: *mut cuestWorkspace_t,
144            densityMatrix: *const f64,
145            outGradient: *mut f64,
146        ) -> cuestStatus_t,
147    >,
148    pub cuestECPDerivativeComputeWorkspaceQuery: Option<
149        unsafe extern "C" fn(
150            handle: cuestHandle_t,
151            plan: cuestECPIntPlan_t,
152            parameters: cuestECPDerivativeComputeParameters_t,
153            variableBufferSize: *const cuestWorkspaceDescriptor_t,
154            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
155            densityMatrix: *const f64,
156            outGradient: *mut f64,
157        ) -> cuestStatus_t,
158    >,
159    pub cuestECPAtomCreate: Option<
160        unsafe extern "C" fn(
161            handle: cuestHandle_t,
162            numElectrons: u64,
163            numShells: u64,
164            shells: *const cuestECPShell_t,
165            topShell: cuestECPShell_t,
166            parameters: cuestECPAtomParameters_t,
167            outECPAtom: *mut cuestECPAtom_t,
168        ) -> cuestStatus_t,
169    >,
170    pub cuestECPAtomDestroy: Option<unsafe extern "C" fn(atom: cuestECPAtom_t) -> cuestStatus_t>,
171    pub cuestECPShellCreate: Option<
172        unsafe extern "C" fn(
173            handle: cuestHandle_t,
174            L: u64,
175            numPrimitive: u64,
176            radialPowers: *const u64,
177            coefficients: *const f64,
178            exponents: *const f64,
179            parameters: cuestECPShellParameters_t,
180            outECPShell: *mut cuestECPShell_t,
181        ) -> cuestStatus_t,
182    >,
183    pub cuestECPShellDestroy: Option<unsafe extern "C" fn(shell: cuestECPShell_t) -> cuestStatus_t>,
184    pub cuestECPIntPlanCreate: Option<
185        unsafe extern "C" fn(
186            handle: cuestHandle_t,
187            basis: cuestAOBasis_t,
188            xyzCPU: *const f64,
189            numECPAtoms: u64,
190            activeIndices: *const u64,
191            activeAtoms: *const cuestECPAtom_t,
192            parameters: cuestECPIntPlanParameters_t,
193            persistentWorkspace: *mut cuestWorkspace_t,
194            temporaryWorkspace: *mut cuestWorkspace_t,
195            outPlan: *mut cuestECPIntPlan_t,
196        ) -> cuestStatus_t,
197    >,
198    pub cuestECPIntPlanCreateWorkspaceQuery: Option<
199        unsafe extern "C" fn(
200            handle: cuestHandle_t,
201            basis: cuestAOBasis_t,
202            xyzCPU: *const f64,
203            numECPAtoms: u64,
204            activeIndices: *const u64,
205            activeAtoms: *const cuestECPAtom_t,
206            parameters: cuestECPIntPlanParameters_t,
207            persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
208            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
209            outPlan: *mut cuestECPIntPlan_t,
210        ) -> cuestStatus_t,
211    >,
212    pub cuestECPIntPlanDestroy:
213        Option<unsafe extern "C" fn(plan: cuestECPIntPlan_t) -> cuestStatus_t>,
214    pub cuestOEIntPlanCreate: Option<
215        unsafe extern "C" fn(
216            handle: cuestHandle_t,
217            basis: cuestAOBasis_t,
218            pairList: cuestAOPairList_t,
219            parameters: cuestOEIntPlanParameters_t,
220            persistentWorkspace: *mut cuestWorkspace_t,
221            temporaryWorkspace: *mut cuestWorkspace_t,
222            outPlan: *mut cuestOEIntPlan_t,
223        ) -> cuestStatus_t,
224    >,
225    pub cuestOEIntPlanCreateWorkspaceQuery: Option<
226        unsafe extern "C" fn(
227            handle: cuestHandle_t,
228            basis: cuestAOBasis_t,
229            pairList: cuestAOPairList_t,
230            parameters: cuestOEIntPlanParameters_t,
231            persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
232            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
233            outPlan: *mut cuestOEIntPlan_t,
234        ) -> cuestStatus_t,
235    >,
236    pub cuestOEIntPlanDestroy:
237        Option<unsafe extern "C" fn(plan: cuestOEIntPlan_t) -> cuestStatus_t>,
238    pub cuestDFIntPlanCreate: Option<
239        unsafe extern "C" fn(
240            handle: cuestHandle_t,
241            primaryBasis: cuestAOBasis_t,
242            auxiliaryBasis: cuestAOBasis_t,
243            pairList: cuestAOPairList_t,
244            parameters: cuestDFIntPlanParameters_t,
245            persistentWorkspace: *mut cuestWorkspace_t,
246            temporaryWorkspace: *mut cuestWorkspace_t,
247            outPlan: *mut cuestDFIntPlan_t,
248        ) -> cuestStatus_t,
249    >,
250    pub cuestDFIntPlanCreateWorkspaceQuery: Option<
251        unsafe extern "C" fn(
252            handle: cuestHandle_t,
253            primaryBasis: cuestAOBasis_t,
254            auxiliaryBasis: cuestAOBasis_t,
255            pairList: cuestAOPairList_t,
256            parameters: cuestDFIntPlanParameters_t,
257            persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
258            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
259            outPlan: *mut cuestDFIntPlan_t,
260        ) -> cuestStatus_t,
261    >,
262    pub cuestDFIntPlanDestroy:
263        Option<unsafe extern "C" fn(plan: cuestDFIntPlan_t) -> cuestStatus_t>,
264    pub cuestOverlapCompute: Option<
265        unsafe extern "C" fn(
266            handle: cuestHandle_t,
267            plan: cuestOEIntPlan_t,
268            parameters: cuestOverlapComputeParameters_t,
269            temporaryWorkspace: *mut cuestWorkspace_t,
270            outSMatrix: *mut f64,
271        ) -> cuestStatus_t,
272    >,
273    pub cuestOverlapComputeWorkspaceQuery: Option<
274        unsafe extern "C" fn(
275            handle: cuestHandle_t,
276            plan: cuestOEIntPlan_t,
277            parameters: cuestOverlapComputeParameters_t,
278            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
279            outSMatrix: *mut f64,
280        ) -> cuestStatus_t,
281    >,
282    pub cuestOverlapDerivativeCompute: Option<
283        unsafe extern "C" fn(
284            handle: cuestHandle_t,
285            plan: cuestOEIntPlan_t,
286            parameters: cuestOverlapDerivativeComputeParameters_t,
287            temporaryWorkspace: *mut cuestWorkspace_t,
288            densityMatrix: *const f64,
289            outGradient: *mut f64,
290        ) -> cuestStatus_t,
291    >,
292    pub cuestOverlapDerivativeComputeWorkspaceQuery: Option<
293        unsafe extern "C" fn(
294            handle: cuestHandle_t,
295            plan: cuestOEIntPlan_t,
296            parameters: cuestOverlapDerivativeComputeParameters_t,
297            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
298            densityMatrix: *const f64,
299            outGradient: *mut f64,
300        ) -> cuestStatus_t,
301    >,
302    pub cuestKineticCompute: Option<
303        unsafe extern "C" fn(
304            handle: cuestHandle_t,
305            plan: cuestOEIntPlan_t,
306            parameters: cuestKineticComputeParameters_t,
307            temporaryWorkspace: *mut cuestWorkspace_t,
308            outTMatrix: *mut f64,
309        ) -> cuestStatus_t,
310    >,
311    pub cuestKineticComputeWorkspaceQuery: Option<
312        unsafe extern "C" fn(
313            handle: cuestHandle_t,
314            plan: cuestOEIntPlan_t,
315            parameters: cuestKineticComputeParameters_t,
316            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
317            outTMatrix: *mut f64,
318        ) -> cuestStatus_t,
319    >,
320    pub cuestKineticDerivativeCompute: Option<
321        unsafe extern "C" fn(
322            handle: cuestHandle_t,
323            plan: cuestOEIntPlan_t,
324            parameters: cuestKineticDerivativeComputeParameters_t,
325            temporaryWorkspace: *mut cuestWorkspace_t,
326            densityMatrix: *const f64,
327            outGradient: *mut f64,
328        ) -> cuestStatus_t,
329    >,
330    pub cuestKineticDerivativeComputeWorkspaceQuery: Option<
331        unsafe extern "C" fn(
332            handle: cuestHandle_t,
333            plan: cuestOEIntPlan_t,
334            parameters: cuestKineticDerivativeComputeParameters_t,
335            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
336            densityMatrix: *const f64,
337            outGradient: *mut f64,
338        ) -> cuestStatus_t,
339    >,
340    pub cuestMultipoleCompute: Option<
341        unsafe extern "C" fn(
342            handle: cuestHandle_t,
343            plan: cuestOEIntPlan_t,
344            parameters: cuestMultipoleComputeParameters_t,
345            temporaryWorkspace: *mut cuestWorkspace_t,
346            multipoleOrder: *const u32,
347            origin: *const f64,
348            outMatrix: *mut f64,
349        ) -> cuestStatus_t,
350    >,
351    pub cuestMultipoleComputeWorkspaceQuery: Option<
352        unsafe extern "C" fn(
353            handle: cuestHandle_t,
354            plan: cuestOEIntPlan_t,
355            parameters: cuestMultipoleComputeParameters_t,
356            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
357            multipoleOrder: *const u32,
358            origin: *const f64,
359            outMatrix: *mut f64,
360        ) -> cuestStatus_t,
361    >,
362    pub cuestMultipoleDerivativeCompute: Option<
363        unsafe extern "C" fn(
364            handle: cuestHandle_t,
365            plan: cuestOEIntPlan_t,
366            parameters: cuestMultipoleDerivativeComputeParameters_t,
367            temporaryWorkspace: *mut cuestWorkspace_t,
368            multipoleOrder: *const u32,
369            origin: *const f64,
370            densityMatrix: *const f64,
371            outGradient: *mut f64,
372        ) -> cuestStatus_t,
373    >,
374    pub cuestMultipoleDerivativeComputeWorkspaceQuery: Option<
375        unsafe extern "C" fn(
376            handle: cuestHandle_t,
377            plan: cuestOEIntPlan_t,
378            parameters: cuestMultipoleDerivativeComputeParameters_t,
379            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
380            multipoleOrder: *const u32,
381            origin: *const f64,
382            densityMatrix: *const f64,
383            outGradient: *mut f64,
384        ) -> cuestStatus_t,
385    >,
386    pub cuestAngularMomentumCompute: Option<
387        unsafe extern "C" fn(
388            handle: cuestHandle_t,
389            plan: cuestOEIntPlan_t,
390            parameters: cuestAngularMomentumComputeParameters_t,
391            temporaryWorkspace: *mut cuestWorkspace_t,
392            component: cuestAngularMomentumComputeParametersComponent_t,
393            origin: *const f64,
394            outMatrix: *mut f64,
395        ) -> cuestStatus_t,
396    >,
397    pub cuestAngularMomentumComputeWorkspaceQuery: Option<
398        unsafe extern "C" fn(
399            handle: cuestHandle_t,
400            plan: cuestOEIntPlan_t,
401            parameters: cuestAngularMomentumComputeParameters_t,
402            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
403            component: cuestAngularMomentumComputeParametersComponent_t,
404            origin: *const f64,
405            outMatrix: *mut f64,
406        ) -> cuestStatus_t,
407    >,
408    pub cuestAngularMomentumDerivativeCompute: Option<
409        unsafe extern "C" fn(
410            handle: cuestHandle_t,
411            plan: cuestOEIntPlan_t,
412            parameters: cuestAngularMomentumDerivativeComputeParameters_t,
413            temporaryWorkspace: *mut cuestWorkspace_t,
414            component: cuestAngularMomentumComputeParametersComponent_t,
415            origin: *const f64,
416            densityMatrix: *const f64,
417            outGradient: *mut f64,
418        ) -> cuestStatus_t,
419    >,
420    pub cuestAngularMomentumDerivativeComputeWorkspaceQuery: Option<
421        unsafe extern "C" fn(
422            handle: cuestHandle_t,
423            plan: cuestOEIntPlan_t,
424            parameters: cuestAngularMomentumDerivativeComputeParameters_t,
425            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
426            component: cuestAngularMomentumComputeParametersComponent_t,
427            origin: *const f64,
428            densityMatrix: *const f64,
429            outGradient: *mut f64,
430        ) -> cuestStatus_t,
431    >,
432    pub cuestNablaCompute: Option<
433        unsafe extern "C" fn(
434            handle: cuestHandle_t,
435            plan: cuestOEIntPlan_t,
436            parameters: cuestNablaComputeParameters_t,
437            temporaryWorkspace: *mut cuestWorkspace_t,
438            component: cuestNablaComputeParametersComponent_t,
439            outMatrix: *mut f64,
440        ) -> cuestStatus_t,
441    >,
442    pub cuestNablaComputeWorkspaceQuery: Option<
443        unsafe extern "C" fn(
444            handle: cuestHandle_t,
445            plan: cuestOEIntPlan_t,
446            parameters: cuestNablaComputeParameters_t,
447            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
448            component: cuestNablaComputeParametersComponent_t,
449            outMatrix: *mut f64,
450        ) -> cuestStatus_t,
451    >,
452    pub cuestNablaDerivativeCompute: Option<
453        unsafe extern "C" fn(
454            handle: cuestHandle_t,
455            plan: cuestOEIntPlan_t,
456            parameters: cuestNablaDerivativeComputeParameters_t,
457            temporaryWorkspace: *mut cuestWorkspace_t,
458            component: cuestNablaComputeParametersComponent_t,
459            densityMatrix: *const f64,
460            outGradient: *mut f64,
461        ) -> cuestStatus_t,
462    >,
463    pub cuestNablaDerivativeComputeWorkspaceQuery: Option<
464        unsafe extern "C" fn(
465            handle: cuestHandle_t,
466            plan: cuestOEIntPlan_t,
467            parameters: cuestNablaDerivativeComputeParameters_t,
468            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
469            component: cuestNablaComputeParametersComponent_t,
470            densityMatrix: *const f64,
471            outGradient: *mut f64,
472        ) -> cuestStatus_t,
473    >,
474    pub cuestPotentialCompute: Option<
475        unsafe extern "C" fn(
476            handle: cuestHandle_t,
477            plan: cuestOEIntPlan_t,
478            parameters: cuestPotentialComputeParameters_t,
479            temporaryWorkspace: *mut cuestWorkspace_t,
480            numCharges: u64,
481            xyz: *const f64,
482            q: *const f64,
483            outVMatrix: *mut f64,
484        ) -> cuestStatus_t,
485    >,
486    pub cuestPotentialComputeWorkspaceQuery: Option<
487        unsafe extern "C" fn(
488            handle: cuestHandle_t,
489            plan: cuestOEIntPlan_t,
490            parameters: cuestPotentialComputeParameters_t,
491            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
492            numCharges: u64,
493            xyz: *const f64,
494            q: *const f64,
495            outVMatrix: *mut f64,
496        ) -> cuestStatus_t,
497    >,
498    pub cuestPotentialDerivativeCompute: Option<
499        unsafe extern "C" fn(
500            handle: cuestHandle_t,
501            plan: cuestOEIntPlan_t,
502            parameters: cuestPotentialDerivativeComputeParameters_t,
503            temporaryWorkspace: *mut cuestWorkspace_t,
504            numCharges: u64,
505            xyz: *const f64,
506            q: *const f64,
507            densityMatrix: *const f64,
508            outBasisGradient: *mut f64,
509            outChargeGradient: *mut f64,
510        ) -> cuestStatus_t,
511    >,
512    pub cuestPotentialDerivativeComputeWorkspaceQuery: Option<
513        unsafe extern "C" fn(
514            handle: cuestHandle_t,
515            plan: cuestOEIntPlan_t,
516            parameters: cuestPotentialDerivativeComputeParameters_t,
517            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
518            numCharges: u64,
519            xyz: *const f64,
520            q: *const f64,
521            densityMatrix: *const f64,
522            outBasisGradient: *mut f64,
523            outChargeGradient: *mut f64,
524        ) -> cuestStatus_t,
525    >,
526    pub cuestDFCoulombCompute: Option<
527        unsafe extern "C" fn(
528            handle: cuestHandle_t,
529            plan: cuestDFIntPlan_t,
530            parameters: cuestDFCoulombComputeParameters_t,
531            temporaryWorkspace: *mut cuestWorkspace_t,
532            densityMatrix: *const f64,
533            outCoulombMatrix: *mut f64,
534        ) -> cuestStatus_t,
535    >,
536    pub cuestDFCoulombComputeWorkspaceQuery: Option<
537        unsafe extern "C" fn(
538            handle: cuestHandle_t,
539            plan: cuestDFIntPlan_t,
540            parameters: cuestDFCoulombComputeParameters_t,
541            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
542            densityMatrix: *const f64,
543            outCoulombMatrix: *mut f64,
544        ) -> cuestStatus_t,
545    >,
546    pub cuestDFSymmetricExchangeCompute: Option<
547        unsafe extern "C" fn(
548            handle: cuestHandle_t,
549            plan: cuestDFIntPlan_t,
550            parameters: cuestDFSymmetricExchangeComputeParameters_t,
551            variableBufferSize: *const cuestWorkspaceDescriptor_t,
552            temporaryWorkspace: *mut cuestWorkspace_t,
553            numOccupied: u64,
554            coefficientMatrix: *const f64,
555            outExchangeMatrix: *mut f64,
556        ) -> cuestStatus_t,
557    >,
558    pub cuestDFSymmetricExchangeComputeWorkspaceQuery: Option<
559        unsafe extern "C" fn(
560            handle: cuestHandle_t,
561            plan: cuestDFIntPlan_t,
562            parameters: cuestDFSymmetricExchangeComputeParameters_t,
563            variableBufferSize: *const cuestWorkspaceDescriptor_t,
564            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
565            numOccupied: u64,
566            coefficientMatrix: *const f64,
567            outExchangeMatrix: *mut f64,
568        ) -> cuestStatus_t,
569    >,
570    pub cuestDFNonsymmetricExchangeCompute: Option<
571        unsafe extern "C" fn(
572            handle: cuestHandle_t,
573            plan: cuestDFIntPlan_t,
574            parameters: cuestDFNonsymmetricExchangeComputeParameters_t,
575            variableBufferSize: *const cuestWorkspaceDescriptor_t,
576            temporaryWorkspace: *mut cuestWorkspace_t,
577            numCoefficientMatrices: u64,
578            numOccupied: u64,
579            leftCoefficientMatrix: *const f64,
580            rightCoefficientMatrices: *const f64,
581            outExchangeMatrices: *mut f64,
582        ) -> cuestStatus_t,
583    >,
584    pub cuestDFNonsymmetricExchangeComputeWorkspaceQuery: Option<
585        unsafe extern "C" fn(
586            handle: cuestHandle_t,
587            plan: cuestDFIntPlan_t,
588            parameters: cuestDFNonsymmetricExchangeComputeParameters_t,
589            variableBufferSize: *const cuestWorkspaceDescriptor_t,
590            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
591            numCoefficientMatrices: u64,
592            numOccupied: u64,
593            leftCoefficientMatrix: *const f64,
594            rightCoefficientMatrices: *const f64,
595            outExchangeMatrices: *mut f64,
596        ) -> cuestStatus_t,
597    >,
598    pub cuestDFSymmetricDerivativeCompute: Option<
599        unsafe extern "C" fn(
600            handle: cuestHandle_t,
601            plan: cuestDFIntPlan_t,
602            parameters: cuestDFSymmetricDerivativeComputeParameters_t,
603            variableBufferSize: *const cuestWorkspaceDescriptor_t,
604            temporaryWorkspace: *mut cuestWorkspace_t,
605            densityScale: f64,
606            densityMatrix: *const f64,
607            coefficientScale: f64,
608            numCoefficientMatrices: u64,
609            numOccupied: *const u64,
610            coefficientMatrices: *const f64,
611            outGradient: *mut f64,
612        ) -> cuestStatus_t,
613    >,
614    pub cuestDFSymmetricDerivativeComputeWorkspaceQuery: Option<
615        unsafe extern "C" fn(
616            handle: cuestHandle_t,
617            plan: cuestDFIntPlan_t,
618            parameters: cuestDFSymmetricDerivativeComputeParameters_t,
619            variableBufferSize: *const cuestWorkspaceDescriptor_t,
620            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
621            densityScale: f64,
622            densityMatrix: *const f64,
623            coefficientScale: f64,
624            numCoefficientMatrices: u64,
625            numOccupied: *const u64,
626            coefficientMatrices: *const f64,
627            outGradient: *mut f64,
628        ) -> cuestStatus_t,
629    >,
630    pub cuestDFMOIntegralsCompute: Option<
631        unsafe extern "C" fn(
632            handle: cuestHandle_t,
633            plan: cuestDFIntPlan_t,
634            parameters: cuestDFMOIntegralsComputeParameters_t,
635            variableBufferSize: *const cuestWorkspaceDescriptor_t,
636            temporaryWorkspace: *mut cuestWorkspace_t,
637            numCoefficientMatrices: u64,
638            numLeftOrbitals: *const u64,
639            numRightOrbitals: *const u64,
640            leftCoefficientMatrices: *const f64,
641            rightCoefficientMatrices: *const f64,
642            outTensors: *mut f64,
643        ) -> cuestStatus_t,
644    >,
645    pub cuestDFMOIntegralsComputeWorkspaceQuery: Option<
646        unsafe extern "C" fn(
647            handle: cuestHandle_t,
648            plan: cuestDFIntPlan_t,
649            parameters: cuestDFMOIntegralsComputeParameters_t,
650            variableBufferSize: *const cuestWorkspaceDescriptor_t,
651            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
652            numCoefficientMatrices: u64,
653            numLeftOrbitals: *const u64,
654            numRightOrbitals: *const u64,
655            leftCoefficientMatrices: *const f64,
656            rightCoefficientMatrices: *const f64,
657            outTensors: *mut f64,
658        ) -> cuestStatus_t,
659    >,
660    pub cuestAtomGridCreate: Option<
661        unsafe extern "C" fn(
662            handle: cuestHandle_t,
663            numRadialPoints: u64,
664            radialNodes: *const f64,
665            radialWeights: *const f64,
666            numAngularPoints: *const u64,
667            parameters: cuestAtomGridParameters_t,
668            outAtomGrid: *mut cuestAtomGrid_t,
669        ) -> cuestStatus_t,
670    >,
671    pub cuestAtomGridDestroy:
672        Option<unsafe extern "C" fn(atomGrid: cuestAtomGrid_t) -> cuestStatus_t>,
673    pub cuestMolecularGridCreate: Option<
674        unsafe extern "C" fn(
675            handle: cuestHandle_t,
676            numAtoms: u64,
677            atomGrid: *const cuestAtomGrid_t,
678            xyz: *const f64,
679            parameters: cuestMolecularGridParameters_t,
680            persistentWorkspace: *mut cuestWorkspace_t,
681            temporaryWorkspace: *mut cuestWorkspace_t,
682            outGrid: *mut cuestMolecularGrid_t,
683        ) -> cuestStatus_t,
684    >,
685    pub cuestMolecularGridCreateWorkspaceQuery: Option<
686        unsafe extern "C" fn(
687            handle: cuestHandle_t,
688            numAtoms: u64,
689            atomGrid: *const cuestAtomGrid_t,
690            xyz: *const f64,
691            parameters: cuestMolecularGridParameters_t,
692            persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
693            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
694            outGrid: *mut cuestMolecularGrid_t,
695        ) -> cuestStatus_t,
696    >,
697    pub cuestMolecularGridDestroy:
698        Option<unsafe extern "C" fn(grid: cuestMolecularGrid_t) -> cuestStatus_t>,
699    pub cuestXCIntPlanCreate: Option<
700        unsafe extern "C" fn(
701            handle: cuestHandle_t,
702            basis: cuestAOBasis_t,
703            grid: cuestMolecularGrid_t,
704            functional: cuestXCIntPlanParametersFunctional_t,
705            parameters: cuestXCIntPlanParameters_t,
706            persistentWorkspace: *mut cuestWorkspace_t,
707            temporaryWorkspace: *mut cuestWorkspace_t,
708            outPlan: *mut cuestXCIntPlan_t,
709        ) -> cuestStatus_t,
710    >,
711    pub cuestXCIntPlanCreateWorkspaceQuery: Option<
712        unsafe extern "C" fn(
713            handle: cuestHandle_t,
714            basis: cuestAOBasis_t,
715            grid: cuestMolecularGrid_t,
716            functional: cuestXCIntPlanParametersFunctional_t,
717            parameters: cuestXCIntPlanParameters_t,
718            persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
719            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
720            outPlan: *mut cuestXCIntPlan_t,
721        ) -> cuestStatus_t,
722    >,
723    pub cuestXCIntPlanDestroy:
724        Option<unsafe extern "C" fn(plan: cuestXCIntPlan_t) -> cuestStatus_t>,
725    pub cuestXCIntegrationGridCompute: Option<
726        unsafe extern "C" fn(
727            handle: cuestHandle_t,
728            plan: cuestXCIntPlan_t,
729            parameters: cuestXCIntegrationGridComputeParameters_t,
730            temporaryWorkspace: *mut cuestWorkspace_t,
731            outGridPoints: *mut f64,
732        ) -> cuestStatus_t,
733    >,
734    pub cuestXCIntegrationGridComputeWorkspaceQuery: Option<
735        unsafe extern "C" fn(
736            handle: cuestHandle_t,
737            plan: cuestXCIntPlan_t,
738            parameters: cuestXCIntegrationGridComputeParameters_t,
739            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
740            outGridPoints: *mut f64,
741        ) -> cuestStatus_t,
742    >,
743    pub cuestXCIntegrationWeightCompute: Option<
744        unsafe extern "C" fn(
745            handle: cuestHandle_t,
746            plan: cuestXCIntPlan_t,
747            weightType: cuestXCIntegrationWeightComputeParametersWeightType_t,
748            parameters: cuestXCIntegrationWeightComputeParameters_t,
749            temporaryWorkspace: *mut cuestWorkspace_t,
750            outGridWeights: *mut f64,
751        ) -> cuestStatus_t,
752    >,
753    pub cuestXCIntegrationWeightComputeWorkspaceQuery: Option<
754        unsafe extern "C" fn(
755            handle: cuestHandle_t,
756            plan: cuestXCIntPlan_t,
757            weightType: cuestXCIntegrationWeightComputeParametersWeightType_t,
758            parameters: cuestXCIntegrationWeightComputeParameters_t,
759            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
760            outGridWeights: *mut f64,
761        ) -> cuestStatus_t,
762    >,
763    pub cuestXCPotentialRKSCompute: Option<
764        unsafe extern "C" fn(
765            handle: cuestHandle_t,
766            plan: cuestXCIntPlan_t,
767            parameters: cuestXCPotentialRKSComputeParameters_t,
768            variableBufferSize: *const cuestWorkspaceDescriptor_t,
769            temporaryWorkspace: *mut cuestWorkspace_t,
770            numOccupied: u64,
771            coefficientMatrix: *const f64,
772            outXCEnergy: *mut f64,
773            outXCPotentialMatrix: *mut f64,
774        ) -> cuestStatus_t,
775    >,
776    pub cuestXCPotentialRKSComputeWorkspaceQuery: Option<
777        unsafe extern "C" fn(
778            handle: cuestHandle_t,
779            plan: cuestXCIntPlan_t,
780            parameters: cuestXCPotentialRKSComputeParameters_t,
781            variableBufferSize: *const cuestWorkspaceDescriptor_t,
782            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
783            numOccupied: u64,
784            coefficientMatrix: *const f64,
785            outXCEnergy: *mut f64,
786            outXCPotentialMatrix: *mut f64,
787        ) -> cuestStatus_t,
788    >,
789    pub cuestXCPotentialUKSCompute: Option<
790        unsafe extern "C" fn(
791            handle: cuestHandle_t,
792            plan: cuestXCIntPlan_t,
793            parameters: cuestXCPotentialUKSComputeParameters_t,
794            variableBufferSize: *const cuestWorkspaceDescriptor_t,
795            temporaryWorkspace: *mut cuestWorkspace_t,
796            numOccupiedAlpha: u64,
797            numOccupiedBeta: u64,
798            coefficientMatrixAlpha: *const f64,
799            coefficientMatrixBeta: *const f64,
800            outXCEnergy: *mut f64,
801            outXCPotentialMatrixAlpha: *mut f64,
802            outXCPotentialMatrixBeta: *mut f64,
803        ) -> cuestStatus_t,
804    >,
805    pub cuestXCPotentialUKSComputeWorkspaceQuery: Option<
806        unsafe extern "C" fn(
807            handle: cuestHandle_t,
808            plan: cuestXCIntPlan_t,
809            parameters: cuestXCPotentialUKSComputeParameters_t,
810            variableBufferSize: *const cuestWorkspaceDescriptor_t,
811            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
812            numOccupiedAlpha: u64,
813            numOccupiedBeta: u64,
814            coefficientMatrixAlpha: *const f64,
815            coefficientMatrixBeta: *const f64,
816            outXCEnergy: *mut f64,
817            outXCPotentialMatrixAlpha: *mut f64,
818            outXCPotentialMatrixBeta: *mut f64,
819        ) -> cuestStatus_t,
820    >,
821    pub cuestXCDensityCompute: Option<
822        unsafe extern "C" fn(
823            handle: cuestHandle_t,
824            plan: cuestXCIntPlan_t,
825            approximation: cuestXCAdvancedComputeParametersApproximation_t,
826            parameters: cuestXCDensityComputeParameters_t,
827            variableBufferSize: *const cuestWorkspaceDescriptor_t,
828            temporaryWorkspace: *mut cuestWorkspace_t,
829            numOccupied: u64,
830            coefficientMatrix: *const f64,
831            outGridDensity: *mut f64,
832        ) -> cuestStatus_t,
833    >,
834    pub cuestXCDensityComputeWorkspaceQuery: Option<
835        unsafe extern "C" fn(
836            handle: cuestHandle_t,
837            plan: cuestXCIntPlan_t,
838            approximation: cuestXCAdvancedComputeParametersApproximation_t,
839            parameters: cuestXCDensityComputeParameters_t,
840            variableBufferSize: *const cuestWorkspaceDescriptor_t,
841            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
842            numOccupied: u64,
843            coefficientMatrix: *const f64,
844            outGridDensity: *mut f64,
845        ) -> cuestStatus_t,
846    >,
847    pub cuestXCPotentialCompute: Option<
848        unsafe extern "C" fn(
849            handle: cuestHandle_t,
850            plan: cuestXCIntPlan_t,
851            approximation: cuestXCAdvancedComputeParametersApproximation_t,
852            parameters: cuestXCPotentialComputeParameters_t,
853            variableBufferSize: *const cuestWorkspaceDescriptor_t,
854            temporaryWorkspace: *mut cuestWorkspace_t,
855            gridXCPotential: *const f64,
856            outXCPotentialMatrix: *mut f64,
857        ) -> cuestStatus_t,
858    >,
859    pub cuestXCPotentialComputeWorkspaceQuery: Option<
860        unsafe extern "C" fn(
861            handle: cuestHandle_t,
862            plan: cuestXCIntPlan_t,
863            approximation: cuestXCAdvancedComputeParametersApproximation_t,
864            parameters: cuestXCPotentialComputeParameters_t,
865            variableBufferSize: *const cuestWorkspaceDescriptor_t,
866            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
867            gridXCPotential: *const f64,
868            outXCPotentialMatrix: *mut f64,
869        ) -> cuestStatus_t,
870    >,
871    pub cuestXCNonsymmetricDensityCompute: Option<
872        unsafe extern "C" fn(
873            handle: cuestHandle_t,
874            plan: cuestXCIntPlan_t,
875            approximation: cuestXCAdvancedComputeParametersApproximation_t,
876            parameters: cuestXCNonsymmetricDensityComputeParameters_t,
877            variableBufferSize: *const cuestWorkspaceDescriptor_t,
878            temporaryWorkspace: *mut cuestWorkspace_t,
879            numOccupied: u64,
880            leftCoefficientMatrix: *const f64,
881            rightCoefficientMatrix: *const f64,
882            outGridDensity: *mut f64,
883        ) -> cuestStatus_t,
884    >,
885    pub cuestXCNonsymmetricDensityComputeWorkspaceQuery: Option<
886        unsafe extern "C" fn(
887            handle: cuestHandle_t,
888            plan: cuestXCIntPlan_t,
889            approximation: cuestXCAdvancedComputeParametersApproximation_t,
890            parameters: cuestXCNonsymmetricDensityComputeParameters_t,
891            variableBufferSize: *const cuestWorkspaceDescriptor_t,
892            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
893            numOccupied: u64,
894            leftCoefficientMatrix: *const f64,
895            rightCoefficientMatrix: *const f64,
896            outGridDensity: *mut f64,
897        ) -> cuestStatus_t,
898    >,
899    pub cuestXCDerivativeRKSCompute: Option<
900        unsafe extern "C" fn(
901            handle: cuestHandle_t,
902            plan: cuestXCIntPlan_t,
903            parameters: cuestXCDerivativeRKSComputeParameters_t,
904            variableBufferSize: *const cuestWorkspaceDescriptor_t,
905            temporaryWorkspace: *mut cuestWorkspace_t,
906            numOccupied: u64,
907            coefficientMatrix: *const f64,
908            outGradient: *mut f64,
909        ) -> cuestStatus_t,
910    >,
911    pub cuestXCDerivativeRKSComputeWorkspaceQuery: Option<
912        unsafe extern "C" fn(
913            handle: cuestHandle_t,
914            plan: cuestXCIntPlan_t,
915            parameters: cuestXCDerivativeRKSComputeParameters_t,
916            variableBufferSize: *const cuestWorkspaceDescriptor_t,
917            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
918            numOccupied: u64,
919            coefficientMatrix: *const f64,
920            outGradient: *mut f64,
921        ) -> cuestStatus_t,
922    >,
923    pub cuestXCDerivativeUKSCompute: Option<
924        unsafe extern "C" fn(
925            handle: cuestHandle_t,
926            plan: cuestXCIntPlan_t,
927            parameters: cuestXCDerivativeUKSComputeParameters_t,
928            variableBufferSize: *const cuestWorkspaceDescriptor_t,
929            temporaryWorkspace: *mut cuestWorkspace_t,
930            numOccupiedAlpha: u64,
931            numOccupiedBeta: u64,
932            coefficientMatrixAlpha: *const f64,
933            coefficientMatrixBeta: *const f64,
934            outGradient: *mut f64,
935        ) -> cuestStatus_t,
936    >,
937    pub cuestXCDerivativeUKSComputeWorkspaceQuery: Option<
938        unsafe extern "C" fn(
939            handle: cuestHandle_t,
940            plan: cuestXCIntPlan_t,
941            parameters: cuestXCDerivativeUKSComputeParameters_t,
942            variableBufferSize: *const cuestWorkspaceDescriptor_t,
943            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
944            numOccupiedAlpha: u64,
945            numOccupiedBeta: u64,
946            coefficientMatrixAlpha: *const f64,
947            coefficientMatrixBeta: *const f64,
948            outGradient: *mut f64,
949        ) -> cuestStatus_t,
950    >,
951    pub cuestXCDerivativeCompute: Option<
952        unsafe extern "C" fn(
953            handle: cuestHandle_t,
954            plan: cuestXCIntPlan_t,
955            approximation: cuestXCAdvancedComputeParametersApproximation_t,
956            parameters: cuestXCDerivativeComputeParameters_t,
957            variableBufferSize: *const cuestWorkspaceDescriptor_t,
958            temporaryWorkspace: *mut cuestWorkspace_t,
959            numOccupied: u64,
960            coefficientMatrix: *const f64,
961            gridXCPotential: *const f64,
962            outBasisGradient: *mut f64,
963            outGridGradient: *mut f64,
964        ) -> cuestStatus_t,
965    >,
966    pub cuestXCDerivativeComputeWorkspaceQuery: Option<
967        unsafe extern "C" fn(
968            handle: cuestHandle_t,
969            plan: cuestXCIntPlan_t,
970            approximation: cuestXCAdvancedComputeParametersApproximation_t,
971            parameters: cuestXCDerivativeComputeParameters_t,
972            variableBufferSize: *const cuestWorkspaceDescriptor_t,
973            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
974            numOccupied: u64,
975            coefficientMatrix: *const f64,
976            gridXCPotential: *const f64,
977            outBasisGradient: *mut f64,
978            outGridGradient: *mut f64,
979        ) -> cuestStatus_t,
980    >,
981    pub cuestXCGridDerivativeCompute: Option<
982        unsafe extern "C" fn(
983            handle: cuestHandle_t,
984            plan: cuestXCIntPlan_t,
985            parameters: cuestXCGridDerivativeComputeParameters_t,
986            temporaryWorkspace: *mut cuestWorkspace_t,
987            gridXCEnergy: *const f64,
988            gridGradient: *const f64,
989            outGradient: *mut f64,
990        ) -> cuestStatus_t,
991    >,
992    pub cuestXCGridDerivativeComputeWorkspaceQuery: Option<
993        unsafe extern "C" fn(
994            handle: cuestHandle_t,
995            plan: cuestXCIntPlan_t,
996            parameters: cuestXCGridDerivativeComputeParameters_t,
997            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
998            gridXCEnergy: *const f64,
999            gridGradient: *const f64,
1000            outGradient: *mut f64,
1001        ) -> cuestStatus_t,
1002    >,
1003    pub cuestXCNonsymmetricDerivativeCompute: Option<
1004        unsafe extern "C" fn(
1005            handle: cuestHandle_t,
1006            plan: cuestXCIntPlan_t,
1007            approximation: cuestXCAdvancedComputeParametersApproximation_t,
1008            parameters: cuestXCNonsymmetricDerivativeComputeParameters_t,
1009            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1010            temporaryWorkspace: *mut cuestWorkspace_t,
1011            numOccupied: u64,
1012            leftCoefficientMatrix: *const f64,
1013            rightCoefficientMatrix: *const f64,
1014            gridXCPotential: *const f64,
1015            outBasisGradient: *mut f64,
1016            outGridGradient: *mut f64,
1017        ) -> cuestStatus_t,
1018    >,
1019    pub cuestXCNonsymmetricDerivativeComputeWorkspaceQuery: Option<
1020        unsafe extern "C" fn(
1021            handle: cuestHandle_t,
1022            plan: cuestXCIntPlan_t,
1023            approximation: cuestXCAdvancedComputeParametersApproximation_t,
1024            parameters: cuestXCNonsymmetricDerivativeComputeParameters_t,
1025            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1026            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1027            numOccupied: u64,
1028            leftCoefficientMatrix: *const f64,
1029            rightCoefficientMatrix: *const f64,
1030            gridXCPotential: *const f64,
1031            outBasisGradient: *mut f64,
1032            outGridGradient: *mut f64,
1033        ) -> cuestStatus_t,
1034    >,
1035    pub cuestNonlocalXCPotentialRKSCompute: Option<
1036        unsafe extern "C" fn(
1037            handle: cuestHandle_t,
1038            plan: cuestXCIntPlan_t,
1039            parameters: cuestNonlocalXCPotentialRKSComputeParameters_t,
1040            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1041            temporaryWorkspace: *mut cuestWorkspace_t,
1042            numOccupied: u64,
1043            coefficientMatrix: *const f64,
1044            outXCEnergy: *mut f64,
1045            outXCPotentialMatrix: *mut f64,
1046        ) -> cuestStatus_t,
1047    >,
1048    pub cuestNonlocalXCPotentialRKSComputeWorkspaceQuery: Option<
1049        unsafe extern "C" fn(
1050            handle: cuestHandle_t,
1051            plan: cuestXCIntPlan_t,
1052            parameters: cuestNonlocalXCPotentialRKSComputeParameters_t,
1053            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1054            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1055            numOccupied: u64,
1056            coefficientMatrix: *const f64,
1057            outXCEnergy: *mut f64,
1058            outXCPotentialMatrix: *mut f64,
1059        ) -> cuestStatus_t,
1060    >,
1061    pub cuestNonlocalXCPotentialUKSCompute: Option<
1062        unsafe extern "C" fn(
1063            handle: cuestHandle_t,
1064            plan: cuestXCIntPlan_t,
1065            parameters: cuestNonlocalXCPotentialUKSComputeParameters_t,
1066            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1067            temporaryWorkspace: *mut cuestWorkspace_t,
1068            numOccupiedAlpha: u64,
1069            numOccupiedBeta: u64,
1070            coefficientMatrixAlpha: *const f64,
1071            coefficientMatrixBeta: *const f64,
1072            outXCEnergy: *mut f64,
1073            outXCPotentialMatrix: *mut f64,
1074        ) -> cuestStatus_t,
1075    >,
1076    pub cuestNonlocalXCPotentialUKSComputeWorkspaceQuery: Option<
1077        unsafe extern "C" fn(
1078            handle: cuestHandle_t,
1079            plan: cuestXCIntPlan_t,
1080            parameters: cuestNonlocalXCPotentialUKSComputeParameters_t,
1081            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1082            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1083            numOccupiedAlpha: u64,
1084            numOccupiedBeta: u64,
1085            coefficientMatrixAlpha: *const f64,
1086            coefficientMatrixBeta: *const f64,
1087            outXCEnergy: *mut f64,
1088            outXCPotentialMatrix: *mut f64,
1089        ) -> cuestStatus_t,
1090    >,
1091    pub cuestNonlocalXCDerivativeRKSCompute: Option<
1092        unsafe extern "C" fn(
1093            handle: cuestHandle_t,
1094            plan: cuestXCIntPlan_t,
1095            parameters: cuestNonlocalXCDerivativeRKSComputeParameters_t,
1096            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1097            temporaryWorkspace: *mut cuestWorkspace_t,
1098            numOccupied: u64,
1099            coefficientMatrix: *const f64,
1100            outGradient: *mut f64,
1101        ) -> cuestStatus_t,
1102    >,
1103    pub cuestNonlocalXCDerivativeRKSComputeWorkspaceQuery: Option<
1104        unsafe extern "C" fn(
1105            handle: cuestHandle_t,
1106            plan: cuestXCIntPlan_t,
1107            parameters: cuestNonlocalXCDerivativeRKSComputeParameters_t,
1108            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1109            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1110            numOccupied: u64,
1111            coefficientMatrix: *const f64,
1112            outGradient: *mut f64,
1113        ) -> cuestStatus_t,
1114    >,
1115    pub cuestNonlocalXCDerivativeUKSCompute: Option<
1116        unsafe extern "C" fn(
1117            handle: cuestHandle_t,
1118            plan: cuestXCIntPlan_t,
1119            parameters: cuestNonlocalXCDerivativeUKSComputeParameters_t,
1120            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1121            temporaryWorkspace: *mut cuestWorkspace_t,
1122            numOccupiedAlpha: u64,
1123            numOccupiedBeta: u64,
1124            coefficientMatrixAlpha: *const f64,
1125            coefficientMatrixBeta: *const f64,
1126            outGradient: *mut f64,
1127        ) -> cuestStatus_t,
1128    >,
1129    pub cuestNonlocalXCDerivativeUKSComputeWorkspaceQuery: Option<
1130        unsafe extern "C" fn(
1131            handle: cuestHandle_t,
1132            plan: cuestXCIntPlan_t,
1133            parameters: cuestNonlocalXCDerivativeUKSComputeParameters_t,
1134            variableBufferSize: *const cuestWorkspaceDescriptor_t,
1135            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1136            numOccupiedAlpha: u64,
1137            numOccupiedBeta: u64,
1138            coefficientMatrixAlpha: *const f64,
1139            coefficientMatrixBeta: *const f64,
1140            outGradient: *mut f64,
1141        ) -> cuestStatus_t,
1142    >,
1143    pub cuestPCMIntPlanCreate: Option<
1144        unsafe extern "C" fn(
1145            handle: cuestHandle_t,
1146            intPlan: cuestOEIntPlan_t,
1147            parameters: cuestPCMIntPlanParameters_t,
1148            persistentWorkspace: *mut cuestWorkspace_t,
1149            temporaryWorkspace: *mut cuestWorkspace_t,
1150            numAngularPointsPerAtom: *const u64,
1151            epsilon: f64,
1152            zetas: *const f64,
1153            atomicRadii: *const f64,
1154            effectiveNuclearCharges: *const f64,
1155            outPlan: *mut cuestPCMIntPlan_t,
1156        ) -> cuestStatus_t,
1157    >,
1158    pub cuestPCMIntPlanCreateWorkspaceQuery: Option<
1159        unsafe extern "C" fn(
1160            handle: cuestHandle_t,
1161            intPlan: cuestOEIntPlan_t,
1162            parameters: cuestPCMIntPlanParameters_t,
1163            persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1164            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1165            numAngularPointsPerAtom: *const u64,
1166            epsilon: f64,
1167            zetas: *const f64,
1168            atomicRadii: *const f64,
1169            effectiveNuclearCharges: *const f64,
1170            outPlan: *mut cuestPCMIntPlan_t,
1171        ) -> cuestStatus_t,
1172    >,
1173    pub cuestPCMIntPlanDestroy:
1174        Option<unsafe extern "C" fn(plan: cuestPCMIntPlan_t) -> cuestStatus_t>,
1175    pub cuestPCMPotentialCompute: Option<
1176        unsafe extern "C" fn(
1177            handle: cuestHandle_t,
1178            plan: cuestPCMIntPlan_t,
1179            parameters: cuestPCMPotentialComputeParameters_t,
1180            temporaryWorkspace: *mut cuestWorkspace_t,
1181            densityMatrix: *const f64,
1182            inQ: *const f64,
1183            outQ: *mut f64,
1184            outPCMResults: cuestPCMResults_t,
1185            outPCMPotentialMatrix: *mut f64,
1186        ) -> cuestStatus_t,
1187    >,
1188    pub cuestPCMPotentialComputeWorkspaceQuery: Option<
1189        unsafe extern "C" fn(
1190            handle: cuestHandle_t,
1191            plan: cuestPCMIntPlan_t,
1192            parameters: cuestPCMPotentialComputeParameters_t,
1193            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1194            densityMatrix: *const f64,
1195            inQ: *const f64,
1196            outQ: *mut f64,
1197            outPCMResults: cuestPCMResults_t,
1198            outPCMPotentialMatrix: *mut f64,
1199        ) -> cuestStatus_t,
1200    >,
1201    pub cuestPCMDerivativeCompute: Option<
1202        unsafe extern "C" fn(
1203            handle: cuestHandle_t,
1204            plan: cuestPCMIntPlan_t,
1205            parameters: cuestPCMDerivativeComputeParameters_t,
1206            temporaryWorkspace: *mut cuestWorkspace_t,
1207            densityMatrix: *const f64,
1208            inQ: *const f64,
1209            outQ: *mut f64,
1210            outPCMResults: cuestPCMResults_t,
1211            outPCMGradient: *mut f64,
1212        ) -> cuestStatus_t,
1213    >,
1214    pub cuestPCMDerivativeComputeWorkspaceQuery: Option<
1215        unsafe extern "C" fn(
1216            handle: cuestHandle_t,
1217            plan: cuestPCMIntPlan_t,
1218            parameters: cuestPCMDerivativeComputeParameters_t,
1219            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1220            densityMatrix: *const f64,
1221            inQ: *const f64,
1222            outQ: *mut f64,
1223            outPCMResults: cuestPCMResults_t,
1224            outPCMGradient: *mut f64,
1225        ) -> cuestStatus_t,
1226    >,
1227    pub cuestPCMRadiiDerivativeCompute: Option<
1228        unsafe extern "C" fn(
1229            handle: cuestHandle_t,
1230            plan: cuestPCMIntPlan_t,
1231            parameters: cuestPCMRadiiDerivativeComputeParameters_t,
1232            temporaryWorkspace: *mut cuestWorkspace_t,
1233            densityMatrix: *const f64,
1234            inQ: *const f64,
1235            outQ: *mut f64,
1236            outPCMResults: cuestPCMResults_t,
1237            outPCMRadiiGradient: *mut f64,
1238        ) -> cuestStatus_t,
1239    >,
1240    pub cuestPCMRadiiDerivativeComputeWorkspaceQuery: Option<
1241        unsafe extern "C" fn(
1242            handle: cuestHandle_t,
1243            plan: cuestPCMIntPlan_t,
1244            parameters: cuestPCMRadiiDerivativeComputeParameters_t,
1245            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1246            densityMatrix: *const f64,
1247            inQ: *const f64,
1248            outQ: *mut f64,
1249            outPCMResults: cuestPCMResults_t,
1250            outPCMRadiiGradient: *mut f64,
1251        ) -> cuestStatus_t,
1252    >,
1253    pub cuestPCMIntegrationGridCompute: Option<
1254        unsafe extern "C" fn(
1255            handle: cuestHandle_t,
1256            plan: cuestPCMIntPlan_t,
1257            parameters: cuestPCMIntegrationGridComputeParameters_t,
1258            temporaryWorkspace: *mut cuestWorkspace_t,
1259            outGridPoints: *mut f64,
1260        ) -> cuestStatus_t,
1261    >,
1262    pub cuestPCMIntegrationGridComputeWorkspaceQuery: Option<
1263        unsafe extern "C" fn(
1264            handle: cuestHandle_t,
1265            plan: cuestPCMIntPlan_t,
1266            parameters: cuestPCMIntegrationGridComputeParameters_t,
1267            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1268            outGridPoints: *mut f64,
1269        ) -> cuestStatus_t,
1270    >,
1271    pub cuestPCMIntegrationWeightCompute: Option<
1272        unsafe extern "C" fn(
1273            handle: cuestHandle_t,
1274            plan: cuestPCMIntPlan_t,
1275            weightType: cuestPCMIntegrationWeightComputeParametersWeightType_t,
1276            parameters: cuestPCMIntegrationWeightComputeParameters_t,
1277            temporaryWorkspace: *mut cuestWorkspace_t,
1278            outGridWeights: *mut f64,
1279        ) -> cuestStatus_t,
1280    >,
1281    pub cuestPCMIntegrationWeightComputeWorkspaceQuery: Option<
1282        unsafe extern "C" fn(
1283            handle: cuestHandle_t,
1284            plan: cuestPCMIntPlan_t,
1285            weightType: cuestPCMIntegrationWeightComputeParametersWeightType_t,
1286            parameters: cuestPCMIntegrationWeightComputeParameters_t,
1287            temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
1288            outGridWeights: *mut f64,
1289        ) -> cuestStatus_t,
1290    >,
1291    pub cuestQuery: Option<
1292        unsafe extern "C" fn(
1293            handle: cuestHandle_t,
1294            type_: cuestType_t,
1295            object: *const c_void,
1296            attribute: c_int,
1297            attributeValue: *mut c_void,
1298            attributeValueSize: usize,
1299        ) -> cuestStatus_t,
1300    >,
1301    pub cuestResultsCreate: Option<
1302        unsafe extern "C" fn(
1303            resultsType: cuestResultsType_t,
1304            outResults: *mut *mut c_void,
1305        ) -> cuestStatus_t,
1306    >,
1307    pub cuestResultsDestroy: Option<
1308        unsafe extern "C" fn(
1309            resultsType: cuestResultsType_t,
1310            results: *mut c_void,
1311        ) -> cuestStatus_t,
1312    >,
1313    pub cuestResultsQuery: Option<
1314        unsafe extern "C" fn(
1315            resultsType: cuestResultsType_t,
1316            results: *const c_void,
1317            attribute: c_int,
1318            resultValue: *mut c_void,
1319            resultValueSize: usize,
1320        ) -> cuestStatus_t,
1321    >,
1322    pub cuestParametersCreate: Option<
1323        unsafe extern "C" fn(
1324            parameterType: cuestParametersType_t,
1325            outParameters: *mut *mut c_void,
1326        ) -> cuestStatus_t,
1327    >,
1328    pub cuestParametersDestroy: Option<
1329        unsafe extern "C" fn(
1330            parameterType: cuestParametersType_t,
1331            parameters: *mut c_void,
1332        ) -> cuestStatus_t,
1333    >,
1334    pub cuestParametersQuery: Option<
1335        unsafe extern "C" fn(
1336            parameterType: cuestParametersType_t,
1337            parameters: *const c_void,
1338            attribute: c_int,
1339            attributeValue: *mut c_void,
1340            attributeValueSize: usize,
1341        ) -> cuestStatus_t,
1342    >,
1343    pub cuestParametersConfigure: Option<
1344        unsafe extern "C" fn(
1345            parameterType: cuestParametersType_t,
1346            parameters: *mut c_void,
1347            attribute: c_int,
1348            attributeValue: *const c_void,
1349            attributeValueSize: usize,
1350        ) -> cuestStatus_t,
1351    >,
1352}