@@ -13,9 +13,6 @@ _ShapeT = TypeVar("_ShapeT", bound=tuple[int, ...])
13
13
_Norm : TypeAlias = Literal ["backward" , "ortho" , "forward" ]
14
14
_Unused : TypeAlias = Never # not used by scipy
15
15
16
- _FloatingND : TypeAlias = onp .ArrayND [np .float32 | np .float64 | np .longdouble ]
17
- _ComplexND : TypeAlias = onp .ArrayND [npc .complexfloating ]
18
-
19
16
_AsFloat32 : TypeAlias = onp .CanArray [_ShapeT , np .dtype [npc .floating32 ]]
20
17
_AsFloat64 : TypeAlias = onp .CanArray [_ShapeT , np .dtype [np .bool_ | npc .integer | npc .floating64 ]]
21
18
_AsFloat80 : TypeAlias = onp .CanArray [_ShapeT , np .dtype [np .longdouble ]]
@@ -853,63 +850,344 @@ def ihfft2(
853
850
###
854
851
# N-D
855
852
853
+ # keep in sync with `ifftn`
854
+ @overload
855
+ def fftn ( # type: ignore[overload-overlap]
856
+ x : _AsComplex64 [_ShapeT ],
857
+ s : onp .ToJustIntND | None = None ,
858
+ axes : AnyShape | None = None ,
859
+ norm : _Norm | None = None ,
860
+ overwrite_x : onp .ToBool = False ,
861
+ workers : int | None = None ,
862
+ * ,
863
+ plan : _Unused | None = None ,
864
+ ) -> onp .Array [_ShapeT , np .complex64 ]: ...
865
+ @overload
866
+ def fftn (
867
+ x : _AsComplex128 [_ShapeT ],
868
+ s : onp .ToJustIntND | None = None ,
869
+ axes : AnyShape | None = None ,
870
+ norm : _Norm | None = None ,
871
+ overwrite_x : onp .ToBool = False ,
872
+ workers : int | None = None ,
873
+ * ,
874
+ plan : _Unused | None = None ,
875
+ ) -> onp .Array [_ShapeT , np .complex128 ]: ...
876
+ @overload
877
+ def fftn (
878
+ x : _AsComplex160 [_ShapeT ],
879
+ s : onp .ToJustIntND | None = None ,
880
+ axes : AnyShape | None = None ,
881
+ norm : _Norm | None = None ,
882
+ overwrite_x : onp .ToBool = False ,
883
+ workers : int | None = None ,
884
+ * ,
885
+ plan : _Unused | None = None ,
886
+ ) -> onp .Array [_ShapeT , np .clongdouble ]: ...
887
+ @overload
888
+ def fftn (
889
+ x : _ToComplex128_ND ,
890
+ s : onp .ToJustIntND | None = None ,
891
+ axes : AnyShape | None = None ,
892
+ norm : _Norm | None = None ,
893
+ overwrite_x : onp .ToBool = False ,
894
+ workers : int | None = None ,
895
+ * ,
896
+ plan : _Unused | None = None ,
897
+ ) -> onp .ArrayND [np .complex128 ]: ...
898
+ @overload
856
899
def fftn (
857
900
x : onp .ToComplexND ,
858
- s : onp .ToIntND | None = None ,
901
+ s : onp .ToJustIntND | None = None ,
902
+ axes : AnyShape | None = None ,
903
+ norm : _Norm | None = None ,
904
+ overwrite_x : onp .ToBool = False ,
905
+ workers : int | None = None ,
906
+ * ,
907
+ plan : _Unused | None = None ,
908
+ ) -> onp .ArrayND [np .complex128 | Any ]: ...
909
+
910
+ # keep in sync with `fftn`
911
+ @overload
912
+ def ifftn ( # type: ignore[overload-overlap]
913
+ x : _AsComplex64 [_ShapeT ],
914
+ s : onp .ToJustIntND | None = None ,
915
+ axes : AnyShape | None = None ,
916
+ norm : _Norm | None = None ,
917
+ overwrite_x : onp .ToBool = False ,
918
+ workers : int | None = None ,
919
+ * ,
920
+ plan : _Unused | None = None ,
921
+ ) -> onp .Array [_ShapeT , np .complex64 ]: ...
922
+ @overload
923
+ def ifftn (
924
+ x : _AsComplex128 [_ShapeT ],
925
+ s : onp .ToJustIntND | None = None ,
926
+ axes : AnyShape | None = None ,
927
+ norm : _Norm | None = None ,
928
+ overwrite_x : onp .ToBool = False ,
929
+ workers : int | None = None ,
930
+ * ,
931
+ plan : _Unused | None = None ,
932
+ ) -> onp .Array [_ShapeT , np .complex128 ]: ...
933
+ @overload
934
+ def ifftn (
935
+ x : _AsComplex160 [_ShapeT ],
936
+ s : onp .ToJustIntND | None = None ,
937
+ axes : AnyShape | None = None ,
938
+ norm : _Norm | None = None ,
939
+ overwrite_x : onp .ToBool = False ,
940
+ workers : int | None = None ,
941
+ * ,
942
+ plan : _Unused | None = None ,
943
+ ) -> onp .Array [_ShapeT , np .clongdouble ]: ...
944
+ @overload
945
+ def ifftn (
946
+ x : _ToComplex128_ND ,
947
+ s : onp .ToJustIntND | None = None ,
859
948
axes : AnyShape | None = None ,
860
949
norm : _Norm | None = None ,
861
950
overwrite_x : onp .ToBool = False ,
862
951
workers : int | None = None ,
863
952
* ,
864
953
plan : _Unused | None = None ,
865
- ) -> _ComplexND : ...
954
+ ) -> onp .ArrayND [np .complex128 ]: ...
955
+ @overload
866
956
def ifftn (
867
957
x : onp .ToComplexND ,
868
- s : onp .ToIntND | None = None ,
958
+ s : onp .ToJustIntND | None = None ,
959
+ axes : AnyShape | None = None ,
960
+ norm : _Norm | None = None ,
961
+ overwrite_x : onp .ToBool = False ,
962
+ workers : int | None = None ,
963
+ * ,
964
+ plan : _Unused | None = None ,
965
+ ) -> onp .ArrayND [np .complex128 | Any ]: ...
966
+
967
+ # keep in sync with `ihfftn`
968
+ @overload
969
+ def rfftn ( # type: ignore[overload-overlap]
970
+ x : _AsFloat32 [_ShapeT ],
971
+ s : onp .ToJustIntND | None = None ,
869
972
axes : AnyShape | None = None ,
870
973
norm : _Norm | None = None ,
871
974
overwrite_x : onp .ToBool = False ,
872
975
workers : int | None = None ,
873
976
* ,
874
977
plan : _Unused | None = None ,
875
- ) -> _ComplexND : ...
978
+ ) -> onp .Array [_ShapeT , np .complex64 ]: ...
979
+ @overload
980
+ def rfftn (
981
+ x : _AsFloat64 [_ShapeT ],
982
+ s : onp .ToJustIntND | None = None ,
983
+ axes : AnyShape | None = None ,
984
+ norm : _Norm | None = None ,
985
+ overwrite_x : onp .ToBool = False ,
986
+ workers : int | None = None ,
987
+ * ,
988
+ plan : _Unused | None = None ,
989
+ ) -> onp .Array [_ShapeT , np .complex128 ]: ...
990
+ @overload
991
+ def rfftn (
992
+ x : _AsFloat80 [_ShapeT ],
993
+ s : onp .ToJustIntND | None = None ,
994
+ axes : AnyShape | None = None ,
995
+ norm : _Norm | None = None ,
996
+ overwrite_x : onp .ToBool = False ,
997
+ workers : int | None = None ,
998
+ * ,
999
+ plan : _Unused | None = None ,
1000
+ ) -> onp .Array [_ShapeT , np .clongdouble ]: ...
1001
+ @overload
1002
+ def rfftn (
1003
+ x : _ToFloat64_ND ,
1004
+ s : onp .ToJustIntND | None = None ,
1005
+ axes : AnyShape | None = None ,
1006
+ norm : _Norm | None = None ,
1007
+ overwrite_x : onp .ToBool = False ,
1008
+ workers : int | None = None ,
1009
+ * ,
1010
+ plan : _Unused | None = None ,
1011
+ ) -> onp .ArrayND [np .complex128 ]: ...
1012
+ @overload
876
1013
def rfftn (
877
1014
x : onp .ToFloatND ,
878
- s : onp .ToIntND | None = None ,
1015
+ s : onp .ToJustIntND | None = None ,
1016
+ axes : AnyShape | None = None ,
1017
+ norm : _Norm | None = None ,
1018
+ overwrite_x : onp .ToBool = False ,
1019
+ workers : int | None = None ,
1020
+ * ,
1021
+ plan : _Unused | None = None ,
1022
+ ) -> onp .ArrayND [np .complex128 | Any ]: ...
1023
+
1024
+ # keep in sync with `hfftn`
1025
+ @overload
1026
+ def irfftn ( # type: ignore[overload-overlap]
1027
+ x : _AsComplex64 [_ShapeT ],
1028
+ s : onp .ToJustIntND | None = None ,
1029
+ axes : AnyShape | None = None ,
1030
+ norm : _Norm | None = None ,
1031
+ overwrite_x : onp .ToBool = False ,
1032
+ workers : int | None = None ,
1033
+ * ,
1034
+ plan : _Unused | None = None ,
1035
+ ) -> onp .Array [_ShapeT , np .float32 ]: ...
1036
+ @overload
1037
+ def irfftn (
1038
+ x : _AsComplex128 [_ShapeT ],
1039
+ s : onp .ToJustIntND | None = None ,
1040
+ axes : AnyShape | None = None ,
1041
+ norm : _Norm | None = None ,
1042
+ overwrite_x : onp .ToBool = False ,
1043
+ workers : int | None = None ,
1044
+ * ,
1045
+ plan : _Unused | None = None ,
1046
+ ) -> onp .Array [_ShapeT , np .float64 ]: ...
1047
+ @overload
1048
+ def irfftn (
1049
+ x : _AsComplex160 [_ShapeT ],
1050
+ s : onp .ToJustIntND | None = None ,
879
1051
axes : AnyShape | None = None ,
880
1052
norm : _Norm | None = None ,
881
1053
overwrite_x : onp .ToBool = False ,
882
1054
workers : int | None = None ,
883
1055
* ,
884
1056
plan : _Unused | None = None ,
885
- ) -> _ComplexND : ...
1057
+ ) -> onp .Array [_ShapeT , np .longdouble ]: ...
1058
+ @overload
1059
+ def irfftn (
1060
+ x : _ToComplex128_ND ,
1061
+ s : onp .ToJustIntND | None = None ,
1062
+ axes : AnyShape | None = None ,
1063
+ norm : _Norm | None = None ,
1064
+ overwrite_x : onp .ToBool = False ,
1065
+ workers : int | None = None ,
1066
+ * ,
1067
+ plan : _Unused | None = None ,
1068
+ ) -> onp .ArrayND [np .float64 ]: ...
1069
+ @overload
886
1070
def irfftn (
887
1071
x : onp .ToComplexND ,
888
- s : onp .ToIntND | None = None ,
1072
+ s : onp .ToJustIntND | None = None ,
1073
+ axes : AnyShape | None = None ,
1074
+ norm : _Norm | None = None ,
1075
+ overwrite_x : onp .ToBool = False ,
1076
+ workers : int | None = None ,
1077
+ * ,
1078
+ plan : _Unused | None = None ,
1079
+ ) -> onp .ArrayND [np .float64 | Any ]: ...
1080
+
1081
+ # keep in sync with `irfftn`
1082
+ @overload
1083
+ def hfftn ( # type: ignore[overload-overlap]
1084
+ x : _AsComplex64 [_ShapeT ],
1085
+ s : onp .ToJustIntND | None = None ,
1086
+ axes : AnyShape | None = None ,
1087
+ norm : _Norm | None = None ,
1088
+ overwrite_x : onp .ToBool = False ,
1089
+ workers : int | None = None ,
1090
+ * ,
1091
+ plan : _Unused | None = None ,
1092
+ ) -> onp .Array [_ShapeT , np .float32 ]: ...
1093
+ @overload
1094
+ def hfftn (
1095
+ x : _AsComplex128 [_ShapeT ],
1096
+ s : onp .ToJustIntND | None = None ,
1097
+ axes : AnyShape | None = None ,
1098
+ norm : _Norm | None = None ,
1099
+ overwrite_x : onp .ToBool = False ,
1100
+ workers : int | None = None ,
1101
+ * ,
1102
+ plan : _Unused | None = None ,
1103
+ ) -> onp .Array [_ShapeT , np .float64 ]: ...
1104
+ @overload
1105
+ def hfftn (
1106
+ x : _AsComplex160 [_ShapeT ],
1107
+ s : onp .ToJustIntND | None = None ,
1108
+ axes : AnyShape | None = None ,
1109
+ norm : _Norm | None = None ,
1110
+ overwrite_x : onp .ToBool = False ,
1111
+ workers : int | None = None ,
1112
+ * ,
1113
+ plan : _Unused | None = None ,
1114
+ ) -> onp .Array [_ShapeT , np .longdouble ]: ...
1115
+ @overload
1116
+ def hfftn (
1117
+ x : _ToComplex128_ND ,
1118
+ s : onp .ToJustIntND | None = None ,
889
1119
axes : AnyShape | None = None ,
890
1120
norm : _Norm | None = None ,
891
1121
overwrite_x : onp .ToBool = False ,
892
1122
workers : int | None = None ,
893
1123
* ,
894
1124
plan : _Unused | None = None ,
895
- ) -> _FloatingND : ...
1125
+ ) -> onp .ArrayND [np .float64 ]: ...
1126
+ @overload
896
1127
def hfftn (
897
1128
x : onp .ToComplexND ,
898
- s : onp .ToIntND | None = None ,
1129
+ s : onp .ToJustIntND | None = None ,
1130
+ axes : AnyShape | None = None ,
1131
+ norm : _Norm | None = None ,
1132
+ overwrite_x : onp .ToBool = False ,
1133
+ workers : int | None = None ,
1134
+ * ,
1135
+ plan : _Unused | None = None ,
1136
+ ) -> onp .ArrayND [np .float64 | Any ]: ...
1137
+
1138
+ # keep in sync with `rfftn`
1139
+ @overload
1140
+ def ihfftn ( # type: ignore[overload-overlap]
1141
+ x : _AsFloat32 [_ShapeT ],
1142
+ s : onp .ToJustIntND | None = None ,
899
1143
axes : AnyShape | None = None ,
900
1144
norm : _Norm | None = None ,
901
1145
overwrite_x : onp .ToBool = False ,
902
1146
workers : int | None = None ,
903
1147
* ,
904
1148
plan : _Unused | None = None ,
905
- ) -> _FloatingND : ...
1149
+ ) -> onp .Array [_ShapeT , np .complex64 ]: ...
1150
+ @overload
1151
+ def ihfftn (
1152
+ x : _AsFloat64 [_ShapeT ],
1153
+ s : onp .ToJustIntND | None = None ,
1154
+ axes : AnyShape | None = None ,
1155
+ norm : _Norm | None = None ,
1156
+ overwrite_x : onp .ToBool = False ,
1157
+ workers : int | None = None ,
1158
+ * ,
1159
+ plan : _Unused | None = None ,
1160
+ ) -> onp .Array [_ShapeT , np .complex128 ]: ...
1161
+ @overload
1162
+ def ihfftn (
1163
+ x : _AsFloat80 [_ShapeT ],
1164
+ s : onp .ToJustIntND | None = None ,
1165
+ axes : AnyShape | None = None ,
1166
+ norm : _Norm | None = None ,
1167
+ overwrite_x : onp .ToBool = False ,
1168
+ workers : int | None = None ,
1169
+ * ,
1170
+ plan : _Unused | None = None ,
1171
+ ) -> onp .Array [_ShapeT , np .clongdouble ]: ...
1172
+ @overload
1173
+ def ihfftn (
1174
+ x : _ToFloat64_ND ,
1175
+ s : onp .ToJustIntND | None = None ,
1176
+ axes : AnyShape | None = None ,
1177
+ norm : _Norm | None = None ,
1178
+ overwrite_x : onp .ToBool = False ,
1179
+ workers : int | None = None ,
1180
+ * ,
1181
+ plan : _Unused | None = None ,
1182
+ ) -> onp .ArrayND [np .complex128 ]: ...
1183
+ @overload
906
1184
def ihfftn (
907
1185
x : onp .ToFloatND ,
908
- s : onp .ToIntND | None = None ,
1186
+ s : onp .ToJustIntND | None = None ,
909
1187
axes : AnyShape | None = None ,
910
1188
norm : _Norm | None = None ,
911
1189
overwrite_x : onp .ToBool = False ,
912
1190
workers : int | None = None ,
913
1191
* ,
914
1192
plan : _Unused | None = None ,
915
- ) -> _ComplexND : ...
1193
+ ) -> onp . ArrayND [ np . complex128 | Any ] : ...
0 commit comments