herbie-fp / odyssey

A platform for exploring floating-point expressions :boat:
https://herbie-fp.github.io/odyssey/
MIT License
17 stars 0 forks source link

FPCore input for det44 #94

Closed zaneenders closed 2 months ago

zaneenders commented 2 months ago

So I decided to test out the new submit with FPCore with the det44 Herbie benchmark as a sort of stress test. It currently shows some network error. Maybe to do with the size of the payload. I know websockets have a default max payload size.

(FPCore  (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
 :name "Linear.Matrix:det44 from linear-1.19.1.3"
 :alt 
 (! :herbie-platform default
  (if (< y4 -7.206256231996481e+60)
   (-
    (-
     (* (- (* b a) (* i c)) (- (* y x) (* t z)))
     (-
      (* (- (* j x) (* k z)) (- (* y0 b) (* i y1)))
      (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i)))))
    (-
     (/ (- (* y2 t) (* y3 y)) (/ 1 (- (* y4 c) (* y5 a))))
     (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0)))))
   (if (< y4 -3.364603505246317e-66)
     (+
      (-
       (- (- (* (* t c) (* i z)) (* (* a t) (* b z))) (* (* y c) (* i x)))
       (* (- (* b y0) (* i y1)) (- (* j x) (* k z))))
      (-
       (* (- (* y0 c) (* a y1)) (- (* x y2) (* z y3)))
       (-
        (* (- (* t y2) (* y y3)) (- (* y4 c) (* a y5)))
        (* (- (* y1 y4) (* y5 y0)) (- (* k y2) (* j y3))))))
     (if (< y4 -1.2000065055686116e-105)
       (+
        (+
         (-
          (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i)))
          (* (* y3 y) (- (* y5 a) (* y4 c))))
         (+
          (* (* y5 a) (* t y2))
          (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))
        (-
         (* (- (* x y2) (* z y3)) (- (* c y0) (* a y1)))
         (-
          (* (- (* b y0) (* i y1)) (- (* j x) (* k z)))
          (* (- (* y x) (* z t)) (- (* b a) (* i c))))))
       (if (< y4 6.718963124057495e-279)
         (+
          (-
           (-
            (- (* (* k y) (* y5 i)) (* (* y b) (* y4 k)))
            (* (* y5 t) (* i j)))
           (-
            (* (- (* y2 t) (* y3 y)) (- (* y4 c) (* y5 a)))
            (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0)))))
          (-
           (* (- (* b a) (* i c)) (- (* y x) (* t z)))
           (-
            (* (- (* j x) (* k z)) (- (* y0 b) (* i y1)))
            (* (- (* y2 x) (* y3 z)) (- (* c y0) (* y1 a))))))
         (if (< y4 4.77962681403792e-222)
           (+
            (+
             (-
              (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i)))
              (* (* y3 y) (- (* y5 a) (* y4 c))))
             (+
              (* (* y5 a) (* t y2))
              (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))
            (-
             (* (- (* x y2) (* z y3)) (- (* c y0) (* a y1)))
             (-
              (* (- (* b y0) (* i y1)) (- (* j x) (* k z)))
              (* (- (* y x) (* z t)) (- (* b a) (* i c))))))
           (if (< y4 2.2852241541266835e-175)
             (+
              (-
               (-
                (- (* (* k y) (* y5 i)) (* (* y b) (* y4 k)))
                (* (* y5 t) (* i j)))
               (-
                (* (- (* y2 t) (* y3 y)) (- (* y4 c) (* y5 a)))
                (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0)))))
              (-
               (* (- (* b a) (* i c)) (- (* y x) (* t z)))
               (-
                (* (- (* j x) (* k z)) (- (* y0 b) (* i y1)))
                (* (- (* y2 x) (* y3 z)) (- (* c y0) (* y1 a))))))
             (+
              (-
               (+
                (+
                 (-
                  (* (- (* x y) (* z t)) (- (* a b) (* c i)))
                  (-
                   (* k (* i (* z y1)))
                   (+ (* j (* i (* x y1))) (* y0 (* k (* z b))))))
                 (-
                  (* z (* y3 (* a y1)))
                  (+ (* y2 (* x (* a y1))) (* y0 (* z (* c y3))))))
                (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i))))
               (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a))))
              (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))))))))
 (+
  (-
   (+
    (+
     (-
      (* (- (* x y) (* z t)) (- (* a b) (* c i)))
      (* (- (* x j) (* z k)) (- (* y0 b) (* y1 i))))
     (* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a))))
    (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i))))
   (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a))))
  (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))
Screenshot 2024-08-20 at 10 13 41 AM
zaneenders commented 2 months ago

Fixed with https://github.com/herbie-fp/herbie/pull/969

zaneenders commented 2 months ago

The PR above has been merged and this should be fixed.