Raymond Toy pushed to branch issue-459-more-accurate-dd-complex-div at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/compiler/float-tran-dd.lisp
    ... ... @@ -678,6 +678,18 @@
    678 678
     	(kernel:double-double-hi b)
    
    679 679
     	(kernel:double-double-lo b)))
    
    680 680
     
    
    681
    +(deftransform = ((a b) (vm::double-double-float double-float) *)
    
    682
    +  `(dd= (kernel:double-double-hi a)
    
    683
    +	(kernel:double-double-lo a)
    
    684
    +	b
    
    685
    +	0d0))
    
    686
    +
    
    687
    +(deftransform = ((a b) (double-float vm::double-double-float) *)
    
    688
    +  `(dd= a
    
    689
    +	0d0
    
    690
    +	(kernel:double-double-hi b)
    
    691
    +	(kernel:double-double-lo b)))
    
    692
    +
    
    681 693
     
    
    682 694
     (deftransform < ((a b) (vm::double-double-float vm::double-double-float) *)
    
    683 695
       `(dd< (kernel:double-double-hi a)
    
    ... ... @@ -685,10 +697,34 @@
    685 697
     	(kernel:double-double-hi b)
    
    686 698
     	(kernel:double-double-lo b)))
    
    687 699
     
    
    700
    +(deftransform < ((a b) (vm::double-double-float double-float) *)
    
    701
    +  `(dd< (kernel:double-double-hi a)
    
    702
    +	(kernel:double-double-lo a)
    
    703
    +	b
    
    704
    +	0d0))
    
    705
    +
    
    706
    +(deftransform < ((a b) (double-float vm::double-double-float) *)
    
    707
    +  `(dd< a
    
    708
    +	0d0
    
    709
    +	(kernel:double-double-hi b)
    
    710
    +	(kernel:double-double-lo b)))
    
    711
    +
    
    688 712
     
    
    689 713
     (deftransform > ((a b) (vm::double-double-float vm::double-double-float) *)
    
    690 714
       `(dd> (kernel:double-double-hi a)
    
    691 715
     	(kernel:double-double-lo a)
    
    692 716
     	(kernel:double-double-hi b)
    
    693 717
     	(kernel:double-double-lo b)))
    
    718
    +
    
    719
    +(deftransform > ((a b) (vm::double-double-float double-float) *)
    
    720
    +  `(dd> (kernel:double-double-hi a)
    
    721
    +	(kernel:double-double-lo a)
    
    722
    +	b
    
    723
    +	0d0))
    
    724
    +
    
    725
    +(deftransform > ((a b) (double-float vm::double-double-float) *)
    
    726
    +  `(dd> a
    
    727
    +	0d0
    
    728
    +	(kernel:double-double-hi b)
    
    729
    +	(kernel:double-double-lo b)))
    
    694 730
     ) ; end progn