1. 16 Jun, 2009 1 commit
    • rtoy's avatar
      compiler/x86/float-sse2.lisp: · e220506c
      rtoy authored
      o Add vop for conjugate of complex single and double floats.
      o Disable deftransform for conjugate.  All platforms with complex fp
        vops support conjugate.
  2. 15 Jun, 2009 6 commits
    • rtoy's avatar
      compiler/float-tran.lisp: · 5a98a234
      rtoy authored
      o Sparc has a vop for complex conjugate, so we can disable the
      o Both sparc and x86 have a vop to do float - complex, so disable that
        transform too.
      o Fix the float-complex vop to do the right thing wrt contagion.
      o Remove some old commented out vop for complex*complex and
    • rtoy's avatar
      Add DESCRIBE-CHARACTER function to describe characters. This includes · 171421d3
      rtoy authored
      the character's code and name.
    • rtoy's avatar
      o Fix deftransforms to do contagion correctly: · 2b772630
      rtoy authored
        - complex + real
        - complex - real
        - real + complex
      o Clean up comments and fix erroneous ones.
    • rtoy's avatar
      Fix issue with complex contagion on sparc. The vops for complex+real · f1399c10
      rtoy authored
      and complex-real didn't compute the imaginary part correctly; we need
      to add (or subtract) 0 to get the correct signed zero.
      (+ #c(1d0 -0d0) 1d0) -> #c(2d0 0d0), not #c(2d0 -0d0)
      o Define *FP-CONSTANT-0F0* and *FP-CONSTANT-0D0*, floating point
      o Initialize *FP-CONSTANT-0F0* and *FP-CONSTANT-0D0* during genesis.
      o Add *FP-CONSTANT-0F0* and *FP-CONSTANT-0D0* to the static symbols so
        vops can access them easily.  For bootstrapping purposes, we steal
        the spare-9 and sparc-8 symbols.
      o Update vops for complex + float and complex - float.  Need to add
        (or subtract) 0 to the imaginary part to get the correct signed
      o Update vop for float+complex as above.
    • rtoy's avatar
      For Linux, default to gencgc. · 266512a4
      rtoy authored
    • rtoy's avatar
      code/numbers.lisp: · 3934a9cb
      rtoy authored
      o Do appropriate contagion when computing a complex + real or complex
        - real.  (+ #c(1d0 -0d0)  1d0) should be #c(2d0 0d0), not #c(2d0
      o Update vops for computing complex +/- float and float + complex to
        do appropriate contagion so that the imaginary part has the correct
        sign (as above for numbers.lisp).
  3. 14 Jun, 2009 1 commit
  4. 13 Jun, 2009 1 commit
  5. 12 Jun, 2009 1 commit
  6. 11 Jun, 2009 1 commit
  7. 20 Apr, 2009 2 commits
  8. 13 Apr, 2009 1 commit
  9. 10 Apr, 2009 2 commits
    • rtoy's avatar
      Update · 24898eb6
      rtoy authored
    • rtoy's avatar
      o Add some docstrings to READ-VECTOR and WRITE-VECTOR. · 3d14cbf2
      rtoy authored
      o Fix a confusion about the length of the vector versus the start and
        end octets.  If END is not given, we use the length of the vector,
        but it must be scaled by the number of octets per element.
  10. 08 Apr, 2009 2 commits
  11. 27 Mar, 2009 2 commits
  12. 25 Mar, 2009 2 commits
    • rtoy's avatar
      linux-os.lisp: · f0c421a2
      rtoy authored
      o Use unix:unix-uname to get the software version.  (I don't want to
        deal with broken Linux kernels or other implementation details in
        trying to read /proc/version, and I don't want to run uname -r.)
      o Use unix:unix-uname to get the software version instead of running
        uname -r.
    • rtoy's avatar
      Carl fixed the aliasing issue in e_rem_pio2.c sometime ago so we don't · 1ca43a1a
      rtoy authored
      need the -ffloat-store and -fno-strict-aliasing flags anymore.  The
      Linux x87 build correctly returns -0.9258790228548379d0 for (cos (expt
      2d0 120)).
  13. 24 Mar, 2009 1 commit
  14. 20 Mar, 2009 1 commit
    • rtoy's avatar
      This big of code causes CMUCL to spend huge amounts of time trying to · cb674c89
      rtoy authored
      simplify the union of disjoint double-float types:
      (defun foo (arg)
        (declare (type double-double-float arg)
      	   (optimize (speed 3) (space 0)))
        (let* ((x arg)
      	 (xx 0w0)
      	 (k 0)
      	 (px (coerce k 'double-double-float))
      	 (qx 0w0))
          (declare (type double-double-float x xx px qx)
      	     (notinline poly-eval poly-eval-1))
          (setf x (- (- x (* px log2-c1)) (* px log2-c2)))
          (+ x 0d0)
      Fix it:
      o SIMPLIFY-BIG-UNION takes an extra arg to specify the resulting type.
      o Modify SIMPLIFY-UNIONS to handle float unions as well as integer
      o Update
  15. 18 Mar, 2009 1 commit
    • rtoy's avatar
      code/irrat-dd.lisp: · 8bd5d96d
      rtoy authored
      o Declare POLY-EVAL and POLY-EVAL-1 as maybe-inline functions so they
        can be semi-inlined.
      o I don't think there's any real reason to make the local function
        REAL-EXPT inline.  It's very big and local function call is already
        good enough.
      o Change some functions to be maybe-inline instead of inline to save
        on space for the the larger double-double functions:  SUB-DD,
        SUB-D-DD, SUB-DD-D, SPLIT.  Semi-inline should be good enough for
        these large functions, saving on cache memory, local function
        calling sequence should be good enough.
  16. 16 Mar, 2009 1 commit
  17. 11 Mar, 2009 1 commit
  18. 03 Mar, 2009 1 commit
  19. 22 Feb, 2009 1 commit
  20. 09 Feb, 2009 3 commits
  21. 23 Jan, 2009 1 commit
  22. 22 Jan, 2009 1 commit
  23. 21 Jan, 2009 3 commits
  24. 20 Jan, 2009 3 commits