summaryrefslogtreecommitdiff
path: root/cl/tests/maceps.lisp
blob: 9d6177271202e07bf0d18c1f30d43accf3a9e31e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(defpackage lizfcm/tests.maceps
  (:use :cl
        :fiveam
        :lizfcm.approx
        :lizfcm.utils
        :lizfcm/tests)
  (:export :approx-suite))
(in-package :lizfcm/tests.maceps)

(def-suite maceps-suite
           :in lizfcm-test-suite)
(in-suite maceps-suite)

(test maceps
      :description "double precision provides precision about (mac eps of single precision) squared"
      (let* ((maceps-computation-double (compute-maceps 1.0d0
                                                        (lambda (x) x)))
             (maceps-computation-single (compute-maceps 1.0
                                                        (lambda (x) x)))
             (last-double-h (cadar (last maceps-computation-double)))
             (last-single-h (cadar (last maceps-computation-single))))
        (is (within-range-p
              (- last-double-h (* last-single-h last-single-h))
              0
              last-single-h))))