NEON/TypeCasting.h
Go to the documentation of this file.
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2018 Rasmus Munk Larsen <rmlarsen@google.com>
5 // Copyright (C) 2020 Antonio Sanchez <cantonios@google.com>
6 //
7 // This Source Code Form is subject to the terms of the Mozilla
8 // Public License v. 2.0. If a copy of the MPL was not distributed
9 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 
11 #ifndef EIGEN_TYPE_CASTING_NEON_H
12 #define EIGEN_TYPE_CASTING_NEON_H
13 
14 namespace Eigen {
15 
16 namespace internal {
17 
18 //==============================================================================
19 // pcast, SrcType = float
20 //==============================================================================
21 template <>
23  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 };
24 };
25 template <>
27  return a;
28 }
29 template <>
31  return a;
32 }
33 
34 template <>
35 struct type_casting_traits<float, numext::int64_t> {
36  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 2 };
37 };
38 template <>
40  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 2 };
41 };
42 // If float64 exists, first convert to that to keep as much precision as possible.
43 #if EIGEN_ARCH_ARM64
44 template <>
46  // Discard second half of input.
47  return vcvtq_s64_f64(vcvt_f64_f32(vget_low_f32(a)));
48 }
49 template <>
51  // Discard second half of input.
52  return vcvtq_u64_f64(vcvt_f64_f32(vget_low_f32(a)));
53 }
54 #else
55 template <>
57  // Discard second half of input.
58  return vmovl_s32(vget_low_s32(vcvtq_s32_f32(a)));
59 }
60 template <>
62  // Discard second half of input.
63  return vmovl_u32(vget_low_u32(vcvtq_u32_f32(a)));
64 }
65 #endif // EIGEN_ARCH_ARM64
66 
67 template <>
68 struct type_casting_traits<float, numext::int32_t> {
69  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 };
70 };
71 template <>
73  return vcvtq_s32_f32(a);
74 }
75 template <>
77  return vcvt_s32_f32(a);
78 }
79 
80 template <>
82  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 };
83 };
84 template <>
86  return vcvtq_u32_f32(a);
87 }
88 template <>
90  return vcvt_u32_f32(a);
91 }
92 
93 template <>
94 struct type_casting_traits<float, numext::int16_t> {
95  enum { VectorizedCast = 1, SrcCoeffRatio = 2, TgtCoeffRatio = 1 };
96 };
97 template <>
99  return vcombine_s16(vmovn_s32(vcvtq_s32_f32(a)), vmovn_s32(vcvtq_s32_f32(b)));
100 }
101 template <>
103  return vmovn_s32(vcombine_s32(vcvt_s32_f32(a), vcvt_s32_f32(b)));
104 }
105 
106 template <>
109 };
110 template <>
112  return vcombine_u16(vmovn_u32(vcvtq_u32_f32(a)), vmovn_u32(vcvtq_u32_f32(b)));
113 }
114 template <>
116  return vmovn_u32(vcombine_u32(vcvt_u32_f32(a), vcvt_u32_f32(b)));
117 }
118 
119 template <>
120 struct type_casting_traits<float, numext::int8_t> {
122 };
123 template <>
125  const Packet4f& d) {
126  const int16x8_t ab_s16 = pcast<Packet4f, Packet8s>(a, b);
127  const int16x8_t cd_s16 = pcast<Packet4f, Packet8s>(c, d);
128  return vcombine_s8(vmovn_s16(ab_s16), vmovn_s16(cd_s16));
129 }
130 template <>
132  const Packet2f& d) {
133  const int16x4_t ab_s16 = pcast<Packet2f, Packet4s>(a, b);
134  const int16x4_t cd_s16 = pcast<Packet2f, Packet4s>(c, d);
135  return vmovn_s16(vcombine_s16(ab_s16, cd_s16));
136 }
137 
138 template <>
141 };
142 template <>
144  const Packet4f& d) {
145  const uint16x8_t ab_u16 = pcast<Packet4f, Packet8us>(a, b);
146  const uint16x8_t cd_u16 = pcast<Packet4f, Packet8us>(c, d);
147  return vcombine_u8(vmovn_u16(ab_u16), vmovn_u16(cd_u16));
148 }
149 template <>
151  const Packet2f& d) {
152  const uint16x4_t ab_u16 = pcast<Packet2f, Packet4us>(a, b);
153  const uint16x4_t cd_u16 = pcast<Packet2f, Packet4us>(c, d);
154  return vmovn_u16(vcombine_u16(ab_u16, cd_u16));
155 }
156 
157 //==============================================================================
158 // pcast, SrcType = int8_t
159 //==============================================================================
160 template <>
161 struct type_casting_traits<numext::int8_t, float> {
163 };
164 template <>
166  // Discard all but first 4 bytes.
167  return vcvtq_f32_s32(vmovl_s16(vget_low_s16(vmovl_s8(vget_low_s8(a)))));
168 }
169 template <>
171  // Discard all but first 2 bytes.
172  return vcvt_f32_s32(vget_low_s32(vmovl_s16(vget_low_s16(vmovl_s8(a)))));
173 }
174 
175 template <>
178 };
179 template <>
181  // Discard all but first two bytes.
182  return vmovl_s32(vget_low_s32(vmovl_s16(vget_low_s16(vmovl_s8(vget_low_s8(a))))));
183 }
184 
185 template <>
188 };
189 template <>
191  return vreinterpretq_u64_s64(pcast<Packet16c, Packet2l>(a));
192 }
193 
194 template <>
197 };
198 template <>
200  // Discard all but first 4 bytes.
201  return vmovl_s16(vget_low_s16(vmovl_s8(vget_low_s8(a))));
202 }
203 template <>
205  // Discard all but first 2 bytes.
206  return vget_low_s32(vmovl_s16(vget_low_s16(vmovl_s8(a))));
207 }
208 
209 template <>
212 };
213 template <>
215  return vreinterpretq_u32_s32(pcast<Packet16c, Packet4i>(a));
216 }
217 template <>
219  return vreinterpret_u32_s32(pcast<Packet8c, Packet2i>(a));
220 }
221 
222 template <>
225 };
226 template <>
228  // Discard second half of input.
229  return vmovl_s8(vget_low_s8(a));
230 }
231 template <>
233  // Discard second half of input.
234  return vget_low_s16(vmovl_s8(a));
235 }
236 
237 template <>
240 };
241 template <>
243  return vreinterpretq_u16_s16(pcast<Packet16c, Packet8s>(a));
244 }
245 template <>
247  return vreinterpret_u16_s16(pcast<Packet8c, Packet4s>(a));
248 }
249 
250 template <>
253 };
254 template <>
256  return a;
257 }
258 template <>
260  return a;
261 }
262 template <>
264  return a;
265 }
266 
267 template <>
270 };
271 template <>
273  return vreinterpretq_u8_s8(a);
274 }
275 template <>
277  return vreinterpret_u8_s8(a);
278 }
279 template <>
281  return static_cast<Packet4uc>(a);
282 }
283 
284 //==============================================================================
285 // pcast, SrcType = uint8_t
286 //==============================================================================
287 template <>
290 };
291 template <>
293  // Discard all but first 4 bytes.
294  return vcvtq_f32_u32(vmovl_u16(vget_low_u16(vmovl_u8(vget_low_u8(a)))));
295 }
296 template <>
298  // Discard all but first 2 bytes.
299  return vcvt_f32_u32(vget_low_u32(vmovl_u16(vget_low_u16(vmovl_u8(a)))));
300 }
301 
302 template <>
305 };
306 template <>
308  // Discard all but first two bytes.
309  return vmovl_u32(vget_low_u32(vmovl_u16(vget_low_u16(vmovl_u8(vget_low_u8(a))))));
310 }
311 
312 template <>
315 };
316 template <>
318  return vreinterpretq_s64_u64(pcast<Packet16uc, Packet2ul>(a));
319 }
320 
321 template <>
324 };
325 template <>
327  // Discard all but first 4 bytes.
328  return vmovl_u16(vget_low_u16(vmovl_u8(vget_low_u8(a))));
329 }
330 template <>
332  // Discard all but first 2 bytes.
333  return vget_low_u32(vmovl_u16(vget_low_u16(vmovl_u8(a))));
334 }
335 
336 template <>
339 };
340 template <>
342  return vreinterpretq_s32_u32(pcast<Packet16uc, Packet4ui>(a));
343 }
344 template <>
346  return vreinterpret_s32_u32(pcast<Packet8uc, Packet2ui>(a));
347 }
348 
349 template <>
352 };
353 template <>
355  // Discard second half of input.
356  return vmovl_u8(vget_low_u8(a));
357 }
358 template <>
360  // Discard second half of input.
361  return vget_low_u16(vmovl_u8(a));
362 }
363 
364 template <>
367 };
368 template <>
370  return vreinterpretq_s16_u16(pcast<Packet16uc, Packet8us>(a));
371 }
372 template <>
374  return vreinterpret_s16_u16(pcast<Packet8uc, Packet4us>(a));
375 }
376 
377 template <>
380 };
381 template <>
383  return a;
384 }
385 template <>
387  return a;
388 }
389 template <>
391  return a;
392 }
393 
394 template <>
397 };
398 template <>
400  return vreinterpretq_s8_u8(a);
401 }
402 template <>
404  return vreinterpret_s8_u8(a);
405 }
406 template <>
408  return static_cast<Packet4c>(a);
409 }
410 
411 //==============================================================================
412 // pcast, SrcType = int16_t
413 //==============================================================================
414 template <>
417 };
418 template <>
420  // Discard second half of input.
421  return vcvtq_f32_s32(vmovl_s16(vget_low_s16(a)));
422 }
423 template <>
425  // Discard second half of input.
426  return vcvt_f32_s32(vget_low_s32(vmovl_s16(a)));
427 }
428 
429 template <>
432 };
433 template <>
435  // Discard all but first two values.
436  return vmovl_s32(vget_low_s32(vmovl_s16(vget_low_s16(a))));
437 }
438 
439 template <>
442 };
443 template <>
445  return vreinterpretq_u64_s64(pcast<Packet8s, Packet2l>(a));
446 }
447 
448 template <>
451 };
452 template <>
454  // Discard second half of input.
455  return vmovl_s16(vget_low_s16(a));
456 }
457 template <>
459  // Discard second half of input.
460  return vget_low_s32(vmovl_s16(a));
461 }
462 
463 template <>
466 };
467 template <>
469  return vreinterpretq_u32_s32(pcast<Packet8s, Packet4i>(a));
470 }
471 template <>
473  return vreinterpret_u32_s32(pcast<Packet4s, Packet2i>(a));
474 }
475 
476 template <>
479 };
480 template <>
482  return a;
483 }
484 template <>
486  return a;
487 }
488 
489 template <>
492 };
493 template <>
495  return vreinterpretq_u16_s16(a);
496 }
497 template <>
499  return vreinterpret_u16_s16(a);
500 }
501 
502 template <>
505 };
506 template <>
508  return vcombine_s8(vmovn_s16(a), vmovn_s16(b));
509 }
510 template <>
512  return vmovn_s16(vcombine_s16(a, b));
513 }
514 
515 template <>
518 };
519 template <>
521  return vcombine_u8(vmovn_u16(vreinterpretq_u16_s16(a)), vmovn_u16(vreinterpretq_u16_s16(b)));
522 }
523 template <>
525  return vmovn_u16(vcombine_u16(vreinterpret_u16_s16(a), vreinterpret_u16_s16(b)));
526 }
527 
528 //==============================================================================
529 // pcast, SrcType = uint16_t
530 //==============================================================================
531 template <>
534 };
535 template <>
537  // Discard second half of input.
538  return vcvtq_f32_u32(vmovl_u16(vget_low_u16(a)));
539 }
540 template <>
542  // Discard second half of input.
543  return vcvt_f32_u32(vget_low_u32(vmovl_u16(a)));
544 }
545 
546 template <>
549 };
550 template <>
552  // Discard all but first two values.
553  return vmovl_u32(vget_low_u32(vmovl_u16(vget_low_u16(a))));
554 }
555 
556 template <>
559 };
560 template <>
562  return vreinterpretq_s64_u64(pcast<Packet8us, Packet2ul>(a));
563 }
564 
565 template <>
568 };
569 template <>
571  // Discard second half of input.
572  return vmovl_u16(vget_low_u16(a));
573 }
574 template <>
576  // Discard second half of input.
577  return vget_low_u32(vmovl_u16(a));
578 }
579 
580 template <>
583 };
584 template <>
586  return vreinterpretq_s32_u32(pcast<Packet8us, Packet4ui>(a));
587 }
588 template <>
590  return vreinterpret_s32_u32(pcast<Packet4us, Packet2ui>(a));
591 }
592 
593 template <>
596 };
597 template <>
599  return a;
600 }
601 template <>
603  return a;
604 }
605 
606 template <>
609 };
610 template <>
612  return vreinterpretq_s16_u16(a);
613 }
614 template <>
616  return vreinterpret_s16_u16(a);
617 }
618 
619 template <>
622 };
623 template <>
625  return vcombine_u8(vmovn_u16(a), vmovn_u16(b));
626 }
627 template <>
629  return vmovn_u16(vcombine_u16(a, b));
630 }
631 
632 template <>
635 };
636 template <>
638  return vreinterpretq_s8_u8(pcast<Packet8us, Packet16uc>(a, b));
639 }
640 template <>
642  return vreinterpret_s8_u8(pcast<Packet4us, Packet8uc>(a, b));
643 }
644 
645 //==============================================================================
646 // pcast, SrcType = int32_t
647 //==============================================================================
648 template <>
651 };
652 template <>
654  return vcvtq_f32_s32(a);
655 }
656 template <>
658  return vcvt_f32_s32(a);
659 }
660 
661 template <>
664 };
665 template <>
667  // Discard second half of input.
668  return vmovl_s32(vget_low_s32(a));
669 }
670 
671 template <>
674 };
675 template <>
677  return vreinterpretq_u64_s64(pcast<Packet4i, Packet2l>(a));
678 }
679 
680 template <>
683 };
684 template <>
686  return a;
687 }
688 template <>
690  return a;
691 }
692 
693 template <>
696 };
697 template <>
699  return vreinterpretq_u32_s32(a);
700 }
701 template <>
703  return vreinterpret_u32_s32(a);
704 }
705 
706 template <>
709 };
710 template <>
712  return vcombine_s16(vmovn_s32(a), vmovn_s32(b));
713 }
714 template <>
716  return vmovn_s32(vcombine_s32(a, b));
717 }
718 
719 template <>
722 };
723 template <>
725  return vcombine_u16(vmovn_u32(vreinterpretq_u32_s32(a)), vmovn_u32(vreinterpretq_u32_s32(b)));
726 }
727 template <>
729  return vmovn_u32(vreinterpretq_u32_s32(vcombine_s32(a, b)));
730 }
731 
732 template <>
735 };
736 template <>
738  const Packet4i& d) {
739  const int16x8_t ab_s16 = pcast<Packet4i, Packet8s>(a, b);
740  const int16x8_t cd_s16 = pcast<Packet4i, Packet8s>(c, d);
741  return vcombine_s8(vmovn_s16(ab_s16), vmovn_s16(cd_s16));
742 }
743 template <>
745  const Packet2i& d) {
746  const int16x4_t ab_s16 = vmovn_s32(vcombine_s32(a, b));
747  const int16x4_t cd_s16 = vmovn_s32(vcombine_s32(c, d));
748  return vmovn_s16(vcombine_s16(ab_s16, cd_s16));
749 }
750 
751 template <>
754 };
755 template <>
757  const Packet4i& d) {
758  const uint16x8_t ab_u16 = pcast<Packet4i, Packet8us>(a, b);
759  const uint16x8_t cd_u16 = pcast<Packet4i, Packet8us>(c, d);
760  return vcombine_u8(vmovn_u16(ab_u16), vmovn_u16(cd_u16));
761 }
762 template <>
764  const Packet2i& d) {
765  const uint16x4_t ab_u16 = pcast<Packet2i, Packet4us>(a, b);
766  const uint16x4_t cd_u16 = pcast<Packet2i, Packet4us>(c, d);
767  return vmovn_u16(vcombine_u16(ab_u16, cd_u16));
768 }
769 
770 //==============================================================================
771 // pcast, SrcType = uint32_t
772 //==============================================================================
773 template <>
776 };
777 template <>
779  return vcvtq_f32_u32(a);
780 }
781 template <>
783  return vcvt_f32_u32(a);
784 }
785 
786 template <>
789 };
790 template <>
792  // Discard second half of input.
793  return vmovl_u32(vget_low_u32(a));
794 }
795 
796 template <>
799 };
800 template <>
802  return vreinterpretq_s64_u64(pcast<Packet4ui, Packet2ul>(a));
803 }
804 
805 template <>
808 };
809 template <>
811  return a;
812 }
813 template <>
815  return a;
816 }
817 
818 template <>
821 };
822 template <>
824  return vreinterpretq_s32_u32(a);
825 }
826 template <>
828  return vreinterpret_s32_u32(a);
829 }
830 
831 template <>
834 };
835 template <>
837  return vcombine_u16(vmovn_u32(a), vmovn_u32(b));
838 }
839 template <>
841  return vmovn_u32(vcombine_u32(a, b));
842 }
843 
844 template <>
847 };
848 template <>
850  return vreinterpretq_s16_u16(pcast<Packet4ui, Packet8us>(a, b));
851 }
852 template <>
854  return vreinterpret_s16_u16(pcast<Packet2ui, Packet4us>(a, b));
855 }
856 
857 template <>
860 };
861 template <>
863  const Packet4ui& d) {
864  const uint16x8_t ab_u16 = vcombine_u16(vmovn_u32(a), vmovn_u32(b));
865  const uint16x8_t cd_u16 = vcombine_u16(vmovn_u32(c), vmovn_u32(d));
866  return vcombine_u8(vmovn_u16(ab_u16), vmovn_u16(cd_u16));
867 }
868 template <>
870  const Packet2ui& d) {
871  const uint16x4_t ab_u16 = vmovn_u32(vcombine_u32(a, b));
872  const uint16x4_t cd_u16 = vmovn_u32(vcombine_u32(c, d));
873  return vmovn_u16(vcombine_u16(ab_u16, cd_u16));
874 }
875 
876 template <>
879 };
880 template <>
882  const Packet4ui& d) {
883  return vreinterpretq_s8_u8(pcast<Packet4ui, Packet16uc>(a, b, c, d));
884 }
885 template <>
887  const Packet2ui& d) {
888  return vreinterpret_s8_u8(pcast<Packet2ui, Packet8uc>(a, b, c, d));
889 }
890 
891 //==============================================================================
892 // pcast, SrcType = int64_t
893 //==============================================================================
894 template <>
897 };
898 template <>
900  return vcvtq_f32_s32(vcombine_s32(vmovn_s64(a), vmovn_s64(b)));
901 }
902 
903 template <>
906 };
907 template <>
909  return a;
910 }
911 
912 template <>
915 };
916 template <>
918  return vreinterpretq_u64_s64(a);
919 }
920 
921 template <>
924 };
925 template <>
927  return vcombine_s32(vmovn_s64(a), vmovn_s64(b));
928 }
929 
930 template <>
933 };
934 template <>
936  return vcombine_u32(vmovn_u64(vreinterpretq_u64_s64(a)), vmovn_u64(vreinterpretq_u64_s64(b)));
937 }
938 
939 template <>
942 };
943 template <>
945  const Packet2l& d) {
946  const int32x4_t ab_s32 = pcast<Packet2l, Packet4i>(a, b);
947  const int32x4_t cd_s32 = pcast<Packet2l, Packet4i>(c, d);
948  return vcombine_s16(vmovn_s32(ab_s32), vmovn_s32(cd_s32));
949 }
950 
951 template <>
954 };
955 template <>
957  const Packet2l& d) {
958  const uint32x4_t ab_u32 = pcast<Packet2l, Packet4ui>(a, b);
959  const uint32x4_t cd_u32 = pcast<Packet2l, Packet4ui>(c, d);
960  return vcombine_u16(vmovn_u32(ab_u32), vmovn_u32(cd_u32));
961 }
962 
963 template <>
966 };
967 template <>
969  const Packet2l& d, const Packet2l& e, const Packet2l& f,
970  const Packet2l& g, const Packet2l& h) {
971  const int16x8_t abcd_s16 = pcast<Packet2l, Packet8s>(a, b, c, d);
972  const int16x8_t efgh_s16 = pcast<Packet2l, Packet8s>(e, f, g, h);
973  return vcombine_s8(vmovn_s16(abcd_s16), vmovn_s16(efgh_s16));
974 }
975 
976 template <>
979 };
980 template <>
982  const Packet2l& d, const Packet2l& e, const Packet2l& f,
983  const Packet2l& g, const Packet2l& h) {
984  const uint16x8_t abcd_u16 = pcast<Packet2l, Packet8us>(a, b, c, d);
985  const uint16x8_t efgh_u16 = pcast<Packet2l, Packet8us>(e, f, g, h);
986  return vcombine_u8(vmovn_u16(abcd_u16), vmovn_u16(efgh_u16));
987 }
988 
989 //==============================================================================
990 // pcast, SrcType = uint64_t
991 //==============================================================================
992 template <>
995 };
996 template <>
998  return vcvtq_f32_u32(vcombine_u32(vmovn_u64(a), vmovn_u64(b)));
999 }
1000 
1001 template <>
1004 };
1005 template <>
1007  return a;
1008 }
1009 
1010 template <>
1013 };
1014 template <>
1016  return vreinterpretq_s64_u64(a);
1017 }
1018 
1019 template <>
1022 };
1023 template <>
1025  return vcombine_u32(vmovn_u64(a), vmovn_u64(b));
1026 }
1027 
1028 template <>
1031 };
1032 template <>
1034  return vreinterpretq_s32_u32(pcast<Packet2ul, Packet4ui>(a, b));
1035 }
1036 
1037 template <>
1040 };
1041 template <>
1043  const Packet2ul& d) {
1044  const uint16x4_t ab_u16 = vmovn_u32(vcombine_u32(vmovn_u64(a), vmovn_u64(b)));
1045  const uint16x4_t cd_u16 = vmovn_u32(vcombine_u32(vmovn_u64(c), vmovn_u64(d)));
1046  return vcombine_u16(ab_u16, cd_u16);
1047 }
1048 
1049 template <>
1052 };
1053 template <>
1055  const Packet2ul& d) {
1056  return vreinterpretq_s16_u16(pcast<Packet2ul, Packet8us>(a, b, c, d));
1057 }
1058 
1059 template <>
1062 };
1063 template <>
1065  const Packet2ul& d, const Packet2ul& e, const Packet2ul& f,
1066  const Packet2ul& g, const Packet2ul& h) {
1067  const uint16x8_t abcd_u16 = pcast<Packet2ul, Packet8us>(a, b, c, d);
1068  const uint16x8_t efgh_u16 = pcast<Packet2ul, Packet8us>(e, f, g, h);
1069  return vcombine_u8(vmovn_u16(abcd_u16), vmovn_u16(efgh_u16));
1070 }
1071 
1072 template <>
1075 };
1076 template <>
1078  const Packet2ul& d, const Packet2ul& e, const Packet2ul& f,
1079  const Packet2ul& g, const Packet2ul& h) {
1080  return vreinterpretq_s8_u8(pcast<Packet2ul, Packet16uc>(a, b, c, d, e, f, g, h));
1081 }
1082 
1083 //==============================================================================
1084 // preinterpret
1085 //==============================================================================
1086 template <>
1088  return vreinterpret_f32_s32(a);
1089 }
1090 template <>
1092  return vreinterpret_f32_u32(a);
1093 }
1094 template <>
1096  return vreinterpretq_f32_s32(a);
1097 }
1098 template <>
1100  return vreinterpretq_f32_u32(a);
1101 }
1102 
1103 template <>
1105  return static_cast<Packet4c>(a);
1106 }
1107 template <>
1109  return vreinterpret_s8_u8(a);
1110 }
1111 template <>
1113  return vreinterpretq_s8_u8(a);
1114 }
1115 
1116 template <>
1118  return static_cast<Packet4uc>(a);
1119 }
1120 template <>
1122  return vreinterpret_u8_s8(a);
1123 }
1124 template <>
1126  return vreinterpretq_u8_s8(a);
1127 }
1128 
1129 template <>
1131  return vreinterpret_s16_u16(a);
1132 }
1133 template <>
1135  return vreinterpretq_s16_u16(a);
1136 }
1137 
1138 template <>
1140  return vreinterpret_u16_s16(a);
1141 }
1142 template <>
1144  return vreinterpretq_u16_s16(a);
1145 }
1146 
1147 template <>
1149  return vreinterpret_s32_f32(a);
1150 }
1151 template <>
1153  return vreinterpret_s32_u32(a);
1154 }
1155 template <>
1157  return vreinterpretq_s32_f32(a);
1158 }
1159 template <>
1161  return vreinterpretq_s32_u32(a);
1162 }
1163 
1164 template <>
1166  return vreinterpret_u32_f32(a);
1167 }
1168 template <>
1170  return vreinterpret_u32_s32(a);
1171 }
1172 template <>
1174  return vreinterpretq_u32_f32(a);
1175 }
1176 template <>
1178  return vreinterpretq_u32_s32(a);
1179 }
1180 
1181 template <>
1183  return vreinterpretq_s64_u64(a);
1184 }
1185 template <>
1187  return vreinterpretq_u64_s64(a);
1188 }
1189 
1190 #if EIGEN_ARCH_ARM64
1191 
1192 //==============================================================================
1193 // pcast/preinterpret, Double
1194 //==============================================================================
1195 
1196 template <>
1197 struct type_casting_traits<double, double> {
1198  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 };
1199 };
1200 template <>
1201 EIGEN_STRONG_INLINE Packet2d pcast<Packet2d, Packet2d>(const Packet2d& a) {
1202  return a;
1203 }
1204 
1205 template <>
1206 struct type_casting_traits<double, float> {
1207  enum { VectorizedCast = 1, SrcCoeffRatio = 2, TgtCoeffRatio = 1 };
1208 };
1209 template <>
1211  return vcombine_f32(vcvt_f32_f64(a), vcvt_f32_f64(b));
1212 }
1213 
1214 template <>
1215 struct type_casting_traits<double, numext::int64_t> {
1216  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 };
1217 };
1218 template <>
1219 EIGEN_STRONG_INLINE Packet2l pcast<Packet2d, Packet2l>(const Packet2d& a) {
1220  return vcvtq_s64_f64(a);
1221 }
1222 
1223 template <>
1224 struct type_casting_traits<double, numext::uint64_t> {
1225  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 };
1226 };
1227 template <>
1228 EIGEN_STRONG_INLINE Packet2ul pcast<Packet2d, Packet2ul>(const Packet2d& a) {
1229  return vcvtq_u64_f64(a);
1230 }
1231 
1232 template <>
1233 struct type_casting_traits<double, numext::int32_t> {
1234  enum { VectorizedCast = 1, SrcCoeffRatio = 2, TgtCoeffRatio = 1 };
1235 };
1236 template <>
1237 EIGEN_STRONG_INLINE Packet4i pcast<Packet2d, Packet4i>(const Packet2d& a, const Packet2d& b) {
1238  return vcombine_s32(vmovn_s64(vcvtq_s64_f64(a)), vmovn_s64(vcvtq_s64_f64(b)));
1239 }
1240 
1241 template <>
1242 struct type_casting_traits<double, numext::uint32_t> {
1243  enum { VectorizedCast = 1, SrcCoeffRatio = 2, TgtCoeffRatio = 1 };
1244 };
1245 template <>
1246 EIGEN_STRONG_INLINE Packet4ui pcast<Packet2d, Packet4ui>(const Packet2d& a, const Packet2d& b) {
1247  return vcombine_u32(vmovn_u64(vcvtq_u64_f64(a)), vmovn_u64(vcvtq_u64_f64(b)));
1248 }
1249 
1250 template <>
1251 struct type_casting_traits<double, numext::int16_t> {
1252  enum { VectorizedCast = 1, SrcCoeffRatio = 4, TgtCoeffRatio = 1 };
1253 };
1254 template <>
1255 EIGEN_STRONG_INLINE Packet8s pcast<Packet2d, Packet8s>(const Packet2d& a, const Packet2d& b, const Packet2d& c,
1256  const Packet2d& d) {
1257  const int32x4_t ab_s32 = pcast<Packet2d, Packet4i>(a, b);
1258  const int32x4_t cd_s32 = pcast<Packet2d, Packet4i>(c, d);
1259  return vcombine_s16(vmovn_s32(ab_s32), vmovn_s32(cd_s32));
1260 }
1261 
1262 template <>
1263 struct type_casting_traits<double, numext::uint16_t> {
1264  enum { VectorizedCast = 1, SrcCoeffRatio = 4, TgtCoeffRatio = 1 };
1265 };
1266 template <>
1267 EIGEN_STRONG_INLINE Packet8us pcast<Packet2d, Packet8us>(const Packet2d& a, const Packet2d& b, const Packet2d& c,
1268  const Packet2d& d) {
1269  const uint32x4_t ab_u32 = pcast<Packet2d, Packet4ui>(a, b);
1270  const uint32x4_t cd_u32 = pcast<Packet2d, Packet4ui>(c, d);
1271  return vcombine_u16(vmovn_u32(ab_u32), vmovn_u32(cd_u32));
1272 }
1273 
1274 template <>
1275 struct type_casting_traits<double, numext::int8_t> {
1276  enum { VectorizedCast = 1, SrcCoeffRatio = 8, TgtCoeffRatio = 1 };
1277 };
1278 template <>
1279 EIGEN_STRONG_INLINE Packet16c pcast<Packet2d, Packet16c>(const Packet2d& a, const Packet2d& b, const Packet2d& c,
1280  const Packet2d& d, const Packet2d& e, const Packet2d& f,
1281  const Packet2d& g, const Packet2d& h) {
1282  const int16x8_t abcd_s16 = pcast<Packet2d, Packet8s>(a, b, c, d);
1283  const int16x8_t efgh_s16 = pcast<Packet2d, Packet8s>(e, f, g, h);
1284  return vcombine_s8(vmovn_s16(abcd_s16), vmovn_s16(efgh_s16));
1285 }
1286 
1287 template <>
1288 struct type_casting_traits<double, numext::uint8_t> {
1289  enum { VectorizedCast = 1, SrcCoeffRatio = 8, TgtCoeffRatio = 1 };
1290 };
1291 template <>
1292 EIGEN_STRONG_INLINE Packet16uc pcast<Packet2d, Packet16uc>(const Packet2d& a, const Packet2d& b, const Packet2d& c,
1293  const Packet2d& d, const Packet2d& e, const Packet2d& f,
1294  const Packet2d& g, const Packet2d& h) {
1295  const uint16x8_t abcd_u16 = pcast<Packet2d, Packet8us>(a, b, c, d);
1296  const uint16x8_t efgh_u16 = pcast<Packet2d, Packet8us>(e, f, g, h);
1297  return vcombine_u8(vmovn_u16(abcd_u16), vmovn_u16(efgh_u16));
1298 }
1299 
1300 template <>
1301 struct type_casting_traits<float, double> {
1302  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 2 };
1303 };
1304 template <>
1306  // Discard second-half of input.
1307  return vcvt_f64_f32(vget_low_f32(a));
1308 }
1309 
1310 template <>
1311 struct type_casting_traits<numext::int8_t, double> {
1312  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 8 };
1313 };
1314 template <>
1315 EIGEN_STRONG_INLINE Packet2d pcast<Packet16c, Packet2d>(const Packet16c& a) {
1316  // Discard all but first two values.
1317  return vcvt_f64_f32(pcast<Packet8c, Packet2f>(vget_low_s8(a)));
1318 }
1319 
1320 template <>
1321 struct type_casting_traits<numext::uint8_t, double> {
1322  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 8 };
1323 };
1324 template <>
1325 EIGEN_STRONG_INLINE Packet2d pcast<Packet16uc, Packet2d>(const Packet16uc& a) {
1326  // Discard all but first two values.
1327  return vcvt_f64_f32(pcast<Packet8uc, Packet2f>(vget_low_u8(a)));
1328 }
1329 
1330 template <>
1331 struct type_casting_traits<numext::int16_t, double> {
1332  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 4 };
1333 };
1334 template <>
1335 EIGEN_STRONG_INLINE Packet2d pcast<Packet8s, Packet2d>(const Packet8s& a) {
1336  // Discard all but first two values.
1337  return vcvt_f64_f32(pcast<Packet4s, Packet2f>(vget_low_s16(a)));
1338 }
1339 
1340 template <>
1341 struct type_casting_traits<numext::uint16_t, double> {
1342  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 4 };
1343 };
1344 template <>
1345 EIGEN_STRONG_INLINE Packet2d pcast<Packet8us, Packet2d>(const Packet8us& a) {
1346  // Discard all but first two values.
1347  return vcvt_f64_f32(pcast<Packet4us, Packet2f>(vget_low_u16(a)));
1348 }
1349 
1350 template <>
1351 struct type_casting_traits<numext::int32_t, double> {
1352  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 2 };
1353 };
1354 template <>
1355 EIGEN_STRONG_INLINE Packet2d pcast<Packet4i, Packet2d>(const Packet4i& a) {
1356  // Discard second half of input.
1357  return vcvtq_f64_s64(vmovl_s32(vget_low_s32(a)));
1358 }
1359 
1360 template <>
1361 struct type_casting_traits<numext::uint32_t, double> {
1362  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 2 };
1363 };
1364 template <>
1365 EIGEN_STRONG_INLINE Packet2d pcast<Packet4ui, Packet2d>(const Packet4ui& a) {
1366  // Discard second half of input.
1367  return vcvtq_f64_u64(vmovl_u32(vget_low_u32(a)));
1368 }
1369 
1370 template <>
1371 struct type_casting_traits<numext::int64_t, double> {
1372  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 };
1373 };
1374 template <>
1375 EIGEN_STRONG_INLINE Packet2d pcast<Packet2l, Packet2d>(const Packet2l& a) {
1376  return vcvtq_f64_s64(a);
1377 }
1378 
1379 template <>
1380 struct type_casting_traits<numext::uint64_t, double> {
1381  enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 };
1382 };
1383 template <>
1384 EIGEN_STRONG_INLINE Packet2d pcast<Packet2ul, Packet2d>(const Packet2ul& a) {
1385  return vcvtq_f64_u64(a);
1386 }
1387 
1388 template <>
1389 EIGEN_STRONG_INLINE Packet2d preinterpret<Packet2d, Packet2l>(const Packet2l& a) {
1390  return vreinterpretq_f64_s64(a);
1391 }
1392 template <>
1393 EIGEN_STRONG_INLINE Packet2d preinterpret<Packet2d, Packet2ul>(const Packet2ul& a) {
1394  return vreinterpretq_f64_u64(a);
1395 }
1396 template <>
1397 EIGEN_STRONG_INLINE Packet2l preinterpret<Packet2l, Packet2d>(const Packet2d& a) {
1398  return vreinterpretq_s64_f64(a);
1399 }
1400 template <>
1401 EIGEN_STRONG_INLINE Packet2ul preinterpret<Packet2ul, Packet2d>(const Packet2d& a) {
1402  return vreinterpretq_u64_f64(a);
1403 }
1404 template <>
1406  return vreinterpretq_f64_s32(a);
1407 }
1408 template <>
1410  return vreinterpretq_s32_f64(a);
1411 }
1412 
1413 #endif // EIGEN_ARCH_ARM64
1414 
1415 } // end namespace internal
1416 
1417 } // end namespace Eigen
1418 
1419 #endif // EIGEN_TYPE_CASTING_NEON_H
Eigen::internal::pcast< Packet2ul, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet2ul, Packet4f >(const Packet2ul &a, const Packet2ul &b)
Definition: NEON/TypeCasting.h:997
Eigen::internal::pcast< Packet2ul, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet2ul, Packet2ul >(const Packet2ul &a)
Definition: NEON/TypeCasting.h:1006
Eigen::internal::pcast< Packet8uc, Packet8uc >
EIGEN_STRONG_INLINE Packet8uc pcast< Packet8uc, Packet8uc >(const Packet8uc &a)
Definition: NEON/TypeCasting.h:386
Eigen::internal::preinterpret< Packet4us, Packet4s >
EIGEN_STRONG_INLINE Packet4us preinterpret< Packet4us, Packet4s >(const Packet4s &a)
Definition: NEON/TypeCasting.h:1139
Eigen::internal::Packet4i
__vector int Packet4i
Definition: AltiVec/PacketMath.h:31
Eigen::internal::eigen_packet_wrapper
Definition: GenericPacketMath.h:159
Eigen::internal::pcast< Packet4s, Packet2i >
EIGEN_STRONG_INLINE Packet2i pcast< Packet4s, Packet2i >(const Packet4s &a)
Definition: NEON/TypeCasting.h:458
Eigen::internal::preinterpret< Packet2ui, Packet2i >
EIGEN_STRONG_INLINE Packet2ui preinterpret< Packet2ui, Packet2i >(const Packet2i &a)
Definition: NEON/TypeCasting.h:1169
Eigen::internal::pcast< Packet8us, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet8us, Packet8s >(const Packet8us &a)
Definition: NEON/TypeCasting.h:611
Eigen::internal::Packet16uc
__vector unsigned char Packet16uc
Definition: AltiVec/PacketMath.h:37
Eigen::internal::pcast< Packet2ui, Packet4us >
EIGEN_STRONG_INLINE Packet4us pcast< Packet2ui, Packet4us >(const Packet2ui &a, const Packet2ui &b)
Definition: NEON/TypeCasting.h:840
Eigen::internal::pcast< Packet16uc, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet16uc, Packet16c >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:399
Eigen::internal::pcast< Packet2i, Packet8c >
EIGEN_STRONG_INLINE Packet8c pcast< Packet2i, Packet8c >(const Packet2i &a, const Packet2i &b, const Packet2i &c, const Packet2i &d)
Definition: NEON/TypeCasting.h:744
Eigen
Namespace containing all symbols from the Eigen library.
Definition: jet.h:637
Eigen::internal::pcast< Packet16uc, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet16uc, Packet2ul >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:307
Eigen::internal::pcast< Packet4c, Packet4c >
EIGEN_STRONG_INLINE Packet4c pcast< Packet4c, Packet4c >(const Packet4c &a)
Definition: NEON/TypeCasting.h:263
Eigen::internal::pcast< Packet4ui, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet4ui, Packet8us >(const Packet4ui &a, const Packet4ui &b)
Definition: NEON/TypeCasting.h:836
Eigen::internal::pcast< Packet2l, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet2l, Packet8s >(const Packet2l &a, const Packet2l &b, const Packet2l &c, const Packet2l &d)
Definition: NEON/TypeCasting.h:944
int16_t
signed short int16_t
Definition: ms_stdint.h:81
Eigen::internal::pcast< Packet2i, Packet8uc >
EIGEN_STRONG_INLINE Packet8uc pcast< Packet2i, Packet8uc >(const Packet2i &a, const Packet2i &b, const Packet2i &c, const Packet2i &d)
Definition: NEON/TypeCasting.h:763
Eigen::internal::pcast< Packet2ul, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet2ul, Packet16c >(const Packet2ul &a, const Packet2ul &b, const Packet2ul &c, const Packet2ul &d, const Packet2ul &e, const Packet2ul &f, const Packet2ul &g, const Packet2ul &h)
Definition: NEON/TypeCasting.h:1077
Eigen::internal::pcast< Packet8us, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet8us, Packet2l >(const Packet8us &a)
Definition: NEON/TypeCasting.h:561
Eigen::numext::int16_t
::int16_t int16_t
Definition: Meta.h:55
Eigen::internal::Packet4f
__vector float Packet4f
Definition: AltiVec/PacketMath.h:30
Eigen::internal::pcast< Packet4s, Packet2f >
EIGEN_STRONG_INLINE Packet2f pcast< Packet4s, Packet2f >(const Packet4s &a)
Definition: NEON/TypeCasting.h:424
Eigen::internal::pcast< Packet8us, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet8us, Packet16uc >(const Packet8us &a, const Packet8us &b)
Definition: NEON/TypeCasting.h:624
e
Array< double, 1, 3 > e(1./3., 0.5, 2.)
d
static const double d[K][N]
Definition: igam.h:11
Eigen::internal::pcast< Packet2f, Packet4us >
EIGEN_STRONG_INLINE Packet4us pcast< Packet2f, Packet4us >(const Packet2f &a, const Packet2f &b)
Definition: NEON/TypeCasting.h:115
Eigen::internal::pcast< Packet16uc, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet16uc, Packet8s >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:369
uint32_t
unsigned int uint32_t
Definition: ms_stdint.h:85
Eigen::internal::preinterpret< Packet8c, Packet8uc >
EIGEN_STRONG_INLINE Packet8c preinterpret< Packet8c, Packet8uc >(const Packet8uc &a)
Definition: NEON/TypeCasting.h:1108
Eigen::internal::pcast< Packet4ui, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet4ui, Packet2l >(const Packet4ui &a)
Definition: NEON/TypeCasting.h:801
Eigen::internal::pcast< Packet4f, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet4f, Packet16uc >(const Packet4f &a, const Packet4f &b, const Packet4f &c, const Packet4f &d)
Definition: NEON/TypeCasting.h:143
Eigen::internal::pcast< Packet4i, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet4i, Packet4ui >(const Packet4i &a)
Definition: NEON/TypeCasting.h:698
Eigen::internal::pcast< Packet4ui, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet4ui, Packet4f >(const Packet4ui &a)
Definition: AltiVec/PacketMath.h:2202
c
Scalar Scalar * c
Definition: benchVecAdd.cpp:17
b
Scalar * b
Definition: benchVecAdd.cpp:17
Eigen::internal::preinterpret< Packet4uc, Packet4c >
EIGEN_STRONG_INLINE Packet4uc preinterpret< Packet4uc, Packet4c >(const Packet4c &a)
Definition: NEON/TypeCasting.h:1117
Eigen::internal::pcast< Packet4f, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet4f, Packet2ul >(const Packet4f &a)
Definition: NEON/TypeCasting.h:61
Eigen::numext::uint32_t
::uint32_t uint32_t
Definition: Meta.h:56
Eigen::internal::pcast< Packet4i, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet4i, Packet4f >(const Packet4i &a)
Definition: AltiVec/PacketMath.h:2198
Eigen::internal::pcast< Packet16uc, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet16uc, Packet16uc >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:382
Eigen::internal::pcast< Packet8s, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet8s, Packet8s >(const Packet8s &a)
Definition: NEON/TypeCasting.h:481
Eigen::internal::pcast< Packet4f, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet4f, Packet4ui >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:2194
Eigen::internal::pcast< Packet8s, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet8s, Packet16c >(const Packet8s &a, const Packet8s &b)
Definition: NEON/TypeCasting.h:507
Eigen::numext::int64_t
::int64_t int64_t
Definition: Meta.h:59
Eigen::internal::preinterpret< Packet4c, Packet4uc >
EIGEN_STRONG_INLINE Packet4c preinterpret< Packet4c, Packet4uc >(const Packet4uc &a)
Definition: NEON/TypeCasting.h:1104
Eigen::internal::pcast< Packet2ul, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet2ul, Packet4ui >(const Packet2ul &a, const Packet2ul &b)
Definition: NEON/TypeCasting.h:1024
Eigen::internal::pcast< Packet8s, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet8s, Packet2ul >(const Packet8s &a)
Definition: NEON/TypeCasting.h:444
Eigen::internal::preinterpret< Packet4f, Packet4i >
EIGEN_STRONG_INLINE Packet4f preinterpret< Packet4f, Packet4i >(const Packet4i &a)
Definition: AltiVec/PacketMath.h:2248
h
const double h
Definition: testSimpleHelicopter.cpp:19
Eigen::internal::pcast< Packet4s, Packet8c >
EIGEN_STRONG_INLINE Packet8c pcast< Packet4s, Packet8c >(const Packet4s &a, const Packet4s &b)
Definition: NEON/TypeCasting.h:511
Eigen::internal::preinterpret< Packet4f, Packet4ui >
EIGEN_STRONG_INLINE Packet4f preinterpret< Packet4f, Packet4ui >(const Packet4ui &a)
Definition: NEON/TypeCasting.h:1099
Eigen::internal::pcast< Packet8us, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet8us, Packet4ui >(const Packet8us &a)
Definition: NEON/TypeCasting.h:570
Eigen::internal::preinterpret< Packet8s, Packet8us >
EIGEN_STRONG_INLINE Packet8s preinterpret< Packet8s, Packet8us >(const Packet8us &a)
Definition: NEON/TypeCasting.h:1134
Eigen::internal::pcast< Packet2ul, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet2ul, Packet2l >(const Packet2ul &a)
Definition: NEON/TypeCasting.h:1015
Eigen::internal::Packet4s
int16x4_t Packet4s
Definition: NEON/PacketMath.h:70
Eigen::internal::pcast< Packet4ui, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet4ui, Packet2ul >(const Packet4ui &a)
Definition: NEON/TypeCasting.h:791
uint8_t
unsigned char uint8_t
Definition: ms_stdint.h:83
Eigen::internal::pcast< Packet2ui, Packet2i >
EIGEN_STRONG_INLINE Packet2i pcast< Packet2ui, Packet2i >(const Packet2ui &a)
Definition: NEON/TypeCasting.h:827
Eigen::internal::pcast< Packet2i, Packet4s >
EIGEN_STRONG_INLINE Packet4s pcast< Packet2i, Packet4s >(const Packet2i &a, const Packet2i &b)
Definition: NEON/TypeCasting.h:715
Eigen::internal::pcast< Packet4uc, Packet4c >
EIGEN_STRONG_INLINE Packet4c pcast< Packet4uc, Packet4c >(const Packet4uc &a)
Definition: NEON/TypeCasting.h:407
Eigen::internal::pcast< Packet4us, Packet2f >
EIGEN_STRONG_INLINE Packet2f pcast< Packet4us, Packet2f >(const Packet4us &a)
Definition: NEON/TypeCasting.h:541
Eigen::internal::pcast< Packet4f, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet4f, Packet4i >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:2190
Eigen::internal::pcast< Packet2l, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet2l, Packet4f >(const Packet2l &a, const Packet2l &b)
Definition: NEON/TypeCasting.h:899
Eigen::internal::pcast< Packet2ul, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet2ul, Packet4i >(const Packet2ul &a, const Packet2ul &b)
Definition: NEON/TypeCasting.h:1033
Eigen::numext::uint64_t
::uint64_t uint64_t
Definition: Meta.h:58
Eigen::internal::pcast< Packet4s, Packet4s >
EIGEN_STRONG_INLINE Packet4s pcast< Packet4s, Packet4s >(const Packet4s &a)
Definition: NEON/TypeCasting.h:485
Eigen::internal::pcast< Packet4f, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet4f, Packet8us >(const Packet4f &a, const Packet4f &b)
Definition: NEON/TypeCasting.h:111
Eigen::internal::pcast< Packet4us, Packet8uc >
EIGEN_STRONG_INLINE Packet8uc pcast< Packet4us, Packet8uc >(const Packet4us &a, const Packet4us &b)
Definition: NEON/TypeCasting.h:628
Eigen::internal::pcast< Packet4us, Packet8c >
EIGEN_STRONG_INLINE Packet8c pcast< Packet4us, Packet8c >(const Packet4us &a, const Packet4us &b)
Definition: NEON/TypeCasting.h:641
Eigen::internal::pcast< Packet2ui, Packet8uc >
EIGEN_STRONG_INLINE Packet8uc pcast< Packet2ui, Packet8uc >(const Packet2ui &a, const Packet2ui &b, const Packet2ui &c, const Packet2ui &d)
Definition: NEON/TypeCasting.h:869
Eigen::numext::uint16_t
::uint16_t uint16_t
Definition: Meta.h:54
Eigen::internal::pcast< Packet8uc, Packet2i >
EIGEN_STRONG_INLINE Packet2i pcast< Packet8uc, Packet2i >(const Packet8uc &a)
Definition: NEON/TypeCasting.h:345
Eigen::internal::pcast< Packet8uc, Packet8c >
EIGEN_STRONG_INLINE Packet8c pcast< Packet8uc, Packet8c >(const Packet8uc &a)
Definition: NEON/TypeCasting.h:403
Eigen::internal::Packet4ui
__vector unsigned int Packet4ui
Definition: AltiVec/PacketMath.h:32
Eigen::internal::preinterpret< Packet4s, Packet4us >
EIGEN_STRONG_INLINE Packet4s preinterpret< Packet4s, Packet4us >(const Packet4us &a)
Definition: NEON/TypeCasting.h:1130
Eigen::internal::preinterpret< Packet8us, Packet8s >
EIGEN_STRONG_INLINE Packet8us preinterpret< Packet8us, Packet8s >(const Packet8s &a)
Definition: NEON/TypeCasting.h:1143
Eigen::internal::Packet2ui
uint32x2_t Packet2ui
Definition: NEON/PacketMath.h:76
Eigen::internal::pcast< Packet16c, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet16c, Packet8s >(const Packet16c &a)
Definition: NEON/TypeCasting.h:227
Eigen::internal::pcast< Packet2l, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet2l, Packet4i >(const Packet2l &a, const Packet2l &b)
Definition: NEON/TypeCasting.h:926
int64_t
signed __int64 int64_t
Definition: ms_stdint.h:94
Eigen::internal::pcast< Packet16c, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet16c, Packet2l >(const Packet16c &a)
Definition: NEON/TypeCasting.h:180
Eigen::internal::pcast< Packet8us, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet8us, Packet4i >(const Packet8us &a)
Definition: NEON/TypeCasting.h:585
Eigen::internal::pcast< Packet16c, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet16c, Packet4i >(const Packet16c &a)
Definition: NEON/TypeCasting.h:199
Eigen::internal::pcast< Packet2f, Packet4s >
EIGEN_STRONG_INLINE Packet4s pcast< Packet2f, Packet4s >(const Packet2f &a, const Packet2f &b)
Definition: NEON/TypeCasting.h:102
Eigen::internal::pcast< Packet8uc, Packet4us >
EIGEN_STRONG_INLINE Packet4us pcast< Packet8uc, Packet4us >(const Packet8uc &a)
Definition: NEON/TypeCasting.h:359
Eigen::internal::pcast< Packet2l, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet2l, Packet16c >(const Packet2l &a, const Packet2l &b, const Packet2l &c, const Packet2l &d, const Packet2l &e, const Packet2l &f, const Packet2l &g, const Packet2l &h)
Definition: NEON/TypeCasting.h:968
Eigen::internal::pcast< Packet8c, Packet8uc >
EIGEN_STRONG_INLINE Packet8uc pcast< Packet8c, Packet8uc >(const Packet8c &a)
Definition: NEON/TypeCasting.h:276
Eigen::internal::preinterpret< Packet4i, Packet2d >
EIGEN_STRONG_INLINE Packet4i preinterpret< Packet4i, Packet2d >(const Packet2d &a)
Definition: SSE/TypeCasting.h:84
Eigen::internal::pcast< Packet16c, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet16c, Packet4ui >(const Packet16c &a)
Definition: NEON/TypeCasting.h:214
Eigen::internal::pcast< Packet2ul, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet2ul, Packet16uc >(const Packet2ul &a, const Packet2ul &b, const Packet2ul &c, const Packet2ul &d, const Packet2ul &e, const Packet2ul &f, const Packet2ul &g, const Packet2ul &h)
Definition: NEON/TypeCasting.h:1064
Eigen::internal::pcast< Packet2ui, Packet2ui >
EIGEN_STRONG_INLINE Packet2ui pcast< Packet2ui, Packet2ui >(const Packet2ui &a)
Definition: NEON/TypeCasting.h:814
Eigen::internal::Packet2i
int32x2_t Packet2i
Definition: NEON/PacketMath.h:74
Eigen::internal::pcast< Packet16c, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet16c, Packet8us >(const Packet16c &a)
Definition: NEON/TypeCasting.h:242
Eigen::internal::pcast< Packet4ui, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet4ui, Packet16uc >(const Packet4ui &a, const Packet4ui &b, const Packet4ui &c, const Packet4ui &d)
Definition: NEON/TypeCasting.h:862
Eigen::internal::pcast< Packet8s, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet8s, Packet4i >(const Packet8s &a)
Definition: NEON/TypeCasting.h:453
Eigen::internal::preinterpret< Packet2f, Packet2ui >
EIGEN_STRONG_INLINE Packet2f preinterpret< Packet2f, Packet2ui >(const Packet2ui &a)
Definition: NEON/TypeCasting.h:1091
Eigen::internal::preinterpret< Packet2f, Packet2i >
EIGEN_STRONG_INLINE Packet2f preinterpret< Packet2f, Packet2i >(const Packet2i &a)
Definition: NEON/TypeCasting.h:1087
Eigen::internal::pcast< Packet2l, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet2l, Packet8us >(const Packet2l &a, const Packet2l &b, const Packet2l &c, const Packet2l &d)
Definition: NEON/TypeCasting.h:956
Eigen::internal::preinterpret< Packet4i, Packet4ui >
EIGEN_STRONG_INLINE Packet4i preinterpret< Packet4i, Packet4ui >(const Packet4ui &a)
Definition: NEON/TypeCasting.h:1160
Eigen::internal::pcast< Packet8c, Packet4us >
EIGEN_STRONG_INLINE Packet4us pcast< Packet8c, Packet4us >(const Packet8c &a)
Definition: NEON/TypeCasting.h:246
Eigen::internal::pcast< Packet8s, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet8s, Packet16uc >(const Packet8s &a, const Packet8s &b)
Definition: NEON/TypeCasting.h:520
EIGEN_STRONG_INLINE
#define EIGEN_STRONG_INLINE
Definition: Macros.h:917
Eigen::internal::pcast< Packet8c, Packet8c >
EIGEN_STRONG_INLINE Packet8c pcast< Packet8c, Packet8c >(const Packet8c &a)
Definition: NEON/TypeCasting.h:259
Eigen::internal::pcast< Packet16c, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet16c, Packet4f >(const Packet16c &a)
Definition: NEON/TypeCasting.h:165
Eigen::internal::pcast< Packet4i, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet4i, Packet2l >(const Packet4i &a)
Definition: NEON/TypeCasting.h:666
Eigen::internal::pcast< Packet8c, Packet2ui >
EIGEN_STRONG_INLINE Packet2ui pcast< Packet8c, Packet2ui >(const Packet8c &a)
Definition: NEON/TypeCasting.h:218
Eigen::internal::preinterpret< Packet2ui, Packet2f >
EIGEN_STRONG_INLINE Packet2ui preinterpret< Packet2ui, Packet2f >(const Packet2f &a)
Definition: NEON/TypeCasting.h:1165
Eigen::internal::pcast< Packet4us, Packet2i >
EIGEN_STRONG_INLINE Packet2i pcast< Packet4us, Packet2i >(const Packet4us &a)
Definition: NEON/TypeCasting.h:589
Eigen::internal::Packet8uc
uint8x8_t Packet8uc
Definition: NEON/PacketMath.h:68
Eigen::internal::pcast< Packet8uc, Packet2ui >
EIGEN_STRONG_INLINE Packet2ui pcast< Packet8uc, Packet2ui >(const Packet8uc &a)
Definition: NEON/TypeCasting.h:331
Eigen::internal::pcast< Packet4i, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet4i, Packet4i >(const Packet4i &a)
Definition: NEON/TypeCasting.h:685
Eigen::internal::pcast< Packet8s, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet8s, Packet8us >(const Packet8s &a)
Definition: NEON/TypeCasting.h:494
Eigen::internal::preinterpret< Packet4ui, Packet4f >
EIGEN_STRONG_INLINE Packet4ui preinterpret< Packet4ui, Packet4f >(const Packet4f &a)
Definition: NEON/TypeCasting.h:1173
Eigen::internal::Packet2l
v2i64 Packet2l
Definition: MSA/PacketMath.h:821
Eigen::internal::preinterpret< Packet2d, Packet4i >
EIGEN_STRONG_INLINE Packet2d preinterpret< Packet2d, Packet4i >(const Packet4i &a)
Definition: SSE/TypeCasting.h:80
Eigen::internal::pcast< Packet16c, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet16c, Packet16c >(const Packet16c &a)
Definition: NEON/TypeCasting.h:255
Eigen::internal::pcast< Packet4ui, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet4ui, Packet4i >(const Packet4ui &a)
Definition: NEON/TypeCasting.h:823
Eigen::internal::pcast< Packet4s, Packet8uc >
EIGEN_STRONG_INLINE Packet8uc pcast< Packet4s, Packet8uc >(const Packet4s &a, const Packet4s &b)
Definition: NEON/TypeCasting.h:524
Eigen::internal::pcast< Packet16c, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet16c, Packet16uc >(const Packet16c &a)
Definition: NEON/TypeCasting.h:272
int8_t
signed char int8_t
Definition: ms_stdint.h:80
Eigen::internal::pcast< Packet4c, Packet4uc >
EIGEN_STRONG_INLINE Packet4uc pcast< Packet4c, Packet4uc >(const Packet4c &a)
Definition: NEON/TypeCasting.h:280
Eigen::internal::pcast< Packet8us, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet8us, Packet2ul >(const Packet8us &a)
Definition: NEON/TypeCasting.h:551
Eigen::internal::pcast< Packet2f, Packet8uc >
EIGEN_STRONG_INLINE Packet8uc pcast< Packet2f, Packet8uc >(const Packet2f &a, const Packet2f &b, const Packet2f &c, const Packet2f &d)
Definition: NEON/TypeCasting.h:150
Eigen::internal::pcast< Packet2i, Packet2i >
EIGEN_STRONG_INLINE Packet2i pcast< Packet2i, Packet2i >(const Packet2i &a)
Definition: NEON/TypeCasting.h:689
Eigen::internal::pcast< Packet8uc, Packet2f >
EIGEN_STRONG_INLINE Packet2f pcast< Packet8uc, Packet2f >(const Packet8uc &a)
Definition: NEON/TypeCasting.h:297
Eigen::internal::pcast< Packet2l, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet2l, Packet2l >(const Packet2l &a)
Definition: NEON/TypeCasting.h:908
Eigen::internal::Packet8s
__vector short int Packet8s
Definition: AltiVec/PacketMath.h:34
Eigen::internal::preinterpret< Packet2i, Packet2f >
EIGEN_STRONG_INLINE Packet2i preinterpret< Packet2i, Packet2f >(const Packet2f &a)
Definition: NEON/TypeCasting.h:1148
g
void g(const string &key, int i)
Definition: testBTree.cpp:41
Eigen::internal::pcast< Packet4f, Packet2d >
EIGEN_STRONG_INLINE Packet2d pcast< Packet4f, Packet2d >(const Packet4f &a)
Definition: SSE/TypeCasting.h:67
Eigen::internal::pcast< Packet4us, Packet4s >
EIGEN_STRONG_INLINE Packet4s pcast< Packet4us, Packet4s >(const Packet4us &a)
Definition: NEON/TypeCasting.h:615
Eigen::internal::type_casting_traits::SrcCoeffRatio
@ SrcCoeffRatio
Definition: GenericPacketMath.h:151
tree::f
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
Definition: testExpression.cpp:218
Eigen::internal::pcast< Packet4i, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet4i, Packet16c >(const Packet4i &a, const Packet4i &b, const Packet4i &c, const Packet4i &d)
Definition: NEON/TypeCasting.h:737
Eigen::internal::pcast< Packet16uc, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet16uc, Packet4ui >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:326
Eigen::internal::pcast< Packet2l, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet2l, Packet4ui >(const Packet2l &a, const Packet2l &b)
Definition: NEON/TypeCasting.h:935
Eigen::internal::preinterpret< Packet4i, Packet4f >
EIGEN_STRONG_INLINE Packet4i preinterpret< Packet4i, Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:2244
Eigen::internal::pcast< Packet16uc, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet16uc, Packet8us >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:354
a
ArrayXXi a
Definition: Array_initializer_list_23_cxx11.cpp:1
Eigen::internal::pcast< Packet4i, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet4i, Packet2ul >(const Packet4i &a)
Definition: NEON/TypeCasting.h:676
Eigen::internal::pcast< Packet8s, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet8s, Packet2l >(const Packet8s &a)
Definition: NEON/TypeCasting.h:434
Eigen::internal::pcast< Packet2i, Packet4us >
EIGEN_STRONG_INLINE Packet4us pcast< Packet2i, Packet4us >(const Packet2i &a, const Packet2i &b)
Definition: NEON/TypeCasting.h:728
Eigen::internal::pcast< Packet16c, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet16c, Packet2ul >(const Packet16c &a)
Definition: NEON/TypeCasting.h:190
Eigen::internal::pcast< Packet2i, Packet2f >
EIGEN_STRONG_INLINE Packet2f pcast< Packet2i, Packet2f >(const Packet2i &a)
Definition: NEON/TypeCasting.h:657
Eigen::internal::pcast< Packet16uc, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet16uc, Packet2l >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:317
Eigen::numext::int8_t
::int8_t int8_t
Definition: Meta.h:53
Eigen::internal::Packet2d
v2f64 Packet2d
Definition: MSA/PacketMath.h:820
Eigen::internal::preinterpret< Packet16uc, Packet16c >
EIGEN_STRONG_INLINE Packet16uc preinterpret< Packet16uc, Packet16c >(const Packet16c &a)
Definition: NEON/TypeCasting.h:1125
Eigen::internal::pcast< Packet8s, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet8s, Packet4ui >(const Packet8s &a)
Definition: NEON/TypeCasting.h:468
Eigen::numext::uint8_t
::uint8_t uint8_t
Definition: Meta.h:52
Eigen::internal::preinterpret< Packet8uc, Packet8c >
EIGEN_STRONG_INLINE Packet8uc preinterpret< Packet8uc, Packet8c >(const Packet8c &a)
Definition: NEON/TypeCasting.h:1121
Eigen::internal::pcast< Packet2f, Packet2ui >
EIGEN_STRONG_INLINE Packet2ui pcast< Packet2f, Packet2ui >(const Packet2f &a)
Definition: NEON/TypeCasting.h:89
Eigen::internal::preinterpret< Packet2ul, Packet2l >
EIGEN_STRONG_INLINE Packet2ul preinterpret< Packet2ul, Packet2l >(const Packet2l &a)
Definition: NEON/TypeCasting.h:1186
Eigen::internal::Packet2f
float32x2_t Packet2f
Definition: NEON/PacketMath.h:62
Eigen::internal::type_casting_traits
Definition: GenericPacketMath.h:148
Eigen::internal::preinterpret< Packet4ui, Packet4i >
EIGEN_STRONG_INLINE Packet4ui preinterpret< Packet4ui, Packet4i >(const Packet4i &a)
Definition: NEON/TypeCasting.h:1177
Eigen::internal::pcast< Packet2ui, Packet2f >
EIGEN_STRONG_INLINE Packet2f pcast< Packet2ui, Packet2f >(const Packet2ui &a)
Definition: NEON/TypeCasting.h:782
Eigen::internal::type_casting_traits::TgtCoeffRatio
@ TgtCoeffRatio
Definition: GenericPacketMath.h:152
Eigen::internal::pcast< Packet8uc, Packet4s >
EIGEN_STRONG_INLINE Packet4s pcast< Packet8uc, Packet4s >(const Packet8uc &a)
Definition: NEON/TypeCasting.h:373
Eigen::internal::pcast< Packet8us, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet8us, Packet4f >(const Packet8us &a)
Definition: NEON/TypeCasting.h:536
Eigen::internal::pcast< Packet2f, Packet2i >
EIGEN_STRONG_INLINE Packet2i pcast< Packet2f, Packet2i >(const Packet2f &a)
Definition: NEON/TypeCasting.h:76
uint16_t
unsigned short uint16_t
Definition: ms_stdint.h:84
Eigen::internal::pcast< Packet4f, Packet2l >
EIGEN_STRONG_INLINE Packet2l pcast< Packet4f, Packet2l >(const Packet4f &a)
Definition: NEON/TypeCasting.h:56
Eigen::internal::pcast< Packet4us, Packet2ui >
EIGEN_STRONG_INLINE Packet2ui pcast< Packet4us, Packet2ui >(const Packet4us &a)
Definition: NEON/TypeCasting.h:575
Eigen::internal::pcast< Packet2ui, Packet4s >
EIGEN_STRONG_INLINE Packet4s pcast< Packet2ui, Packet4s >(const Packet2ui &a, const Packet2ui &b)
Definition: NEON/TypeCasting.h:853
Eigen::internal::pcast< Packet2f, Packet8c >
EIGEN_STRONG_INLINE Packet8c pcast< Packet2f, Packet8c >(const Packet2f &a, const Packet2f &b, const Packet2f &c, const Packet2f &d)
Definition: NEON/TypeCasting.h:131
Eigen::internal::Packet16c
__vector signed char Packet16c
Definition: AltiVec/PacketMath.h:36
Eigen::internal::preinterpret< Packet2l, Packet2ul >
EIGEN_STRONG_INLINE Packet2l preinterpret< Packet2l, Packet2ul >(const Packet2ul &a)
Definition: NEON/TypeCasting.h:1182
Eigen::internal::pcast< Packet4i, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet4i, Packet8s >(const Packet4i &a, const Packet4i &b)
Definition: NEON/TypeCasting.h:711
Eigen::internal::pcast< Packet4f, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet4f, Packet8s >(const Packet4f &a, const Packet4f &b)
Definition: NEON/TypeCasting.h:98
Eigen::internal::pcast< Packet2ul, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet2ul, Packet8us >(const Packet2ul &a, const Packet2ul &b, const Packet2ul &c, const Packet2ul &d)
Definition: NEON/TypeCasting.h:1042
gtsam.examples.DogLegOptimizerExample.float
float
Definition: DogLegOptimizerExample.py:113
int32_t
signed int int32_t
Definition: ms_stdint.h:82
Eigen::internal::pcast< Packet2d, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet2d, Packet4f >(const Packet2d &a, const Packet2d &b)
Definition: SSE/TypeCasting.h:63
Eigen::internal::pcast< Packet4ui, Packet4ui >
EIGEN_STRONG_INLINE Packet4ui pcast< Packet4ui, Packet4ui >(const Packet4ui &a)
Definition: NEON/TypeCasting.h:810
Eigen::internal::preinterpret< Packet2i, Packet2ui >
EIGEN_STRONG_INLINE Packet2i preinterpret< Packet2i, Packet2ui >(const Packet2ui &a)
Definition: NEON/TypeCasting.h:1152
Eigen::internal::Packet2ul
v2u64 Packet2ul
Definition: MSA/PacketMath.h:822
Eigen::internal::pcast< Packet2f, Packet2f >
EIGEN_STRONG_INLINE Packet2f pcast< Packet2f, Packet2f >(const Packet2f &a)
Definition: NEON/TypeCasting.h:30
uint64_t
unsigned __int64 uint64_t
Definition: ms_stdint.h:95
Eigen::internal::Packet4us
uint16x4_t Packet4us
Definition: NEON/PacketMath.h:72
Eigen::internal::pcast< Packet2l, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet2l, Packet16uc >(const Packet2l &a, const Packet2l &b, const Packet2l &c, const Packet2l &d, const Packet2l &e, const Packet2l &f, const Packet2l &g, const Packet2l &h)
Definition: NEON/TypeCasting.h:981
Eigen::internal::pcast< Packet8c, Packet2f >
EIGEN_STRONG_INLINE Packet2f pcast< Packet8c, Packet2f >(const Packet8c &a)
Definition: NEON/TypeCasting.h:170
internal
Definition: BandTriangularSolver.h:13
Eigen::internal::pcast< Packet2i, Packet2ui >
EIGEN_STRONG_INLINE Packet2ui pcast< Packet2i, Packet2ui >(const Packet2i &a)
Definition: NEON/TypeCasting.h:702
Eigen::internal::pcast< Packet4s, Packet2ui >
EIGEN_STRONG_INLINE Packet2ui pcast< Packet4s, Packet2ui >(const Packet4s &a)
Definition: NEON/TypeCasting.h:472
Eigen::internal::pcast< Packet4f, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet4f, Packet4f >(const Packet4f &a)
Definition: NEON/TypeCasting.h:26
Eigen::internal::pcast< Packet8us, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet8us, Packet8us >(const Packet8us &a)
Definition: NEON/TypeCasting.h:598
Eigen::internal::pcast< Packet4i, Packet8us >
EIGEN_STRONG_INLINE Packet8us pcast< Packet4i, Packet8us >(const Packet4i &a, const Packet4i &b)
Definition: NEON/TypeCasting.h:724
Eigen::internal::pcast< Packet16uc, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet16uc, Packet4f >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:292
Eigen::internal::pcast< Packet8us, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet8us, Packet16c >(const Packet8us &a, const Packet8us &b)
Definition: NEON/TypeCasting.h:637
Eigen::internal::preinterpret< Packet16c, Packet16uc >
EIGEN_STRONG_INLINE Packet16c preinterpret< Packet16c, Packet16uc >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:1112
Eigen::internal::type_casting_traits::VectorizedCast
@ VectorizedCast
Definition: GenericPacketMath.h:150
Eigen::internal::pcast< Packet8c, Packet2i >
EIGEN_STRONG_INLINE Packet2i pcast< Packet8c, Packet2i >(const Packet8c &a)
Definition: NEON/TypeCasting.h:204
Eigen::internal::pcast< Packet4uc, Packet4uc >
EIGEN_STRONG_INLINE Packet4uc pcast< Packet4uc, Packet4uc >(const Packet4uc &a)
Definition: NEON/TypeCasting.h:390
Eigen::internal::pcast< Packet2l, Packet2ul >
EIGEN_STRONG_INLINE Packet2ul pcast< Packet2l, Packet2ul >(const Packet2l &a)
Definition: NEON/TypeCasting.h:917
Eigen::internal::pcast< Packet4ui, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet4ui, Packet8s >(const Packet4ui &a, const Packet4ui &b)
Definition: NEON/TypeCasting.h:849
Eigen::internal::pcast< Packet4ui, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet4ui, Packet16c >(const Packet4ui &a, const Packet4ui &b, const Packet4ui &c, const Packet4ui &d)
Definition: NEON/TypeCasting.h:881
Eigen::internal::pcast< Packet8c, Packet4s >
EIGEN_STRONG_INLINE Packet4s pcast< Packet8c, Packet4s >(const Packet8c &a)
Definition: NEON/TypeCasting.h:232
Eigen::internal::pcast< Packet2ul, Packet8s >
EIGEN_STRONG_INLINE Packet8s pcast< Packet2ul, Packet8s >(const Packet2ul &a, const Packet2ul &b, const Packet2ul &c, const Packet2ul &d)
Definition: NEON/TypeCasting.h:1054
Eigen::internal::pcast< Packet4i, Packet16uc >
EIGEN_STRONG_INLINE Packet16uc pcast< Packet4i, Packet16uc >(const Packet4i &a, const Packet4i &b, const Packet4i &c, const Packet4i &d)
Definition: NEON/TypeCasting.h:756
Eigen::internal::pcast< Packet8s, Packet4f >
EIGEN_STRONG_INLINE Packet4f pcast< Packet8s, Packet4f >(const Packet8s &a)
Definition: NEON/TypeCasting.h:419
Eigen::internal::pcast< Packet16uc, Packet4i >
EIGEN_STRONG_INLINE Packet4i pcast< Packet16uc, Packet4i >(const Packet16uc &a)
Definition: NEON/TypeCasting.h:341
Eigen::internal::pcast< Packet4f, Packet16c >
EIGEN_STRONG_INLINE Packet16c pcast< Packet4f, Packet16c >(const Packet4f &a, const Packet4f &b, const Packet4f &c, const Packet4f &d)
Definition: NEON/TypeCasting.h:124
Eigen::internal::Packet8us
__vector unsigned short int Packet8us
Definition: AltiVec/PacketMath.h:35
Eigen::numext::int32_t
::int32_t int32_t
Definition: Meta.h:57
Eigen::internal::pcast< Packet2ui, Packet8c >
EIGEN_STRONG_INLINE Packet8c pcast< Packet2ui, Packet8c >(const Packet2ui &a, const Packet2ui &b, const Packet2ui &c, const Packet2ui &d)
Definition: NEON/TypeCasting.h:886
Eigen::internal::pcast< Packet4s, Packet4us >
EIGEN_STRONG_INLINE Packet4us pcast< Packet4s, Packet4us >(const Packet4s &a)
Definition: NEON/TypeCasting.h:498
Eigen::internal::Packet8c
int8x8_t Packet8c
Definition: NEON/PacketMath.h:65
Eigen::internal::pcast< Packet4us, Packet4us >
EIGEN_STRONG_INLINE Packet4us pcast< Packet4us, Packet4us >(const Packet4us &a)
Definition: NEON/TypeCasting.h:602


gtsam
Author(s):
autogenerated on Sat Jun 1 2024 03:08:31