Skip to content

Commit 742ee38

Browse files
committed
overload with c32/c64 for hyperbolic functions
1 parent 39cac2b commit 742ee38

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

integration_tests/test_cmath.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ def test_hyperbolic():
4848
y = cosh(x)
4949
y = sinh(x)
5050
y = tanh(x)
51+
a: c32
52+
b: c32
53+
a = complex(3, 3)
54+
b = acosh(a)
55+
b = asinh(a)
56+
b = atanh(a)
57+
b = cosh(a)
58+
b = sinh(a)
59+
b = tanh(a)
5160

5261

5362
test_power_logarithmic()

src/runtime/cmath.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,45 +157,96 @@ def tan(x: c32) -> c32:
157157
def _lfortran_zacosh(x: c64) -> c64:
158158
pass
159159

160+
@ccall
161+
def _lfortran_cacosh(x: c32) -> c32:
162+
pass
163+
164+
@overload
160165
def acosh(x: c64) -> c64:
161166
return _lfortran_zacosh(x)
162167

168+
@overload
169+
def acosh(x: c32) -> c32:
170+
return _lfortran_cacosh(x)
163171

164172
@ccall
165173
def _lfortran_zasinh(x: c64) -> c64:
166174
pass
167175

176+
@ccall
177+
def _lfortran_casinh(x: c32) -> c32:
178+
pass
179+
180+
@overload
168181
def asinh(x: c64) -> c64:
169182
return _lfortran_zasinh(x)
170183

184+
@overload
185+
def asinh(x: c32) -> c32:
186+
return _lfortran_casinh(x)
171187

172188
@ccall
173189
def _lfortran_zatanh(x: c64) -> c64:
174190
pass
175191

192+
@ccall
193+
def _lfortran_catanh(x: c32) -> c32:
194+
pass
195+
196+
@overload
176197
def atanh(x: c64) -> c64:
177198
return _lfortran_zatanh(x)
178199

200+
@overload
201+
def atanh(x: c32) -> c32:
202+
return _lfortran_catanh(x)
203+
179204

180205
@ccall
181206
def _lfortran_zcosh(x: c64) -> c64:
182207
pass
183208

209+
@ccall
210+
def _lfortran_ccosh(x: c32) -> c32:
211+
pass
212+
213+
@overload
184214
def cosh(x: c64) -> c64:
185215
return _lfortran_zcosh(x)
186216

217+
@overload
218+
def cosh(x: c32) -> c32:
219+
return _lfortran_ccosh(x)
187220

188221
@ccall
189222
def _lfortran_zsinh(x: c64) -> c64:
190223
pass
191224

225+
@ccall
226+
def _lfortran_csinh(x: c32) -> c32:
227+
pass
228+
229+
@overload
192230
def sinh(x: c64) -> c64:
193231
return _lfortran_zsinh(x)
194232

233+
@overload
234+
def sinh(x: c32) -> c32:
235+
return _lfortran_csinh(x)
236+
195237

196238
@ccall
197239
def _lfortran_ztanh(x: c64) -> c64:
198240
pass
199241

242+
@ccall
243+
def _lfortran_ctanh(x: c32) -> c32:
244+
pass
245+
246+
@overload
200247
def tanh(x: c64) -> c64:
201248
return _lfortran_ztanh(x)
249+
250+
@overload
251+
def tanh(x: c32) -> c32:
252+
return _lfortran_ctanh(x)

0 commit comments

Comments
 (0)