cuest-ffi 0.1.0

cuEST C binding FFI
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
//! Base types and constants for dynamic loading.
//!
//! This file is generated automatically by `scripts/generate_ffi.py`; do not
//! edit it manually.

#![allow(non_camel_case_types)]

/* automatically generated by rust-bindgen 0.73.2 */

pub const CUEST_VER_MAJOR: u32 = 0;
pub const CUEST_VER_MINOR: u32 = 2;
pub const CUEST_VER_PATCH: u32 = 2;
pub const CUEST_VERSION: u32 = 202;
#[doc = "< Success: Operation completed with no error"]
pub const CUEST_STATUS_SUCCESS: cuestStatus_t = cuestStatus_t(0);
#[doc = "< An exception was thrown during the operation"]
pub const CUEST_STATUS_EXCEPTION: cuestStatus_t = cuestStatus_t(1);
#[doc = "< One or more required input pointers were NULL"]
pub const CUEST_STATUS_NULL_POINTER: cuestStatus_t = cuestStatus_t(2);
#[doc = "< One or more arguments were invalid (e.g., out-of-range, zero-length)"]
pub const CUEST_STATUS_INVALID_ARGUMENT: cuestStatus_t = cuestStatus_t(3);
#[doc = "< Input buffer/argument size did not match expected size"]
pub const CUEST_STATUS_INVALID_SIZE: cuestStatus_t = cuestStatus_t(4);
#[doc = "< The specified cuEST type does not exist"]
pub const CUEST_STATUS_INVALID_TYPE: cuestStatus_t = cuestStatus_t(5);
#[doc = "< The parameter being queried/set is invalid"]
pub const CUEST_STATUS_INVALID_PARAMETER: cuestStatus_t = cuestStatus_t(6);
#[doc = "< The attribute being queried is invalid"]
pub const CUEST_STATUS_INVALID_ATTRIBUTE: cuestStatus_t = cuestStatus_t(7);
#[doc = "< The cuEST handle passed to the function is invalid"]
pub const CUEST_STATUS_INVALID_HANDLE: cuestStatus_t = cuestStatus_t(8);
#[doc = "< Unspecified error: unknown or unexpected condition"]
pub const CUEST_STATUS_UNKNOWN_ERROR: cuestStatus_t = cuestStatus_t(9);
#[doc = "< One or more arguments are not supported by cuEST"]
pub const CUEST_STATUS_UNSUPPORTED_ARGUMENT: cuestStatus_t = cuestStatus_t(10);
#[doc = "< The device architecture is not supported by cuEST"]
pub const CUEST_STATUS_UNSUPPORTED_ARCHITECTURE: cuestStatus_t = cuestStatus_t(11);
#[doc = "< One or more of the plans passed to the function were not in a usable state"]
pub const CUEST_STATUS_INVALID_PLAN: cuestStatus_t = cuestStatus_t(12);
#[doc = "< The HOME environment variable is not set or empty, so the default JIT cache directory cannot be derived"]
pub const CUEST_STATUS_HOME_NOT_FOUND: cuestStatus_t = cuestStatus_t(13);
#[repr(transparent)]
#[doc = " @brief Enum containing all possible cuEST API return status codes.\n @ingroup Enums\n\n Most API functions return one of these values to indicate error or success state."]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestStatus_t(pub ::core::ffi::c_uint);
#[doc = " @brief Opaque handle representing the cuEST library context.\n @ingroup TypeDefs"]
pub type cuestHandle_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing a single atomic orbital (AO) Gaussian shell.\n        See \\c cuestAOShellAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestAOShell_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing an atomic orbital (AO) basis set (group of AO shells).\n        See \\c cuestAOBasisAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestAOBasis_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing a pair list of atomic orbitals.\n        No attributes may be queried from this handle at this time.\n @ingroup TypeDefs"]
pub type cuestAOPairList_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing a single ECP shell.\n        See \\c cuestECPShellAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestECPShell_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing an ECP Atom (group of ECP shells).\n        See \\c cuestECPAtomAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestECPAtom_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle for a one-electron integral computation plan (e.g., overlap integrals, kinetic integrals).\n        No attributes may be queried from this handle at this time.\n @ingroup TypeDefs"]
pub type cuestOEIntPlan_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle for an effective core potential (ECP) integral computation plan.\n        See \\c cuestECPIntPlanAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestECPIntPlan_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle for a density-fitted integral computation plan (for DF/RI approaches).\n        No attributes may be queried from this handle at this time.\n @ingroup TypeDefs"]
pub type cuestDFIntPlan_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the radial and angular grid points centered at a single atom\n center.\n        See \\c cuestAtomGridAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestAtomGrid_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the DFT integration grid for a molecule.\n        See \\c cuestMolecularGridAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestMolecularGrid_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle for an XC integral computation plan (e.g. XC potential and gradients).\n        See \\c cuestXCIntPlanAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestXCIntPlan_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle for a PCM integral computation plan (e.g. PCM potential and gradients).\n        See \\c cuestPCMIntPlanAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestPCMIntPlan_t = *mut ::core::ffi::c_void;
#[doc = "< Alias for cuestHandle_t"]
pub const CUEST_HANDLE: cuestType_t = cuestType_t(0);
#[doc = "< Alias for cuestAOShell_t"]
pub const CUEST_AOSHELL: cuestType_t = cuestType_t(1);
#[doc = "< Alias for cuestAOBasis_t"]
pub const CUEST_AOBASIS: cuestType_t = cuestType_t(2);
#[doc = "< Alias for cuestAOPairList_t"]
pub const CUEST_AOPAIRLIST: cuestType_t = cuestType_t(3);
#[doc = "< Alias for cuestOEIntPlan_t"]
pub const CUEST_OEINTPLAN: cuestType_t = cuestType_t(4);
#[doc = "< Alias for cuestDFIntPlan_t"]
pub const CUEST_DFINTPLAN: cuestType_t = cuestType_t(5);
#[doc = "< Alias for cuestAtomGrid_t"]
pub const CUEST_ATOMGRID: cuestType_t = cuestType_t(6);
#[doc = "< Alias for cuestMolecularGrid_t"]
pub const CUEST_MOLECULARGRID: cuestType_t = cuestType_t(7);
#[doc = "< Alias for cuestXCIntPlan_t"]
pub const CUEST_XCINTPLAN: cuestType_t = cuestType_t(8);
#[doc = "< Alias for cuestPCMIntPlan_t"]
pub const CUEST_PCMINTPLAN: cuestType_t = cuestType_t(9);
#[doc = "< Alias for cuestECPShell_t"]
pub const CUEST_ECPSHELL: cuestType_t = cuestType_t(10);
#[doc = "< Alias for cuestECPAtom_t"]
pub const CUEST_ECPATOM: cuestType_t = cuestType_t(11);
#[doc = "< Alias for cuestECPIntPlan_t"]
pub const CUEST_ECPINTPLAN: cuestType_t = cuestType_t(12);
#[repr(transparent)]
#[doc = " @brief Enum that provides unique identifiers for each of the opaque handles.\n @ingroup Enums\n"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestType_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_HANDLE_NONE: cuestHandleAttributes_t = cuestHandleAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST handle object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_HANDLE_NONE :       uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestHandleAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Whether shell uses pure (spherical) functions (nonzero if true)"]
pub const CUEST_AOSHELL_IS_PURE: cuestAOShellAttributes_t = cuestAOShellAttributes_t(0);
#[doc = "< Angular momentum quantum number (L)"]
pub const CUEST_AOSHELL_L: cuestAOShellAttributes_t = cuestAOShellAttributes_t(1);
#[doc = "< Number of primitive Gaussians"]
pub const CUEST_AOSHELL_NUM_PRIMITIVE: cuestAOShellAttributes_t = cuestAOShellAttributes_t(2);
#[doc = "< Number of basis functions (AOs, either pure or cartesian as set)"]
pub const CUEST_AOSHELL_NUM_AO: cuestAOShellAttributes_t = cuestAOShellAttributes_t(3);
#[doc = "< Number of pure (spherical) AOs"]
pub const CUEST_AOSHELL_NUM_PURE: cuestAOShellAttributes_t = cuestAOShellAttributes_t(4);
#[doc = "< Number of cartesian AOs"]
pub const CUEST_AOSHELL_NUM_CART: cuestAOShellAttributes_t = cuestAOShellAttributes_t(5);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from an AO shell object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_AOSHELL_IS_PURE :       int32_t\n - \\c CUEST_AOSHELL_L :             uint64_t\n - \\c CUEST_AOSHELL_NUM_PRIMITIVE : uint64_t\n - \\c CUEST_AOSHELL_NUM_AO :        uint64_t\n - \\c CUEST_AOSHELL_NUM_PURE :      uint64_t\n - \\c CUEST_AOSHELL_NUM_CART :      uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAOShellAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Nonzero if all shells are pure (spherical), zero otherwise"]
pub const CUEST_AOBASIS_IS_PURE: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(0);
#[doc = "< Nonzero if all shells are cartesian, zero otherwise"]
pub const CUEST_AOBASIS_IS_CART: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(1);
#[doc = "< Nonzero if shells are mixed spherical/cartesian, zero otherwise"]
pub const CUEST_AOBASIS_IS_MIXED: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(2);
#[doc = "< Number of basis function centers"]
pub const CUEST_AOBASIS_NUM_ATOM: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(3);
#[doc = "< Total number of AO shells"]
pub const CUEST_AOBASIS_NUM_SHELL: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(4);
#[doc = "< Total number of basis functions (AOs)"]
pub const CUEST_AOBASIS_NUM_AO: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(5);
#[doc = "< Total number of Cartesian basis functions"]
pub const CUEST_AOBASIS_NUM_CART: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(6);
#[doc = "< Total number of Gaussian primitives"]
pub const CUEST_AOBASIS_NUM_PRIMITIVE: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(7);
#[doc = "< Maximum angular momentum (L) among shells"]
pub const CUEST_AOBASIS_MAX_L: cuestAOBasisAttributes_t = cuestAOBasisAttributes_t(8);
#[repr(transparent)]
#[doc = " @brief Enumerates properties that can be queried from an AO basis set object.\n @ingroup Enums\n\n For each attribute, the expected type is:\n\n - \\c CUEST_AOBASIS_IS_PURE :        int32_t\n - \\c CUEST_AOBASIS_IS_CART :        int32_t\n - \\c CUEST_AOBASIS_IS_MIXED :       int32_t\n - \\c CUEST_AOBASIS_NUM_ATOM :       uint64_t\n - \\c CUEST_AOBASIS_NUM_SHELL :      uint64_t\n - \\c CUEST_AOBASIS_NUM_AO :         uint64_t\n - \\c CUEST_AOBASIS_NUM_CART :       uint64_t\n - \\c CUEST_AOBASIS_NUM_PRIMITIVE :  uint64_t\n - \\c CUEST_AOBASIS_MAX_L :          uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAOBasisAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_AOPAIRLIST_NONE: cuestAOPairListAttributes_t = cuestAOPairListAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST AO pair list object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_AOPAIRLIST_NONE :       uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAOPairListAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Angular momentum quantum number (L)"]
pub const CUEST_ECPSHELL_L: cuestECPShellAttributes_t = cuestECPShellAttributes_t(0);
#[doc = "< Number of primitives"]
pub const CUEST_ECPSHELL_NUM_PRIMITIVE: cuestECPShellAttributes_t = cuestECPShellAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from an ECP shell object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_ECPSHELL_L :             uint64_t\n - \\c CUEST_ECPSHELL_NUM_PRIMITIVE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestECPShellAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Max angular momentum quantum number (L)"]
pub const CUEST_ECPATOM_MAX_L: cuestECPAtomAttributes_t = cuestECPAtomAttributes_t(0);
#[doc = "< Number of electrons"]
pub const CUEST_ECPATOM_NUM_ELECTRON: cuestECPAtomAttributes_t = cuestECPAtomAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from an ECP atom object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_ECPATOM_MAX_L :        uint64_t\n - \\c CUEST_ECPATOM_NUM_ELECTRON : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestECPAtomAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_OEINTPLAN_NONE: cuestOEIntPlanAttributes_t = cuestOEIntPlanAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST one-electron integral plan object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_OEINTPLAN_NONE :       uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestOEIntPlanAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Number of ECP active atoms"]
pub const CUEST_ECPINTPLAN_NUM_ACTIVE_ATOM: cuestECPIntPlanAttributes_t =
    cuestECPIntPlanAttributes_t(0);
#[doc = "< Number of electrons modeled by ECPs"]
pub const CUEST_ECPINTPLAN_NUM_ELECTRON: cuestECPIntPlanAttributes_t =
    cuestECPIntPlanAttributes_t(1);
#[doc = "< Max angular momentum in ECP basis"]
pub const CUEST_ECPINTPLAN_MAX_L: cuestECPIntPlanAttributes_t = cuestECPIntPlanAttributes_t(2);
#[doc = "< Number of radial grid points"]
pub const CUEST_ECPINTPLAN_NUM_RADIAL_POINT: cuestECPIntPlanAttributes_t =
    cuestECPIntPlanAttributes_t(3);
#[doc = "< Number of angular grid points"]
pub const CUEST_ECPINTPLAN_NUM_SPHERICAL_POINT: cuestECPIntPlanAttributes_t =
    cuestECPIntPlanAttributes_t(4);
#[doc = "< Number of grid points"]
pub const CUEST_ECPINTPLAN_NUM_POINT: cuestECPIntPlanAttributes_t = cuestECPIntPlanAttributes_t(5);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST effective core potential (ECP) integral plan object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_ECPINTPLAN_NUM_ACTIVE_ATOM :       uint64_t\n - \\c CUEST_ECPINTPLAN_NUM_ELECTRON :          uint64_t\n - \\c CUEST_ECPINTPLAN_MAX_L :                 uint64_t\n - \\c CUEST_ECPINTPLAN_NUM_RADIAL_POINT :      uint64_t\n - \\c CUEST_ECPINTPLAN_NUM_SPHERICAL_POINT :   uint64_t\n - \\c CUEST_ECPINTPLAN_NUM_POINT :             uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestECPIntPlanAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_DFINTPLAN_NONE: cuestDFIntPlanAttributes_t = cuestDFIntPlanAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST DF integral plan object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_DFINTPLAN_NONE :       uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFIntPlanAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Total number of grid points"]
pub const CUEST_ATOMGRID_NUM_POINT: cuestAtomGridAttributes_t = cuestAtomGridAttributes_t(0);
#[doc = "< Number of radial points"]
pub const CUEST_ATOMGRID_NUM_RADIAL_POINT: cuestAtomGridAttributes_t = cuestAtomGridAttributes_t(1);
#[doc = "< Maximum number of angular points"]
pub const CUEST_ATOMGRID_MAX_ANGULAR_POINT: cuestAtomGridAttributes_t =
    cuestAtomGridAttributes_t(2);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST atom grid object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_ATOMGRID_NUM_POINT :         uint64_t\n - \\c CUEST_ATOMGRID_NUM_RADIAL_POINT :  uint64_t\n - \\c CUEST_ATOMGRID_MAX_ANGULAR_POINT : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAtomGridAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Number of atom centers in the grid definition"]
pub const CUEST_MOLECULARGRID_NUM_ATOM: cuestMolecularGridAttributes_t =
    cuestMolecularGridAttributes_t(0);
#[doc = "< Total number of grid points"]
pub const CUEST_MOLECULARGRID_NUM_POINT: cuestMolecularGridAttributes_t =
    cuestMolecularGridAttributes_t(1);
#[doc = "< Maximum number of points for any atom"]
pub const CUEST_MOLECULARGRID_MAX_POINT: cuestMolecularGridAttributes_t =
    cuestMolecularGridAttributes_t(2);
#[doc = "< Total number of radial points"]
pub const CUEST_MOLECULARGRID_NUM_RADIAL_POINT: cuestMolecularGridAttributes_t =
    cuestMolecularGridAttributes_t(3);
#[doc = "< Maximum number of radial points for any atom"]
pub const CUEST_MOLECULARGRID_MAX_RADIAL_POINT: cuestMolecularGridAttributes_t =
    cuestMolecularGridAttributes_t(4);
#[doc = "< Maximum number of angular points for any radial point"]
pub const CUEST_MOLECULARGRID_MAX_ANGULAR_POINT: cuestMolecularGridAttributes_t =
    cuestMolecularGridAttributes_t(5);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST molecular grid object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_MOLECULARGRID_NUM_ATOM :                uint64_t\n - \\c CUEST_MOLECULARGRID_NUM_POINT :               uint64_t\n - \\c CUEST_MOLECULARGRID_MAX_POINT :               uint64_t\n - \\c CUEST_MOLECULARGRID_NUM_RADIAL_POINT :        uint64_t\n - \\c CUEST_MOLECULARGRID_MAX_RADIAL_POINT :        uint64_t\n - \\c CUEST_MOLECULARGRID_MAX_ANGULAR_POINT :       uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestMolecularGridAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Scaling factor for HF (exact) exchange"]
pub const CUEST_XCINTPLAN_EXCHANGE_SCALE: cuestXCIntPlanAttributes_t =
    cuestXCIntPlanAttributes_t(0);
#[doc = "< Scaling factor for LRC HF exchange"]
pub const CUEST_XCINTPLAN_LRC_EXCHANGE_SCALE: cuestXCIntPlanAttributes_t =
    cuestXCIntPlanAttributes_t(1);
#[doc = "< Omega for LRC-containing functionals"]
pub const CUEST_XCINTPLAN_LRC_OMEGA: cuestXCIntPlanAttributes_t = cuestXCIntPlanAttributes_t(2);
#[doc = "< VV10 scaling factor for non-local correlation"]
pub const CUEST_XCINTPLAN_VV10_SCALE: cuestXCIntPlanAttributes_t = cuestXCIntPlanAttributes_t(3);
#[doc = "< VV10 C factor"]
pub const CUEST_XCINTPLAN_VV10_C: cuestXCIntPlanAttributes_t = cuestXCIntPlanAttributes_t(4);
#[doc = "< VV10 b factor"]
pub const CUEST_XCINTPLAN_VV10_B: cuestXCIntPlanAttributes_t = cuestXCIntPlanAttributes_t(5);
#[doc = "< Is the functional hybrid (contains HF exchange)?"]
pub const CUEST_XCINTPLAN_IS_HYBRID: cuestXCIntPlanAttributes_t = cuestXCIntPlanAttributes_t(6);
#[doc = "< Is the functional LRC (contains LRC exchange)?"]
pub const CUEST_XCINTPLAN_IS_LRC_HYBRID: cuestXCIntPlanAttributes_t = cuestXCIntPlanAttributes_t(7);
#[doc = "< Does the functional contain non-local VV10 correlation?"]
pub const CUEST_XCINTPLAN_IS_VV10: cuestXCIntPlanAttributes_t = cuestXCIntPlanAttributes_t(8);
#[doc = "< Description of the XC evaluation engine"]
pub const CUEST_XCINTPLAN_ENGINE_DESCRIPTION: cuestXCIntPlanAttributes_t =
    cuestXCIntPlanAttributes_t(9);
#[doc = "< Citation(s) for the XC evaluation engine"]
pub const CUEST_XCINTPLAN_ENGINE_CITATION: cuestXCIntPlanAttributes_t =
    cuestXCIntPlanAttributes_t(10);
#[doc = "< Citation(s) for the functional"]
pub const CUEST_XCINTPLAN_FUNCTIONAL_CITATION: cuestXCIntPlanAttributes_t =
    cuestXCIntPlanAttributes_t(11);
#[doc = "< Description of the functional"]
pub const CUEST_XCINTPLAN_FUNCTIONAL_DESCRIPTION: cuestXCIntPlanAttributes_t =
    cuestXCIntPlanAttributes_t(12);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST XC integral plan object.\n @ingroup Enums\n\n Note that queries involving char* attributes return a pointer to a string that must be\n freed by the caller, using C's native free(), after use.\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_XCINTPLAN_EXCHANGE_SCALE :         double\n - \\c CUEST_XCINTPLAN_LRC_EXCHANGE_SCALE :     double\n - \\c CUEST_XCINTPLAN_LRC_OMEGA :              double\n - \\c CUEST_XCINTPLAN_VV10_SCALE :             double\n - \\c CUEST_XCINTPLAN_VV10_C :                 double\n - \\c CUEST_XCINTPLAN_VV10_B :                 double\n - \\c CUEST_XCINTPLAN_IS_HYBRID :              int32_t\n - \\c CUEST_XCINTPLAN_IS_LRC_HYBRID :          int32_t\n - \\c CUEST_XCINTPLAN_IS_VV10 :                int32_t\n - \\c CUEST_XCINTPLAN_ENGINE_DESCRIPTION :     char*\n - \\c CUEST_XCINTPLAN_ENGINE_CITATION :        char*\n - \\c CUEST_XCINTPLAN_FUNCTIONAL_CITATION :    char*\n - \\c CUEST_XCINTPLAN_FUNCTIONAL_DESCRIPTION : char*"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCIntPlanAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Total number of surface points."]
pub const CUEST_PCMINTPLAN_NUM_POINT: cuestPCMIntPlanAttributes_t = cuestPCMIntPlanAttributes_t(0);
#[doc = "< Total number of active surface points, i.e. those not screened out by the iSWIG switching function."]
pub const CUEST_PCMINTPLAN_NUM_ACTIVE_POINT: cuestPCMIntPlanAttributes_t =
    cuestPCMIntPlanAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST PCM integral plan object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_PCMINTPLAN_NUM_POINT :        uint64_t\n - \\c CUEST_PCMINTPLAN_NUM_ACTIVE_POINT : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMIntPlanAttributes_t(pub ::core::ffi::c_uint);
#[doc = " @brief Opaque handle representing the parameters needed for cuEST library context creation.\n        See \\c cuestHandleParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestHandleParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for atomic orbital (AO) Gaussian shell creation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestAOShellParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for atomic orbital (AO) basis set (group of AO shells) creation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestAOBasisParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for pair list creation.\n @ingroup TypeDefs"]
pub type cuestAOPairListParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for effective core potential (ECP) shell creation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestECPShellParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for effective core potential (ECP) atom set (group of ECP shells) creation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestECPAtomParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for a one-electron integral computation plan (e.g., overlap integrals, kinetic integrals) creation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestOEIntPlanParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for an effective core potential (ECP) integral computation plan creation.\n        See \\c cuestECPIntPlanParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestECPIntPlanParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for an effective core potential (ECP) integral compute.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestECPComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for an effective core potential (ECP) integral derivative compute.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestECPDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for a density-fitted integral computation plan (for DF/RI approaches) creation.\n        See \\c cuestDFIntPlanParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestDFIntPlanParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for atomic grid plan creation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestAtomGridParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for molecular grid plan creation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestMolecularGridParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for an exchange-correlation integral computation plan creation.\n        See \\c cuestXCIntPlanParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestXCIntPlanParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for overlap matrix computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestOverlapComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for overlap gradient computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestOverlapDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for kinetic matrix computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestKineticComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for kinetic gradient computation.\n @ingroup TypeDefs"]
pub type cuestKineticDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for potential matrix computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestPotentialComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for potential gradient computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestPotentialDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for density-fitted Coulomb matrix computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestDFCoulombComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for density-fitted symmetric exchange matrix computation.\n        See \\c cuestDFSymmetricExchangeComputeParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestDFSymmetricExchangeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for density-fitted non-symmetric exchange matrix computation.\n        See \\c cuestDFNonsymmetricExchangeComputeParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestDFNonsymmetricExchangeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for density-fitted gradient computation.\n        See \\c cuestDFSymmetricDerivativeComputeParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestDFSymmetricDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC RKS potential computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCPotentialRKSComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC UKS potential computation.\n @ingroup TypeDefs"]
pub type cuestXCPotentialUKSComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC RKS gradient computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCDerivativeRKSComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC UKS gradient computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCDerivativeUKSComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for nonlocal XC RKS potential computation.\n        See \\c cuestNonlocalXCPotentialRKSComputeParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestNonlocalXCPotentialRKSComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for nonlocal XC UKS potential computation.\n        See \\c cuestNonlocalXCPotentialUKSComputeParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestNonlocalXCPotentialUKSComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for nonlocal XC RKS gradient computation.\n        See \\c cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestNonlocalXCDerivativeRKSComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for nonlocal XC UKS gradient computation.\n        See \\c cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t for configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestNonlocalXCDerivativeUKSComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC density computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCDensityComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC nonsymmetric density computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCNonsymmetricDensityComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC potential computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCPotentialComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC derivative computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC nonsymmetric derivative computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCNonsymmetricDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC grid derivative computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCGridDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC integration grid computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCIntegrationGridComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for XC integration weight computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestXCIntegrationWeightComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for PCM potential and gradient computation.\n        See \\c cuestPCMIntPlanParametersAttributes_t configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestPCMIntPlanParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for PCM potential computation.\n        See \\c cuestPCMPotentialComputeParametersAttributes_t configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestPCMPotentialComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for PCM derivative computation.\n        See \\c cuestPCMDerivativeComputeParametersAttributes_t configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestPCMDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for PCM radii derivative computation.\n        See \\c cuestPCMRadiiDerivativeComputeParametersAttributes_t configurable parameters and their default values.\n @ingroup TypeDefs"]
pub type cuestPCMRadiiDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for multipole matrix computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestMultipoleComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for multipole gradient computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestMultipoleDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for angular momentum integral matrix computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestAngularMomentumComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for angular momentum gradient computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestAngularMomentumDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for nabla integral matrix computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestNablaComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for nabla gradient computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestNablaDerivativeComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for PCM integration grid computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestPCMIntegrationGridComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for PCM integration weight computation.\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestPCMIntegrationWeightComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = " @brief Opaque handle representing the parameters needed for MO transformation\n        There are no configurable parameters for this handle at this time.\n @ingroup TypeDefs"]
pub type cuestDFMOIntegralsComputeParameters_t = *mut ::core::ffi::c_void;
#[doc = "< Alias for cuestHandleParameters_t"]
pub const CUEST_HANDLE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(0);
#[doc = "< Alias for cuestAOShellParameters_t"]
pub const CUEST_AOSHELL_PARAMETERS: cuestParametersType_t = cuestParametersType_t(1);
#[doc = "< Alias for cuestAOBasisParameters_t"]
pub const CUEST_AOBASIS_PARAMETERS: cuestParametersType_t = cuestParametersType_t(2);
#[doc = "< Alias for cuestAOPairListParameters_t"]
pub const CUEST_AOPAIRLIST_PARAMETERS: cuestParametersType_t = cuestParametersType_t(3);
#[doc = "< Alias for cuestOEIntPlanParameters_t"]
pub const CUEST_OEINTPLAN_PARAMETERS: cuestParametersType_t = cuestParametersType_t(4);
#[doc = "< Alias for cuestDFIntPlanParameters_t"]
pub const CUEST_DFINTPLAN_PARAMETERS: cuestParametersType_t = cuestParametersType_t(5);
#[doc = "< Alias for cuestAtomGridParameters_t"]
pub const CUEST_ATOMGRID_PARAMETERS: cuestParametersType_t = cuestParametersType_t(6);
#[doc = "< Alias for cuestMolecularGridParameters_t"]
pub const CUEST_MOLECULARGRID_PARAMETERS: cuestParametersType_t = cuestParametersType_t(7);
#[doc = "< Alias for cuestXCIntPlanParameters_t"]
pub const CUEST_XCINTPLAN_PARAMETERS: cuestParametersType_t = cuestParametersType_t(8);
#[doc = "< Alias for cuestOverlapComputeParameters_t"]
pub const CUEST_OVERLAPCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(9);
#[doc = "< Alias for cuestOverlapDerivativeComputeParameters_t"]
pub const CUEST_OVERLAPDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(10);
#[doc = "< Alias for cuestKineticComputeParameters_t"]
pub const CUEST_KINETICCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(11);
#[doc = "< Alias for cuestKineticDerivativeComputeParameters_t"]
pub const CUEST_KINETICDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(12);
#[doc = "< Alias for cuestPotentialComputeParameters_t"]
pub const CUEST_POTENTIALCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(13);
#[doc = "< Alias for cuestPotentialDerivativeComputeParameters_t"]
pub const CUEST_POTENTIALDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(14);
#[doc = "< Alias for cuestDFCoulombComputeParameters_t"]
pub const CUEST_DFCOULOMBCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(15);
#[doc = "< Alias for cuestDFSymmetricExchangeComputeParameters_t"]
pub const CUEST_DFSYMMETRICEXCHANGECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(16);
#[doc = "< Alias for cuestDFSymmetricDerivativeComputeParameters_t"]
pub const CUEST_DFSYMMETRICDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(17);
#[doc = "< Alias for cuestXCPotentialRKSComputeParameters_t"]
pub const CUEST_XCPOTENTIALRKSCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(18);
#[doc = "< Alias for cuestXCPotentialUKSComputeParameters_t"]
pub const CUEST_XCPOTENTIALUKSCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(19);
#[doc = "< Alias for cuestXCDerivativeRKSComputeParameters_t"]
pub const CUEST_XCDERIVATIVERKSCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(20);
#[doc = "< Alias for cuestXCDerivativeUKSComputeParameters_t"]
pub const CUEST_XCDERIVATIVEUKSCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(21);
#[doc = "< Alias for cuestNonlocalXCPotentialRKSComputeParameters_t"]
pub const CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(22);
#[doc = "< Alias for cuestNonlocalXCPotentialUKSComputeParameters_t"]
pub const CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(23);
#[doc = "< Alias for cuestNonlocalXCDerivativeRKSComputeParameters_t"]
pub const CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(24);
#[doc = "< Alias for cuestNonlocalXCDerivativeUKSComputeParameters_t"]
pub const CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(25);
#[doc = "< Alias for cuestXCDensityComputeParameters_t"]
pub const CUEST_XCDENSITYCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(26);
#[doc = "< Alias for cuestXCPotentialComputeParameters_t"]
pub const CUEST_XCPOTENTIALCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(27);
#[doc = "< Alias for cuestXCDerivativeComputeParameters_t"]
pub const CUEST_XCDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(28);
#[doc = "< Alias for cuestXCGridDerivativeComputeParameters_t"]
pub const CUEST_XCGRIDDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(29);
#[doc = "< Alias for cuestXCIntegrationGridComputeParameters_t"]
pub const CUEST_XCINTEGRATIONGRIDCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(30);
#[doc = "< Alias for cuestXCIntegrationWeightComputeParameters_t"]
pub const CUEST_XCINTEGRATIONWEIGHTCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(31);
#[doc = "< Alias for cuestPCMIntPlanParameters_t"]
pub const CUEST_PCMINTPLAN_PARAMETERS: cuestParametersType_t = cuestParametersType_t(32);
#[doc = "< Alias for cuestPCMPotentialComputeParameters_t"]
pub const CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(33);
#[doc = "< Alias for cuestPCMDerivativeComputeParameters_t"]
pub const CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(34);
#[doc = "< Alias for cuestECPShellParameters_t"]
pub const CUEST_ECPSHELL_PARAMETERS: cuestParametersType_t = cuestParametersType_t(35);
#[doc = "< Alias for cuestECPAtomParameters_t"]
pub const CUEST_ECPATOM_PARAMETERS: cuestParametersType_t = cuestParametersType_t(36);
#[doc = "< Alias for cuestECPIntPlanParameters_t"]
pub const CUEST_ECPINTPLAN_PARAMETERS: cuestParametersType_t = cuestParametersType_t(37);
#[doc = "< Alias for cuestECPComputeParameters_t"]
pub const CUEST_ECPCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(38);
#[doc = "< Alias for cuestECPDerivativeComputeParameters_t"]
pub const CUEST_ECPDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(39);
#[doc = "< Alias for cuestDFNonsymmetricExchangeComputeParameters_t"]
pub const CUEST_DFNONSYMMETRICEXCHANGECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(40);
#[doc = "< Alias for cuestMultipoleComputeParameters_t"]
pub const CUEST_MULTIPOLECOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(41);
#[doc = "< Alias for cuestMultipoleDerivativeComputeParameters_t"]
pub const CUEST_MULTIPOLEDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(42);
#[doc = "< Alias for cuestAngularMomentumComputeParameters_t"]
pub const CUEST_ANGULARMOMENTUMCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(43);
#[doc = "< Alias for cuestAngularMomentumDerivativeComputeParameters_t"]
pub const CUEST_ANGULARMOMENTUMDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(44);
#[doc = "< Alias for cuestNablaComputeParameters_t"]
pub const CUEST_NABLACOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(45);
#[doc = "< Alias for cuestNablaDerivativeComputeParameters_t"]
pub const CUEST_NABLADERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(46);
#[doc = "< Alias for cuestPCMIntegrationGridComputeParameters_t"]
pub const CUEST_PCMINTEGRATIONGRIDCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(47);
#[doc = "< Alias for cuestPCMIntegrationWeightComputeParameters_t"]
pub const CUEST_PCMINTEGRATIONWEIGHTCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(48);
#[doc = "< Alias for cuestDFMOIntegralsComputeParameters_t"]
pub const CUEST_DFMOINTEGRALSCOMPUTE_PARAMETERS: cuestParametersType_t = cuestParametersType_t(49);
#[doc = "< Alias for cuestXCNonsymmetricDensityComputeParameters_t"]
pub const CUEST_XCNONSYMMETRICDENSITYCOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(50);
#[doc = "< Alias for cuestXCNonsymmetricDerivativeComputeParameters_t"]
pub const CUEST_XCNONSYMMETRICDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(51);
#[doc = "< Alias for cuestPCMRadiiDerivativeComputeParameters_t"]
pub const CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS: cuestParametersType_t =
    cuestParametersType_t(52);
#[repr(transparent)]
#[doc = " @brief Provides unique identifiers for each of the opaque handles to parameter structures.\n @ingroup Enums\n"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestParametersType_t(pub ::core::ffi::c_uint);
#[doc = "< CUDA stream handle. NULL value allocates a CUDA stream internally.  \\b Default: NULL."]
pub const CUEST_HANDLE_PARAMETERS_CUDASTREAM: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(0);
#[doc = "< cuBLAS handle. NULL value allocates a cuBLAS handle internally.  \\b Default: NULL."]
pub const CUEST_HANDLE_PARAMETERS_CUBLAS: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(1);
#[doc = "< cuSolver handle. NULL value allocates a cuSolver handle internally.  \\b Default: NULL."]
pub const CUEST_HANDLE_PARAMETERS_CUSOLVER: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(2);
#[doc = "< Maximum number of quadrature points.  \\b Default: 20."]
pub const CUEST_HANDLE_PARAMETERS_MAX_GAUSS_HERMITE: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(3);
#[doc = "< Highest angular momentum for solid harmonics.  \\b Default: 10."]
pub const CUEST_HANDLE_PARAMETERS_MAX_L_SOLID_HARMONIC: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(4);
#[doc = "< Maximum number of Rys points. (0 specifies the largest available).  \\b Default: 0."]
pub const CUEST_HANDLE_PARAMETERS_MAX_RYS: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(5);
#[doc = "< Specifies which scheme should be used to build the Rys quadrature table.  \\b Default: CUEST_HANDLE_PARAMETERS_RYS_SCHEME_06_21_2025."]
pub const CUEST_HANDLE_PARAMETERS_RYS_SCHEME: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(6);
#[doc = "< JIT kernel cache directory. Empty string uses the derived default (~/.cuest_cache/cuest-cuda<N>-v<version>/). Must be a trusted, per-user, non-world-writable path (see security notes); an unsafe or unwritable directory is rejected at cuestCreate with CUEST_STATUS_INVALID_ARGUMENT.  \\b Default: \"\" (derived default)."]
pub const CUEST_HANDLE_PARAMETERS_JIT_CACHE_DIR: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(7);
#[doc = "< Parallel JIT precompile worker threads. Must be >= 1 (a smaller value is rejected at cuestCreate with CUEST_STATUS_INVALID_ARGUMENT); clamped to an internal upper bound of 256.  \\b Default: 16."]
pub const CUEST_HANDLE_PARAMETERS_JIT_COMPILE_THREADS: cuestHandleParametersAttributes_t =
    cuestHandleParametersAttributes_t(8);
#[repr(transparent)]
#[doc = " @brief Enumerates configurable/queryable attributes in the parameter structure.\n @ingroup Enums\n\n\n Types expected for each attribute:\n   - \\c CUEST_HANDLE_PARAMETERS_CUDASTREAM :           cudaStream_t (may be NULL)\n   - \\c CUEST_HANDLE_PARAMETERS_CUBLAS :               cublasHandle_t (may be NULL)\n   - \\c CUEST_HANDLE_PARAMETERS_CUSOLVER :             cusolverDnHandle_t (may be NULL)\n   - \\c CUEST_HANDLE_PARAMETERS_MAX_GAUSS_HERMITE :    uint64_t\n   - \\c CUEST_HANDLE_PARAMETERS_MAX_L_SOLID_HARMONIC : uint64_t\n   - \\c CUEST_HANDLE_PARAMETERS_MAX_RYS :              uint64_t\n   - \\c CUEST_HANDLE_PARAMETERS_RYS_SCHEME :           cuestHandleParametersRysScheme_t (enum)\n   - \\c CUEST_HANDLE_PARAMETERS_JIT_CACHE_DIR :        const char* (NUL-terminated; the value\n                                                       returned by a query is allocated with\n                                                       malloc and must be freed by the caller\n                                                       with C's native free(). The allocation\n                                                       only occurs when the query completes\n                                                       successfully (CUEST_STATUS_SUCCESS); on\n                                                       error nothing is allocated to free.)\n   - \\c CUEST_HANDLE_PARAMETERS_JIT_COMPILE_THREADS :  int32_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestHandleParametersAttributes_t(pub ::core::ffi::c_uint);
pub const CUEST_HANDLE_PARAMETERS_RYS_SCHEME_06_21_2025: cuestHandleParametersRysScheme_t =
    cuestHandleParametersRysScheme_t(0);
#[repr(transparent)]
#[doc = " @brief Specifies which Rys quadrature scheme to use for table construction.\n @ingroup Enums"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestHandleParametersRysScheme_t(pub ::core::ffi::c_uint);
#[doc = "< Default math mode. Math mode is heuristically chosen on a per-function basis for maximum efficiency."]
pub const CUEST_DEFAULT_MATH_MODE: cuestMathMode_t = cuestMathMode_t(0);
#[doc = "< Native FP64 compute is used everywhere."]
pub const CUEST_NATIVE_FP64_MATH_MODE: cuestMathMode_t = cuestMathMode_t(1);
#[repr(transparent)]
#[doc = " @brief Specifies what math mode should be used.\n @ingroup Enums"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestMathMode_t(pub ::core::ffi::c_uint);
#[doc = "< Specifies that JIT-compiled kernels should be used."]
pub const CUEST_JIT_USAGE_MODE_ON: cuestJITUsageMode_t = cuestJITUsageMode_t(0);
#[doc = "< Specifies the use of a code path with AOT-compiled kernels."]
pub const CUEST_JIT_USAGE_MODE_OFF: cuestJITUsageMode_t = cuestJITUsageMode_t(1);
#[repr(transparent)]
#[doc = " @brief Specifies whether or not to use JIT-compiled kernels.\n @ingroup Enums\n\n Note: JIT requires CUDA 13.x or higher."]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestJITUsageMode_t(pub ::core::ffi::c_uint);
#[doc = "< Requests ffloat compute when it is available and expected to provide a performance advantage on the present GPU architecture. Availability may be impacted by disabling JIT or using the cuEST CUDA 12 package."]
pub const CUEST_FFLOAT_USAGE_MODE_DEFAULT: cuestFfloatUsageMode_t = cuestFfloatUsageMode_t(0);
#[doc = "< Requests ffloat compute."]
pub const CUEST_FFLOAT_USAGE_MODE_ON: cuestFfloatUsageMode_t = cuestFfloatUsageMode_t(1);
#[doc = "< Requests fp64 compute."]
pub const CUEST_FFLOAT_USAGE_MODE_OFF: cuestFfloatUsageMode_t = cuestFfloatUsageMode_t(2);
#[repr(transparent)]
#[doc = " @brief Specifies whether or not to use ffloat compute.\n @ingroup Enums"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestFfloatUsageMode_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_AOSHELL_PARAMETERS_NONE: cuestAOShellParametersAttributes_t =
    cuestAOShellParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for AO shell parameters.\n @ingroup Enums\n\n - \\c CUEST_AOSHELL_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAOShellParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_AOBASIS_PARAMETERS_NONE: cuestAOBasisParametersAttributes_t =
    cuestAOBasisParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for AO basis parameters.\n @ingroup Enums\n\n - \\c CUEST_AOBASIS_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAOBasisParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_AOPAIRLIST_PARAMETERS_NONE: cuestAOPairListParametersAttributes_t =
    cuestAOPairListParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for AO pair list parameters.\n @ingroup Enums\n\n - \\c CUEST_AOPAIRLIST_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAOPairListParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_ECPSHELL_PARAMETERS_NONE: cuestECPShellParametersAttributes_t =
    cuestECPShellParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for ECP shell parameters.\n @ingroup Enums\n\n - \\c CUEST_ECPSHELL_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestECPShellParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_ECPATOM_PARAMETERS_NONE: cuestECPAtomParametersAttributes_t =
    cuestECPAtomParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for ECP Atom parameters.\n @ingroup Enums\n\n - \\c CUEST_ECPATOM_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestECPAtomParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_OEINTPLAN_PARAMETERS_NONE: cuestOEIntPlanParametersAttributes_t =
    cuestOEIntPlanParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for one-electron integral plan parameters.\n @ingroup Enums\n\n - \\c CUEST_OEINTPLAN_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestOEIntPlanParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Grid collocation threshold.  \\b Default: 1.0e-18."]
pub const CUEST_ECPINTPLAN_PARAMETERS_THRESHOLD_COLLOCATION: cuestECPIntPlanParametersAttributes_t =
    cuestECPIntPlanParametersAttributes_t(0);
#[doc = "< Grid cutoff.  \\b Default: 1.0e-14."]
pub const CUEST_ECPINTPLAN_PARAMETERS_ECP_CUTOFF: cuestECPIntPlanParametersAttributes_t =
    cuestECPIntPlanParametersAttributes_t(1);
#[doc = "< Grid R0.  \\b Default: 6.0."]
pub const CUEST_ECPINTPLAN_PARAMETERS_R0: cuestECPIntPlanParametersAttributes_t =
    cuestECPIntPlanParametersAttributes_t(2);
#[doc = "< Grid multiplier.  \\b Default: 1.1."]
pub const CUEST_ECPINTPLAN_PARAMETERS_MULTIPLIER: cuestECPIntPlanParametersAttributes_t =
    cuestECPIntPlanParametersAttributes_t(3);
#[doc = "< Number radial grid points.  \\b Default: 80."]
pub const CUEST_ECPINTPLAN_PARAMETERS_RADIAL_NUM_POINT: cuestECPIntPlanParametersAttributes_t =
    cuestECPIntPlanParametersAttributes_t(4);
#[doc = "< Number spherical grid points.  \\b Default: 302."]
pub const CUEST_ECPINTPLAN_PARAMETERS_SPHERICAL_NUM_POINT: cuestECPIntPlanParametersAttributes_t =
    cuestECPIntPlanParametersAttributes_t(5);
#[repr(transparent)]
#[doc = " @brief Properties supported for effective core potential (ECP) integral plan parameters.\n @ingroup Enums\n\n - \\c CUEST_ECPINTPLAN_PARAMETERS_THRESHOLD_COLLOCATION : double\n - \\c CUEST_ECPINTPLAN_PARAMETERS_ECP_CUTOFF            : double\n - \\c CUEST_ECPINTPLAN_PARAMETERS_R0                    : double\n - \\c CUEST_ECPINTPLAN_PARAMETERS_MULTIPLIER            : double\n - \\c CUEST_ECPINTPLAN_PARAMETERS_RADIAL_NUM_POINT      : uint64_t\n - \\c CUEST_ECPINTPLAN_PARAMETERS_SPHERICAL_NUM_POINT   : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestECPIntPlanParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_ECPCOMPUTE_PARAMETERS_NONE: cuestECPComputeParametersAttributes_t =
    cuestECPComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for effective core potential (ECP) integral compute parameters.\n @ingroup Enums\n\n - \\c CUEST_ECPCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestECPComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_ECPDERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestECPDerivativeComputeParametersAttributes_t =
    cuestECPDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for effective core potential (ECP) integral derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_ECPDERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestECPDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Value below which metric eigenvalues are discarded during fitting.  \\b Default: 1.0e-12."]
pub const CUEST_DFINTPLAN_PARAMETERS_FITTING_CUTOFF: cuestDFIntPlanParametersAttributes_t =
    cuestDFIntPlanParametersAttributes_t(0);
#[doc = "< Should the fitting cutoff be determined in a relative or absolute sense? 0 is absolute. non-zero is relative.  \\b Default: 1."]
pub const CUEST_DFINTPLAN_PARAMETERS_FITTING_RELATIVE_CONDITIONING:
    cuestDFIntPlanParametersAttributes_t = cuestDFIntPlanParametersAttributes_t(1);
#[doc = "< Fraction of HF exchange: respected in DF exchange and DF derivative compute routines. \\b Default: 1.0."]
pub const CUEST_DFINTPLAN_PARAMETERS_EXCHANGE_FRACTION: cuestDFIntPlanParametersAttributes_t =
    cuestDFIntPlanParametersAttributes_t(2);
#[doc = "< Algorithm to use when inverting the DF metric.  \\b Default: CUEST_DFINTPLAN_PARAMETERS_FITTING_ALGORITHM_QR."]
pub const CUEST_DFINTPLAN_PARAMETERS_FITTING_ALGORITHM: cuestDFIntPlanParametersAttributes_t =
    cuestDFIntPlanParametersAttributes_t(3);
#[doc = "< Fraction of long-range exchange: respected in DF exchange and DF derivative compute routines. \\b Default: 0.0."]
pub const CUEST_DFINTPLAN_PARAMETERS_LRC_EXCHANGE_FRACTION: cuestDFIntPlanParametersAttributes_t =
    cuestDFIntPlanParametersAttributes_t(4);
#[doc = "< Omega range-separation parameter (in inverse bohr): respected in DF exchange and DF derivative compute routines. Must be greater than or equal to 0.0. \\b Default: 0.0."]
pub const CUEST_DFINTPLAN_PARAMETERS_LRC_EXCHANGE_OMEGA: cuestDFIntPlanParametersAttributes_t =
    cuestDFIntPlanParametersAttributes_t(5);
#[doc = "< Skips the formation of 3-index integrals in the plan creation and uses integral direct algorithms in subsequent compute calls (where possible). \\b Default: 0."]
pub const CUEST_DFINTPLAN_PARAMETERS_THREE_INDEX_INTEGRAL_DIRECT:
    cuestDFIntPlanParametersAttributes_t = cuestDFIntPlanParametersAttributes_t(6);
#[repr(transparent)]
#[doc = " @brief Properties supported for DF integral plan parameters.\n @ingroup Enums\n\n - \\c CUEST_DFINTPLAN_PARAMETERS_FITTING_CUTOFF : double\n - \\c CUEST_DFINTPLAN_PARAMETERS_FITTING_RELATIVE_CONDITIONING : int32_t\n - \\c CUEST_DFINTPLAN_PARAMETERS_EXCHANGE_FRACTION : double\n - \\c CUEST_DFINTPLAN_PARAMETERS_FITTING_ALGORITHM : cuestDFIntPlanParametersFittingAlgorithm_t\n - \\c CUEST_DFINTPLAN_PARAMETERS_LRC_EXCHANGE_FRACTION : double\n - \\c CUEST_DFINTPLAN_PARAMETERS_LRC_EXCHANGE_OMEGA : double\n - \\c CUEST_DFINTPLAN_PARAMETERS_THREE_INDEX_INTEGRAL_DIRECT: int32_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFIntPlanParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Use a QR-based metric inverse"]
pub const CUEST_DFINTPLAN_PARAMETERS_FITTING_ALGORITHM_QR:
    cuestDFIntPlanParametersFittingAlgorithm_t = cuestDFIntPlanParametersFittingAlgorithm_t(0);
#[doc = "< Use a conditioned matrix power"]
pub const CUEST_DFINTPLAN_PARAMETERS_FITTING_ALGORITHM_MATRIXPOWER:
    cuestDFIntPlanParametersFittingAlgorithm_t = cuestDFIntPlanParametersFittingAlgorithm_t(1);
#[repr(transparent)]
#[doc = " @brief Specifies how the DF metric should be inverted\n @ingroup Enums"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFIntPlanParametersFittingAlgorithm_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_ATOMGRID_PARAMETERS_NONE: cuestAtomGridParametersAttributes_t =
    cuestAtomGridParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for atom grid parameters.\n @ingroup Enums\n\n - \\c CUEST_ATOMGRID_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAtomGridParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_MOLECULARGRID_PARAMETERS_NONE: cuestMolecularGridParametersAttributes_t =
    cuestMolecularGridParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for molecular grid parameters.\n @ingroup Enums\n\n - \\c CUEST_MOLECULARGRID_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestMolecularGridParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< XC collocation threshold.  \\b Default: 1.0e-18."]
pub const CUEST_XCINTPLAN_PARAMETERS_THRESHOLD_COLLOCATION: cuestXCIntPlanParametersAttributes_t =
    cuestXCIntPlanParametersAttributes_t(0);
#[doc = "< Maximum derivative level supported.  \\b Default: 1."]
pub const CUEST_XCINTPLAN_PARAMETERS_DERIVATIVE_LEVEL: cuestXCIntPlanParametersAttributes_t =
    cuestXCIntPlanParametersAttributes_t(1);
#[doc = "< How many CPU threads to use when computing Vxc.  \\b Default: 12."]
pub const CUEST_XCINTPLAN_PARAMETERS_NUM_THREADS: cuestXCIntPlanParametersAttributes_t =
    cuestXCIntPlanParametersAttributes_t(2);
#[repr(transparent)]
#[doc = " @brief Properties supported for exchange-correlation integral plan parameters.\n @ingroup Enums\n\n - \\c CUEST_XCINTPLAN_PARAMETERS_THRESHOLD_COLLOCATION : double\n - \\c CUEST_XCINTPLAN_PARAMETERS_DERIVATIVE_LEVEL : int32_t\n - \\c CUEST_XCINTPLAN_PARAMETERS_NUM_THREADS : int32_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCIntPlanParametersAttributes_t(pub ::core::ffi::c_uint);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_HF: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(0);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_B3LYP1: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(1);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_B3LYP5: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(2);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_B97: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(3);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_BLYP: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(4);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_M06L: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(5);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_PBE: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(6);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_PBE0: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(7);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_R2SCAN: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(8);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_SVWN5: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(9);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_B97MV: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(10);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_LCWPBE: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(11);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_WB97X: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(12);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_WB97XV: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(13);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_WB97MV: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(14);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_LCWPBEH: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(15);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_CAMB3LYP: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(16);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_HSE06: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(17);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_M06: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(18);
pub const CUEST_XCINTPLAN_PARAMETERS_FUNCTIONAL_M062X: cuestXCIntPlanParametersFunctional_t =
    cuestXCIntPlanParametersFunctional_t(19);
#[repr(transparent)]
#[doc = " @brief Specifies which XC functional should be used.\n @ingroup Enums"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCIntPlanParametersFunctional_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_OVERLAPCOMPUTE_PARAMETERS_NONE: cuestOverlapComputeParametersAttributes_t =
    cuestOverlapComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for overlap compute parameters.\n @ingroup Enums\n\n - \\c CUEST_OVERLAPCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestOverlapComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_OVERLAPDERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestOverlapDerivativeComputeParametersAttributes_t =
    cuestOverlapDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for overlap derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_OVERLAPDERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestOverlapDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_KINETICCOMPUTE_PARAMETERS_NONE: cuestKineticComputeParametersAttributes_t =
    cuestKineticComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for kinetic compute parameters.\n @ingroup Enums\n\n - \\c CUEST_KINETICCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestKineticComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_KINETICDERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestKineticDerivativeComputeParametersAttributes_t =
    cuestKineticDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for kinetic derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_KINETICDERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestKineticDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_POTENTIALCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestPotentialComputeParametersAttributes_t = cuestPotentialComputeParametersAttributes_t(0);
#[doc = "< Parameter to control the use of JIT-compiled kernels. \\b Default: CUEST_JIT_USAGE_MODE_ON on CUDA 13.x+, CUEST_JIT_USAGE_MODE_OFF otherwise."]
pub const CUEST_POTENTIALCOMPUTE_PARAMETERS_JIT_USAGE_MODE:
    cuestPotentialComputeParametersAttributes_t = cuestPotentialComputeParametersAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief Properties supported for potential compute parameters.\n @ingroup Enums\n\n - \\c CUEST_POTENTIALCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)\n - \\c CUEST_POTENTIALCOMPUTE_PARAMETERS_JIT_USAGE_MODE : cuestJITUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPotentialComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_OFF."]
pub const CUEST_POTENTIALDERIVATIVECOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestPotentialDerivativeComputeParametersAttributes_t =
    cuestPotentialDerivativeComputeParametersAttributes_t(0);
#[doc = "< Parameter to control the use of JIT-compiled kernels. \\b Default: CUEST_JIT_USAGE_MODE_ON on CUDA 13.x+, CUEST_JIT_USAGE_MODE_OFF otherwise."]
pub const CUEST_POTENTIALDERIVATIVECOMPUTE_PARAMETERS_JIT_USAGE_MODE:
    cuestPotentialDerivativeComputeParametersAttributes_t =
    cuestPotentialDerivativeComputeParametersAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief Properties supported for potential derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_POTENTIALDERIVATIVECOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)\n - \\c CUEST_POTENTIALDERIVATIVECOMPUTE_PARAMETERS_JIT_USAGE_MODE : cuestJITUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPotentialDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_DFCOULOMBCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestDFCoulombComputeParametersAttributes_t = cuestDFCoulombComputeParametersAttributes_t(0);
#[doc = "< Parameter to control the use of JIT-compiled kernels. \\b Default: CUEST_JIT_USAGE_MODE_ON on CUDA 13.x+, CUEST_JIT_USAGE_MODE_OFF otherwise."]
pub const CUEST_DFCOULOMBCOMPUTE_PARAMETERS_JIT_USAGE_MODE:
    cuestDFCoulombComputeParametersAttributes_t = cuestDFCoulombComputeParametersAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief Properties supported for DF Coulomb compute parameters.\n @ingroup Enums\n\n - \\c CUEST_DFCOULOMBCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)\n - \\c CUEST_DFCOULOMBCOMPUTE_PARAMETERS_JIT_USAGE_MODE : cuestJITUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFCoulombComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Number of slices used in cuBLAS emulated GEMMs. Mantissa bit count = 8 * slices - 1.  \\b Default: 5."]
pub const CUEST_DFSYMMETRICEXCHANGECOMPUTE_PARAMETERS_INT8_SLICE_COUNT:
    cuestDFSymmetricExchangeComputeParametersAttributes_t =
    cuestDFSymmetricExchangeComputeParametersAttributes_t(0);
#[doc = "< Number of moduli used in custom Ozaki-II emulated GEMMs.  \\b Default: 8."]
pub const CUEST_DFSYMMETRICEXCHANGECOMPUTE_PARAMETERS_INT8_MODULUS_COUNT:
    cuestDFSymmetricExchangeComputeParametersAttributes_t =
    cuestDFSymmetricExchangeComputeParametersAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief Properties supported for DF symmetric exchange compute parameters.\n @ingroup Enums\n\n - \\c CUEST_DFSYMMETRICEXCHANGECOMPUTE_PARAMETERS_INT8_SLICE_COUNT : uint64_t\n - \\c CUEST_DFSYMMETRICEXCHANGECOMPUTE_PARAMETERS_INT8_MODULUS_COUNT : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFSymmetricExchangeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Number of slices used in cuBLAS emulated GEMMs. Mantissa bit count = 8 * slices - 1.  \\b Default: 5."]
pub const CUEST_DFNONSYMMETRICEXCHANGECOMPUTE_PARAMETERS_INT8_SLICE_COUNT:
    cuestDFNonsymmetricExchangeComputeParametersAttributes_t =
    cuestDFNonsymmetricExchangeComputeParametersAttributes_t(0);
#[doc = "< Number of moduli used in custom Ozaki-II emulated GEMMs.  \\b Default: 8."]
pub const CUEST_DFNONSYMMETRICEXCHANGECOMPUTE_PARAMETERS_INT8_MODULUS_COUNT:
    cuestDFNonsymmetricExchangeComputeParametersAttributes_t =
    cuestDFNonsymmetricExchangeComputeParametersAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief Properties supported for DF non-symmetric exchange compute parameters.\n @ingroup Enums\n\n - \\c CUEST_DFNONSYMMETRICEXCHANGECOMPUTE_PARAMETERS_INT8_SLICE_COUNT : uint64_t\n - \\c CUEST_DFNONSYMMETRICEXCHANGECOMPUTE_PARAMETERS_INT8_MODULUS_COUNT : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFNonsymmetricExchangeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Specifies how memory should be used during the derivative evaluation.  \\b Default: CUEST_DFSYMMETRICDERIVATIVECOMPUTE_MEMORY_POLICY_DEVICECACHE."]
pub const CUEST_DFSYMMETRICDERIVATIVECOMPUTE_PARAMETERS_MEMORY_POLICY:
    cuestDFSymmetricDerivativeComputeParametersAttributes_t =
    cuestDFSymmetricDerivativeComputeParametersAttributes_t(0);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_DFSYMMETRICDERIVATIVECOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestDFSymmetricDerivativeComputeParametersAttributes_t =
    cuestDFSymmetricDerivativeComputeParametersAttributes_t(1);
#[doc = "< Parameter to control the use of JIT-compiled kernels. \\b Default: CUEST_JIT_USAGE_MODE_ON on CUDA 13.x+, CUEST_JIT_USAGE_MODE_OFF otherwise."]
pub const CUEST_DFSYMMETRICDERIVATIVECOMPUTE_PARAMETERS_JIT_USAGE_MODE:
    cuestDFSymmetricDerivativeComputeParametersAttributes_t =
    cuestDFSymmetricDerivativeComputeParametersAttributes_t(2);
#[repr(transparent)]
#[doc = " @brief Properties supported for DF symmetric derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_DFSYMMETRICDERIVATIVECOMPUTE_PARAMETERS_MEMORY_POLICY : cuestDFSymmetricDerivativeComputeMemoryPolicy_t\n - \\c CUEST_DFSYMMETRICDERIVATIVECOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)\n - \\c CUEST_DFSYMMETRICDERIVATIVECOMPUTE_PARAMETERS_JIT_USAGE_MODE : cuestJITUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFSymmetricDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Cache certain intermediates on the GPU. This leaves the DFIntPlan unchanged."]
pub const CUEST_DFSYMMETRICDERIVATIVECOMPUTE_MEMORY_POLICY_DEVICECACHE:
    cuestDFSymmetricDerivativeComputeMemoryPolicy_t =
    cuestDFSymmetricDerivativeComputeMemoryPolicy_t(0);
#[doc = "< Cache certain intermediates on the CPU. This leaves the DFIntPlan unchanged."]
pub const CUEST_DFSYMMETRICDERIVATIVECOMPUTE_MEMORY_POLICY_HOSTCACHE:
    cuestDFSymmetricDerivativeComputeMemoryPolicy_t =
    cuestDFSymmetricDerivativeComputeMemoryPolicy_t(1);
#[doc = "< Overwrite DFIntPlan intermediates. This leaves the DFIntPlan in an unusable state."]
pub const CUEST_DFSYMMETRICDERIVATIVECOMPUTE_MEMORY_POLICY_OVERWRITE:
    cuestDFSymmetricDerivativeComputeMemoryPolicy_t =
    cuestDFSymmetricDerivativeComputeMemoryPolicy_t(2);
#[doc = "< Recompute DFIntPlan intermediates. This leaves the DFIntPlan in a usable state, but may not be bitwise identical."]
pub const CUEST_DFSYMMETRICDERIVATIVECOMPUTE_MEMORY_POLICY_RECOMPUTE:
    cuestDFSymmetricDerivativeComputeMemoryPolicy_t =
    cuestDFSymmetricDerivativeComputeMemoryPolicy_t(3);
#[repr(transparent)]
#[doc = " @brief Specifies what memory policy should be used.\n @ingroup Enums"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFSymmetricDerivativeComputeMemoryPolicy_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCPOTENTIALRKSCOMPUTE_PARAMETERS_NONE:
    cuestXCPotentialRKSComputeParametersAttributes_t =
    cuestXCPotentialRKSComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC potential RKS compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCPOTENTIALRKSCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCPotentialRKSComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCPOTENTIALUKSCOMPUTE_PARAMETERS_NONE:
    cuestXCPotentialUKSComputeParametersAttributes_t =
    cuestXCPotentialUKSComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC potential UKS compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCPOTENTIALUKSCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCPotentialUKSComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCDERIVATIVERKSCOMPUTE_PARAMETERS_NONE:
    cuestXCDerivativeRKSComputeParametersAttributes_t =
    cuestXCDerivativeRKSComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC derivative RKS compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCDERIVATIVERKSCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCDerivativeRKSComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCDERIVATIVEUKSCOMPUTE_PARAMETERS_NONE:
    cuestXCDerivativeUKSComputeParametersAttributes_t =
    cuestXCDerivativeUKSComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC derivative UKS compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCDERIVATIVEUKSCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCDerivativeUKSComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Global scaling for VV10 nonlocal correlation.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS_VV10_SCALE:
    cuestNonlocalXCPotentialRKSComputeParametersAttributes_t =
    cuestNonlocalXCPotentialRKSComputeParametersAttributes_t(0);
#[doc = "< VV10 C parameter.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS_VV10_C:
    cuestNonlocalXCPotentialRKSComputeParametersAttributes_t =
    cuestNonlocalXCPotentialRKSComputeParametersAttributes_t(1);
#[doc = "< VV10 b parameter.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS_VV10_B:
    cuestNonlocalXCPotentialRKSComputeParametersAttributes_t =
    cuestNonlocalXCPotentialRKSComputeParametersAttributes_t(2);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestNonlocalXCPotentialRKSComputeParametersAttributes_t =
    cuestNonlocalXCPotentialRKSComputeParametersAttributes_t(3);
#[repr(transparent)]
#[doc = " @brief Properties supported for nonlocal XC potential RKS compute parameters.\n @ingroup Enums\n\n - \\c CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS_VV10_SCALE : double\n - \\c CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS_VV10_C : double\n - \\c CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS_VV10_B : double\n - \\c CUEST_NONLOCALXCPOTENTIALRKSCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestNonlocalXCPotentialRKSComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Global scaling for VV10 nonlocal correlation.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS_VV10_SCALE:
    cuestNonlocalXCPotentialUKSComputeParametersAttributes_t =
    cuestNonlocalXCPotentialUKSComputeParametersAttributes_t(0);
#[doc = "< VV10 C parameter.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS_VV10_C:
    cuestNonlocalXCPotentialUKSComputeParametersAttributes_t =
    cuestNonlocalXCPotentialUKSComputeParametersAttributes_t(1);
#[doc = "< VV10 b parameter.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS_VV10_B:
    cuestNonlocalXCPotentialUKSComputeParametersAttributes_t =
    cuestNonlocalXCPotentialUKSComputeParametersAttributes_t(2);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestNonlocalXCPotentialUKSComputeParametersAttributes_t =
    cuestNonlocalXCPotentialUKSComputeParametersAttributes_t(3);
#[repr(transparent)]
#[doc = " @brief Properties supported for nonlocal XC potential UKS compute parameters.\n @ingroup Enums\n\n - \\c CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS_VV10_SCALE : double\n - \\c CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS_VV10_C : double\n - \\c CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS_VV10_B : double\n - \\c CUEST_NONLOCALXCPOTENTIALUKSCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestNonlocalXCPotentialUKSComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Global scaling for VV10 nonlocal correlation.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS_VV10_SCALE:
    cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t =
    cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t(0);
#[doc = "< VV10 C parameter.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS_VV10_C:
    cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t =
    cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t(1);
#[doc = "< VV10 b parameter.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS_VV10_B:
    cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t =
    cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t(2);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t =
    cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t(3);
#[repr(transparent)]
#[doc = " @brief Properties supported for nonlocal XC derivative RKS compute parameters.\n @ingroup Enums\n\n - \\c CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS_VV10_SCALE : double\n - \\c CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS_VV10_C : double\n - \\c CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS_VV10_B : double\n - \\c CUEST_NONLOCALXCDERIVATIVERKSCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestNonlocalXCDerivativeRKSComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Global scaling for VV10 nonlocal correlation.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS_VV10_SCALE:
    cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t =
    cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t(0);
#[doc = "< VV10 C parameter.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS_VV10_C:
    cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t =
    cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t(1);
#[doc = "< VV10 b parameter.  \\b Default: 0.0."]
pub const CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS_VV10_B:
    cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t =
    cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t(2);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t =
    cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t(3);
#[repr(transparent)]
#[doc = " @brief Properties supported for nonlocal XC derivative UKS compute parameters.\n @ingroup Enums\n\n - \\c CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS_VV10_SCALE : double\n - \\c CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS_VV10_C : double\n - \\c CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS_VV10_B : double\n - \\c CUEST_NONLOCALXCDERIVATIVEUKSCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestNonlocalXCDerivativeUKSComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCDENSITYCOMPUTE_PARAMETERS_NONE: cuestXCDensityComputeParametersAttributes_t =
    cuestXCDensityComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC density compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCDENSITYCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCDensityComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCPOTENTIALCOMPUTE_PARAMETERS_NONE: cuestXCPotentialComputeParametersAttributes_t =
    cuestXCPotentialComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC potential compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCPOTENTIALCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCPotentialComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCDERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestXCDerivativeComputeParametersAttributes_t =
    cuestXCDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCDERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCNONSYMMETRICDENSITYCOMPUTE_PARAMETERS_NONE:
    cuestXCNonsymmetricDensityComputeParametersAttributes_t =
    cuestXCNonsymmetricDensityComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC nonsymmetric density compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCNONSYMMETRICDENSITYCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCNonsymmetricDensityComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCNONSYMMETRICDERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestXCNonsymmetricDerivativeComputeParametersAttributes_t =
    cuestXCNonsymmetricDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC nonsymmetric derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCNONSYMMETRICDERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCNonsymmetricDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCGRIDDERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestXCGridDerivativeComputeParametersAttributes_t =
    cuestXCGridDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC grid derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCGRIDDERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCGridDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCINTEGRATIONGRIDCOMPUTE_PARAMETERS_NONE:
    cuestXCIntegrationGridComputeParametersAttributes_t =
    cuestXCIntegrationGridComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC integration grid compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCINTEGRATIONGRIDCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCIntegrationGridComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_XCINTEGRATIONWEIGHTCOMPUTE_PARAMETERS_NONE:
    cuestXCIntegrationWeightComputeParametersAttributes_t =
    cuestXCIntegrationWeightComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for XC integration weight compute parameters.\n @ingroup Enums\n\n - \\c CUEST_XCINTEGRATIONWEIGHTCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCIntegrationWeightComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< The total integration weight. Angular x radial x Becke"]
pub const CUEST_XCINTEGRATIONWEIGHT_PARAMETERS_WEIGHTTYPE_TOTAL:
    cuestXCIntegrationWeightComputeParametersWeightType_t =
    cuestXCIntegrationWeightComputeParametersWeightType_t(0);
#[doc = "< The Becke integration weight."]
pub const CUEST_XCINTEGRATIONWEIGHT_PARAMETERS_WEIGHTTYPE_BECKE:
    cuestXCIntegrationWeightComputeParametersWeightType_t =
    cuestXCIntegrationWeightComputeParametersWeightType_t(1);
#[doc = "< The integration weights from angular and radial quadratures."]
pub const CUEST_XCINTEGRATIONWEIGHT_PARAMETERS_WEIGHTTYPE_QUADRATURE:
    cuestXCIntegrationWeightComputeParametersWeightType_t =
    cuestXCIntegrationWeightComputeParametersWeightType_t(2);
#[repr(transparent)]
#[doc = " @brief Specifies which XC integration weights to compute.\n @ingroup Enums"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCIntegrationWeightComputeParametersWeightType_t(pub ::core::ffi::c_uint);
#[doc = "< LDA approximation: depends only on the density."]
pub const CUEST_XCADVANCED_PARAMETERS_APPROXIMATION_LDA:
    cuestXCAdvancedComputeParametersApproximation_t =
    cuestXCAdvancedComputeParametersApproximation_t(0);
#[doc = "< GGA approximation: depends on the density and derivatives of the density."]
pub const CUEST_XCADVANCED_PARAMETERS_APPROXIMATION_GGA:
    cuestXCAdvancedComputeParametersApproximation_t =
    cuestXCAdvancedComputeParametersApproximation_t(1);
#[doc = "< meta-GGA approximation: depends on the density, derivatives of the density, and tau."]
pub const CUEST_XCADVANCED_PARAMETERS_APPROXIMATION_METAGGA:
    cuestXCAdvancedComputeParametersApproximation_t =
    cuestXCAdvancedComputeParametersApproximation_t(2);
#[repr(transparent)]
#[doc = " @brief Specifies what local approximation is desired.\n @ingroup Enums\n\n This parameter changes the expected dimension of the density/potential arrays used for input/output:\n\n LDA dimension:      [ number of grid points, 1]\n GGA dimension:      [ number of grid points, 4]\n meta-GGA dimension: [ number of grid points, 5]\n\n For each row, LDA expects: \\f$ [ \\rho ] \\f$\n For each row, GGA expects: \\f$ [ \\rho, \\nabla_{x}\\rho, \\nabla_{y}\\rho, \\nabla_{z}\\rho ] \\f$\n For each row, meta-GGA expects: \\f$ [ \\rho, \\nabla_{x}\\rho, \\nabla_{y}\\rho, \\nabla_{z}\\rho, \\tau ] \\f$\n"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestXCAdvancedComputeParametersApproximation_t(pub ::core::ffi::c_uint);
#[doc = "< Cutoff for surface points' iSWIG switching function, below which the point is considered inactive.  \\b Default: 1e-12."]
pub const CUEST_PCMINTPLAN_PARAMETERS_CUTOFF: cuestPCMIntPlanParametersAttributes_t =
    cuestPCMIntPlanParametersAttributes_t(0);
#[doc = "< PCM prefactor \\f$ f = (\\epsilon - 1)/(\\epsilon + x) \\f$ , where \\f$ x==0.0 \\f$ gives CPCM and \\f$ x==1/2\\f$ corresponds to COSMO.  \\b Default: 0.0."]
pub const CUEST_PCMINTPLAN_PARAMETERS_X_PREFACTOR: cuestPCMIntPlanParametersAttributes_t =
    cuestPCMIntPlanParametersAttributes_t(1);
#[repr(transparent)]
#[doc = " @brief Properties supported for PCM integral plan parameters.\n @ingroup Enums\n\n - \\c CUEST_PCMINTPLAN_PARAMETERS_CUTOFF : double\n - \\c CUEST_PCMINTPLAN_PARAMETERS_X_PREFACTOR : double"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMIntPlanParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Convergence threshold (max absolute residual value) for PCM charges computation.  \\b Default: 1e-10."]
pub const CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS_CONVERGENCE_THRESHOLD:
    cuestPCMPotentialComputeParametersAttributes_t =
    cuestPCMPotentialComputeParametersAttributes_t(0);
#[doc = "< Maximum number of preconditioned conjugate gradient iterations for PCM charges computation.  \\b Default: 200."]
pub const CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS_MAX_ITERATIONS:
    cuestPCMPotentialComputeParametersAttributes_t =
    cuestPCMPotentialComputeParametersAttributes_t(1);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestPCMPotentialComputeParametersAttributes_t =
    cuestPCMPotentialComputeParametersAttributes_t(2);
#[doc = "< Parameter to control the use of JIT-compiled kernels. \\b Default: CUEST_JIT_USAGE_MODE_ON on CUDA 13.x+, CUEST_JIT_USAGE_MODE_OFF otherwise."]
pub const CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS_JIT_USAGE_MODE:
    cuestPCMPotentialComputeParametersAttributes_t =
    cuestPCMPotentialComputeParametersAttributes_t(3);
#[repr(transparent)]
#[doc = " @brief Properties supported for PCM potential compute parameters.\n @ingroup Enums\n\n - \\c CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS_CONVERGENCE_THRESHOLD : double\n - \\c CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS_MAX_ITERATIONS : uint64_t\n - \\c CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)\n - \\c CUEST_PCMPOTENTIALCOMPUTE_PARAMETERS_JIT_USAGE_MODE : cuestJITUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMPotentialComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Convergence threshold (max absolute residual value) for PCM charges computation.  \\b Default: 1e-10."]
pub const CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS_CONVERGENCE_THRESHOLD:
    cuestPCMDerivativeComputeParametersAttributes_t =
    cuestPCMDerivativeComputeParametersAttributes_t(0);
#[doc = "< Maximum number of preconditioned conjugate gradient iterations for PCM charges computation.  \\b Default: 200."]
pub const CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS_MAX_ITERATIONS:
    cuestPCMDerivativeComputeParametersAttributes_t =
    cuestPCMDerivativeComputeParametersAttributes_t(1);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestPCMDerivativeComputeParametersAttributes_t =
    cuestPCMDerivativeComputeParametersAttributes_t(2);
#[doc = "< Parameter to control the use of JIT-compiled kernels. \\b Default: CUEST_JIT_USAGE_MODE_ON on CUDA 13.x+, CUEST_JIT_USAGE_MODE_OFF otherwise."]
pub const CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS_JIT_USAGE_MODE:
    cuestPCMDerivativeComputeParametersAttributes_t =
    cuestPCMDerivativeComputeParametersAttributes_t(3);
#[repr(transparent)]
#[doc = " @brief Properties supported for PCM derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS_CONVERGENCE_THRESHOLD : double\n - \\c CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS_MAX_ITERATIONS : uint64_t\n - \\c CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)\n - \\c CUEST_PCMDERIVATIVECOMPUTE_PARAMETERS_JIT_USAGE_MODE : cuestJITUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Convergence threshold (max absolute residual value) for PCM charges computation.  \\b Default: 1e-10."]
pub const CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS_CONVERGENCE_THRESHOLD:
    cuestPCMRadiiDerivativeComputeParametersAttributes_t =
    cuestPCMRadiiDerivativeComputeParametersAttributes_t(0);
#[doc = "< Maximum number of preconditioned conjugate gradient iterations for PCM charges computation.  \\b Default: 200."]
pub const CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS_MAX_ITERATIONS:
    cuestPCMRadiiDerivativeComputeParametersAttributes_t =
    cuestPCMRadiiDerivativeComputeParametersAttributes_t(1);
#[doc = "< Parameter to control the use of ffloat compute. \\b Default: CUEST_FFLOAT_USAGE_MODE_DEFAULT."]
pub const CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE:
    cuestPCMRadiiDerivativeComputeParametersAttributes_t =
    cuestPCMRadiiDerivativeComputeParametersAttributes_t(2);
#[doc = "< Parameter to control the use of JIT-compiled kernels. \\b Default: CUEST_JIT_USAGE_MODE_ON on CUDA 13.x+, CUEST_JIT_USAGE_MODE_OFF otherwise."]
pub const CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS_JIT_USAGE_MODE:
    cuestPCMRadiiDerivativeComputeParametersAttributes_t =
    cuestPCMRadiiDerivativeComputeParametersAttributes_t(3);
#[repr(transparent)]
#[doc = " @brief Properties supported for PCM radii derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS_CONVERGENCE_THRESHOLD : double\n - \\c CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS_MAX_ITERATIONS : uint64_t\n - \\c CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS_FFLOAT_USAGE_MODE : cuestFfloatUsageMode_t (enum)\n - \\c CUEST_PCMRADIIDERIVATIVECOMPUTE_PARAMETERS_JIT_USAGE_MODE : cuestJITUsageMode_t (enum)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMRadiiDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_MULTIPOLECOMPUTE_PARAMETERS_NONE: cuestMultipoleComputeParametersAttributes_t =
    cuestMultipoleComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for multipole compute parameters.\n @ingroup Enums\n\n - \\c CUEST_MULTIPOLECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestMultipoleComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_MULTIPOLEDERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestMultipoleDerivativeComputeParametersAttributes_t =
    cuestMultipoleDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for multipole derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_MULTIPOLEDERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestMultipoleDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_ANGULARMOMENTUMCOMPUTE_PARAMETERS_NONE:
    cuestAngularMomentumComputeParametersAttributes_t =
    cuestAngularMomentumComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for angular momentum compute parameters.\n @ingroup Enums\n\n - \\c CUEST_ANGULARMOMENTUMCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAngularMomentumComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_ANGULARMOMENTUMDERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestAngularMomentumDerivativeComputeParametersAttributes_t =
    cuestAngularMomentumDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for angular momentum derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_ANGULARMOMENTUMDERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAngularMomentumDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< L_x = y d/dz - z d/dy"]
pub const CUEST_ANGULARMOMENTUMCOMPUTE_PARAMETERS_COMPONENT_LX:
    cuestAngularMomentumComputeParametersComponent_t =
    cuestAngularMomentumComputeParametersComponent_t(0);
#[doc = "< L_y = z d/dx - x d/dz"]
pub const CUEST_ANGULARMOMENTUMCOMPUTE_PARAMETERS_COMPONENT_LY:
    cuestAngularMomentumComputeParametersComponent_t =
    cuestAngularMomentumComputeParametersComponent_t(1);
#[doc = "< L_z = x d/dy - y d/dx"]
pub const CUEST_ANGULARMOMENTUMCOMPUTE_PARAMETERS_COMPONENT_LZ:
    cuestAngularMomentumComputeParametersComponent_t =
    cuestAngularMomentumComputeParametersComponent_t(2);
#[repr(transparent)]
#[doc = " @brief Specifies what angular momentum operator to evaluate\n @ingroup Enums\n"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestAngularMomentumComputeParametersComponent_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_NABLACOMPUTE_PARAMETERS_NONE: cuestNablaComputeParametersAttributes_t =
    cuestNablaComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for nabla compute parameters.\n @ingroup Enums\n\n - \\c CUEST_NABLACOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestNablaComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_NABLADERIVATIVECOMPUTE_PARAMETERS_NONE:
    cuestNablaDerivativeComputeParametersAttributes_t =
    cuestNablaDerivativeComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for nabla derivative compute parameters.\n @ingroup Enums\n\n - \\c CUEST_NABLADERIVATIVECOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestNablaDerivativeComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< \\nabla_x"]
pub const CUEST_NABLACOMPUTE_PARAMETERS_COMPONENT_X: cuestNablaComputeParametersComponent_t =
    cuestNablaComputeParametersComponent_t(0);
#[doc = "< \\nabla_y"]
pub const CUEST_NABLACOMPUTE_PARAMETERS_COMPONENT_Y: cuestNablaComputeParametersComponent_t =
    cuestNablaComputeParametersComponent_t(1);
#[doc = "< \\nabla_z"]
pub const CUEST_NABLACOMPUTE_PARAMETERS_COMPONENT_Z: cuestNablaComputeParametersComponent_t =
    cuestNablaComputeParametersComponent_t(2);
#[repr(transparent)]
#[doc = " @brief Specifies what nabla operator to evaluate\n @ingroup Enums\n"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestNablaComputeParametersComponent_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_PCMINTEGRATIONGRIDCOMPUTE_PARAMETERS_NONE:
    cuestPCMIntegrationGridComputeParametersAttributes_t =
    cuestPCMIntegrationGridComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for PCM integration grid compute parameters.\n @ingroup Enums\n\n - \\c CUEST_PCMINTEGRATIONGRIDCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMIntegrationGridComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_PCMINTEGRATIONWEIGHTCOMPUTE_PARAMETERS_NONE:
    cuestPCMIntegrationWeightComputeParametersAttributes_t =
    cuestPCMIntegrationWeightComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for PCM integration weight compute parameters.\n @ingroup Enums\n\n - \\c CUEST_PCMINTEGRATIONWEIGHTCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMIntegrationWeightComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = "< The value of the iSWIG switching function."]
pub const CUEST_PCMINTEGRATIONWEIGHT_PARAMETERS_WEIGHTTYPE_SWITCHING:
    cuestPCMIntegrationWeightComputeParametersWeightType_t =
    cuestPCMIntegrationWeightComputeParametersWeightType_t(0);
#[doc = "< The value of zeta."]
pub const CUEST_PCMINTEGRATIONWEIGHT_PARAMETERS_WEIGHTTYPE_ZETA:
    cuestPCMIntegrationWeightComputeParametersWeightType_t =
    cuestPCMIntegrationWeightComputeParametersWeightType_t(1);
#[repr(transparent)]
#[doc = " @brief Specifies which PCM integration weights to compute.\n @ingroup Enums"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMIntegrationWeightComputeParametersWeightType_t(pub ::core::ffi::c_uint);
#[doc = "< Reserved for future use."]
pub const CUEST_DFMOINTEGRALSCOMPUTE_PARAMETERS_NONE:
    cuestDFMOIntegralsComputeParametersAttributes_t =
    cuestDFMOIntegralsComputeParametersAttributes_t(0);
#[repr(transparent)]
#[doc = " @brief Properties supported for DF MO integral compute parameters.\n @ingroup Enums\n\n - \\c CUEST_DFMOINTEGRALSCOMPUTE_PARAMETERS_NONE : uint64_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestDFMOIntegralsComputeParametersAttributes_t(pub ::core::ffi::c_uint);
#[doc = " @brief A structure that stores pointers and sizes for host and device workspace memory.\n @ingroup Structs\n\n Each buffer must be appropriately allocated by the user before use.\n\n This struct is passed to cuEST object-creation APIs to provide necessary working memory.\n Buffers must outlive objects using them.\n All pointers may be set to 0/null if the corresponding buffer is not used."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cuestWorkspace_t {
    #[doc = "< Opaque pointer to host-side workspace buffer (cast to \\c uintptr_t for opaque handling)"]
    pub hostBuffer: usize,
    #[doc = "< Size of host workspace in bytes"]
    pub hostBufferSizeInBytes: usize,
    #[doc = "< Opaque pointer to device-side (GPU) workspace buffer (cast to \\c uintptr_t for opaque handling)"]
    pub deviceBuffer: usize,
    #[doc = "< Size of device workspace in bytes"]
    pub deviceBufferSizeInBytes: usize,
}
#[doc = " @brief A structure that specifies required sizes for host and device workspace buffers.\n @ingroup Structs\n\n Used as output from workspace query functions to communicate necessary allocation sizes.\n Does not include buffer pointers—only the size requirements.\n These sizes should be used by the client to allocate memory and populate a \\c cuestWorkspace_t\n before passing to object creation functions."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cuestWorkspaceDescriptor_t {
    #[doc = "< Required size of host workspace buffer in bytes"]
    pub hostBufferSizeInBytes: usize,
    #[doc = "< Required size of device workspace buffer in bytes"]
    pub deviceBufferSizeInBytes: usize,
}
#[doc = " @brief Opaque handle representing the results returned by cuEST compute routines.\n        See \\c cuestPCMResultAttributes_t for attributes that may be queried from this handle.\n @ingroup TypeDefs"]
pub type cuestPCMResults_t = *mut ::core::ffi::c_void;
#[doc = "< Alias for cuestPCMResults_t"]
pub const CUEST_PCM_RESULTS: cuestResultsType_t = cuestResultsType_t(0);
#[repr(transparent)]
#[doc = " @brief Provides unique identifiers for each of the opaque handles to result structures.\n @ingroup Enums\n"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestResultsType_t(pub ::core::ffi::c_uint);
#[doc = "< PCM dielectric energy"]
pub const CUEST_PCMRESULT_PCM_DIELECTRIC_ENERGY: cuestPCMResultAttributes_t =
    cuestPCMResultAttributes_t(0);
#[doc = "< Maximum absolute value of the residual at the last iteration"]
pub const CUEST_PCMRESULT_CONVERGED_RESIDUAL: cuestPCMResultAttributes_t =
    cuestPCMResultAttributes_t(1);
#[doc = "< Number of iterations taken to converge to the converged residual"]
pub const CUEST_PCMRESULT_NUM_ITERATIONS_TAKEN: cuestPCMResultAttributes_t =
    cuestPCMResultAttributes_t(2);
#[doc = "< Whether the PCM charges converged"]
pub const CUEST_PCMRESULT_CONVERGED: cuestPCMResultAttributes_t = cuestPCMResultAttributes_t(3);
#[repr(transparent)]
#[doc = " @brief List of attributes that may be queried from a cuEST PCM result object.\n @ingroup Enums\n\n For each attribute, the expected return type is given:\n\n - \\c CUEST_PCMRESULT_PCM_DIELECTRIC_ENERGY : double\n - \\c CUEST_PCMRESULT_CONVERGED_RESIDUAL :    double\n - \\c CUEST_PCMRESULT_NUM_ITERATIONS_TAKEN :  uint64_t\n - \\c CUEST_PCMRESULT_CONVERGED :             int32_t"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct cuestPCMResultAttributes_t(pub ::core::ffi::c_uint);