1
1
# Math Functions
2
2
3
3
# TODO : vector types
4
- const generic_types = [Cfloat,Cdouble ]
5
- const generic_types_float = [Cfloat ]
6
- const generic_types_double = [Cdouble ]
4
+ const generic_types = [Float32,Float64 ]
5
+ const generic_types_float = [Float32 ]
6
+ const generic_types_double = [Float64 ]
7
7
8
8
9
9
# generically typed
@@ -112,10 +112,10 @@ end
112
112
113
113
for gentypef in generic_types_float
114
114
115
- if gentypef != = Cfloat
115
+ if gentypef != = Float32
116
116
@eval begin
117
- @device_override Base. max (x:: $gentypef , y:: Cfloat ) = @builtin_ccall (" fmax" , $ gentypef, ($ gentypef, Cfloat ), x, y)
118
- @device_override Base. min (x:: $gentypef , y:: Cfloat ) = @builtin_ccall (" fmin" , $ gentypef, ($ gentypef, Cfloat ), x, y)
117
+ @device_override Base. max (x:: $gentypef , y:: Float32 ) = @builtin_ccall (" fmax" , $ gentypef, ($ gentypef, Float32 ), x, y)
118
+ @device_override Base. min (x:: $gentypef , y:: Float32 ) = @builtin_ccall (" fmin" , $ gentypef, ($ gentypef, Float32 ), x, y)
119
119
end
120
120
end
121
121
@@ -126,10 +126,10 @@ end
126
126
127
127
for gentyped in generic_types_double
128
128
129
- if gentyped != = Cdouble
129
+ if gentyped != = Float64
130
130
@eval begin
131
- @device_override Base. min (x:: $gentyped , y:: Cdouble ) = @builtin_ccall (" fmin" , $ gentyped, ($ gentyped, Cdouble ), x, y)
132
- @device_override Base. max (x:: $gentyped , y:: Cdouble ) = @builtin_ccall (" fmax" , $ gentyped, ($ gentyped, Cdouble ), x, y)
131
+ @device_override Base. min (x:: $gentyped , y:: Float64 ) = @builtin_ccall (" fmin" , $ gentyped, ($ gentyped, Float64 ), x, y)
132
+ @device_override Base. max (x:: $gentyped , y:: Float64 ) = @builtin_ccall (" fmax" , $ gentyped, ($ gentyped, Float64 ), x, y)
133
133
end
134
134
end
135
135
@@ -138,47 +138,47 @@ end
138
138
139
139
# specifically typed
140
140
141
- # frexp(x::Cfloat {n}, Cint {n} *exp) = @builtin_ccall("frexp", Cfloat {n}, (Cfloat {n}, Cint {n} *), x, exp)
142
- # frexp(x::Cfloat, Cint *exp) = @builtin_ccall("frexp", Cfloat , (Cfloat, Cint *), x, exp)
143
- # frexp(x::Cdouble {n}, Cint {n} *exp) = @builtin_ccall("frexp", Cdouble {n}, (Cdouble {n}, Cint {n} *), x, exp)
144
- # frexp(x::Cdouble, Cint *exp) = @builtin_ccall("frexp", Cdouble , (Cdouble, Cint *), x, exp)
145
-
146
- # ilogb(x::Cfloat {n}) = @builtin_ccall("ilogb", Cint {n}, (Cfloat {n},), x)
147
- @device_function ilogb (x:: Cfloat ) = @builtin_ccall (" ilogb" , Cint , (Cfloat ,), x)
148
- # ilogb(x::Cdouble {n}) = @builtin_ccall("ilogb", Cint {n}, (Cdouble {n},), x)
149
- @device_function ilogb (x:: Cdouble ) = @builtin_ccall (" ilogb" , Cint , (Cdouble ,), x)
150
-
151
- # ldexp(x::Cfloat {n}, k::Cint {n}) = @builtin_ccall("ldexp", Cfloat {n}, (Cfloat {n}, Cint {n}), x, k)
152
- # ldexp(x::Cfloat {n}, k::Cint ) = @builtin_ccall("ldexp", Cfloat {n}, (Cfloat {n}, Cint ), x, k)
153
- @device_override Base. ldexp (x:: Cfloat , k:: Cint ) = @builtin_ccall (" ldexp" , Cfloat , (Cfloat, Cint ), x, k)
154
- # ldexp(x::Cdouble {n}, k::Cint {n}) = @builtin_ccall("ldexp", Cdouble {n}, (Cdouble {n}, Cint {n}), x, k)
155
- # ldexp(x::Cdouble {n}, k::Cint ) = @builtin_ccall("ldexp", Cdouble {n}, (Cdouble {n}, Cint ), x, k)
156
- @device_override Base. ldexp (x:: Cdouble , k:: Cint ) = @builtin_ccall (" ldexp" , Cdouble , (Cdouble, Cint ), x, k)
157
-
158
- # lgamma_r(x::Cfloat {n}, Cint {n} *signp) = @builtin_ccall("lgamma_r", Cfloat {n}, (Cfloat {n}, Cint {n} *), x, signp)
159
- # lgamma_r(x::Cfloat, Cint *signp) = @builtin_ccall("lgamma_r", Cfloat , (Cfloat, Cint *), x, signp)
160
- # lgamma_r(x::Cdouble {n}, Cint {n} *signp) = @builtin_ccall("lgamma_r", Cdouble {n}, (Cdouble {n}, Cint {n} *), x, signp)
161
- # Cdouble lgamma_r(x::Cdouble, Cint *signp) = @builtin_ccall("lgamma_r", Cdouble , (Cdouble, Cint *), x, signp)
162
-
163
- # nan(nancode::uintn) = @builtin_ccall("nan", Cfloat {n}, (uintn,), nancode)
164
- @device_function nan (nancode:: Cuint ) = @builtin_ccall (" nan" , Cfloat , (Cuint ,), nancode)
165
- # nan(nancode::Culong {n}) = @builtin_ccall("nan", Cdouble {n}, (Culong {n},), nancode)
166
- @device_function nan (nancode:: Culong ) = @builtin_ccall (" nan" , Cdouble , (Culong ,), nancode)
167
-
168
- # pown(x::Cfloat {n}, y::Cint {n}) = @builtin_ccall("pown", Cfloat {n}, (Cfloat {n}, Cint {n}), x, y)
169
- @device_override Base.:(^ )(x:: Cfloat , y:: Cint ) = @builtin_ccall (" pown" , Cfloat , (Cfloat, Cint ), x, y)
170
- # pown(x::Cdouble {n}, y::Cint {n}) = @builtin_ccall("pown", Cdouble {n}, (Cdouble {n}, Cint {n}), x, y)
171
- @device_override Base.:(^ )(x:: Cdouble , y:: Cint ) = @builtin_ccall (" pown" , Cdouble , (Cdouble, Cint ), x, y)
172
-
173
- # remquo(x::Cfloat {n}, y::Cfloat {n}, Cint {n} *quo) = @builtin_ccall("remquo", Cfloat {n}, (Cfloat {n}, Cfloat {n}, Cint {n} *), x, y, quo)
174
- # remquo(x::Cfloat , y::Cfloat, Cint *quo) = @builtin_ccall("remquo", Cfloat , (Cfloat, Cfloat, Cint *), x::Cfloat , y, quo)
175
- # remquo(x::Cdouble {n}, y::Cdouble {n}, Cint {n} *quo) = @builtin_ccall("remquo", Cdouble {n}, (Cdouble {n}, Cdouble {n}, Cint {n} *), x, y, quo)
176
- # remquo(x::Cdouble , y::Cdouble, Cint *quo) = @builtin_ccall("remquo", Cdouble , (Cdouble, Cdouble, Cint *), x, y, quo)
177
-
178
- # rootn(x::Cfloat {n}, y::Cint {n}) = @builtin_ccall("rootn", Cfloat {n}, (Cfloat {n}, Cint {n}), x, y)
179
- @device_function rootn (x:: Cfloat , y:: Cint ) = @builtin_ccall (" rootn" , Cfloat , (Cfloat, Cint ), x, y)
180
- # rootn(x::Cdouble {n}, y::Cint {n}) = @builtin_ccall("rootn", Cdouble {n}, (Cdouble {n}, Cint {n}), x, y)
181
- # rootn(x::Cdouble , y::Cint ) = @builtin_ccall("rootn", Cdouble {n}, (Cdouble, Cint ), x, y)
141
+ # frexp(x::Float32 {n}, Int32 {n} *exp) = @builtin_ccall("frexp", Float32 {n}, (Float32 {n}, Int32 {n} *), x, exp)
142
+ # frexp(x::Float32, Int32 *exp) = @builtin_ccall("frexp", Float32 , (Float32, Int32 *), x, exp)
143
+ # frexp(x::Float64 {n}, Int32 {n} *exp) = @builtin_ccall("frexp", Float64 {n}, (Float64 {n}, Int32 {n} *), x, exp)
144
+ # frexp(x::Float64, Int32 *exp) = @builtin_ccall("frexp", Float64 , (Float64, Int32 *), x, exp)
145
+
146
+ # ilogb(x::Float32 {n}) = @builtin_ccall("ilogb", Int32 {n}, (Float32 {n},), x)
147
+ @device_function ilogb (x:: Float32 ) = @builtin_ccall (" ilogb" , Int32 , (Float32 ,), x)
148
+ # ilogb(x::Float64 {n}) = @builtin_ccall("ilogb", Int32 {n}, (Float64 {n},), x)
149
+ @device_function ilogb (x:: Float64 ) = @builtin_ccall (" ilogb" , Int32 , (Float64 ,), x)
150
+
151
+ # ldexp(x::Float32 {n}, k::Int32 {n}) = @builtin_ccall("ldexp", Float32 {n}, (Float32 {n}, Int32 {n}), x, k)
152
+ # ldexp(x::Float32 {n}, k::Int32 ) = @builtin_ccall("ldexp", Float32 {n}, (Float32 {n}, Int32 ), x, k)
153
+ @device_override Base. ldexp (x:: Float32 , k:: Int32 ) = @builtin_ccall (" ldexp" , Float32 , (Float32, Int32 ), x, k)
154
+ # ldexp(x::Float64 {n}, k::Int32 {n}) = @builtin_ccall("ldexp", Float64 {n}, (Float64 {n}, Int32 {n}), x, k)
155
+ # ldexp(x::Float64 {n}, k::Int32 ) = @builtin_ccall("ldexp", Float64 {n}, (Float64 {n}, Int32 ), x, k)
156
+ @device_override Base. ldexp (x:: Float64 , k:: Int32 ) = @builtin_ccall (" ldexp" , Float64 , (Float64, Int32 ), x, k)
157
+
158
+ # lgamma_r(x::Float32 {n}, Int32 {n} *signp) = @builtin_ccall("lgamma_r", Float32 {n}, (Float32 {n}, Int32 {n} *), x, signp)
159
+ # lgamma_r(x::Float32, Int32 *signp) = @builtin_ccall("lgamma_r", Float32 , (Float32, Int32 *), x, signp)
160
+ # lgamma_r(x::Float64 {n}, Int32 {n} *signp) = @builtin_ccall("lgamma_r", Float64 {n}, (Float64 {n}, Int32 {n} *), x, signp)
161
+ # Float64 lgamma_r(x::Float64, Int32 *signp) = @builtin_ccall("lgamma_r", Float64 , (Float64, Int32 *), x, signp)
162
+
163
+ # nan(nancode::uintn) = @builtin_ccall("nan", Float32 {n}, (uintn,), nancode)
164
+ @device_function nan (nancode:: UInt32 ) = @builtin_ccall (" nan" , Float32 , (UInt32 ,), nancode)
165
+ # nan(nancode::UInt64 {n}) = @builtin_ccall("nan", Float64 {n}, (UInt64 {n},), nancode)
166
+ @device_function nan (nancode:: UInt64 ) = @builtin_ccall (" nan" , Float64 , (UInt64 ,), nancode)
167
+
168
+ # pown(x::Float32 {n}, y::Int32 {n}) = @builtin_ccall("pown", Float32 {n}, (Float32 {n}, Int32 {n}), x, y)
169
+ @device_override Base.:(^ )(x:: Float32 , y:: Int32 ) = @builtin_ccall (" pown" , Float32 , (Float32, Int32 ), x, y)
170
+ # pown(x::Float64 {n}, y::Int32 {n}) = @builtin_ccall("pown", Float64 {n}, (Float64 {n}, Int32 {n}), x, y)
171
+ @device_override Base.:(^ )(x:: Float64 , y:: Int32 ) = @builtin_ccall (" pown" , Float64 , (Float64, Int32 ), x, y)
172
+
173
+ # remquo(x::Float32 {n}, y::Float32 {n}, Int32 {n} *quo) = @builtin_ccall("remquo", Float32 {n}, (Float32 {n}, Float32 {n}, Int32 {n} *), x, y, quo)
174
+ # remquo(x::Float32 , y::Float32, Int32 *quo) = @builtin_ccall("remquo", Float32 , (Float32, Float32, Int32 *), x::Float32 , y, quo)
175
+ # remquo(x::Float64 {n}, y::Float64 {n}, Int32 {n} *quo) = @builtin_ccall("remquo", Float64 {n}, (Float64 {n}, Float64 {n}, Int32 {n} *), x, y, quo)
176
+ # remquo(x::Float64 , y::Float64, Int32 *quo) = @builtin_ccall("remquo", Float64 , (Float64, Float64, Int32 *), x, y, quo)
177
+
178
+ # rootn(x::Float32 {n}, y::Int32 {n}) = @builtin_ccall("rootn", Float32 {n}, (Float32 {n}, Int32 {n}), x, y)
179
+ @device_function rootn (x:: Float32 , y:: Int32 ) = @builtin_ccall (" rootn" , Float32 , (Float32, Int32 ), x, y)
180
+ # rootn(x::Float64 {n}, y::Int32 {n}) = @builtin_ccall("rootn", Float64 {n}, (Float64 {n}, Int32 {n}), x, y)
181
+ # rootn(x::Float64 , y::Int32 ) = @builtin_ccall("rootn", Float64 {n}, (Float64, Int32 ), x, y)
182
182
183
183
184
184
# TODO : half and native
0 commit comments