浏览代码

Test fpu exception reset

pierre 25 年之前
父节点
当前提交
023e8976a4
共有 1 个文件被更改,包括 29 次插入0 次删除
  1. 29 0
      tests/test/testfpu2.pp

+ 29 - 0
tests/test/testfpu2.pp

@@ -0,0 +1,29 @@
+{$mode objfpc}
+program test_fpu_excpetions;
+
+uses
+  sysutils;
+
+  function mysqrt(x : real) : real;
+
+    begin
+      try
+        mysqrt:=sqrt(x);
+      except
+        on e : exception do
+          mysqrt:=0;
+      end;
+    end;
+
+  var
+    x, y,z : real;
+
+begin
+  x:=6.5;
+  y:=5.76;
+  z:=3.1;
+  Writeln('Testing mysqrt (x) = sqrt(x) if x >= 0');
+  Writeln('                   = 0       if x <  0');
+  Writeln(' 6.5+5.76*mysqrt(3.1) = ',x+y*mysqrt(z):0:6);
+  Writeln(' 6.5+5.76*mysqrt(-3.1) = ',x+y*mysqrt(-z):0:6);
+end.