~ chicken-core (chicken-5) 0880ec1b83ed2fa5e472931597085b9daa9fcf14
commit 0880ec1b83ed2fa5e472931597085b9daa9fcf14
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Sep 19 12:46:06 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Mon Sep 19 12:46:06 2011 +0200
Added specialization rules for "expt" and "atan" with mixed
fixnum/float arguments.
Squashed commit of the following:
commit b70229f600e1097457451af40421a0101a2fa1c7
Author: felix <felix@call-with-current-continuation.org>
Date: Mon Sep 19 12:28:36 2011 +0200
specialization for atan/2 in mixed fixnum/flonum case
commit 25d48ad53502076d91dc09e35d14fbf0f0eb451b
Author: felix <felix@call-with-current-continuation.org>
Date: Mon Sep 19 09:19:32 2011 +0200
specializations for expt in mixed flonum/fixnum case
diff --git a/types.db b/types.db
index a9f292d4..de03b3c4 100644
--- a/types.db
+++ b/types.db
@@ -429,7 +429,15 @@
(expt (#(procedure #:clean #:enforce) expt (number number) number)
((float float) (float)
- (##core#inline_allocate ("C_a_i_flonum_expt" 4) #(1) #(2))))
+ (##core#inline_allocate ("C_a_i_flonum_expt" 4) #(1) #(2)))
+ ((float fixnum) (float)
+ (##core#inline_allocate ("C_a_i_flonum_expt" 4)
+ #(1)
+ (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2))))
+ ((fixnum float) (float)
+ (##core#inline_allocate ("C_a_i_flonum_expt" 4)
+ (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1))
+ #(2))))
(sqrt (#(procedure #:clean #:enforce) sqrt (number) float)
((float) (##core#inline_allocate ("C_a_i_flonum_sqrt" 4) #(1))))
@@ -451,6 +459,14 @@
(atan (#(procedure #:clean #:enforce) atan (number #!optional number) float)
((float) (##core#inline_allocate ("C_a_i_flonum_atan" 4) #(1)))
+ ((float fixnum)
+ (##core#inline_allocate ("C_a_i_flonum_atan2" 4)
+ #(1)
+ (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2))))
+ ((fixnum float)
+ (##core#inline_allocate ("C_a_i_flonum_atan2" 4)
+ (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2))
+ #(2)))
((float float) (##core#inline_allocate ("C_a_i_flonum_atan2" 4) #(1))))
(number->string (#(procedure #:clean #:enforce) number->string (number #!optional number) string)
Trap