@@ -583,8 +583,8 @@ uint_to_string(unsigned long long in, char *out)
583
583
return pylong_to_string (pylong_val , out );
584
584
}
585
585
586
- #define STRING_TO_INT (typename , typekind , shortname , numpy_tag , printf_code , \
587
- npy_longtype ) \
586
+ #define STRING_INT_CASTS (typename , typekind , shortname , numpy_tag , \
587
+ printf_code , npy_longtype , longtype ) \
588
588
static NPY_CASTING string_to_##typename##_resolve_descriptors( \
589
589
PyObject *NPY_UNUSED(self), \
590
590
PyArray_DTypeMeta *NPY_UNUSED(dtypes[2]), \
@@ -645,38 +645,37 @@ uint_to_string(unsigned long long in, char *out)
645
645
{NPY_METH_strided_loop, &string_to_##typename}, \
646
646
{0, NULL}}; \
647
647
\
648
- static char *s2##shortname##_name = "cast_StringDType_to_" #typename;
649
-
650
- #define INT_TO_STRING (typename , typekind , shortname , longtype ) \
651
- static int typename##_to_string( \
652
- PyArrayMethod_Context *NPY_UNUSED(context), char *const data[], \
653
- npy_intp const dimensions[], npy_intp const strides[], \
654
- NpyAuxData *NPY_UNUSED(auxdata)) \
655
- { \
656
- npy_intp N = dimensions[0]; \
657
- npy_##typename *in = (npy_##typename *)data[0]; \
658
- char *out = data[1]; \
659
- \
660
- npy_intp in_stride = strides[0] / sizeof(npy_##typename); \
661
- npy_intp out_stride = strides[1]; \
662
- \
663
- while (N--) { \
664
- if (typekind##_to_string((longtype)*in, out) != 0) { \
665
- return -1; \
666
- } \
667
- in += in_stride; \
668
- out += out_stride; \
669
- } \
670
- \
671
- return 0; \
672
- } \
673
- \
674
- static PyType_Slot shortname##2s_slots [] = { \
675
- {NPY_METH_resolve_descriptors, \
676
- &any_to_string_UNSAFE_resolve_descriptors}, \
677
- {NPY_METH_strided_loop, &typename##_to_string}, \
678
- {0, NULL}}; \
679
- \
648
+ static char *s2##shortname##_name = "cast_StringDType_to_" #typename; \
649
+ \
650
+ static int typename##_to_string( \
651
+ PyArrayMethod_Context *NPY_UNUSED(context), char *const data[], \
652
+ npy_intp const dimensions[], npy_intp const strides[], \
653
+ NpyAuxData *NPY_UNUSED(auxdata)) \
654
+ { \
655
+ npy_intp N = dimensions[0]; \
656
+ npy_##typename *in = (npy_##typename *)data[0]; \
657
+ char *out = data[1]; \
658
+ \
659
+ npy_intp in_stride = strides[0] / sizeof(npy_##typename); \
660
+ npy_intp out_stride = strides[1]; \
661
+ \
662
+ while (N--) { \
663
+ if (typekind##_to_string((longtype)*in, out) != 0) { \
664
+ return -1; \
665
+ } \
666
+ in += in_stride; \
667
+ out += out_stride; \
668
+ } \
669
+ \
670
+ return 0; \
671
+ } \
672
+ \
673
+ static PyType_Slot shortname##2s_slots [] = { \
674
+ {NPY_METH_resolve_descriptors, \
675
+ &any_to_string_UNSAFE_resolve_descriptors}, \
676
+ {NPY_METH_strided_loop, &typename##_to_string}, \
677
+ {0, NULL}}; \
678
+ \
680
679
static char *shortname##2s_name = "cast_" #typename "_to_StringDType";
681
680
682
681
#define INT_DTYPES_AND_CAST_SPEC (shortname , typename ) \
@@ -695,66 +694,45 @@ uint_to_string(unsigned long long in, char *out)
695
694
shortname##2s_name, NPY_UNSAFE_CASTING, NPY_METH_REQUIRES_PYAPI, \
696
695
shortname##2s_dtypes, shortname##2s_slots);
697
696
698
- STRING_TO_INT (int8 , int , i8 , NPY_INT8 , lli , npy_longlong )
699
- INT_TO_STRING (int8 , int , i8 , long long )
700
-
701
- STRING_TO_INT (int16 , int , i16 , NPY_INT16 , lli , npy_longlong )
702
- INT_TO_STRING (int16 , int , i16 , long long )
697
+ STRING_INT_CASTS (int8 , int , i8 , NPY_INT8 , lli , npy_longlong , long long )
698
+ STRING_INT_CASTS (int16 , int , i16 , NPY_INT16 , lli , npy_longlong , long long )
699
+ STRING_INT_CASTS (int32 , int , i32 , NPY_INT32 , lli , npy_longlong , long long )
700
+ STRING_INT_CASTS (int64 , int , i64 , NPY_INT64 , lli , npy_longlong , long long )
703
701
704
- STRING_TO_INT (int32 , int , i32 , NPY_INT32 , lli , npy_longlong )
705
- INT_TO_STRING (int32 , int , i32 , long long )
706
-
707
- STRING_TO_INT (int64 , int , i64 , NPY_INT64 , lli , npy_longlong )
708
- INT_TO_STRING (int64 , int , i64 , long long )
702
+ STRING_INT_CASTS (uint8 , uint , u8 , NPY_UINT8 , llu , npy_ulonglong ,
703
+ unsigned long long)
704
+ STRING_INT_CASTS (uint16 , uint , u16 , NPY_UINT16 , llu , npy_ulonglong ,
705
+ unsigned long long)
706
+ STRING_INT_CASTS (uint32 , uint , u32 , NPY_UINT32 , llu , npy_ulonglong ,
707
+ unsigned long long)
708
+ STRING_INT_CASTS (uint64 , uint , u64 , NPY_UINT64 , llu , npy_ulonglong ,
709
+ unsigned long long)
709
710
710
711
#if NPY_SIZEOF_BYTE == NPY_SIZEOF_SHORT
711
712
// byte doesn't have a bitsized alias
712
- STRING_TO_INT (byte , int , byte , NPY_BYTE , lli , npy_byte )
713
- INT_TO_STRING (byte , int , byte , long long )
714
-
715
- STRING_TO_INT (ubyte , uint , ubyte , NPY_UBYTE , llu , npy_ubyte )
716
- INT_TO_STRING (ubyte , uint , ubyte , unsigned long long)
713
+ STRING_INT_CASTS (byte , int , byte , NPY_BYTE , lli , npy_longlong , long long )
714
+ STRING_INT_CASTS (ubyte , uint , ubyte , NPY_UBYTE , llu , npy_ulonglong ,
715
+ unsigned long long)
717
716
#endif
718
-
719
717
#if NPY_SIZEOF_SHORT == NPY_SIZEOF_INT
720
718
// short doesn't have a bitsized alias
721
- STRING_TO_INT (short , int , short , NPY_SHORT , lli , npy_short )
722
- INT_TO_STRING (short , int , short , long long )
723
-
724
- STRING_TO_INT (ushort , uint , ushort , NPY_USHORT , llu , npy_ushort )
725
- INT_TO_STRING (ushort , uint , ushort , unsigned long long)
719
+ STRING_INT_CASTS (short , int , short , NPY_SHORT , lli , npy_longlong , long long )
720
+ STRING_INT_CASTS (ushort , uint , ushort , NPY_USHORT , llu , npy_ulonglong ,
721
+ unsigned long long)
726
722
#endif
727
-
728
723
#if NPY_SIZEOF_INT == NPY_SIZEOF_LONG
729
724
// int doesn't have a bitsized alias
730
- STRING_TO_INT (int , int , int , NPY_INT , lli , npy_int )
731
- INT_TO_STRING (int , int , int , long long )
732
-
733
- STRING_TO_INT (uint , uint , uint , NPY_UINT , llu , npy_uint )
734
- INT_TO_STRING (uint , uint , uint , unsigned long long)
725
+ STRING_INT_CASTS (int , int , int , NPY_INT , lli , npy_longlong , long long )
726
+ STRING_INT_CASTS (uint , uint , uint , NPY_UINT , llu , npy_longlong , long long )
735
727
#endif
736
-
737
728
#if NPY_SIZEOF_LONGLONG == NPY_SIZEOF_LONG
738
729
// long long doesn't have a bitsized alias
739
- STRING_TO_INT (longlong , int , longlong , NPY_LONGLONG , lli , npy_longlong )
740
- INT_TO_STRING (longlong , int , longlong , long long )
741
-
742
- STRING_TO_INT (ulonglong , uint , ulonglong , NPY_ULONGLONG , llu , npy_ulonglong )
743
- INT_TO_STRING (ulonglong , uint , ulonglong , unsigned long long)
730
+ STRING_INT_CASTS (longlong , int , longlong , NPY_LONGLONG , lli , npy_longlong ,
731
+ long long )
732
+ STRING_INT_CASTS (ulonglong , uint , ulonglong , NPY_ULONGLONG , llu , npy_ulonglong ,
733
+ unsigned long long)
744
734
#endif
745
735
746
- STRING_TO_INT (uint8 , uint , u8 , NPY_UINT8 , llu , npy_ulonglong )
747
- INT_TO_STRING (uint8 , uint , u8 , unsigned long long)
748
-
749
- STRING_TO_INT (uint16 , uint , u16 , NPY_UINT16 , llu , npy_ulonglong )
750
- INT_TO_STRING (uint16 , uint , u16 , unsigned long long)
751
-
752
- STRING_TO_INT (uint32 , uint , u32 , NPY_UINT32 , llu , npy_ulonglong )
753
- INT_TO_STRING (uint32 , uint , u32 , unsigned long long)
754
-
755
- STRING_TO_INT (uint64 , uint , u64 , NPY_UINT64 , llu , npy_ulonglong )
756
- INT_TO_STRING (uint64 , uint , u64 , unsigned long long)
757
-
758
736
PyArrayMethod_Spec *
759
737
get_cast_spec (const char * name , NPY_CASTING casting ,
760
738
NPY_ARRAYMETHOD_FLAGS flags , PyArray_DTypeMeta * * dtypes ,
0 commit comments