Commit 7fb99487 by Joachim Bard

### putting testfiles into testfiles/fm2019

parent d2eea5dc
 ... @@ -7,7 +7,7 @@ import Real._ ... @@ -7,7 +7,7 @@ import Real._ object DopplerFMA { object DopplerFMA { def doppler(u: Real, v: Real, T: Real): Real = { def doppler(u: Real, v: Real, T: Real): Real = { require(-100.0 <= u && u <= 100 && 20 <= v && v <= 20000 && -30 <= T && T <= 50) require(-100.0 <= u && u <= 100 && 20 <= v && v <= 20000 && -30 <= T && T <= 50 && u + T <= 100) val t1 = fma(0.6, T, 331.4) val t1 = fma(0.6, T, 331.4) (- (t1) *v) / ((t1 + u)*(t1 + u)) (- (t1) *v) / ((t1 + u)*(t1 + u)) ... ...
 import daisy.lang._ import Real._ object JetEngine { def jetEngine(x1: Real, x2: Real): Real = { require(-5 <= x1 && x1 <= 5 && -20 <= x2 && x2 <= 5) val t = (3*x1*x1 + 2*x2 - x1) x1 + ((2*x1*(t/(x1*x1 + 1))* (t/(x1*x1 + 1) - 3) + x1*x1*(4*(t/(x1*x1 + 1))-6))* (x1*x1 + 1) + 3*x1*x1*(t/(x1*x1 + 1)) + x1*x1*x1 + x1 + 3*((3*x1*x1 + 2*x2 -x1)/(x1*x1 + 1))) } } \ No newline at end of file
 import daisy.lang._ import Real._ object BallBeam { // s1 <1, 16, 14>, s2, s3, s4: <1, 16, 15> def ballbeam(s1: Real, s2: Real, s3: Real, s4: Real) = { require(0 <= s1 && s1 <= 1 && -0.5 <= s2 && s2 <= 0.5 && 0 <= s3 && s3 <= 0.5 && 0 <= s4 && s4 <= 0.5) (-1828.6) * s1 + (-1028.6) * s2 + (-2008.0) * s3 + (-104.0) * s4 } }
 import daisy.lang._ import Real._ object Bicycle { // s1, s2, s3, y1: <1, 16, 14>, [-1, 1] def out1(s1: Real, s2: Real) = { require(-1 <= s1 && s1 <= 1 && -1 <= s2 && s2 <= 1) (-3.025300) * s1 + (-12.608900) * s2 } def state1(s1: Real, s2: Real, y1: Real) = { require(-1 <= s1 && s1 <= 1 && -1 <= s2 && s2 <= 1 && -1 <= y1 && y1 <= 1) (0.961270) * s1 + (-0.095962) * s2 + (0.013200) * y1 } def state2(s1: Real, s2: Real, y1: Real) = { require(-1 <= s1 && s1 <= 1 && -1 <= s2 && s2 <= 1 && -1 <= y1 && y1 <= 1) (-0.058217) * s1 + (0.727430) * s2 + (0.102100) * y1 } } \ No newline at end of file
 import daisy.lang._ import Real._ /** Equation and initial ranges from: L. Zhang, Y. Zhang, and W. Zhou. Tradeoff between Approximation Accuracy and Complexity for Range Analysis using Affine Arithmetic. */ object Bsplines { def bspline0(u: Real): Real = { require(0 <= u && u <= 1) (1 - u) * (1 - u) * (1 - u) / 6.0 } ensuring (res => 0 <= res && res <= 0.17 && res +/- 1e-15) // proven in paper: [-0.05, 0.17] def bspline1(u: Real): Real = { require(0 <= u && u <= 1) (3 * u*u*u - 6 * u*u + 4) / 6.0 } ensuring (res => 0.16 <= res && res <= 0.7 && res +/- 1e-15) // in paper [-0.05, 0.98] def bspline2(u: Real): Real = { require(0 <= u && u <= 1) (-3 * u*u*u + 3*u*u + 3*u + 1) / 6.0 } ensuring (res => 0.16 <= res && res <= 0.7 && res +/- 1e-15) // in paper [-0.02, 0.89] def bspline3(u: Real): Real = { require(0 <= u && u <= 1) -u*u*u / 6.0 } ensuring (res => -0.17 <= res && res <= 0.0 && res +/- 1e-15) // in paper [-0.17, 0.05] }
 import daisy.lang._ import Real._ /* Real2Float Optimization problems A Collection of Test Problems for Constrained Global Optimization Algorithms, Floudas, Pardalos 1990 */ object Floudas { def floudas26(x1: Real, x2: Real, x3: Real, x4: Real, x5: Real, x6: Real, x7: Real, x8: Real, x9: Real, x10: Real): Real = { require(0 <= x1 && x1 <= 1 && 0 <= x2 && x2 <= 1 && 0 <= x3 && x3 <= 1 && 0 <= x4 && x4 <= 1 && 0 <= x5 && x5 <= 1 && 0 <= x6 && x6 <= 1 && 0 <= x7 && x7 <= 1 && 0 <= x8 && x8 <= 1 && 0 <= x9 && x9 <= 1 && 0 <= x10 && x10 <= 1 && 2 * x1 +6*x2 +1*x3 +0*x4 +3*x5 + 3*x6 +2*x7 +6*x8 +2*x9+2*x10 - 4 >= 0 && 22-(6*x1 -5*x2 +8*x3 -3*x4 +0*x5+1*x6 +3*x7 +8*x8 +9*x9-3*x10)>= 0 && -(5*x1 +6*x2 +5*x3 +3*x4 +8*x5 -8*x6 +9*x7 +2*x8 +0*x9-9*x10) - 6 >= 0 && -(9*x1 +5*x2 +0*x3 -9*x4 +1*x5 -8*x6 +3*x7 -9*x8 -9*x9-3*x10) - 23 >= 0 && -(-(8*x1) +7*x2 -4*x3 -5*x4 -9*x5 +1*x6 -7*x7 -1*x8 +3*x9-2*x10) - 12 >= 0) 48*x1 + 42*x2 + 48*x3 + 45*x4 + 44*x5 + 41*x6 + 47*x7 + 42*x8 + 45*x9 + 46*x10 - 50*(x1*x1 + x2*x2 + x3*x3 + x4*x4 + x5*x5 + x6*x6 + x7*x7 + x8*x8 + x9*x9 + x10*x10) }// 5.15e-13 def floudas33(x1: Real, x2: Real, x3: Real, x4: Real, x5: Real, x6: Real): Real = { require(0 <= x1 && x1 <= 6 && 0 <= x2 && x2 <= 6 && 1 <= x3 && x3 <= 5 && 0 <= x4 && x4 <= 6 && 1 <= x5 && x5 <= 5 && 0 <= x6 && x6 <= 10 && (x3 -3)*(x3 -3) + x4 - 4 >= 0 && (x5 -3)*(x5 -3) + x6 - 4 >= 0 && 2 - x1 + 3 * x2 >= 0 && 2 + x1 - x2 >= 0 && 6 - x1 - x2 >= 0 && x1 + x2 - 2 >= 0) - (25 * (x1 -2)*(x1 -2)) - (x2 -2)* (x2 -2) - (x3 -1)*(x3 -1) - (x4 -4)*(x4 -4) - (x5 - 1)*(x5 - 1) - (x6 - 4)* (x6 - 4) } //5.81e–13 def floudas34(x1: Real, x2: Real, x3: Real): Real = { require(0 <= x1 && x1 <= 2 && 0 <= x2 && x2 <= 2 && 0 <= x3 && x3 <= 3 && 4 - x1 - x2 - x3 >= 0 && 6 - 3 * x2 - x3 >= 0 && 2*x1 - 0.75 - 2*x3 + 4*x1*x1 - 4*x1*x2 + 4*x1*x3 + 2*x2*x2 - 2*x2*x3 + 2*x3*x3 >= 0) -2 * x1 + x2 - x3 } //2.67e - 15 def floudas46(x1: Real, x2: Real): Real = { require(0 <= x1 && x1 <= 3 && 0 <= x2 && x2 <= 4 && 2 * x1*x1*x1*x1 - 8 * x1*x1*x1 + 8 * x1* x1 - x2 >= 0 && 4 * x1*x1*x1*x1 - 32 * x1*x1*x1 + 88 * x1*x1 - 96*x1 + 36 - x2 >= 0) -x1 - x2 } //1.38e–15 def floudas47(x1: Real, x2: Real): Real = { require(0 <= x1 && x1 <= 2 && 0 <= x2 && x2 <= 3 && -2 * x1*x1*x1*x1 + 2 - x2 >= 0) -12*x1 -7*x2 +x2 *x2 } //1.01e–14 // from FPTaylor github def floudas1(x1: Real, x2: Real, x3: Real, x4: Real, x5: Real, x6: Real): Real = { require(0 <= x1 && x1 <= 6 && 0 <= x2 && x2 <= 6 && 1 <= x3 && x3 <= 5 && 0 <= x4 && x4 <= 6 && 1 <= x5 && x5 <= 5 && 0 <= x6 && x6 <= 10 && (x3 - 3) * (x3 - 3) + x4 - 4 >= 0 && (x5 - 3) * (x5 - 3) + x6 - 4 >= 0 && 2 - x1 + 3 * x2 >= 0 && 2 + x1 - x2 >= 0 && 6 - x1 - x2 >= 0 && x1 + x2 - 2 >= 0) -25 * ((x1 - 2) * (x1 - 2)) - ((x2 - 2) * (x2 - 2)) - ((x3 - 1) * (x3 - 1)) - ((x4 - 4) * (x4 - 4)) - ((x5 - 1) * (x5 - 1)) - ((x6 - 4) * (x6 - 4)) } }
 import daisy.lang._ import Real._ object InvertedPendulum { // s1: <1, 16, 9> s2: <1, 16, 11> s3,s4: <1, 16, 15> def out(s1: Real, s2: Real, s3: Real, s4: Real) = { require(-50 <= s1 && s1 <= 50 && -10 <= s2 && s2 <= 10 && -0.785 <= s3 && s3 <= 0.785 && -0.785 <= s4 && s4 <= 0.785) 1.0000 * s1 + 1.6567 * s2 + (-18.6854) * s3 + (-3.4594) * s4 } }
 import daisy.lang._ import Real._ /* These benchmarks were used by the Real2Float tool, and come from the proof of the Kepler conjecture Introduction to the flyspec project, T.C. Hales, Dagstuhl 2006 */ object Kepler { //15 operations def kepler0(x1: Real, x2: Real, x3: Real, x4: Real, x5: Real, x6: Real): Real = { require(4 <= x1 && x1 <= 6.36 && 4 <= x2 && x2 <= 6.36 && 4 <= x3 && x3 <= 6.36 && 4 <= x4 && x4 <= 6.36 && 4 <= x5 && x5 <= 6.36 && 4 <= x6 && x6 <= 6.36) val t = ((-1 * x1) + x2 + x3 - x4 + x5 + x6) x2 * x5 + x3 * x6 - x2 * x3 - x5 * x6 + x1 * t } // 1.15e-15 //24 operations def kepler1(x1: Real, x2: Real, x3: Real, x4: Real): Real = { require(4 <= x1 && x1 <= 6.36 && 4 <= x2 && x2 <= 6.36 && 4 <= x3 && x3 <= 6.36 && 4 <= x4 && x4 <= 6.36) val t = ((-1 * x1) + x2 + x3 - x4) x1 * x4 * t + x2 * (x1 - x2 + x3 + x4) + x3 * (x1 + x2 - x3 + x4) - x2 * x3 * x4 - x1 * x3 - x1 * x2 - x4 } // 4.50e–13 //36 operations def kepler2(x1: Real, x2: Real, x3: Real, x4: Real, x5: Real, x6: Real): Real = { require(4 <= x1 && x1 <= 6.36 && 4 <= x2 && x2 <= 6.36 && 4 <= x3 && x3 <= 6.36 && 4 <= x4 && x4 <= 6.36 && 4 <= x5 && x5 <= 6.36 && 4 <= x6 && x6 <= 6.36) val t = ((-1 * x1) + x2 + x3 - x4 + x5 + x6) val t2 = (x1 - x2 + x3 + x4 - x5 + x6) x1 * x4 * t + x2 * x5 * t2 + x3* x6 * (x1 + x2 - x3 + x4 + x5 - x6) - x2 * x3 * x4 - x1* x3* x5 - x1 * x2 * x6 - x4 * x5 * x6 } //2.08e–12 }
 import daisy.lang._ import Real._ object Science { def verhulst(r: Real, K: Real, x: Real): Real = { require(r >= 4.0 && r <= 4.0 && K >= 1.11 && K <= 1.11 && 0.1 <= x && x <= 0.3) (r*x) / (1 + (x/K)) } def predatorPrey(r: Real, K: Real, x: Real): Real = { require(r >= 4.0 && r <= 4.0 && K >= 1.11 && K <= 1.11 && 0.1 <= x && x <= 0.3) (r*x*x) / (1 + (x/K)*(x/K)) } def carbonGas(T: Real, a: Real, b: Real, N: Real, p: Real, V: Real): Real = { require(T >= 300 && T <= 300 && a >= 0.401 && a <= 0.401 && b >= 42.7e-6 && b <= 42.7e-6 && N >= 1000 && N <= 1000 && p >= 3.5e7 && p <= 3.5e7 && 0.1 < V && V < 0.5) val k: Real = 1.3806503e-23 (p + a * (N / V) * (N / V)) * (V - N * b) - k * N * T } } \ No newline at end of file
 import daisy.lang._ import Real._ object Traincar1 { // y1, y2: <1, 30, 16> s1, s2, s3: <1, 30, 25> def out1(s0: Real, s1: Real, s2: Real) = { require(0 <= s0 && s0 <= 4.6 && 0 <= s1 && s1 <= 10 && 0 <= s2 && s2 <= 10) (-3.795323e2) * s0 + (-5.443608e2) * s1 + 92.729 * s2 + 4.5165916241610748e3 } def state1(s0: Real, s1: Real, s2: Real, y0: Real, y1: Real) = { require(0 <= s0 && s0 <= 4.6 && 0 <= s1 && s1 <= 10 && 0 <= s2 && s2 <= 10 && 0 <= y0 && y0 <= 10 && 0 <= y1 && y1 <= 10) (9.9992292212695999e-01)*s0+ (6.7987387059578006e-02)*s1+ (-5.7849982690687002e-02)*s2 + (-6.7093068270769995e-02)*y0 + (5.6868444245656999e-02)*y1+ (1.93109421e-07)*4.5165916241610748e+03 } def state2(s0: Real, s1: Real, s2: Real, y0: Real, y1: Real) = { require(0 <= s0 && s0 <= 4.6 && 0 <= s1 && s1 <= 10 && 0 <= s2 && s2 <= 10 && 0 <= y0 && y0 <= 10 && 0 <= y1 && y1 <= 10) (-2.1755689728790001e-03)*s0+ (9.8343791204296505e-01)*s1+ (2.6908497812900001e-03)*s2 + (1.3497550507479000e-02)*y0 + (-2.1628302791680000e-03)*y1+ (5.615999103e-06)*4.5165916241610748e+03 } def state3(s0: Real, s1: Real, s2: Real, y0: Real, y1: Real) = { require(0 <= s0 && s0 <= 4.6 && 0 <= s1 && s1 <= 10 && 0 <= s2 && s2 <= 10 && 0 <= y0 && y0 <= 10 && 0 <= y1 && y1 <= 10) (7.5141305955000001e-05)*s0+ (2.4840831806619999e-03)*s1+ (9.9188004018882503e-01)*s2 + (-2.4770170720600001e-03)*y0 + (8.1097048460159991e-03)*y1+ (7.060315e-09)*4.5165916241610748e+03 } } \ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!