1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![allow(improper_ctypes)]
5
6#[cfg(bindings)]
7include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
8#[cfg(docs_rs)]
9include!("bindings.rs");
10
11use std::ptr;
12
13unsafe impl Send for vector {}
14impl Default for vector {
15 fn default() -> Self {
16 Self {
17 x: 0.,
18 y: 0.,
19 z: 0.,
20 }
21 }
22}
23impl From<[f64; 3]> for vector {
24 fn from(v: [f64; 3]) -> Self {
25 Self {
26 x: v[0],
27 y: v[1],
28 z: v[2],
29 }
30 }
31}
32unsafe impl Send for mask {}
33impl Default for mask {
34 fn default() -> Self {
35 Self {
36 m: ptr::null_mut(),
37 f: ptr::null_mut(),
38 idx: ptr::null_mut(),
39 size_px: [0; 2usize],
40 nel: 0,
41 nnz: 0f32,
42 size_m: [0f32; 2usize],
43 area: 0f32,
44 delta: [0f32; 2usize],
45 handle: ptr::null_mut(),
46 d__piston_mask: ptr::null_mut(),
47 }
48 }
49}
50unsafe impl Send for complex_amplitude {}
51impl Default for complex_amplitude {
52 fn default() -> Self {
53 Self {
54 N_PX: 0,
55 N: 0,
56 amplitude: ptr::null_mut(),
57 phase: ptr::null_mut(),
58 M: ptr::null_mut(),
59 handle: ptr::null_mut(),
60 buffer: ptr::null_mut(),
61 }
62 }
63}
64unsafe impl Send for bundle {}
65impl Default for bundle {
66 fn default() -> Self {
67 Self {
68 N_RAY: 0,
69 d__ray: ptr::null_mut(),
70 N_BUNDLE: 0,
71 N_RAY_TOTAL: 0,
72 d__origin: ptr::null_mut(),
73 rot_angle: 0.,
74 d__chief_ray: ptr::null_mut(),
75 d__chief_origin: ptr::null_mut(),
76 V: Default::default(),
77 geom: [0; 8usize],
78 N_RADIUS: 0,
79 N_THETA: 0,
80 N_L: 0,
81 L: 0.,
82 d__sphere_distance: ptr::null_mut(),
83 d__sphere_radius: ptr::null_mut(),
84 d__sphere_origin: ptr::null_mut(),
85 d__piston_mask: ptr::null_mut(),
86 refractive_index: 0.,
87 d__Vx: ptr::null_mut(),
88 d__Vy: ptr::null_mut(),
89 }
90 }
91}
92unsafe impl Send for source {}
93impl Default for source {
94 fn default() -> Self {
95 Self {
96 N_SRC: 0,
97 zenith: 0.,
98 azimuth: 0.,
99 height: 0.,
100 theta_x: 0.,
101 theta_y: 0.,
102 _zenith_64_: 0.,
103 _azimuth_64_: 0.,
104 _height_64_: 0.,
105 _theta_x_64_: 0.,
106 _theta_y_64_: 0.,
107 photometric_band: ptr::null(),
108 magnitude: 0.,
109 N_PHOTON: 0.,
110 fwhm: 0.,
111 wavefront: Default::default(),
112 dev_ptr: ptr::null_mut(),
113 tag: [0; 8usize],
114 rays_exist: 0,
115 rays: Default::default(),
116 }
117 }
118}
119unsafe impl Send for coordinate_system {}
120impl Default for coordinate_system {
121 fn default() -> Self {
122 Self {
123 origin: ptr::null_mut(),
124 euler_angles: ptr::null_mut(),
125 N: 0,
126 R: ptr::null_mut(),
127 d__R: ptr::null_mut(),
128 float_R: ptr::null_mut(),
129 d__origin: ptr::null_mut(),
130 tag: [0; 32usize],
131 }
132 }
133}
134unsafe impl Send for modes {}
135impl Default for modes {
136 fn default() -> Self {
137 Self {
138 d__x_BM: ptr::null_mut(),
139 d__y_BM: ptr::null_mut(),
140 d__BM: ptr::null_mut(),
141 d__BMS: ptr::null_mut(),
142 BM_radius: 0.,
143 BM_N_SAMPLE: 0,
144 d__BM_buffer: ptr::null_mut(),
145 n_mode: 0,
146 b: ptr::null_mut(),
147 d__b: ptr::null_mut(),
148 N: 0,
149 filename: [0; 256usize],
150 N_SET: 0,
151 N_MODE: 0,
152 d__s2b: ptr::null_mut(),
153 }
154 }
155}
156unsafe impl Send for gmt_m1 {}
157impl Default for gmt_m1 {
158 fn default() -> Self {
159 Self {
160 M_ID: 0,
161 D_assembly: 0.,
162 D_clear: 0.,
163 D_full: 0.,
164 ri: 0.,
165 beta: 0.,
166 L: 0.,
167 area0: 0.,
168 area_fraction: 0.,
169 area0_px: 0.,
170 area: 0.,
171 N: 0,
172 depth: 0.,
173 aperture_CS: Default::default(),
174 conic_CS: Default::default(),
175 conic_origin: [Default::default(); 7usize],
176 d__conic_origin: ptr::null_mut(),
177 conic_c: 0.,
178 conic_k: 0.,
179 d__conic_c: ptr::null_mut(),
180 d__conic_k: ptr::null_mut(),
181 rigid_body_CS: Default::default(),
182 motion_CS: Default::default(),
183 height: 0.,
184 V: ptr::null_mut(),
185 idx_offset: 0,
186 ZS: ptr::null_mut(),
187 d__piston_mask: ptr::null_mut(),
188 TT_CS: Default::default(),
189 d__C: ptr::null_mut(),
190 d__D: ptr::null_mut(),
191 handle: ptr::null_mut(),
192 d__valid_segments: ptr::null_mut(),
193 BS: Default::default(),
194 d__segment_reflectivity: ptr::null_mut(),
195 }
196 }
197}
198unsafe impl Send for gmt_m2 {}
199impl Default for gmt_m2 {
200 fn default() -> Self {
201 Self {
202 M_ID: 0,
203 D_assembly: 0.,
204 D_clear: 0.,
205 D_full: 0.,
206 ri: 0.,
207 beta: 0.,
208 L: 0.,
209 area0: 0.,
210 area_fraction: 0.,
211 area0_px: 0.,
212 area: 0.,
213 N: 0,
214 depth: 0.,
215 aperture_CS: Default::default(),
216 conic_CS: Default::default(),
217 conic_origin: [Default::default(); 7usize],
218 d__conic_origin: ptr::null_mut(),
219 conic_c: 0.,
220 conic_k: 0.,
221 d__conic_c: ptr::null_mut(),
222 d__conic_k: ptr::null_mut(),
223 rigid_body_CS: Default::default(),
224 motion_CS: Default::default(),
225 height: 0.,
226 V: ptr::null_mut(),
227 idx_offset: 0,
228 ZS: ptr::null_mut(),
229 d__piston_mask: ptr::null_mut(),
230 TT_CS: Default::default(),
231 d__C: ptr::null_mut(),
232 d__D: ptr::null_mut(),
233 handle: ptr::null_mut(),
234 d__valid_segments: ptr::null_mut(),
235 BS: Default::default(),
236 d__segment_reflectivity: ptr::null_mut(),
237 }
238 }
239}
240unsafe impl Send for geometricShackHartmann {}
241impl Default for geometricShackHartmann {
242 fn default() -> Self {
243 Self {
244 N_WFS: 0,
245 N_SIDE_LENSLET: 0,
246 N_LENSLET: 0,
247 N_ACTUATOR: 0,
248 N_SLOPE: 0,
249 d__c0: ptr::null_mut(),
250 d__cx0: ptr::null_mut(),
251 d__cy0: ptr::null_mut(),
252 valid_lenslet: Default::default(),
253 valid_actuator: Default::default(),
254 camera: Default::default(),
255 data_proc: Default::default(),
256 DFT_osf: 0,
257 lenslet_pitch: 0f32,
258 pixel_scale: 0f32,
259 intensity_threshold: 0f32,
260 slopes_gain: 0f32,
261 _d__c_: ptr::null_mut(),
262 _d__cx_: ptr::null_mut(),
263 _d__cy_: ptr::null_mut(),
264 N_FRAME: 0,
265 handle: ptr::null_mut(),
266 }
267 }
268}
269unsafe impl Send for shackHartmann {}
270impl Default for shackHartmann {
271 fn default() -> Self {
272 Self {
273 N_WFS: 0,
274 N_SIDE_LENSLET: 0,
275 N_LENSLET: 0,
276 N_ACTUATOR: 0,
277 N_SLOPE: 0,
278 d__c0: ptr::null_mut(),
279 d__cx0: ptr::null_mut(),
280 d__cy0: ptr::null_mut(),
281 valid_lenslet: Default::default(),
282 valid_actuator: Default::default(),
283 camera: Default::default(),
284 data_proc: Default::default(),
285 DFT_osf: 0,
286 lenslet_pitch: 0f32,
287 pixel_scale: 0f32,
288 intensity_threshold: 0f32,
289 slopes_gain: 0f32,
290 }
291 }
292}
293unsafe impl Send for profile {}
294impl Default for profile {
295 fn default() -> Self {
296 Self {
297 L0: 0f32,
298 l0: 0f32,
299 L: 0f32,
300 f: 0f32,
301 delta: 0f32,
302 N_k: 0f32,
303 N_a: 0f32,
304 kmin: 0f32,
305 altitude: ptr::null_mut(),
306 xi0: ptr::null_mut(),
307 wind_speed: ptr::null_mut(),
308 wind_direction: ptr::null_mut(),
309 }
310 }
311}
312unsafe impl Send for atmosphere {}
313impl Default for atmosphere {
314 fn default() -> Self {
315 Self {
316 photometric_band: ptr::null_mut(),
317 wavelength: 0f32,
318 r0: 0f32,
319 wavenumber: 0f32,
320 N_LAYER: 0,
321 field_size: 0f32,
322 layers_OSF: 0,
323 layers_duration: 0f32,
324 layers_tau0: 0f32,
325 W: 0f32,
326 N_W: 0,
327 phase_screen_LAYER: ptr::null_mut(),
328 N_DURATION: 0,
329 LOCAL_RAND_SEED: 0,
330 ID: 0,
331 EPH: 0f32,
332 d__phase_screen_LAYER: ptr::null_mut(),
333 N_PHASE_LAYER: 0,
334 mmap_size: 0,
335 zeta1: ptr::null_mut(),
336 eta1: ptr::null_mut(),
337 zeta2: ptr::null_mut(),
338 eta2: ptr::null_mut(),
339 devStates: ptr::null_mut(),
340 turbulence: Default::default(),
341 d__turbulence: ptr::null_mut(),
342 layers: ptr::null_mut(),
343 d__layers: ptr::null_mut(),
344 }
345 }
346}
347unsafe impl Send for imaging {}
348impl Default for imaging {
349 fn default() -> Self {
350 Self {
351 N_PX_PUPIL: 0,
352 N_DFT: 0,
353 N_SIDE_LENSLET: 0,
354 N_LENSLET: 0,
355 N_SOURCE: 0,
356 N_PX_IMAGE: 0,
357 N_PX_CAMERA: 0,
358 N_FRAME: 0,
359 BIN_IMAGE: 0,
360 LOCAL_RAND_SEED: 0,
361 plan: 0,
362 N_PHOTON_PER_SECOND_PER_FRAME: 0f32,
363 N_PHOTON_PER_FRAME: 0f32,
364 d__wave_PUPIL: ptr::null_mut(),
365 d__frame: ptr::null_mut(),
366 zenith: 0f32,
367 azimuth: 0f32,
368 theta_x: 0f32,
369 theta_y: 0f32,
370 d__zenith: ptr::null_mut(),
371 d__azimuth: ptr::null_mut(),
372 d__theta_x: ptr::null_mut(),
373 d__theta_y: ptr::null_mut(),
374 pixel_scale: 0f32,
375 photoelectron_gain: 0f32,
376 absolute_pointing: 0,
377 devStates: ptr::null_mut(),
378 }
379 }
380}
381unsafe impl Send for stopwatch {}
382impl Default for stopwatch {
383 fn default() -> Self {
384 Self {
385 elapsedTime: 0f32,
386 start: ptr::null_mut(),
387 stop: ptr::null_mut(),
388 }
389 }
390}
391unsafe impl Send for aaStats {}
392impl Default for aaStats {
393 fn default() -> Self {
394 Self {
395 N: 0,
396 N2: 0,
397 NU: 0,
398 NU2: 0,
399 NF: 0,
400 NF2: 0,
401 psd_size: 0,
402 cov_size: 0,
403 ind_size: 0,
404 d__psd: ptr::null_mut(),
405 d__cov: ptr::null_mut(),
406 d__alpha: ptr::null_mut(),
407 d__beta: ptr::null_mut(),
408 n_full: 0f32,
409 n_comp: 0f32,
410 b_full: 0f32,
411 b_comp: 0f32,
412 cov_eval_et: 0f32,
413 sampling: 0f32,
414 plan: 0,
415 N_SRC2: 0,
416 }
417 }
418}
419unsafe impl Send for paStats {}
420impl Default for paStats {
421 fn default() -> Self {
422 Self {
423 osf: 0,
424 M: 0,
425 shift: 0,
426 M_LAYER: ptr::null_mut(),
427 N: 0,
428 N2: 0,
429 NU: 0,
430 NU2: 0,
431 NF: 0,
432 NF2: 0,
433 psd_size: 0,
434 cov_size: 0,
435 ind_size: 0,
436 d__psd: ptr::null_mut(),
437 d__cov: ptr::null_mut(),
438 d__alpha: ptr::null_mut(),
439 d__beta: ptr::null_mut(),
440 n_full: 0f32,
441 n_comp: 0f32,
442 b_full: 0f32,
443 b_comp: 0f32,
444 cov_eval_et: 0f32,
445 sampling: 0f32,
446 plan: 0,
447 N_SRC2: 0,
448 }
449 }
450}
451unsafe impl Send for BTBT {}
452impl Default for BTBT {
453 fn default() -> Self {
454 Self {
455 M: 0,
456 N: 0,
457 MT: 0,
458 MT2: 0,
459 NT: 0,
460 NT2: 0,
461 NU: 0,
462 NU2: 0,
463 NDFT: 0,
464 HALF_NDFT: 0,
465 NU_TOTAL: 0,
466 NF: 0,
467 NF2: 0,
468 ind_size: 0,
469 cov_size: 0,
470 mask: ptr::null_mut(),
471 d__cov: ptr::null_mut(),
472 d__b: ptr::null_mut(),
473 d__c: ptr::null_mut(),
474 d__alpha: ptr::null_mut(),
475 d__beta: ptr::null_mut(),
476 n_full: 0f32,
477 n_comp: 0f32,
478 b_full: 0f32,
479 b_comp: 0f32,
480 cov_eval_et: 0f32,
481 d__mu: ptr::null_mut(),
482 d__xi: ptr::null_mut(),
483 raster_plan: 0,
484 MVM_input_plan: 0,
485 MVM_output_plan: 0,
486 }
487 }
488}
489unsafe impl Send for GBTBT {}
490impl Default for GBTBT {
491 fn default() -> Self {
492 Self {
493 M: 0,
494 N: 0,
495 NT: 0,
496 NT2: 0,
497 NDFT: 0,
498 HALF_NDFT: 0,
499 NU_TOTAL: 0,
500 NF: 0,
501 NF2: 0,
502 ind_size: 0,
503 cov_size: 0,
504 MT2_TOTAL: 0,
505 MT_size: 0,
506 MAX_MT: 0,
507 MT: ptr::null_mut(),
508 MT2: ptr::null_mut(),
509 NU: ptr::null_mut(),
510 NU2: ptr::null_mut(),
511 CS_MT2: ptr::null_mut(),
512 d__MT: ptr::null_mut(),
513 d__MT2: ptr::null_mut(),
514 d__NU: ptr::null_mut(),
515 d__NU2: ptr::null_mut(),
516 d__CS_MT2: ptr::null_mut(),
517 mask: ptr::null_mut(),
518 d__cov: ptr::null_mut(),
519 d__b: ptr::null_mut(),
520 d__c: ptr::null_mut(),
521 d__alpha: ptr::null_mut(),
522 d__beta: ptr::null_mut(),
523 n_full: 0f32,
524 n_comp: 0f32,
525 b_full: 0f32,
526 b_comp: 0f32,
527 cov_eval_et: 0f32,
528 d__mu: ptr::null_mut(),
529 d__xi: ptr::null_mut(),
530 raster_plan: 0,
531 MVM_input_plan: 0,
532 MVM_output_plan: 0,
533 }
534 }
535}
536unsafe impl Send for iterativeSolvers {}
537impl Default for iterativeSolvers {
538 fn default() -> Self {
539 Self {
540 d__vectors: ptr::null_mut(),
541 q: ptr::null_mut(),
542 x: ptr::null_mut(),
543 r: ptr::null_mut(),
544 p: ptr::null_mut(),
545 z: ptr::null_mut(),
546 nu_i: ptr::null_mut(),
547 nu_im1: ptr::null_mut(),
548 nu_ip1: ptr::null_mut(),
549 w_i: ptr::null_mut(),
550 w_im1: ptr::null_mut(),
551 w_im2: ptr::null_mut(),
552 rnorm: 0f32,
553 rel_rnorm: 0f32,
554 mean_time_per_iteration: 0f32,
555 RTOL: 0f32,
556 ATOL: 0f32,
557 N: 0,
558 N_ITERATION: 0,
559 cvgce_iteration: 0,
560 tid: Default::default(),
561 handle: ptr::null_mut(),
562 status: 0,
563 VERBOSE: 0,
564 }
565 }
566}
567unsafe impl Send for LMMSE {}
568impl Default for LMMSE {
569 fn default() -> Self {
570 Self {
571 d__idx: ptr::null_mut(),
572 PS_E_N_PX: 0,
573 N_guide_star: 0,
574 N_mmse_star: 0,
575 offset: 0,
576 N_SIDE_LENSLET_: 0,
577 NP: 0,
578 NS: 0,
579 osf: 0,
580 d__ce: ptr::null_mut(),
581 d__phase_est: ptr::null_mut(),
582 d__phase_est_c: ptr::null_mut(),
583 d__phase_est_i: ptr::null_mut(),
584 d__x: ptr::null_mut(),
585 d__zp_x: ptr::null_mut(),
586 aa: Default::default(),
587 aaCov: Default::default(),
588 pa: Default::default(),
589 paCov: Default::default(),
590 iSolve: Default::default(),
591 tid: Default::default(),
592 nnz: 0,
593 NI: 0,
594 csrValH: ptr::null_mut(),
595 csrColIndH: ptr::null_mut(),
596 csrRowPtrH: ptr::null_mut(),
597 alpha: 0f32,
598 beta: 0f32,
599 elapsed_time: 0f32,
600 cudaStat: 0,
601 status: 0,
602 handle: ptr::null_mut(),
603 descr: ptr::null_mut(),
604 start: ptr::null_mut(),
605 stop: ptr::null_mut(),
606 }
607 }
608}
609unsafe impl Send for centroiding {}
610impl Default for centroiding {
611 fn default() -> Self {
612 Self {
613 _N_SIDE_LENSLET_: 0,
614 N_LENSLET: 0,
615 N_SOURCE: 0,
616 d__c: ptr::null_mut(),
617 d__cx: ptr::null_mut(),
618 d__cy: ptr::null_mut(),
619 d__mass: ptr::null_mut(),
620 lenslet_mask: ptr::null_mut(),
621 MASK_SET: 0,
622 n_data: 0,
623 DEV_SHARED_MEM: 0,
624 DEV_MAX_THREADS: 0,
625 handle: ptr::null_mut(),
626 status: 0,
627 }
628 }
629}
630unsafe impl Send for pssn {}
631impl Default for pssn {
632 fn default() -> Self {
633 Self {
634 N_O: 0,
635 N_O0: 0,
636 n_byte: 0,
637 d__O: ptr::null_mut(),
638 d__O0: ptr::null_mut(),
639 buffer: ptr::null_mut(),
640 d__C: ptr::null_mut(),
641 N_PX: 0,
642 N: 0,
643 d__W: ptr::null_mut(),
644 N_OTF: 0,
645 N_OTF2: 0,
646 NN: 0,
647 plan: 0,
648 handle: ptr::null_mut(),
649 num: 0f32,
650 denom: ptr::null_mut(),
651 }
652 }
653}
654unsafe impl Send for stats {}
655impl Default for stats {
656 fn default() -> Self {
657 Self {
658 handle: ptr::null_mut(),
659 status: 0,
660 }
661 }
662}
663unsafe impl Send for gpu_double {}
664unsafe impl Sync for gpu_double {}
665impl Default for gpu_double {
666 fn default() -> Self {
667 Self {
668 dev_data: ptr::null_mut(),
669 host_data: ptr::null_mut(),
670 N: 0,
671 nb: 0,
672 S: Default::default(),
673 stat: 0,
674 handle: ptr::null_mut(),
675 cusolverH: ptr::null_mut(),
676 }
677 }
678}
679unsafe impl Send for gpu_int {}
680unsafe impl Sync for gpu_int {}
681impl Default for gpu_int {
682 fn default() -> Self {
683 Self {
684 dev_data: ptr::null_mut(),
685 host_data: ptr::null_mut(),
686 N: 0,
687 nb: 0,
688 S: Default::default(),
689 stat: 0,
690 handle: ptr::null_mut(),
691 cusolverH: ptr::null_mut(),
692 }
693 }
694}
695unsafe impl Send for gpu_float {}
696unsafe impl Sync for gpu_float {}
697
698impl Default for gpu_float {
699 fn default() -> Self {
700 Self {
701 dev_data: ptr::null_mut(),
702 host_data: ptr::null_mut(),
703 d_tau: ptr::null_mut(),
704 N: 0,
705 nb: 0,
706 S: Default::default(),
707 stat: 0,
708 handle: ptr::null_mut(),
709 cusolverH: ptr::null_mut(),
710 }
711 }
712}
713unsafe impl Send for conic {}
714impl Default for conic {
715 fn default() -> Self {
716 Self {
717 ref_frame: Default::default(),
718 origin: Default::default(),
719 d__origin: ptr::null_mut(),
720 c: 0f64,
721 k: 0f64,
722 refractive_index: 0f64,
723 even_asphere_N: 0,
724 d__even_asphere_a: ptr::null_mut(),
725 }
726 }
727}
728
729unsafe impl Send for pyramid {}
730impl Default for pyramid {
731 fn default() -> Self {
732 Self {
733 N_PX_LENSLET: 0,
734 N_SIDE_LENSLET: 0,
735 modulation: 0f32,
736 modulation_sampling: 0,
737 camera: imaging::default(),
738 alpha: 0f32,
739 }
740 }
741}
742
743unsafe impl Send for segmentPistonSensor {}
744impl Default for segmentPistonSensor {
745 fn default() -> Self {
746 Self {
747 ri: Default::default(),
748 ro: Default::default(),
749 lenslet_height: Default::default(),
750 lenslet_size: Default::default(),
751 lenslet: Default::default(),
752 lenslet_mask: Default::default(),
753 lenslet_src: Default::default(),
754 dispersion: Default::default(),
755 N_LAMBDA: Default::default(),
756 N_GS: Default::default(),
757 pixel_scale: Default::default(),
758 field_of_view: Default::default(),
759 camera: Default::default(),
760 camera_array: ptr::null_mut(),
761 nyquist_factor: Default::default(),
762 BIN_IMAGE: Default::default(),
763 N_PX_LENSLET: Default::default(),
764 N_PX_LENSLET2: Default::default(),
765 N_PX: Default::default(),
766 N_PX2: Default::default(),
767 N_PX_IMAGE: Default::default(),
768 N_LENSLET: Default::default(),
769 N_LENSLET2: Default::default(),
770 FFT: Default::default(),
771 fft_src: Default::default(),
772 fft_phase: ptr::null_mut(),
773 fft_mask: Default::default(),
774 D_px: Default::default(),
775 D_px2: Default::default(),
776 m2px: Default::default(),
777 R: Default::default(),
778 lambda0: Default::default(),
779 spectral_bandwidth: Default::default(),
780 }
781 }
782}
783
784impl std::fmt::Display for gmt_m1 {
785 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
786 write!(f, "M1")
787 }
788}
789impl std::fmt::Display for gmt_m2 {
790 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
791 write!(f, "M2")
792 }
793}