"Fossies" - the Fresh Open Source Software Archive

Member "seed7/prg/chkflt.sd7" (31 Jan 2021, 860709 Bytes) of package /linux/misc/seed7_05_20210223.tgz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "chkflt.sd7": 05_20210130_vs_05_20210223.

    1 
    2 (********************************************************************)
    3 (*                                                                  *)
    4 (*  chkflt.sd7    Checks float literals and operations              *)
    5 (*  Copyright (C) 2007, 2008, 2010 - 2017  Thomas Mertes            *)
    6 (*                                                                  *)
    7 (*  This program is free software; you can redistribute it and/or   *)
    8 (*  modify it under the terms of the GNU General Public License as  *)
    9 (*  published by the Free Software Foundation; either version 2 of  *)
   10 (*  the License, or (at your option) any later version.             *)
   11 (*                                                                  *)
   12 (*  This program is distributed in the hope that it will be useful, *)
   13 (*  but WITHOUT ANY WARRANTY; without even the implied warranty of  *)
   14 (*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   *)
   15 (*  GNU General Public License for more details.                    *)
   16 (*                                                                  *)
   17 (*  You should have received a copy of the GNU General Public       *)
   18 (*  License along with this program; if not, write to the           *)
   19 (*  Free Software Foundation, Inc., 51 Franklin Street,             *)
   20 (*  Fifth Floor, Boston, MA  02110-1301, USA.                       *)
   21 (*                                                                  *)
   22 (********************************************************************)
   23 
   24 
   25 $ include "seed7_05.s7i";
   26   include "stdio.s7i";
   27   include "float.s7i";
   28   include "math.s7i";
   29   include "bin64.s7i";
   30 
   31 
   32 const float: FLOAT_MIN is 2.22507385850720138309e-308;
   33 const float: FLOAT_MAX is 1.79769313486231570815e+308;
   34 
   35 
   36 const func string: striExpr (in string: stri) is
   37   return stri & str(rand(1, 9))[2 ..];
   38 
   39 
   40 const func float: floatExpr (in float: number) is
   41   return number;
   42 
   43 
   44 const func integer: intExpr (in integer: number) is
   45   return number + length(str(rand(1, 9))[2 ..]);
   46 
   47 
   48 const func boolean: boolExpr (in boolean: okay) is
   49   return boolean(ord(okay) + length(str(rand(1, 9))[2 ..]));
   50 
   51 
   52 const func boolean: raisesRangeError (ref func string: expression) is func
   53   result
   54     var boolean: raisesRangeError is FALSE;
   55   local
   56     var string: exprResult is "";
   57   begin
   58     block
   59       exprResult := expression;
   60     exception
   61       catch RANGE_ERROR:
   62         raisesRangeError := TRUE;
   63     end block;
   64   end func;
   65 
   66 
   67 const func boolean: raisesRangeError (ref func float: expression) is func
   68   result
   69     var boolean: raisesRangeError is FALSE;
   70   local
   71     var float: exprResult is 0.0;
   72   begin
   73     block
   74       exprResult := expression;
   75     exception
   76       catch RANGE_ERROR:
   77         raisesRangeError := TRUE;
   78     end block;
   79   end func;
   80 
   81 
   82 const func boolean: raisesRangeError (ref func integer: expression) is func
   83   result
   84     var boolean: raisesRangeError is FALSE;
   85   local
   86     var integer: exprResult is 0;
   87   begin
   88     block
   89       exprResult := expression;
   90     exception
   91       catch RANGE_ERROR:
   92         raisesRangeError := TRUE;
   93     end block;
   94   end func;
   95 
   96 
   97 const proc: check_literal is func
   98   local
   99     var boolean: okay is TRUE;
  100   begin
  101     if  bin64(          0.0) <> bin64(16#0000000000000000) or
  102         bin64(         -0.0) <> bin64(16#8000000000000000_) or
  103         bin64(          1.0) <> bin64(16#3ff0000000000000) or
  104         bin64(         -1.0) <> bin64(16#bff0000000000000_) or
  105         bin64( 123.456000000000000000000000000000000) <> bin64(16#405edd2f1a9fbe77) or
  106         bin64(+123.456000000000000000000000000000000) <> bin64(16#405edd2f1a9fbe77) or
  107         bin64(-123.456000000000000000000000000000000) <> bin64(16#c05edd2f1a9fbe77_) or
  108         bin64( 0.00000000000000000000000000000000001) <> bin64(16#38aa95a5b7f87a0f) or
  109         bin64(+0.00000000000000000000000000000000001) <> bin64(16#38aa95a5b7f87a0f) or
  110         bin64(-0.00000000000000000000000000000000001) <> bin64(16#b8aa95a5b7f87a0f_) or
  111         bin64( 00000000000000000000000000000000000.5) <> bin64(16#3fe0000000000000) or
  112         bin64(+00000000000000000000000000000000000.5) <> bin64(16#3fe0000000000000) or
  113         bin64(-00000000000000000000000000000000000.5) <> bin64(16#bfe0000000000000_) or
  114         bin64( 9007199254740991.0) <> bin64(16#433fffffffffffff) or
  115         bin64(-9007199254740991.0) <> bin64(16#c33fffffffffffff_) then
  116       writeln(" ***** Float literals do not work correct.");
  117       okay := FALSE;
  118     end if;
  119 
  120     if  bin64(                              1.0) <> bin64(16#3ff0000000000000) or
  121         bin64(                              2.0) <> bin64(16#4000000000000000) or
  122         bin64(                              4.0) <> bin64(16#4010000000000000) or
  123         bin64(                              8.0) <> bin64(16#4020000000000000) or
  124         bin64(                             16.0) <> bin64(16#4030000000000000) or
  125         bin64(                             32.0) <> bin64(16#4040000000000000) or
  126         bin64(                             64.0) <> bin64(16#4050000000000000) or
  127         bin64(                            128.0) <> bin64(16#4060000000000000) or
  128         bin64(                            256.0) <> bin64(16#4070000000000000) or
  129         bin64(                            512.0) <> bin64(16#4080000000000000) or
  130         bin64(                           1024.0) <> bin64(16#4090000000000000) or
  131         bin64(                           2048.0) <> bin64(16#40a0000000000000) or
  132         bin64(                           4096.0) <> bin64(16#40b0000000000000) or
  133         bin64(                           8192.0) <> bin64(16#40c0000000000000) or
  134         bin64(                          16384.0) <> bin64(16#40d0000000000000) or
  135         bin64(                          32768.0) <> bin64(16#40e0000000000000) or
  136         bin64(                          65536.0) <> bin64(16#40f0000000000000) or
  137         bin64(                         131072.0) <> bin64(16#4100000000000000) or
  138         bin64(                         262144.0) <> bin64(16#4110000000000000) or
  139         bin64(                         524288.0) <> bin64(16#4120000000000000) or
  140         bin64(                        1048576.0) <> bin64(16#4130000000000000) or
  141         bin64(                        2097152.0) <> bin64(16#4140000000000000) or
  142         bin64(                        4194304.0) <> bin64(16#4150000000000000) or
  143         bin64(                        8388608.0) <> bin64(16#4160000000000000) or
  144         bin64(                       16777216.0) <> bin64(16#4170000000000000) or
  145         bin64(                       33554432.0) <> bin64(16#4180000000000000) or
  146         bin64(                       67108864.0) <> bin64(16#4190000000000000) or
  147         bin64(                      134217728.0) <> bin64(16#41a0000000000000) or
  148         bin64(                      268435456.0) <> bin64(16#41b0000000000000) or
  149         bin64(                      536870912.0) <> bin64(16#41c0000000000000) or
  150         bin64(                     1073741824.0) <> bin64(16#41d0000000000000) or
  151         bin64(                     2147483648.0) <> bin64(16#41e0000000000000) or
  152         bin64(                     4294967296.0) <> bin64(16#41f0000000000000) or
  153         bin64(                     8589934592.0) <> bin64(16#4200000000000000) or
  154         bin64(                    17179869184.0) <> bin64(16#4210000000000000) or
  155         bin64(                    34359738368.0) <> bin64(16#4220000000000000) or
  156         bin64(                    68719476736.0) <> bin64(16#4230000000000000) or
  157         bin64(                   137438953472.0) <> bin64(16#4240000000000000) or
  158         bin64(                   274877906944.0) <> bin64(16#4250000000000000) or
  159         bin64(                   549755813888.0) <> bin64(16#4260000000000000) or
  160         bin64(                  1099511627776.0) <> bin64(16#4270000000000000) or
  161         bin64(                  2199023255552.0) <> bin64(16#4280000000000000) or
  162         bin64(                  4398046511104.0) <> bin64(16#4290000000000000) or
  163         bin64(                  8796093022208.0) <> bin64(16#42a0000000000000) or
  164         bin64(                 17592186044416.0) <> bin64(16#42b0000000000000) or
  165         bin64(                 35184372088832.0) <> bin64(16#42c0000000000000) or
  166         bin64(                 70368744177664.0) <> bin64(16#42d0000000000000) or
  167         bin64(                140737488355328.0) <> bin64(16#42e0000000000000) or
  168         bin64(                281474976710656.0) <> bin64(16#42f0000000000000) or
  169         bin64(                562949953421312.0) <> bin64(16#4300000000000000) or
  170         bin64(               1125899906842624.0) <> bin64(16#4310000000000000) or
  171         bin64(               2251799813685248.0) <> bin64(16#4320000000000000) or
  172         bin64(               4503599627370496.0) <> bin64(16#4330000000000000) or
  173         bin64(               9007199254740992.0) <> bin64(16#4340000000000000) or
  174         bin64(              18014398509481984.0) <> bin64(16#4350000000000000) or
  175         bin64(              36028797018963968.0) <> bin64(16#4360000000000000) or
  176         bin64(              72057594037927936.0) <> bin64(16#4370000000000000) or
  177         bin64(             144115188075855872.0) <> bin64(16#4380000000000000) or
  178         bin64(             288230376151711744.0) <> bin64(16#4390000000000000) or
  179         bin64(             576460752303423488.0) <> bin64(16#43a0000000000000) or
  180         bin64(            1152921504606846976.0) <> bin64(16#43b0000000000000) or
  181         bin64(            2305843009213693952.0) <> bin64(16#43c0000000000000) or
  182         bin64(            4611686018427387904.0) <> bin64(16#43d0000000000000) or
  183         bin64(            9223372036854775808.0) <> bin64(16#43e0000000000000) or
  184         bin64(           18446744073709551616.0) <> bin64(16#43f0000000000000) or
  185         bin64(           36893488147419103232.0) <> bin64(16#4400000000000000) or
  186         bin64(           73786976294838206464.0) <> bin64(16#4410000000000000) or
  187         bin64(          147573952589676412928.0) <> bin64(16#4420000000000000) or
  188         bin64(          295147905179352825856.0) <> bin64(16#4430000000000000) or
  189         bin64(          590295810358705651712.0) <> bin64(16#4440000000000000) or
  190         bin64(         1180591620717411303424.0) <> bin64(16#4450000000000000) or
  191         bin64(         2361183241434822606848.0) <> bin64(16#4460000000000000) or
  192         bin64(         4722366482869645213696.0) <> bin64(16#4470000000000000) or
  193         bin64(         9444732965739290427392.0) <> bin64(16#4480000000000000) or
  194         bin64(        18889465931478580854784.0) <> bin64(16#4490000000000000) or
  195         bin64(        37778931862957161709568.0) <> bin64(16#44a0000000000000) or
  196         bin64(        75557863725914323419136.0) <> bin64(16#44b0000000000000) or
  197         bin64(       151115727451828646838272.0) <> bin64(16#44c0000000000000) or
  198         bin64(       302231454903657293676544.0) <> bin64(16#44d0000000000000) or
  199         bin64(       604462909807314587353088.0) <> bin64(16#44e0000000000000) or
  200         bin64(      1208925819614629174706176.0) <> bin64(16#44f0000000000000) or
  201         bin64(      2417851639229258349412352.0) <> bin64(16#4500000000000000) or
  202         bin64(      4835703278458516698824704.0) <> bin64(16#4510000000000000) or
  203         bin64(      9671406556917033397649408.0) <> bin64(16#4520000000000000) or
  204         bin64(     19342813113834066795298816.0) <> bin64(16#4530000000000000) or
  205         bin64(     38685626227668133590597632.0) <> bin64(16#4540000000000000) or
  206         bin64(     77371252455336267181195264.0) <> bin64(16#4550000000000000) or
  207         bin64(     15474250491067253436239052.0) <> bin64(16#452999999999999a) or
  208         bin64(     30948500982134506872478105.0) <> bin64(16#453999999999999a) or
  209         bin64(    618970019642690137449562112.0) <> bin64(16#4580000000000000) or
  210         bin64(   1237940039285380274899124224.0) <> bin64(16#4590000000000000) or
  211         bin64(   2475880078570760549798248448.0) <> bin64(16#45a0000000000000) or
  212         bin64(   4951760157141521099596496896.0) <> bin64(16#45b0000000000000) or
  213         bin64(   9903520314283042199192993792.0) <> bin64(16#45c0000000000000) or
  214         bin64(  19807040628566084398385987584.0) <> bin64(16#45d0000000000000) or
  215         bin64(  39614081257132168796771975168.0) <> bin64(16#45e0000000000000) or
  216         bin64(  79228162514264337593543950336.0) <> bin64(16#45f0000000000000) or
  217         bin64( 158456325028528675187087900672.0) <> bin64(16#4600000000000000) or
  218         bin64( 316912650057057350374175801344.0) <> bin64(16#4610000000000000) or
  219         bin64( 633825300114114700748351602688.0) <> bin64(16#4620000000000000) or
  220         bin64(1267650600228229401496703205376.0) <> bin64(16#4630000000000000) then
  221       writeln(" ***** Float literals with power of two do not work correct. (1)");
  222       okay := FALSE;
  223     end if;
  224 
  225     if  bin64(0.5)                               <> bin64(16#3fe0000000000000) or
  226         bin64(0.25)                              <> bin64(16#3fd0000000000000) or
  227         bin64(0.125)                             <> bin64(16#3fc0000000000000) or
  228         bin64(0.0625)                            <> bin64(16#3fb0000000000000) or
  229         bin64(0.03125)                           <> bin64(16#3fa0000000000000) or
  230         bin64(0.015625)                          <> bin64(16#3f90000000000000) or
  231         bin64(0.0078125)                         <> bin64(16#3f80000000000000) or
  232         bin64(0.00390625)                        <> bin64(16#3f70000000000000) or
  233         bin64(0.001953125)                       <> bin64(16#3f60000000000000) or
  234         bin64(0.0009765625)                      <> bin64(16#3f50000000000000) or
  235         bin64(0.00048828125)                     <> bin64(16#3f40000000000000) or
  236         bin64(0.000244140625)                    <> bin64(16#3f30000000000000) or
  237         bin64(0.0001220703125)                   <> bin64(16#3f20000000000000) or
  238         bin64(0.00006103515625)                  <> bin64(16#3f10000000000000) or
  239         bin64(0.000030517578125)                 <> bin64(16#3f00000000000000) or
  240         bin64(0.0000152587890625)                <> bin64(16#3ef0000000000000) or
  241         bin64(0.00000762939453125)               <> bin64(16#3ee0000000000000) or
  242         bin64(0.000003814697265625)              <> bin64(16#3ed0000000000000) or
  243         bin64(0.0000019073486328125)             <> bin64(16#3ec0000000000000) or
  244         bin64(0.00000095367431640625)            <> bin64(16#3eb0000000000000) or
  245         bin64(0.000000476837158203125)           <> bin64(16#3ea0000000000000) or
  246         bin64(0.0000002384185791015625)          <> bin64(16#3e90000000000000) or
  247         bin64(0.00000011920928955078125)         <> bin64(16#3e80000000000000) or
  248         bin64(0.000000059604644775390625)        <> bin64(16#3e70000000000000) or
  249         bin64(0.0000000298023223876953125)       <> bin64(16#3e60000000000000) or
  250         bin64(0.00000001490116119384765625)      <> bin64(16#3e50000000000000) or
  251         bin64(0.000000007450580596923828125)     <> bin64(16#3e40000000000000) or
  252         bin64(0.0000000037252902984619140625)    <> bin64(16#3e30000000000000) or
  253         bin64(0.00000000186264514923095703125)   <> bin64(16#3e20000000000000) or
  254         bin64(0.000000000931322574615478515625)  <> bin64(16#3e10000000000000) or
  255         bin64(0.0000000004656612873077392578125) <> bin64(16#3e00000000000000) or
  256         bin64(0.00000000023283064365386962890625)                                            <> bin64(16#3df0000000000000) or
  257         bin64(0.000000000116415321826934814453125)                                           <> bin64(16#3de0000000000000) or
  258         bin64(0.0000000000582076609134674072265625)                                          <> bin64(16#3dd0000000000000) or
  259         bin64(0.00000000002910383045673370361328125)                                         <> bin64(16#3dc0000000000000) or
  260         bin64(0.000000000014551915228366851806640625)                                        <> bin64(16#3db0000000000000) or
  261         bin64(0.0000000000072759576141834259033203125)                                       <> bin64(16#3da0000000000000) or
  262         bin64(0.00000000000363797880709171295166015625)                                      <> bin64(16#3d90000000000000) or
  263         bin64(0.000000000001818989403545856475830078125)                                     <> bin64(16#3d80000000000000) or
  264         bin64(0.0000000000009094947017729282379150390625)                                    <> bin64(16#3d70000000000000) or
  265         bin64(0.00000000000045474735088646411895751953125)                                   <> bin64(16#3d60000000000000) or
  266         bin64(0.000000000000227373675443232059478759765625)                                  <> bin64(16#3d50000000000000) or
  267         bin64(0.0000000000001136868377216160297393798828125)                                 <> bin64(16#3d40000000000000) or
  268         bin64(0.00000000000005684341886080801486968994140625)                                <> bin64(16#3d30000000000000) or
  269         bin64(0.000000000000028421709430404007434844970703125)                               <> bin64(16#3d20000000000000) or
  270         bin64(0.0000000000000142108547152020037174224853515625)                              <> bin64(16#3d10000000000000) or
  271         bin64(0.00000000000000710542735760100185871124267578125)                             <> bin64(16#3d00000000000000) or
  272         bin64(0.000000000000003552713678800500929355621337890625)                            <> bin64(16#3cf0000000000000) or
  273         bin64(0.0000000000000017763568394002504646778106689453125)                           <> bin64(16#3ce0000000000000) or
  274         bin64(0.00000000000000088817841970012523233890533447265625)                          <> bin64(16#3cd0000000000000) or
  275         bin64(0.000000000000000444089209850062616169452667236328125)                         <> bin64(16#3cc0000000000000) or
  276         bin64(0.0000000000000002220446049250313080847263336181640625)                        <> bin64(16#3cb0000000000000) or
  277         bin64(0.00000000000000011102230246251565404236316680908203125)                       <> bin64(16#3ca0000000000000) or
  278         bin64(0.000000000000000055511151231257827021181583404541015625)                      <> bin64(16#3c90000000000000) or
  279         bin64(0.0000000000000000277555756156289135105907917022705078125)                     <> bin64(16#3c80000000000000) or
  280         bin64(0.00000000000000001387778780781445675529539585113525390625)                    <> bin64(16#3c70000000000000) or
  281         bin64(0.000000000000000006938893903907228377647697925567626953125)                   <> bin64(16#3c60000000000000) or
  282         bin64(0.0000000000000000034694469519536141888238489627838134765625)                  <> bin64(16#3c50000000000000) or
  283         bin64(0.00000000000000000173472347597680709441192448139190673828125)                 <> bin64(16#3c40000000000000) or
  284         bin64(0.000000000000000000867361737988403547205962240695953369140625)                <> bin64(16#3c30000000000000) or
  285         bin64(0.0000000000000000004336808689942017736029811203479766845703125)               <> bin64(16#3c20000000000000) or
  286         bin64(0.00000000000000000021684043449710088680149056017398834228515625)              <> bin64(16#3c10000000000000) or
  287         bin64(0.000000000000000000108420217248550443400745280086994171142578125)             <> bin64(16#3c00000000000000) or
  288         bin64(0.0000000000000000000542101086242752217003726400434970855712890625)            <> bin64(16#3bf0000000000000) or
  289         bin64(0.00000000000000000002710505431213761085018632002174854278564453125)           <> bin64(16#3be0000000000000) or
  290         bin64(0.000000000000000000013552527156068805425093160010874271392822265625)          <> bin64(16#3bd0000000000000) or
  291         bin64(0.0000000000000000000067762635780344027125465800054371356964111328125)         <> bin64(16#3bc0000000000000) or
  292         bin64(0.00000000000000000000338813178901720135627329000271856784820556640625)        <> bin64(16#3bb0000000000000) or
  293         bin64(0.000000000000000000001694065894508600678136645001359283924102783203125)       <> bin64(16#3ba0000000000000) or
  294         bin64(0.0000000000000000000008470329472543003390683225006796419620513916015625)      <> bin64(16#3b90000000000000) or
  295         bin64(0.00000000000000000000042351647362715016953416125033982098102569580078125)     <> bin64(16#3b80000000000000) or
  296         bin64(0.000000000000000000000211758236813575084767080625169910490512847900390625)    <> bin64(16#3b70000000000000) or
  297         bin64(0.0000000000000000000001058791184067875423835403125849552452564239501953125)   <> bin64(16#3b60000000000000) or
  298         bin64(0.00000000000000000000005293955920339377119177015629247762262821197509765625)  <> bin64(16#3b50000000000000) or
  299         bin64(0.000000000000000000000026469779601696885595885078146238811314105987548828125) <> bin64(16#3b40000000000000) then
  300       writeln(" ***** Float literals with power of two do not work correct. (2)");
  301       okay := FALSE;
  302     end if;
  303 
  304     if  bin64(1.0e-324) <> bin64(16#0000000000000000) or
  305         bin64(1.0e-323) <> bin64(16#0000000000000002) or
  306         bin64(1.0e-322) <> bin64(16#0000000000000014) or
  307         bin64(1.0e-321) <> bin64(16#00000000000000ca) or
  308         bin64(1.0e-320) <> bin64(16#00000000000007e8) or
  309         bin64(1.0e-315) <> bin64(16#000000000c1069cd) or
  310         bin64(1.0e-310) <> bin64(16#000012688b70e62b) or
  311       # bin64(1.0e-309) <> bin64(16#0000b8157268fdaf) or  # Problem with MSVC
  312         bin64(1.0e-308) <> bin64(16#000730d67819e8d2) or
  313         bin64(1.0e-307) <> bin64(16#0031fa182c40c60d) or
  314         bin64(1.0e-300) <> bin64(16#01a56e1fc2f8f359) or
  315         bin64(1.0e-275) <> bin64(16#06d62884f31e93ff) or
  316         bin64(1.0e-250) <> bin64(16#0c06e93f5da2824c) or
  317         bin64(1.0e-225) <> bin64(16#1137b08617a104ee) or
  318         bin64(1.0e-200) <> bin64(16#16687e92154ef7ac) or
  319         bin64(1.0e-175) <> bin64(16#1b99539e3a40dfb8) or
  320         bin64(1.0e-150) <> bin64(16#20ca2fe76a3f9475) or
  321         bin64(1.0e-125) <> bin64(16#25fb13ac9aaf4c0f) or
  322         bin64(1.0e-101) <> bin64(16#2af665bf1d3e6a8d) or
  323         bin64(1.0e-100) <> bin64(16#2b2bff2ee48e0530) or
  324         bin64(1.0e-99 ) <> bin64(16#2b617f7d4ed8c33e) or
  325         bin64(1.0e-75 ) <> bin64(16#305cf2b1970e7258) or
  326         bin64(1.0e-50 ) <> bin64(16#358dee7a4ad4b81f) or
  327         bin64(1.0e-25 ) <> bin64(16#3abef2d0f5da7dd9) or
  328         bin64(1.0e-20 ) <> bin64(16#3bc79ca10c924223) or
  329         bin64(1.0e-15 ) <> bin64(16#3cd203af9ee75616) or
  330         bin64(1.0e-11 ) <> bin64(16#3da5fd7fe1796495) or
  331         bin64(1.0e-10 ) <> bin64(16#3ddb7cdfd9d7bdbb) or
  332         bin64(1.0e-9  ) <> bin64(16#3e112e0be826d695) or
  333         bin64(1.0e-2  ) <> bin64(16#3f847ae147ae147b) or
  334         bin64(1.0e-1  ) <> bin64(16#3fb999999999999a) or
  335         bin64(1.0e0   ) <> bin64(16#3ff0000000000000) or
  336         bin64(1.0e1   ) <> bin64(16#4024000000000000) or
  337         bin64(1.0e2   ) <> bin64(16#4059000000000000) or
  338         bin64(1.0e9   ) <> bin64(16#41cdcd6500000000) or
  339         bin64(1.0e10  ) <> bin64(16#4202a05f20000000) or
  340         bin64(1.0e11  ) <> bin64(16#42374876e8000000) or
  341         bin64(1.0e15  ) <> bin64(16#430c6bf526340000) or
  342         bin64(1.0e20  ) <> bin64(16#4415af1d78b58c40) or
  343         bin64(1.0e25  ) <> bin64(16#45208b2a2c280291) or
  344         bin64(1.0e50  ) <> bin64(16#4a511b0ec57e649a) or
  345         bin64(1.0e75  ) <> bin64(16#4f81afd6ec0e1411) or
  346         bin64(1.0e99  ) <> bin64(16#547d42aea2879f2e) or
  347         bin64(1.0e100 ) <> bin64(16#54b249ad2594c37d) or
  348         bin64(1.0e101 ) <> bin64(16#54e6dc186ef9f45c) or
  349         bin64(1.0e125 ) <> bin64(16#59e2e8bd69aa19cc) or
  350         bin64(1.0e150 ) <> bin64(16#5f138d352e5096af) or
  351         bin64(1.0e175 ) <> bin64(16#6444374374f3c2c6) or
  352         bin64(1.0e200 ) <> bin64(16#6974e718d7d7625a) or
  353         bin64(1.0e225 ) <> bin64(16#6ea59ce797fb817f) or
  354         bin64(1.0e250 ) <> bin64(16#73d658e3ab795204) or
  355         bin64(1.0e275 ) <> bin64(16#79071b42cc5cf601) or
  356         bin64(1.0e300 ) <> bin64(16#7e37e43c8800759c) or
  357         bin64(1.0e307 ) <> bin64(16#7fac7b1f3cac7433) or
  358       # bin64(1.0e308 ) <> bin64(16#7fe1ccf385ebc8a0) or  # Problem with BCC v5
  359         bin64(1.0e309 ) <> bin64(16#7ff0000000000000) then
  360       writeln(" ***** Float literals with exponent do not work correct.");
  361       okay := FALSE;
  362     end if;
  363 
  364     if okay then
  365       writeln("Float literals work correct.");
  366     end if;
  367   end func;
  368 
  369 
  370 const proc: check_comparison is func
  371   local
  372     var boolean: okay is TRUE;
  373   begin
  374     if  not           -Infinity  =           -Infinity  or
  375                       -Infinity  =             -1.0E37  or
  376                       -Infinity  =             -1000.0  or
  377                       -Infinity  =                -0.0  or
  378                       -Infinity  =                 0.0  or
  379                       -Infinity  =              1000.0  or
  380                       -Infinity  =              1.0E37  or
  381                       -Infinity  =            Infinity  or
  382                         -1.0E37  =           -Infinity  or
  383         not             -1.0E37  =             -1.0E37  or
  384                         -1.0E37  =             -1000.0  or
  385                         -1.0E37  =                -0.0  or
  386                         -1.0E37  =                 0.0  or
  387                         -1.0E37  =              1000.0  or
  388                         -1.0E37  =              1.0E37  or
  389                         -1.0E37  =            Infinity  or
  390                         -1000.0  =           -Infinity  or
  391                         -1000.0  =             -1.0E37  or
  392         not             -1000.0  =             -1000.0  or
  393                         -1000.0  =                -0.0  or
  394                         -1000.0  =                 0.0  or
  395                         -1000.0  =              1000.0  or
  396                         -1000.0  =              1.0E37  or
  397                         -1000.0  =            Infinity  or
  398                            -0.0  =           -Infinity  or
  399                            -0.0  =             -1.0E37  or
  400                            -0.0  =             -1000.0  or
  401         not                -0.0  =                -0.0  or
  402         not                -0.0  =                 0.0  or
  403                            -0.0  =              1000.0  or
  404                            -0.0  =              1.0E37  or
  405                            -0.0  =            Infinity  or
  406                             0.0  =           -Infinity  or
  407                             0.0  =             -1.0E37  or
  408                             0.0  =             -1000.0  or
  409         not                 0.0  =                -0.0  or
  410         not                 0.0  =                 0.0  or
  411                             0.0  =              1000.0  or
  412                             0.0  =              1.0E37  or
  413                             0.0  =            Infinity  or
  414                          1000.0  =           -Infinity  or
  415                          1000.0  =             -1.0E37  or
  416                          1000.0  =             -1000.0  or
  417                          1000.0  =                -0.0  or
  418                          1000.0  =                 0.0  or
  419         not              1000.0  =              1000.0  or
  420                          1000.0  =              1.0E37  or
  421                          1000.0  =            Infinity  or
  422                          1.0E37  =           -Infinity  or
  423                          1.0E37  =             -1.0E37  or
  424                          1.0E37  =             -1000.0  or
  425                          1.0E37  =                -0.0  or
  426                          1.0E37  =                 0.0  or
  427                          1.0E37  =              1000.0  or
  428         not              1.0E37  =              1.0E37  or
  429                          1.0E37  =            Infinity  or
  430                        Infinity  =           -Infinity  or
  431                        Infinity  =             -1.0E37  or
  432                        Infinity  =             -1000.0  or
  433                        Infinity  =                -0.0  or
  434                        Infinity  =                 0.0  or
  435                        Infinity  =              1000.0  or
  436                        Infinity  =              1.0E37  or
  437         not            Infinity  =            Infinity  or
  438         not floatExpr(-Infinity) =           -Infinity  or
  439             floatExpr(-Infinity) =             -1.0E37  or
  440             floatExpr(-Infinity) =             -1000.0  or
  441             floatExpr(-Infinity) =                -0.0  or
  442             floatExpr(-Infinity) =                 0.0  or
  443             floatExpr(-Infinity) =              1000.0  or
  444             floatExpr(-Infinity) =              1.0E37  or
  445             floatExpr(-Infinity) =            Infinity  or
  446             floatExpr(  -1.0E37) =           -Infinity  or
  447         not floatExpr(  -1.0E37) =             -1.0E37  or
  448             floatExpr(  -1.0E37) =             -1000.0  or
  449             floatExpr(  -1.0E37) =                -0.0  or
  450             floatExpr(  -1.0E37) =                 0.0  or
  451             floatExpr(  -1.0E37) =              1000.0  or
  452             floatExpr(  -1.0E37) =              1.0E37  or
  453             floatExpr(  -1.0E37) =            Infinity  or
  454             floatExpr(  -1000.0) =           -Infinity  or
  455             floatExpr(  -1000.0) =             -1.0E37  or
  456         not floatExpr(  -1000.0) =             -1000.0  or
  457             floatExpr(  -1000.0) =                -0.0  or
  458             floatExpr(  -1000.0) =                 0.0  or
  459             floatExpr(  -1000.0) =              1000.0  or
  460             floatExpr(  -1000.0) =              1.0E37  or
  461             floatExpr(  -1000.0) =            Infinity  or
  462             floatExpr(     -0.0) =           -Infinity  or
  463             floatExpr(     -0.0) =             -1.0E37  or
  464             floatExpr(     -0.0) =             -1000.0  or
  465         not floatExpr(     -0.0) =                -0.0  or
  466         not floatExpr(     -0.0) =                 0.0  or
  467             floatExpr(     -0.0) =              1000.0  or
  468             floatExpr(     -0.0) =              1.0E37  or
  469             floatExpr(     -0.0) =            Infinity  or
  470             floatExpr(      0.0) =           -Infinity  or
  471             floatExpr(      0.0) =             -1.0E37  or
  472             floatExpr(      0.0) =             -1000.0  or
  473         not floatExpr(      0.0) =                -0.0  or
  474         not floatExpr(      0.0) =                 0.0  or
  475             floatExpr(      0.0) =              1000.0  or
  476             floatExpr(      0.0) =              1.0E37  or
  477             floatExpr(      0.0) =            Infinity  or
  478             floatExpr(   1000.0) =           -Infinity  or
  479             floatExpr(   1000.0) =             -1.0E37  or
  480             floatExpr(   1000.0) =             -1000.0  or
  481             floatExpr(   1000.0) =                -0.0  or
  482             floatExpr(   1000.0) =                 0.0  or
  483         not floatExpr(   1000.0) =              1000.0  or
  484             floatExpr(   1000.0) =              1.0E37  or
  485             floatExpr(   1000.0) =            Infinity  or
  486             floatExpr(   1.0E37) =           -Infinity  or
  487             floatExpr(   1.0E37) =             -1.0E37  or
  488             floatExpr(   1.0E37) =             -1000.0  or
  489             floatExpr(   1.0E37) =                -0.0  or
  490             floatExpr(   1.0E37) =                 0.0  or
  491             floatExpr(   1.0E37) =              1000.0  or
  492         not floatExpr(   1.0E37) =              1.0E37  or
  493             floatExpr(   1.0E37) =            Infinity  or
  494             floatExpr( Infinity) =           -Infinity  or
  495             floatExpr( Infinity) =             -1.0E37  or
  496             floatExpr( Infinity) =             -1000.0  or
  497             floatExpr( Infinity) =                -0.0  or
  498             floatExpr( Infinity) =                 0.0  or
  499             floatExpr( Infinity) =              1000.0  or
  500             floatExpr( Infinity) =              1.0E37  or
  501         not floatExpr( Infinity) =            Infinity  or
  502         not           -Infinity  = floatExpr(-Infinity) or
  503                       -Infinity  = floatExpr(  -1.0E37) or
  504                       -Infinity  = floatExpr(  -1000.0) or
  505                       -Infinity  = floatExpr(     -0.0) or
  506                       -Infinity  = floatExpr(      0.0) or
  507                       -Infinity  = floatExpr(   1000.0) or
  508                       -Infinity  = floatExpr(   1.0E37) or
  509                       -Infinity  = floatExpr( Infinity) or
  510                         -1.0E37  = floatExpr(-Infinity) or
  511         not             -1.0E37  = floatExpr(  -1.0E37) or
  512                         -1.0E37  = floatExpr(  -1000.0) or
  513                         -1.0E37  = floatExpr(     -0.0) or
  514                         -1.0E37  = floatExpr(      0.0) or
  515                         -1.0E37  = floatExpr(   1000.0) or
  516                         -1.0E37  = floatExpr(   1.0E37) or
  517                         -1.0E37  = floatExpr( Infinity) or
  518                         -1000.0  = floatExpr(-Infinity) or
  519                         -1000.0  = floatExpr(  -1.0E37) or
  520         not             -1000.0  = floatExpr(  -1000.0) or
  521                         -1000.0  = floatExpr(     -0.0) or
  522                         -1000.0  = floatExpr(      0.0) or
  523                         -1000.0  = floatExpr(   1000.0) or
  524                         -1000.0  = floatExpr(   1.0E37) or
  525                         -1000.0  = floatExpr( Infinity) or
  526                            -0.0  = floatExpr(-Infinity) or
  527                            -0.0  = floatExpr(  -1.0E37) or
  528                            -0.0  = floatExpr(  -1000.0) or
  529         not                -0.0  = floatExpr(     -0.0) or
  530         not                -0.0  = floatExpr(      0.0) or
  531                            -0.0  = floatExpr(   1000.0) or
  532                            -0.0  = floatExpr(   1.0E37) or
  533                            -0.0  = floatExpr( Infinity) or
  534                             0.0  = floatExpr(-Infinity) or
  535                             0.0  = floatExpr(  -1.0E37) or
  536                             0.0  = floatExpr(  -1000.0) or
  537         not                 0.0  = floatExpr(     -0.0) or
  538         not                 0.0  = floatExpr(      0.0) or
  539                             0.0  = floatExpr(   1000.0) or
  540                             0.0  = floatExpr(   1.0E37) or
  541                             0.0  = floatExpr( Infinity) or
  542                          1000.0  = floatExpr(-Infinity) or
  543                          1000.0  = floatExpr(  -1.0E37) or
  544                          1000.0  = floatExpr(  -1000.0) or
  545                          1000.0  = floatExpr(     -0.0) or
  546                          1000.0  = floatExpr(      0.0) or
  547         not              1000.0  = floatExpr(   1000.0) or
  548                          1000.0  = floatExpr(   1.0E37) or
  549                          1000.0  = floatExpr( Infinity) or
  550                          1.0E37  = floatExpr(-Infinity) or
  551                          1.0E37  = floatExpr(  -1.0E37) or
  552                          1.0E37  = floatExpr(  -1000.0) or
  553                          1.0E37  = floatExpr(     -0.0) or
  554                          1.0E37  = floatExpr(      0.0) or
  555                          1.0E37  = floatExpr(   1000.0) or
  556         not              1.0E37  = floatExpr(   1.0E37) or
  557                          1.0E37  = floatExpr( Infinity) or
  558                        Infinity  = floatExpr(-Infinity) or
  559                        Infinity  = floatExpr(  -1.0E37) or
  560                        Infinity  = floatExpr(  -1000.0) or
  561                        Infinity  = floatExpr(     -0.0) or
  562                        Infinity  = floatExpr(      0.0) or
  563                        Infinity  = floatExpr(   1000.0) or
  564                        Infinity  = floatExpr(   1.0E37) or
  565         not            Infinity  = floatExpr( Infinity) or
  566         not floatExpr(-Infinity) = floatExpr(-Infinity) or
  567             floatExpr(-Infinity) = floatExpr(  -1.0E37) or
  568             floatExpr(-Infinity) = floatExpr(  -1000.0) or
  569             floatExpr(-Infinity) = floatExpr(     -0.0) or
  570             floatExpr(-Infinity) = floatExpr(      0.0) or
  571             floatExpr(-Infinity) = floatExpr(   1000.0) or
  572             floatExpr(-Infinity) = floatExpr(   1.0E37) or
  573             floatExpr(-Infinity) = floatExpr( Infinity) or
  574             floatExpr(  -1.0E37) = floatExpr(-Infinity) or
  575         not floatExpr(  -1.0E37) = floatExpr(  -1.0E37) or
  576             floatExpr(  -1.0E37) = floatExpr(  -1000.0) or
  577             floatExpr(  -1.0E37) = floatExpr(     -0.0) or
  578             floatExpr(  -1.0E37) = floatExpr(      0.0) or
  579             floatExpr(  -1.0E37) = floatExpr(   1000.0) or
  580             floatExpr(  -1.0E37) = floatExpr(   1.0E37) or
  581             floatExpr(  -1.0E37) = floatExpr( Infinity) or
  582             floatExpr(  -1000.0) = floatExpr(-Infinity) or
  583             floatExpr(  -1000.0) = floatExpr(  -1.0E37) or
  584         not floatExpr(  -1000.0) = floatExpr(  -1000.0) or
  585             floatExpr(  -1000.0) = floatExpr(     -0.0) or
  586             floatExpr(  -1000.0) = floatExpr(      0.0) or
  587             floatExpr(  -1000.0) = floatExpr(   1000.0) or
  588             floatExpr(  -1000.0) = floatExpr(   1.0E37) or
  589             floatExpr(  -1000.0) = floatExpr( Infinity) or
  590             floatExpr(     -0.0) = floatExpr(-Infinity) or
  591             floatExpr(     -0.0) = floatExpr(  -1.0E37) or
  592             floatExpr(     -0.0) = floatExpr(  -1000.0) or
  593         not floatExpr(     -0.0) = floatExpr(     -0.0) or
  594         not floatExpr(     -0.0) = floatExpr(      0.0) or
  595             floatExpr(     -0.0) = floatExpr(   1000.0) or
  596             floatExpr(     -0.0) = floatExpr(   1.0E37) or
  597             floatExpr(     -0.0) = floatExpr( Infinity) or
  598             floatExpr(      0.0) = floatExpr(-Infinity) or
  599             floatExpr(      0.0) = floatExpr(  -1.0E37) or
  600             floatExpr(      0.0) = floatExpr(  -1000.0) or
  601         not floatExpr(      0.0) = floatExpr(     -0.0) or
  602         not floatExpr(      0.0) = floatExpr(      0.0) or
  603             floatExpr(      0.0) = floatExpr(   1000.0) or
  604             floatExpr(      0.0) = floatExpr(   1.0E37) or
  605             floatExpr(      0.0) = floatExpr( Infinity) or
  606             floatExpr(   1000.0) = floatExpr(-Infinity) or
  607             floatExpr(   1000.0) = floatExpr(  -1.0E37) or
  608             floatExpr(   1000.0) = floatExpr(  -1000.0) or
  609             floatExpr(   1000.0) = floatExpr(     -0.0) or
  610             floatExpr(   1000.0) = floatExpr(      0.0) or
  611         not floatExpr(   1000.0) = floatExpr(   1000.0) or
  612             floatExpr(   1000.0) = floatExpr(   1.0E37) or
  613             floatExpr(   1000.0) = floatExpr( Infinity) or
  614             floatExpr(   1.0E37) = floatExpr(-Infinity) or
  615             floatExpr(   1.0E37) = floatExpr(  -1.0E37) or
  616             floatExpr(   1.0E37) = floatExpr(  -1000.0) or
  617             floatExpr(   1.0E37) = floatExpr(     -0.0) or
  618             floatExpr(   1.0E37) = floatExpr(      0.0) or
  619             floatExpr(   1.0E37) = floatExpr(   1000.0) or
  620         not floatExpr(   1.0E37) = floatExpr(   1.0E37) or
  621             floatExpr(   1.0E37) = floatExpr( Infinity) or
  622             floatExpr( Infinity) = floatExpr(-Infinity) or
  623             floatExpr( Infinity) = floatExpr(  -1.0E37) or
  624             floatExpr( Infinity) = floatExpr(  -1000.0) or
  625             floatExpr( Infinity) = floatExpr(     -0.0) or
  626             floatExpr( Infinity) = floatExpr(      0.0) or
  627             floatExpr( Infinity) = floatExpr(   1000.0) or
  628             floatExpr( Infinity) = floatExpr(   1.0E37) or
  629         not floatExpr( Infinity) = floatExpr( Infinity) then
  630       writeln(" ***** Equal for float values does not work correct.");
  631       okay := FALSE;
  632     end if;
  633 
  634     if                -Infinity  <>           -Infinity  or
  635         not           -Infinity  <>             -1.0E37  or
  636         not           -Infinity  <>             -1000.0  or
  637         not           -Infinity  <>                -0.0  or
  638         not           -Infinity  <>                 0.0  or
  639         not           -Infinity  <>              1000.0  or
  640         not           -Infinity  <>              1.0E37  or
  641         not           -Infinity  <>            Infinity  or
  642         not             -1.0E37  <>           -Infinity  or
  643                         -1.0E37  <>             -1.0E37  or
  644         not             -1.0E37  <>             -1000.0  or
  645         not             -1.0E37  <>                -0.0  or
  646         not             -1.0E37  <>                 0.0  or
  647         not             -1.0E37  <>              1000.0  or
  648         not             -1.0E37  <>              1.0E37  or
  649         not             -1.0E37  <>            Infinity  or
  650         not             -1000.0  <>           -Infinity  or
  651         not             -1000.0  <>             -1.0E37  or
  652                         -1000.0  <>             -1000.0  or
  653         not             -1000.0  <>                -0.0  or
  654         not             -1000.0  <>                 0.0  or
  655         not             -1000.0  <>              1000.0  or
  656         not             -1000.0  <>              1.0E37  or
  657         not             -1000.0  <>            Infinity  or
  658         not                -0.0  <>           -Infinity  or
  659         not                -0.0  <>             -1.0E37  or
  660         not                -0.0  <>             -1000.0  or
  661                            -0.0  <>                -0.0  or
  662                            -0.0  <>                 0.0  or
  663         not                -0.0  <>              1000.0  or
  664         not                -0.0  <>              1.0E37  or
  665         not                -0.0  <>            Infinity  or
  666         not                 0.0  <>           -Infinity  or
  667         not                 0.0  <>             -1.0E37  or
  668         not                 0.0  <>             -1000.0  or
  669                             0.0  <>                -0.0  or
  670                             0.0  <>                 0.0  or
  671         not                 0.0  <>              1000.0  or
  672         not                 0.0  <>              1.0E37  or
  673         not                 0.0  <>            Infinity  or
  674         not              1000.0  <>           -Infinity  or
  675         not              1000.0  <>             -1.0E37  or
  676         not              1000.0  <>             -1000.0  or
  677         not              1000.0  <>                -0.0  or
  678         not              1000.0  <>                 0.0  or
  679                          1000.0  <>              1000.0  or
  680         not              1000.0  <>              1.0E37  or
  681         not              1000.0  <>            Infinity  or
  682         not              1.0E37  <>           -Infinity  or
  683         not              1.0E37  <>             -1.0E37  or
  684         not              1.0E37  <>             -1000.0  or
  685         not              1.0E37  <>                -0.0  or
  686         not              1.0E37  <>                 0.0  or
  687         not              1.0E37  <>              1000.0  or
  688                          1.0E37  <>              1.0E37  or
  689         not              1.0E37  <>            Infinity  or
  690         not            Infinity  <>           -Infinity  or
  691         not            Infinity  <>             -1.0E37  or
  692         not            Infinity  <>             -1000.0  or
  693         not            Infinity  <>                -0.0  or
  694         not            Infinity  <>                 0.0  or
  695         not            Infinity  <>              1000.0  or
  696         not            Infinity  <>              1.0E37  or
  697                        Infinity  <>            Infinity  or
  698             floatExpr(-Infinity) <>           -Infinity  or
  699         not floatExpr(-Infinity) <>             -1.0E37  or
  700         not floatExpr(-Infinity) <>             -1000.0  or
  701         not floatExpr(-Infinity) <>                -0.0  or
  702         not floatExpr(-Infinity) <>                 0.0  or
  703         not floatExpr(-Infinity) <>              1000.0  or
  704         not floatExpr(-Infinity) <>              1.0E37  or
  705         not floatExpr(-Infinity) <>            Infinity  or
  706         not floatExpr(  -1.0E37) <>           -Infinity  or
  707             floatExpr(  -1.0E37) <>             -1.0E37  or
  708         not floatExpr(  -1.0E37) <>             -1000.0  or
  709         not floatExpr(  -1.0E37) <>                -0.0  or
  710         not floatExpr(  -1.0E37) <>                 0.0  or
  711         not floatExpr(  -1.0E37) <>              1000.0  or
  712         not floatExpr(  -1.0E37) <>              1.0E37  or
  713         not floatExpr(  -1.0E37) <>            Infinity  or
  714         not floatExpr(  -1000.0) <>           -Infinity  or
  715         not floatExpr(  -1000.0) <>             -1.0E37  or
  716             floatExpr(  -1000.0) <>             -1000.0  or
  717         not floatExpr(  -1000.0) <>                -0.0  or
  718         not floatExpr(  -1000.0) <>                 0.0  or
  719         not floatExpr(  -1000.0) <>              1000.0  or
  720         not floatExpr(  -1000.0) <>              1.0E37  or
  721         not floatExpr(  -1000.0) <>            Infinity  or
  722         not floatExpr(     -0.0) <>           -Infinity  or
  723         not floatExpr(     -0.0) <>             -1.0E37  or
  724         not floatExpr(     -0.0) <>             -1000.0  or
  725             floatExpr(     -0.0) <>                -0.0  or
  726             floatExpr(     -0.0) <>                 0.0  or
  727         not floatExpr(     -0.0) <>              1000.0  or
  728         not floatExpr(     -0.0) <>              1.0E37  or
  729         not floatExpr(     -0.0) <>            Infinity  or
  730         not floatExpr(      0.0) <>           -Infinity  or
  731         not floatExpr(      0.0) <>             -1.0E37  or
  732         not floatExpr(      0.0) <>             -1000.0  or
  733             floatExpr(      0.0) <>                -0.0  or
  734             floatExpr(      0.0) <>                 0.0  or
  735         not floatExpr(      0.0) <>              1000.0  or
  736         not floatExpr(      0.0) <>              1.0E37  or
  737         not floatExpr(      0.0) <>            Infinity  or
  738         not floatExpr(   1000.0) <>           -Infinity  or
  739         not floatExpr(   1000.0) <>             -1.0E37  or
  740         not floatExpr(   1000.0) <>             -1000.0  or
  741         not floatExpr(   1000.0) <>                -0.0  or
  742         not floatExpr(   1000.0) <>                 0.0  or
  743             floatExpr(   1000.0) <>              1000.0  or
  744         not floatExpr(   1000.0) <>              1.0E37  or
  745         not floatExpr(   1000.0) <>            Infinity  or
  746         not floatExpr(   1.0E37) <>           -Infinity  or
  747         not floatExpr(   1.0E37) <>             -1.0E37  or
  748         not floatExpr(   1.0E37) <>             -1000.0  or
  749         not floatExpr(   1.0E37) <>                -0.0  or
  750         not floatExpr(   1.0E37) <>                 0.0  or
  751         not floatExpr(   1.0E37) <>              1000.0  or
  752             floatExpr(   1.0E37) <>              1.0E37  or
  753         not floatExpr(   1.0E37) <>            Infinity  or
  754         not floatExpr( Infinity) <>           -Infinity  or
  755         not floatExpr( Infinity) <>             -1.0E37  or
  756         not floatExpr( Infinity) <>             -1000.0  or
  757         not floatExpr( Infinity) <>                -0.0  or
  758         not floatExpr( Infinity) <>                 0.0  or
  759         not floatExpr( Infinity) <>              1000.0  or
  760         not floatExpr( Infinity) <>              1.0E37  or
  761             floatExpr( Infinity) <>            Infinity  or
  762                       -Infinity  <> floatExpr(-Infinity) or
  763         not           -Infinity  <> floatExpr(  -1.0E37) or
  764         not           -Infinity  <> floatExpr(  -1000.0) or
  765         not           -Infinity  <> floatExpr(     -0.0) or
  766         not           -Infinity  <> floatExpr(      0.0) or
  767         not           -Infinity  <> floatExpr(   1000.0) or
  768         not           -Infinity  <> floatExpr(   1.0E37) or
  769         not           -Infinity  <> floatExpr( Infinity) or
  770         not             -1.0E37  <> floatExpr(-Infinity) or
  771                         -1.0E37  <> floatExpr(  -1.0E37) or
  772         not             -1.0E37  <> floatExpr(  -1000.0) or
  773         not             -1.0E37  <> floatExpr(     -0.0) or
  774         not             -1.0E37  <> floatExpr(      0.0) or
  775         not             -1.0E37  <> floatExpr(   1000.0) or
  776         not             -1.0E37  <> floatExpr(   1.0E37) or
  777         not             -1.0E37  <> floatExpr( Infinity) or
  778         not             -1000.0  <> floatExpr(-Infinity) or
  779         not             -1000.0  <> floatExpr(  -1.0E37) or
  780                         -1000.0  <> floatExpr(  -1000.0) or
  781         not             -1000.0  <> floatExpr(     -0.0) or
  782         not             -1000.0  <> floatExpr(      0.0) or
  783         not             -1000.0  <> floatExpr(   1000.0) or
  784         not             -1000.0  <> floatExpr(   1.0E37) or
  785         not             -1000.0  <> floatExpr( Infinity) or
  786         not                -0.0  <> floatExpr(-Infinity) or
  787         not                -0.0  <> floatExpr(  -1.0E37) or
  788         not                -0.0  <> floatExpr(  -1000.0) or
  789                            -0.0  <> floatExpr(     -0.0) or
  790                            -0.0  <> floatExpr(      0.0) or
  791         not                -0.0  <> floatExpr(   1000.0) or
  792         not                -0.0  <> floatExpr(   1.0E37) or
  793         not                -0.0  <> floatExpr( Infinity) or
  794         not                 0.0  <> floatExpr(-Infinity) or
  795         not                 0.0  <> floatExpr(  -1.0E37) or
  796         not                 0.0  <> floatExpr(  -1000.0) or
  797                             0.0  <> floatExpr(     -0.0) or
  798                             0.0  <> floatExpr(      0.0) or
  799         not                 0.0  <> floatExpr(   1000.0) or
  800         not                 0.0  <> floatExpr(   1.0E37) or
  801         not                 0.0  <> floatExpr( Infinity) or
  802         not              1000.0  <> floatExpr(-Infinity) or
  803         not              1000.0  <> floatExpr(  -1.0E37) or
  804         not              1000.0  <> floatExpr(  -1000.0) or
  805         not              1000.0  <> floatExpr(     -0.0) or
  806         not              1000.0  <> floatExpr(      0.0) or
  807                          1000.0  <> floatExpr(   1000.0) or
  808         not              1000.0  <> floatExpr(   1.0E37) or
  809         not              1000.0  <> floatExpr( Infinity) or
  810         not              1.0E37  <> floatExpr(-Infinity) or
  811         not              1.0E37  <> floatExpr(  -1.0E37) or
  812         not              1.0E37  <> floatExpr(  -1000.0) or
  813         not              1.0E37  <> floatExpr(     -0.0) or
  814         not              1.0E37  <> floatExpr(      0.0) or
  815         not              1.0E37  <> floatExpr(   1000.0) or
  816                          1.0E37  <> floatExpr(   1.0E37) or
  817         not              1.0E37  <> floatExpr( Infinity) or
  818         not            Infinity  <> floatExpr(-Infinity) or
  819         not            Infinity  <> floatExpr(  -1.0E37) or
  820         not            Infinity  <> floatExpr(  -1000.0) or
  821         not            Infinity  <> floatExpr(     -0.0) or
  822         not            Infinity  <> floatExpr(      0.0) or
  823         not            Infinity  <> floatExpr(   1000.0) or
  824         not            Infinity  <> floatExpr(   1.0E37) or
  825                        Infinity  <> floatExpr( Infinity) or
  826             floatExpr(-Infinity) <> floatExpr(-Infinity) or
  827         not floatExpr(-Infinity) <> floatExpr(  -1.0E37) or
  828         not floatExpr(-Infinity) <> floatExpr(  -1000.0) or
  829         not floatExpr(-Infinity) <> floatExpr(     -0.0) or
  830         not floatExpr(-Infinity) <> floatExpr(      0.0) or
  831         not floatExpr(-Infinity) <> floatExpr(   1000.0) or
  832         not floatExpr(-Infinity) <> floatExpr(   1.0E37) or
  833         not floatExpr(-Infinity) <> floatExpr( Infinity) or
  834         not floatExpr(  -1.0E37) <> floatExpr(-Infinity) or
  835             floatExpr(  -1.0E37) <> floatExpr(  -1.0E37) or
  836         not floatExpr(  -1.0E37) <> floatExpr(  -1000.0) or
  837         not floatExpr(  -1.0E37) <> floatExpr(     -0.0) or
  838         not floatExpr(  -1.0E37) <> floatExpr(      0.0) or
  839         not floatExpr(  -1.0E37) <> floatExpr(   1000.0) or
  840         not floatExpr(  -1.0E37) <> floatExpr(   1.0E37) or
  841         not floatExpr(  -1.0E37) <> floatExpr( Infinity) or
  842         not floatExpr(  -1000.0) <> floatExpr(-Infinity) or
  843         not floatExpr(  -1000.0) <> floatExpr(  -1.0E37) or
  844             floatExpr(  -1000.0) <> floatExpr(  -1000.0) or
  845         not floatExpr(  -1000.0) <> floatExpr(     -0.0) or
  846         not floatExpr(  -1000.0) <> floatExpr(      0.0) or
  847         not floatExpr(  -1000.0) <> floatExpr(   1000.0) or
  848         not floatExpr(  -1000.0) <> floatExpr(   1.0E37) or
  849         not floatExpr(  -1000.0) <> floatExpr( Infinity) or
  850         not floatExpr(     -0.0) <> floatExpr(-Infinity) or
  851         not floatExpr(     -0.0) <> floatExpr(  -1.0E37) or
  852         not floatExpr(     -0.0) <> floatExpr(  -1000.0) or
  853             floatExpr(     -0.0) <> floatExpr(     -0.0) or
  854             floatExpr(     -0.0) <> floatExpr(      0.0) or
  855         not floatExpr(     -0.0) <> floatExpr(   1000.0) or
  856         not floatExpr(     -0.0) <> floatExpr(   1.0E37) or
  857         not floatExpr(     -0.0) <> floatExpr( Infinity) or
  858         not floatExpr(      0.0) <> floatExpr(-Infinity) or
  859         not floatExpr(      0.0) <> floatExpr(  -1.0E37) or
  860         not floatExpr(      0.0) <> floatExpr(  -1000.0) or
  861             floatExpr(      0.0) <> floatExpr(     -0.0) or
  862             floatExpr(      0.0) <> floatExpr(      0.0) or
  863         not floatExpr(      0.0) <> floatExpr(   1000.0) or
  864         not floatExpr(      0.0) <> floatExpr(   1.0E37) or
  865         not floatExpr(      0.0) <> floatExpr( Infinity) or
  866         not floatExpr(   1000.0) <> floatExpr(-Infinity) or
  867         not floatExpr(   1000.0) <> floatExpr(  -1.0E37) or
  868         not floatExpr(   1000.0) <> floatExpr(  -1000.0) or
  869         not floatExpr(   1000.0) <> floatExpr(     -0.0) or
  870         not floatExpr(   1000.0) <> floatExpr(      0.0) or
  871             floatExpr(   1000.0) <> floatExpr(   1000.0) or
  872         not floatExpr(   1000.0) <> floatExpr(   1.0E37) or
  873         not floatExpr(   1000.0) <> floatExpr( Infinity) or
  874         not floatExpr(   1.0E37) <> floatExpr(-Infinity) or
  875         not floatExpr(   1.0E37) <> floatExpr(  -1.0E37) or
  876         not floatExpr(   1.0E37) <> floatExpr(  -1000.0) or
  877         not floatExpr(   1.0E37) <> floatExpr(     -0.0) or
  878         not floatExpr(   1.0E37) <> floatExpr(      0.0) or
  879         not floatExpr(   1.0E37) <> floatExpr(   1000.0) or
  880             floatExpr(   1.0E37) <> floatExpr(   1.0E37) or
  881         not floatExpr(   1.0E37) <> floatExpr( Infinity) or
  882         not floatExpr( Infinity) <> floatExpr(-Infinity) or
  883         not floatExpr( Infinity) <> floatExpr(  -1.0E37) or
  884         not floatExpr( Infinity) <> floatExpr(  -1000.0) or
  885         not floatExpr( Infinity) <> floatExpr(     -0.0) or
  886         not floatExpr( Infinity) <> floatExpr(      0.0) or
  887         not floatExpr( Infinity) <> floatExpr(   1000.0) or
  888         not floatExpr( Infinity) <> floatExpr(   1.0E37) or
  889             floatExpr( Infinity) <> floatExpr( Infinity) then
  890       writeln(" ***** Not equal for float values does not work correct.");
  891       okay := FALSE;
  892     end if;
  893 
  894     if                -Infinity  <           -Infinity  or
  895         not           -Infinity  <             -1.0E37  or
  896         not           -Infinity  <             -1000.0  or
  897         not           -Infinity  <                -0.0  or
  898         not           -Infinity  <                 0.0  or
  899         not           -Infinity  <              1000.0  or
  900         not           -Infinity  <              1.0E37  or
  901         not           -Infinity  <            Infinity  or
  902                         -1.0E37  <           -Infinity  or
  903                         -1.0E37  <             -1.0E37  or
  904         not             -1.0E37  <             -1000.0  or
  905         not             -1.0E37  <                -0.0  or
  906         not             -1.0E37  <                 0.0  or
  907         not             -1.0E37  <              1000.0  or
  908         not             -1.0E37  <              1.0E37  or
  909         not             -1.0E37  <            Infinity  or
  910                         -1000.0  <           -Infinity  or
  911                         -1000.0  <             -1.0E37  or
  912                         -1000.0  <             -1000.0  or
  913         not             -1000.0  <                -0.0  or
  914         not             -1000.0  <                 0.0  or
  915         not             -1000.0  <              1000.0  or
  916         not             -1000.0  <              1.0E37  or
  917         not             -1000.0  <            Infinity  or
  918                            -0.0  <           -Infinity  or
  919                            -0.0  <             -1.0E37  or
  920                            -0.0  <             -1000.0  or
  921                            -0.0  <                -0.0  or
  922                            -0.0  <                 0.0  or
  923         not                -0.0  <              1000.0  or
  924         not                -0.0  <              1.0E37  or
  925         not                -0.0  <            Infinity  or
  926                             0.0  <           -Infinity  or
  927                             0.0  <             -1.0E37  or
  928                             0.0  <             -1000.0  or
  929                             0.0  <                -0.0  or
  930                             0.0  <                 0.0  or
  931         not                 0.0  <              1000.0  or
  932         not                 0.0  <              1.0E37  or
  933         not                 0.0  <            Infinity  or
  934                          1000.0  <           -Infinity  or
  935                          1000.0  <             -1.0E37  or
  936                          1000.0  <             -1000.0  or
  937                          1000.0  <                -0.0  or
  938                          1000.0  <                 0.0  or
  939                          1000.0  <              1000.0  or
  940         not              1000.0  <              1.0E37  or
  941         not              1000.0  <            Infinity  or
  942                          1.0E37  <           -Infinity  or
  943                          1.0E37  <             -1.0E37  or
  944                          1.0E37  <             -1000.0  or
  945                          1.0E37  <                -0.0  or
  946                          1.0E37  <                 0.0  or
  947                          1.0E37  <              1000.0  or
  948                          1.0E37  <              1.0E37  or
  949         not              1.0E37  <            Infinity  or
  950                        Infinity  <           -Infinity  or
  951                        Infinity  <             -1.0E37  or
  952                        Infinity  <             -1000.0  or
  953                        Infinity  <                -0.0  or
  954                        Infinity  <                 0.0  or
  955                        Infinity  <              1000.0  or
  956                        Infinity  <              1.0E37  or
  957                        Infinity  <            Infinity  or
  958             floatExpr(-Infinity) <           -Infinity  or
  959         not floatExpr(-Infinity) <             -1.0E37  or
  960         not floatExpr(-Infinity) <             -1000.0  or
  961         not floatExpr(-Infinity) <                -0.0  or
  962         not floatExpr(-Infinity) <                 0.0  or
  963         not floatExpr(-Infinity) <              1000.0  or
  964         not floatExpr(-Infinity) <              1.0E37  or
  965         not floatExpr(-Infinity) <            Infinity  or
  966             floatExpr(  -1.0E37) <           -Infinity  or
  967             floatExpr(  -1.0E37) <             -1.0E37  or
  968         not floatExpr(  -1.0E37) <             -1000.0  or
  969         not floatExpr(  -1.0E37) <                -0.0  or
  970         not floatExpr(  -1.0E37) <                 0.0  or
  971         not floatExpr(  -1.0E37) <              1000.0  or
  972         not floatExpr(  -1.0E37) <              1.0E37  or
  973         not floatExpr(  -1.0E37) <            Infinity  or
  974             floatExpr(  -1000.0) <           -Infinity  or
  975             floatExpr(  -1000.0) <             -1.0E37  or
  976             floatExpr(  -1000.0) <             -1000.0  or
  977         not floatExpr(  -1000.0) <                -0.0  or
  978         not floatExpr(  -1000.0) <                 0.0  or
  979         not floatExpr(  -1000.0) <              1000.0  or
  980         not floatExpr(  -1000.0) <              1.0E37  or
  981         not floatExpr(  -1000.0) <            Infinity  or
  982             floatExpr(     -0.0) <           -Infinity  or
  983             floatExpr(     -0.0) <             -1.0E37  or
  984             floatExpr(     -0.0) <             -1000.0  or
  985             floatExpr(     -0.0) <                -0.0  or
  986             floatExpr(     -0.0) <                 0.0  or
  987         not floatExpr(     -0.0) <              1000.0  or
  988         not floatExpr(     -0.0) <              1.0E37  or
  989         not floatExpr(     -0.0) <            Infinity  or
  990             floatExpr(      0.0) <           -Infinity  or
  991             floatExpr(      0.0) <             -1.0E37  or
  992             floatExpr(      0.0) <             -1000.0  or
  993             floatExpr(      0.0) <                -0.0  or
  994             floatExpr(      0.0) <                 0.0  or
  995         not floatExpr(      0.0) <              1000.0  or
  996         not floatExpr(      0.0) <              1.0E37  or
  997         not floatExpr(      0.0) <            Infinity  or
  998             floatExpr(   1000.0) <           -Infinity  or
  999             floatExpr(   1000.0) <             -1.0E37  or
 1000             floatExpr(   1000.0) <             -1000.0  or
 1001             floatExpr(   1000.0) <                -0.0  or
 1002             floatExpr(   1000.0) <                 0.0  or
 1003             floatExpr(   1000.0) <              1000.0  or
 1004         not floatExpr(   1000.0) <              1.0E37  or
 1005         not floatExpr(   1000.0) <            Infinity  or
 1006             floatExpr(   1.0E37) <           -Infinity  or
 1007             floatExpr(   1.0E37) <             -1.0E37  or
 1008             floatExpr(   1.0E37) <             -1000.0  or
 1009             floatExpr(   1.0E37) <                -0.0  or
 1010             floatExpr(   1.0E37) <                 0.0  or
 1011             floatExpr(   1.0E37) <              1000.0  or
 1012             floatExpr(   1.0E37) <              1.0E37  or
 1013         not floatExpr(   1.0E37) <            Infinity  or
 1014             floatExpr( Infinity) <           -Infinity  or
 1015             floatExpr( Infinity) <             -1.0E37  or
 1016             floatExpr( Infinity) <             -1000.0  or
 1017             floatExpr( Infinity) <                -0.0  or
 1018             floatExpr( Infinity) <                 0.0  or
 1019             floatExpr( Infinity) <              1000.0  or
 1020             floatExpr( Infinity) <              1.0E37  or
 1021             floatExpr( Infinity) <            Infinity  or
 1022                       -Infinity  < floatExpr(-Infinity) or
 1023         not           -Infinity  < floatExpr(  -1.0E37) or
 1024         not           -Infinity  < floatExpr(  -1000.0) or
 1025         not           -Infinity  < floatExpr(     -0.0) or
 1026         not           -Infinity  < floatExpr(      0.0) or
 1027         not           -Infinity  < floatExpr(   1000.0) or
 1028         not           -Infinity  < floatExpr(   1.0E37) or
 1029         not           -Infinity  < floatExpr( Infinity) or
 1030                         -1.0E37  < floatExpr(-Infinity) or
 1031                         -1.0E37  < floatExpr(  -1.0E37) or
 1032         not             -1.0E37  < floatExpr(  -1000.0) or
 1033         not             -1.0E37  < floatExpr(     -0.0) or
 1034         not             -1.0E37  < floatExpr(      0.0) or
 1035         not             -1.0E37  < floatExpr(   1000.0) or
 1036         not             -1.0E37  < floatExpr(   1.0E37) or
 1037         not             -1.0E37  < floatExpr( Infinity) or
 1038                         -1000.0  < floatExpr(-Infinity) or
 1039                         -1000.0  < floatExpr(  -1.0E37) or
 1040                         -1000.0  < floatExpr(  -1000.0) or
 1041         not             -1000.0  < floatExpr(     -0.0) or
 1042         not             -1000.0  < floatExpr(      0.0) or
 1043         not             -1000.0  < floatExpr(   1000.0) or
 1044         not             -1000.0  < floatExpr(   1.0E37) or
 1045         not             -1000.0  < floatExpr( Infinity) or
 1046                            -0.0  < floatExpr(-Infinity) or
 1047                            -0.0  < floatExpr(  -1.0E37) or
 1048                            -0.0  < floatExpr(  -1000.0) or
 1049                            -0.0  < floatExpr(     -0.0) or
 1050                            -0.0  < floatExpr(      0.0) or
 1051         not                -0.0  < floatExpr(   1000.0) or
 1052         not                -0.0  < floatExpr(   1.0E37) or
 1053         not                -0.0  < floatExpr( Infinity) or
 1054                             0.0  < floatExpr(-Infinity) or
 1055                             0.0  < floatExpr(  -1.0E37) or
 1056                             0.0  < floatExpr(  -1000.0) or
 1057                             0.0  < floatExpr(     -0.0) or
 1058                             0.0  < floatExpr(      0.0) or
 1059         not                 0.0  < floatExpr(   1000.0) or
 1060         not                 0.0  < floatExpr(   1.0E37) or
 1061         not                 0.0  < floatExpr( Infinity) or
 1062                          1000.0  < floatExpr(-Infinity) or
 1063                          1000.0  < floatExpr(  -1.0E37) or
 1064                          1000.0  < floatExpr(  -1000.0) or
 1065                          1000.0  < floatExpr(     -0.0) or
 1066                          1000.0  < floatExpr(      0.0) or
 1067                          1000.0  < floatExpr(   1000.0) or
 1068         not              1000.0  < floatExpr(   1.0E37) or
 1069         not              1000.0  < floatExpr( Infinity) or
 1070                          1.0E37  < floatExpr(-Infinity) or
 1071                          1.0E37  < floatExpr(  -1.0E37) or
 1072                          1.0E37  < floatExpr(  -1000.0) or
 1073                          1.0E37  < floatExpr(     -0.0) or
 1074                          1.0E37  < floatExpr(      0.0) or
 1075                          1.0E37  < floatExpr(   1000.0) or
 1076                          1.0E37  < floatExpr(   1.0E37) or
 1077         not              1.0E37  < floatExpr( Infinity) or
 1078                        Infinity  < floatExpr(-Infinity) or
 1079                        Infinity  < floatExpr(  -1.0E37) or
 1080                        Infinity  < floatExpr(  -1000.0) or
 1081                        Infinity  < floatExpr(     -0.0) or
 1082                        Infinity  < floatExpr(      0.0) or
 1083                        Infinity  < floatExpr(   1000.0) or
 1084                        Infinity  < floatExpr(   1.0E37) or
 1085                        Infinity  < floatExpr( Infinity) or
 1086             floatExpr(-Infinity) < floatExpr(-Infinity) or
 1087         not floatExpr(-Infinity) < floatExpr(  -1.0E37) or
 1088         not floatExpr(-Infinity) < floatExpr(  -1000.0) or
 1089         not floatExpr(-Infinity) < floatExpr(     -0.0) or
 1090         not floatExpr(-Infinity) < floatExpr(      0.0) or
 1091         not floatExpr(-Infinity) < floatExpr(   1000.0) or
 1092         not floatExpr(-Infinity) < floatExpr(   1.0E37) or
 1093         not floatExpr(-Infinity) < floatExpr( Infinity) or
 1094             floatExpr(  -1.0E37) < floatExpr(-Infinity) or
 1095             floatExpr(  -1.0E37) < floatExpr(  -1.0E37) or
 1096         not floatExpr(  -1.0E37) < floatExpr(  -1000.0) or
 1097         not floatExpr(  -1.0E37) < floatExpr(     -0.0) or
 1098         not floatExpr(  -1.0E37) < floatExpr(      0.0) or
 1099         not floatExpr(  -1.0E37) < floatExpr(   1000.0) or
 1100         not floatExpr(  -1.0E37) < floatExpr(   1.0E37) or
 1101         not floatExpr(  -1.0E37) < floatExpr( Infinity) or
 1102             floatExpr(  -1000.0) < floatExpr(-Infinity) or
 1103             floatExpr(  -1000.0) < floatExpr(  -1.0E37) or
 1104             floatExpr(  -1000.0) < floatExpr(  -1000.0) or
 1105         not floatExpr(  -1000.0) < floatExpr(     -0.0) or
 1106         not floatExpr(  -1000.0) < floatExpr(      0.0) or
 1107         not floatExpr(  -1000.0) < floatExpr(   1000.0) or
 1108         not floatExpr(  -1000.0) < floatExpr(   1.0E37) or
 1109         not floatExpr(  -1000.0) < floatExpr( Infinity) or
 1110             floatExpr(     -0.0) < floatExpr(-Infinity) or
 1111             floatExpr(     -0.0) < floatExpr(  -1.0E37) or
 1112             floatExpr(     -0.0) < floatExpr(  -1000.0) or
 1113             floatExpr(     -0.0) < floatExpr(     -0.0) or
 1114             floatExpr(     -0.0) < floatExpr(      0.0) or
 1115         not floatExpr(     -0.0) < floatExpr(   1000.0) or
 1116         not floatExpr(     -0.0) < floatExpr(   1.0E37) or
 1117         not floatExpr(     -0.0) < floatExpr( Infinity) or
 1118             floatExpr(      0.0) < floatExpr(-Infinity) or
 1119             floatExpr(      0.0) < floatExpr(  -1.0E37) or
 1120             floatExpr(      0.0) < floatExpr(  -1000.0) or
 1121             floatExpr(      0.0) < floatExpr(     -0.0) or
 1122             floatExpr(      0.0) < floatExpr(      0.0) or
 1123         not floatExpr(      0.0) < floatExpr(   1000.0) or
 1124         not floatExpr(      0.0) < floatExpr(   1.0E37) or
 1125         not floatExpr(      0.0) < floatExpr( Infinity) or
 1126             floatExpr(   1000.0) < floatExpr(-Infinity) or
 1127             floatExpr(   1000.0) < floatExpr(  -1.0E37) or
 1128             floatExpr(   1000.0) < floatExpr(  -1000.0) or
 1129             floatExpr(   1000.0) < floatExpr(     -0.0) or
 1130             floatExpr(   1000.0) < floatExpr(      0.0) or
 1131             floatExpr(   1000.0) < floatExpr(   1000.0) or
 1132         not floatExpr(   1000.0) < floatExpr(   1.0E37) or
 1133         not floatExpr(   1000.0) < floatExpr( Infinity) or
 1134             floatExpr(   1.0E37) < floatExpr(-Infinity) or
 1135             floatExpr(   1.0E37) < floatExpr(  -1.0E37) or
 1136             floatExpr(   1.0E37) < floatExpr(  -1000.0) or
 1137             floatExpr(   1.0E37) < floatExpr(     -0.0) or
 1138             floatExpr(   1.0E37) < floatExpr(      0.0) or
 1139             floatExpr(   1.0E37) < floatExpr(   1000.0) or
 1140             floatExpr(   1.0E37) < floatExpr(   1.0E37) or
 1141         not floatExpr(   1.0E37) < floatExpr( Infinity) or
 1142             floatExpr( Infinity) < floatExpr(-Infinity) or
 1143             floatExpr( Infinity) < floatExpr(  -1.0E37) or
 1144             floatExpr( Infinity) < floatExpr(  -1000.0) or
 1145             floatExpr( Infinity) < floatExpr(     -0.0) or
 1146             floatExpr( Infinity) < floatExpr(      0.0) or
 1147             floatExpr( Infinity) < floatExpr(   1000.0) or
 1148             floatExpr( Infinity) < floatExpr(   1.0E37) or
 1149             floatExpr( Infinity) < floatExpr( Infinity) then
 1150       writeln(" ***** Less than for float values does not work correct.");
 1151       okay := FALSE;
 1152     end if;
 1153 
 1154     if                -Infinity  >           -Infinity  or
 1155                       -Infinity  >             -1.0E37  or
 1156                       -Infinity  >             -1000.0  or
 1157                       -Infinity  >                -0.0  or
 1158                       -Infinity  >                 0.0  or
 1159                       -Infinity  >              1000.0  or
 1160                       -Infinity  >              1.0E37  or
 1161                       -Infinity  >            Infinity  or
 1162         not             -1.0E37  >           -Infinity  or
 1163                         -1.0E37  >             -1.0E37  or
 1164                         -1.0E37  >             -1000.0  or
 1165                         -1.0E37  >                -0.0  or
 1166                         -1.0E37  >                 0.0  or
 1167                         -1.0E37  >              1000.0  or
 1168                         -1.0E37  >              1.0E37  or
 1169                         -1.0E37  >            Infinity  or
 1170         not             -1000.0  >           -Infinity  or
 1171         not             -1000.0  >             -1.0E37  or
 1172                         -1000.0  >             -1000.0  or
 1173                         -1000.0  >                -0.0  or
 1174                         -1000.0  >                 0.0  or
 1175                         -1000.0  >              1000.0  or
 1176                         -1000.0  >              1.0E37  or
 1177                         -1000.0  >            Infinity  or
 1178         not                -0.0  >           -Infinity  or
 1179         not                -0.0  >             -1.0E37  or
 1180         not                -0.0  >             -1000.0  or
 1181                            -0.0  >                -0.0  or
 1182                            -0.0  >                 0.0  or
 1183                            -0.0  >              1000.0  or
 1184                            -0.0  >              1.0E37  or
 1185                            -0.0  >            Infinity  or
 1186         not                 0.0  >           -Infinity  or
 1187         not                 0.0  >             -1.0E37  or
 1188         not                 0.0  >             -1000.0  or
 1189                             0.0  >                -0.0  or
 1190                             0.0  >                 0.0  or
 1191                             0.0  >              1000.0  or
 1192                             0.0  >              1.0E37  or
 1193                             0.0  >            Infinity  or
 1194         not              1000.0  >           -Infinity  or
 1195         not              1000.0  >             -1.0E37  or
 1196         not              1000.0  >             -1000.0  or
 1197         not              1000.0  >                -0.0  or
 1198         not              1000.0  >                 0.0  or
 1199                          1000.0  >              1000.0  or
 1200                          1000.0  >              1.0E37  or
 1201                          1000.0  >            Infinity  or
 1202         not              1.0E37  >           -Infinity  or
 1203         not              1.0E37  >             -1.0E37  or
 1204         not              1.0E37  >             -1000.0  or
 1205         not              1.0E37  >                -0.0  or
 1206         not              1.0E37  >                 0.0  or
 1207         not              1.0E37  >              1000.0  or
 1208                          1.0E37  >              1.0E37  or
 1209                          1.0E37  >            Infinity  or
 1210         not            Infinity  >           -Infinity  or
 1211         not            Infinity  >             -1.0E37  or
 1212         not            Infinity  >             -1000.0  or
 1213         not            Infinity  >                -0.0  or
 1214         not            Infinity  >                 0.0  or
 1215         not            Infinity  >              1000.0  or
 1216         not            Infinity  >              1.0E37  or
 1217                        Infinity  >            Infinity  or
 1218             floatExpr(-Infinity) >           -Infinity  or
 1219             floatExpr(-Infinity) >             -1.0E37  or
 1220             floatExpr(-Infinity) >             -1000.0  or
 1221             floatExpr(-Infinity) >                -0.0  or
 1222             floatExpr(-Infinity) >                 0.0  or
 1223             floatExpr(-Infinity) >              1000.0  or
 1224             floatExpr(-Infinity) >              1.0E37  or
 1225             floatExpr(-Infinity) >            Infinity  or
 1226         not floatExpr(  -1.0E37) >           -Infinity  or
 1227             floatExpr(  -1.0E37) >             -1.0E37  or
 1228             floatExpr(  -1.0E37) >             -1000.0  or
 1229             floatExpr(  -1.0E37) >                -0.0  or
 1230             floatExpr(  -1.0E37) >                 0.0  or
 1231             floatExpr(  -1.0E37) >              1000.0  or
 1232             floatExpr(  -1.0E37) >              1.0E37  or
 1233             floatExpr(  -1.0E37) >            Infinity  or
 1234         not floatExpr(  -1000.0) >           -Infinity  or
 1235         not floatExpr(  -1000.0) >             -1.0E37  or
 1236             floatExpr(  -1000.0) >             -1000.0  or
 1237             floatExpr(  -1000.0) >                -0.0  or
 1238             floatExpr(  -1000.0) >                 0.0  or
 1239             floatExpr(  -1000.0) >              1000.0  or
 1240             floatExpr(  -1000.0) >              1.0E37  or
 1241             floatExpr(  -1000.0) >            Infinity  or
 1242         not floatExpr(     -0.0) >           -Infinity  or
 1243         not floatExpr(     -0.0) >             -1.0E37  or
 1244         not floatExpr(     -0.0) >             -1000.0  or
 1245             floatExpr(     -0.0) >                -0.0  or
 1246             floatExpr(     -0.0) >                 0.0  or
 1247             floatExpr(     -0.0) >              1000.0  or
 1248             floatExpr(     -0.0) >              1.0E37  or
 1249             floatExpr(     -0.0) >            Infinity  or
 1250         not floatExpr(      0.0) >           -Infinity  or
 1251         not floatExpr(      0.0) >             -1.0E37  or
 1252         not floatExpr(      0.0) >             -1000.0  or
 1253             floatExpr(      0.0) >                -0.0  or
 1254             floatExpr(      0.0) >                 0.0  or
 1255             floatExpr(      0.0) >              1000.0  or
 1256             floatExpr(      0.0) >              1.0E37  or
 1257             floatExpr(      0.0) >            Infinity  or
 1258         not floatExpr(   1000.0) >           -Infinity  or
 1259         not floatExpr(   1000.0) >             -1.0E37  or
 1260         not floatExpr(   1000.0) >             -1000.0  or
 1261         not floatExpr(   1000.0) >                -0.0  or
 1262         not floatExpr(   1000.0) >                 0.0  or
 1263             floatExpr(   1000.0) >              1000.0  or
 1264             floatExpr(   1000.0) >              1.0E37  or
 1265             floatExpr(   1000.0) >            Infinity  or
 1266         not floatExpr(   1.0E37) >           -Infinity  or
 1267         not floatExpr(   1.0E37) >             -1.0E37  or
 1268         not floatExpr(   1.0E37) >             -1000.0  or
 1269         not floatExpr(   1.0E37) >                -0.0  or
 1270         not floatExpr(   1.0E37) >                 0.0  or
 1271         not floatExpr(   1.0E37) >              1000.0  or
 1272             floatExpr(   1.0E37) >              1.0E37  or
 1273             floatExpr(   1.0E37) >            Infinity  or
 1274         not floatExpr( Infinity) >           -Infinity  or
 1275         not floatExpr( Infinity) >             -1.0E37  or
 1276         not floatExpr( Infinity) >             -1000.0  or
 1277         not floatExpr( Infinity) >                -0.0  or
 1278         not floatExpr( Infinity) >                 0.0  or
 1279         not floatExpr( Infinity) >              1000.0  or
 1280         not floatExpr( Infinity) >              1.0E37  or
 1281             floatExpr( Infinity) >            Infinity  or
 1282                       -Infinity  > floatExpr(-Infinity) or
 1283                       -Infinity  > floatExpr(  -1.0E37) or
 1284                       -Infinity  > floatExpr(  -1000.0) or
 1285                       -Infinity  > floatExpr(     -0.0) or
 1286                       -Infinity  > floatExpr(      0.0) or
 1287                       -Infinity  > floatExpr(   1000.0) or
 1288                       -Infinity  > floatExpr(   1.0E37) or
 1289                       -Infinity  > floatExpr( Infinity) or
 1290         not             -1.0E37  > floatExpr(-Infinity) or
 1291                         -1.0E37  > floatExpr(  -1.0E37) or
 1292                         -1.0E37  > floatExpr(  -1000.0) or
 1293                         -1.0E37  > floatExpr(     -0.0) or
 1294                         -1.0E37  > floatExpr(      0.0) or
 1295                         -1.0E37  > floatExpr(   1000.0) or
 1296                         -1.0E37  > floatExpr(   1.0E37) or
 1297                         -1.0E37  > floatExpr( Infinity) or
 1298         not             -1000.0  > floatExpr(-Infinity) or
 1299         not             -1000.0  > floatExpr(  -1.0E37) or
 1300                         -1000.0  > floatExpr(  -1000.0) or
 1301                         -1000.0  > floatExpr(     -0.0) or
 1302                         -1000.0  > floatExpr(      0.0) or
 1303                         -1000.0  > floatExpr(   1000.0) or
 1304                         -1000.0  > floatExpr(   1.0E37) or
 1305                         -1000.0  > floatExpr( Infinity) or
 1306         not                -0.0  > floatExpr(-Infinity) or
 1307         not                -0.0  > floatExpr(  -1.0E37) or
 1308         not                -0.0  > floatExpr(  -1000.0) or
 1309                            -0.0  > floatExpr(     -0.0) or
 1310                            -0.0  > floatExpr(      0.0) or
 1311                            -0.0  > floatExpr(   1000.0) or
 1312                            -0.0  > floatExpr(   1.0E37) or
 1313                            -0.0  > floatExpr( Infinity) or
 1314         not                 0.0  > floatExpr(-Infinity) or
 1315         not                 0.0  > floatExpr(  -1.0E37) or
 1316         not                 0.0  > floatExpr(  -1000.0) or
 1317                             0.0  > floatExpr(     -0.0) or
 1318                             0.0  > floatExpr(      0.0) or
 1319                             0.0  > floatExpr(   1000.0) or
 1320                             0.0  > floatExpr(   1.0E37) or
 1321                             0.0  > floatExpr( Infinity) or
 1322         not              1000.0  > floatExpr(-Infinity) or
 1323         not              1000.0  > floatExpr(  -1.0E37) or
 1324         not              1000.0  > floatExpr(  -1000.0) or
 1325         not              1000.0  > floatExpr(     -0.0) or
 1326         not              1000.0  > floatExpr(      0.0) or
 1327                          1000.0  > floatExpr(   1000.0) or
 1328                          1000.0  > floatExpr(   1.0E37) or
 1329                          1000.0  > floatExpr( Infinity) or
 1330         not              1.0E37  > floatExpr(-Infinity) or
 1331         not              1.0E37  > floatExpr(  -1.0E37) or
 1332         not              1.0E37  > floatExpr(  -1000.0) or
 1333         not              1.0E37  > floatExpr(     -0.0) or
 1334         not              1.0E37  > floatExpr(      0.0) or
 1335         not              1.0E37  > floatExpr(   1000.0) or
 1336                          1.0E37  > floatExpr(   1.0E37) or
 1337                          1.0E37  > floatExpr( Infinity) or
 1338         not            Infinity  > floatExpr(-Infinity) or
 1339         not            Infinity  > floatExpr(  -1.0E37) or
 1340         not            Infinity  > floatExpr(  -1000.0) or
 1341         not            Infinity  > floatExpr(     -0.0) or
 1342         not            Infinity  > floatExpr(      0.0) or
 1343         not            Infinity  > floatExpr(   1000.0) or
 1344         not            Infinity  > floatExpr(   1.0E37) or
 1345                        Infinity  > floatExpr( Infinity) or
 1346             floatExpr(-Infinity) > floatExpr(-Infinity) or
 1347             floatExpr(-Infinity) > floatExpr(  -1.0E37) or
 1348             floatExpr(-Infinity) > floatExpr(  -1000.0) or
 1349             floatExpr(-Infinity) > floatExpr(     -0.0) or
 1350             floatExpr(-Infinity) > floatExpr(      0.0) or
 1351             floatExpr(-Infinity) > floatExpr(   1000.0) or
 1352             floatExpr(-Infinity) > floatExpr(   1.0E37) or
 1353             floatExpr(-Infinity) > floatExpr( Infinity) or
 1354         not floatExpr(  -1.0E37) > floatExpr(-Infinity) or
 1355             floatExpr(  -1.0E37) > floatExpr(  -1.0E37) or
 1356             floatExpr(  -1.0E37) > floatExpr(  -1000.0) or
 1357             floatExpr(  -1.0E37) > floatExpr(     -0.0) or
 1358             floatExpr(  -1.0E37) > floatExpr(      0.0) or
 1359             floatExpr(  -1.0E37) > floatExpr(   1000.0) or
 1360             floatExpr(  -1.0E37) > floatExpr(   1.0E37) or
 1361             floatExpr(  -1.0E37) > floatExpr( Infinity) or
 1362         not floatExpr(  -1000.0) > floatExpr(-Infinity) or
 1363         not floatExpr(  -1000.0) > floatExpr(  -1.0E37) or
 1364             floatExpr(  -1000.0) > floatExpr(  -1000.0) or
 1365             floatExpr(  -1000.0) > floatExpr(     -0.0) or
 1366             floatExpr(  -1000.0) > floatExpr(      0.0) or
 1367             floatExpr(  -1000.0) > floatExpr(   1000.0) or
 1368             floatExpr(  -1000.0) > floatExpr(   1.0E37) or
 1369             floatExpr(  -1000.0) > floatExpr( Infinity) or
 1370         not floatExpr(     -0.0) > floatExpr(-Infinity) or
 1371         not floatExpr(     -0.0) > floatExpr(  -1.0E37) or
 1372         not floatExpr(     -0.0) > floatExpr(  -1000.0) or
 1373             floatExpr(     -0.0) > floatExpr(     -0.0) or
 1374             floatExpr(     -0.0) > floatExpr(      0.0) or
 1375             floatExpr(     -0.0) > floatExpr(   1000.0) or
 1376             floatExpr(     -0.0) > floatExpr(   1.0E37) or
 1377             floatExpr(     -0.0) > floatExpr( Infinity) or
 1378         not floatExpr(      0.0) > floatExpr(-Infinity) or
 1379         not floatExpr(      0.0) > floatExpr(  -1.0E37) or
 1380         not floatExpr(      0.0) > floatExpr(  -1000.0) or
 1381             floatExpr(      0.0) > floatExpr(     -0.0) or
 1382             floatExpr(      0.0) > floatExpr(      0.0) or
 1383             floatExpr(      0.0) > floatExpr(   1000.0) or
 1384             floatExpr(      0.0) > floatExpr(   1.0E37) or
 1385             floatExpr(      0.0) > floatExpr( Infinity) or
 1386         not floatExpr(   1000.0) > floatExpr(-Infinity) or
 1387         not floatExpr(   1000.0) > floatExpr(  -1.0E37) or
 1388         not floatExpr(   1000.0) > floatExpr(  -1000.0) or
 1389         not floatExpr(   1000.0) > floatExpr(     -0.0) or
 1390         not floatExpr(   1000.0) > floatExpr(      0.0) or
 1391             floatExpr(   1000.0) > floatExpr(   1000.0) or
 1392             floatExpr(   1000.0) > floatExpr(   1.0E37) or
 1393             floatExpr(   1000.0) > floatExpr( Infinity) or
 1394         not floatExpr(   1.0E37) > floatExpr(-Infinity) or
 1395         not floatExpr(   1.0E37) > floatExpr(  -1.0E37) or
 1396         not floatExpr(   1.0E37) > floatExpr(  -1000.0) or
 1397         not floatExpr(   1.0E37) > floatExpr(     -0.0) or
 1398         not floatExpr(   1.0E37) > floatExpr(      0.0) or
 1399         not floatExpr(   1.0E37) > floatExpr(   1000.0) or
 1400             floatExpr(   1.0E37) > floatExpr(   1.0E37) or
 1401             floatExpr(   1.0E37) > floatExpr( Infinity) or
 1402         not floatExpr( Infinity) > floatExpr(-Infinity) or
 1403         not floatExpr( Infinity) > floatExpr(  -1.0E37) or
 1404         not floatExpr( Infinity) > floatExpr(  -1000.0) or
 1405         not floatExpr( Infinity) > floatExpr(     -0.0) or
 1406         not floatExpr( Infinity) > floatExpr(      0.0) or
 1407         not floatExpr( Infinity) > floatExpr(   1000.0) or
 1408         not floatExpr( Infinity) > floatExpr(   1.0E37) or
 1409             floatExpr( Infinity) > floatExpr( Infinity) then
 1410       writeln(" ***** Greater than for float values does not work correct.");
 1411       okay := FALSE;
 1412     end if;
 1413 
 1414     if  not           -Infinity  <=           -Infinity  or
 1415         not           -Infinity  <=             -1.0E37  or
 1416         not           -Infinity  <=             -1000.0  or
 1417         not           -Infinity  <=                -0.0  or
 1418         not           -Infinity  <=                 0.0  or
 1419         not           -Infinity  <=              1000.0  or
 1420         not           -Infinity  <=              1.0E37  or
 1421         not           -Infinity  <=            Infinity  or
 1422                         -1.0E37  <=           -Infinity  or
 1423         not             -1.0E37  <=             -1.0E37  or
 1424         not             -1.0E37  <=             -1000.0  or
 1425         not             -1.0E37  <=                -0.0  or
 1426         not             -1.0E37  <=                 0.0  or
 1427         not             -1.0E37  <=              1000.0  or
 1428         not             -1.0E37  <=              1.0E37  or
 1429         not             -1.0E37  <=            Infinity  or
 1430                         -1000.0  <=           -Infinity  or
 1431                         -1000.0  <=             -1.0E37  or
 1432         not             -1000.0  <=             -1000.0  or
 1433         not             -1000.0  <=                -0.0  or
 1434         not             -1000.0  <=                 0.0  or
 1435         not             -1000.0  <=              1000.0  or
 1436         not             -1000.0  <=              1.0E37  or
 1437         not             -1000.0  <=            Infinity  or
 1438                            -0.0  <=           -Infinity  or
 1439                            -0.0  <=             -1.0E37  or
 1440                            -0.0  <=             -1000.0  or
 1441         not                -0.0  <=                -0.0  or
 1442         not                -0.0  <=                 0.0  or
 1443         not                -0.0  <=              1000.0  or
 1444         not                -0.0  <=              1.0E37  or
 1445         not                -0.0  <=            Infinity  or
 1446                             0.0  <=           -Infinity  or
 1447                             0.0  <=             -1.0E37  or
 1448                             0.0  <=             -1000.0  or
 1449         not                 0.0  <=                -0.0  or
 1450         not                 0.0  <=                 0.0  or
 1451         not                 0.0  <=              1000.0  or
 1452         not                 0.0  <=              1.0E37  or
 1453         not                 0.0  <=            Infinity  or
 1454                          1000.0  <=           -Infinity  or
 1455                          1000.0  <=             -1.0E37  or
 1456                          1000.0  <=             -1000.0  or
 1457                          1000.0  <=                -0.0  or
 1458                          1000.0  <=                 0.0  or
 1459         not              1000.0  <=              1000.0  or
 1460         not              1000.0  <=              1.0E37  or
 1461         not              1000.0  <=            Infinity  or
 1462                          1.0E37  <=           -Infinity  or
 1463                          1.0E37  <=             -1.0E37  or
 1464                          1.0E37  <=             -1000.0  or
 1465                          1.0E37  <=                -0.0  or
 1466                          1.0E37  <=                 0.0  or
 1467                          1.0E37  <=              1000.0  or
 1468         not              1.0E37  <=              1.0E37  or
 1469         not              1.0E37  <=            Infinity  or
 1470                        Infinity  <=           -Infinity  or
 1471                        Infinity  <=             -1.0E37  or
 1472                        Infinity  <=             -1000.0  or
 1473                        Infinity  <=                -0.0  or
 1474                        Infinity  <=                 0.0  or
 1475                        Infinity  <=              1000.0  or
 1476                        Infinity  <=              1.0E37  or
 1477         not            Infinity  <=            Infinity  or
 1478         not floatExpr(-Infinity) <=           -Infinity  or
 1479         not floatExpr(-Infinity) <=             -1.0E37  or
 1480         not floatExpr(-Infinity) <=             -1000.0  or
 1481         not floatExpr(-Infinity) <=                -0.0  or
 1482         not floatExpr(-Infinity) <=                 0.0  or
 1483         not floatExpr(-Infinity) <=              1000.0  or
 1484         not floatExpr(-Infinity) <=              1.0E37  or
 1485         not floatExpr(-Infinity) <=            Infinity  or
 1486             floatExpr(  -1.0E37) <=           -Infinity  or
 1487         not floatExpr(  -1.0E37) <=             -1.0E37  or
 1488         not floatExpr(  -1.0E37) <=             -1000.0  or
 1489         not floatExpr(  -1.0E37) <=                -0.0  or
 1490         not floatExpr(  -1.0E37) <=                 0.0  or
 1491         not floatExpr(  -1.0E37) <=              1000.0  or
 1492         not floatExpr(  -1.0E37) <=              1.0E37  or
 1493         not floatExpr(  -1.0E37) <=            Infinity  or
 1494             floatExpr(  -1000.0) <=           -Infinity  or
 1495             floatExpr(  -1000.0) <=             -1.0E37  or
 1496         not floatExpr(  -1000.0) <=             -1000.0  or
 1497         not floatExpr(  -1000.0) <=                -0.0  or
 1498         not floatExpr(  -1000.0) <=                 0.0  or
 1499         not floatExpr(  -1000.0) <=              1000.0  or
 1500         not floatExpr(  -1000.0) <=              1.0E37  or
 1501         not floatExpr(  -1000.0) <=            Infinity  or
 1502             floatExpr(     -0.0) <=           -Infinity  or
 1503             floatExpr(     -0.0) <=             -1.0E37  or
 1504             floatExpr(     -0.0) <=             -1000.0  or
 1505         not floatExpr(     -0.0) <=                -0.0  or
 1506         not floatExpr(     -0.0) <=                 0.0  or
 1507         not floatExpr(     -0.0) <=              1000.0  or
 1508         not floatExpr(     -0.0) <=              1.0E37  or
 1509         not floatExpr(     -0.0) <=            Infinity  or
 1510             floatExpr(      0.0) <=           -Infinity  or
 1511             floatExpr(      0.0) <=             -1.0E37  or
 1512             floatExpr(      0.0) <=             -1000.0  or
 1513         not floatExpr(      0.0) <=                -0.0  or
 1514         not floatExpr(      0.0) <=                 0.0  or
 1515         not floatExpr(      0.0) <=              1000.0  or
 1516         not floatExpr(      0.0) <=              1.0E37  or
 1517         not floatExpr(      0.0) <=            Infinity  or
 1518             floatExpr(   1000.0) <=           -Infinity  or
 1519             floatExpr(   1000.0) <=             -1.0E37  or
 1520             floatExpr(   1000.0) <=             -1000.0  or
 1521             floatExpr(   1000.0) <=                -0.0  or
 1522             floatExpr(   1000.0) <=                 0.0  or
 1523         not floatExpr(   1000.0) <=              1000.0  or
 1524         not floatExpr(   1000.0) <=              1.0E37  or
 1525         not floatExpr(   1000.0) <=            Infinity  or
 1526             floatExpr(   1.0E37) <=           -Infinity  or
 1527             floatExpr(   1.0E37) <=             -1.0E37  or
 1528             floatExpr(   1.0E37) <=             -1000.0  or
 1529             floatExpr(   1.0E37) <=                -0.0  or
 1530             floatExpr(   1.0E37) <=                 0.0  or
 1531             floatExpr(   1.0E37) <=              1000.0  or
 1532         not floatExpr(   1.0E37) <=              1.0E37  or
 1533         not floatExpr(   1.0E37) <=            Infinity  or
 1534             floatExpr( Infinity) <=           -Infinity  or
 1535             floatExpr( Infinity) <=             -1.0E37  or
 1536             floatExpr( Infinity) <=             -1000.0  or
 1537             floatExpr( Infinity) <=                -0.0  or
 1538             floatExpr( Infinity) <=                 0.0  or
 1539             floatExpr( Infinity) <=              1000.0  or
 1540             floatExpr( Infinity) <=              1.0E37  or
 1541         not floatExpr( Infinity) <=            Infinity  or
 1542         not           -Infinity  <= floatExpr(-Infinity) or
 1543         not           -Infinity  <= floatExpr(  -1.0E37) or
 1544         not           -Infinity  <= floatExpr(  -1000.0) or
 1545         not           -Infinity  <= floatExpr(     -0.0) or
 1546         not           -Infinity  <= floatExpr(      0.0) or
 1547         not           -Infinity  <= floatExpr(   1000.0) or
 1548         not           -Infinity  <= floatExpr(   1.0E37) or
 1549         not           -Infinity  <= floatExpr( Infinity) or
 1550                         -1.0E37  <= floatExpr(-Infinity) or
 1551         not             -1.0E37  <= floatExpr(  -1.0E37) or
 1552         not             -1.0E37  <= floatExpr(  -1000.0) or
 1553         not             -1.0E37  <= floatExpr(     -0.0) or
 1554         not             -1.0E37  <= floatExpr(      0.0) or
 1555         not             -1.0E37  <= floatExpr(   1000.0) or
 1556         not             -1.0E37  <= floatExpr(   1.0E37) or
 1557         not             -1.0E37  <= floatExpr( Infinity) or
 1558                         -1000.0  <= floatExpr(-Infinity) or
 1559                         -1000.0  <= floatExpr(  -1.0E37) or
 1560         not             -1000.0  <= floatExpr(  -1000.0) or
 1561         not             -1000.0  <= floatExpr(     -0.0) or
 1562         not             -1000.0  <= floatExpr(      0.0) or
 1563         not             -1000.0  <= floatExpr(   1000.0) or
 1564         not             -1000.0  <= floatExpr(   1.0E37) or
 1565         not             -1000.0  <= floatExpr( Infinity) or
 1566                            -0.0  <= floatExpr(-Infinity) or
 1567                            -0.0  <= floatExpr(  -1.0E37) or
 1568                            -0.0  <= floatExpr(  -1000.0) or
 1569         not                -0.0  <= floatExpr(     -0.0) or
 1570         not                -0.0  <= floatExpr(      0.0) or
 1571         not                -0.0  <= floatExpr(   1000.0) or
 1572         not                -0.0  <= floatExpr(   1.0E37) or
 1573         not                -0.0  <= floatExpr( Infinity) or
 1574                             0.0  <= floatExpr(-Infinity) or
 1575                             0.0  <= floatExpr(  -1.0E37) or
 1576                             0.0  <= floatExpr(  -1000.0) or
 1577         not                 0.0  <= floatExpr(     -0.0) or
 1578         not                 0.0  <= floatExpr(      0.0) or
 1579         not                 0.0  <= floatExpr(   1000.0) or
 1580         not                 0.0  <= floatExpr(   1.0E37) or
 1581         not                 0.0  <= floatExpr( Infinity) or
 1582                          1000.0  <= floatExpr(-Infinity) or
 1583                          1000.0  <= floatExpr(  -1.0E37) or
 1584                          1000.0  <= floatExpr(  -1000.0) or
 1585                          1000.0  <= floatExpr(     -0.0) or
 1586                          1000.0  <= floatExpr(      0.0) or
 1587         not              1000.0  <= floatExpr(   1000.0) or
 1588         not              1000.0  <= floatExpr(   1.0E37) or
 1589         not              1000.0  <= floatExpr( Infinity) or
 1590                          1.0E37  <= floatExpr(-Infinity) or
 1591                          1.0E37  <= floatExpr(  -1.0E37) or
 1592                          1.0E37  <= floatExpr(  -1000.0) or
 1593                          1.0E37  <= floatExpr(     -0.0) or
 1594                          1.0E37  <= floatExpr(      0.0) or
 1595                          1.0E37  <= floatExpr(   1000.0) or
 1596         not              1.0E37  <= floatExpr(   1.0E37) or
 1597         not              1.0E37  <= floatExpr( Infinity) or
 1598                        Infinity  <= floatExpr(-Infinity) or
 1599                        Infinity  <= floatExpr(  -1.0E37) or
 1600                        Infinity  <= floatExpr(  -1000.0) or
 1601                        Infinity  <= floatExpr(     -0.0) or
 1602                        Infinity  <= floatExpr(      0.0) or
 1603                        Infinity  <= floatExpr(   1000.0) or
 1604                        Infinity  <= floatExpr(   1.0E37) or
 1605         not            Infinity  <= floatExpr( Infinity) or
 1606         not floatExpr(-Infinity) <= floatExpr(-Infinity) or
 1607         not floatExpr(-Infinity) <= floatExpr(  -1.0E37) or
 1608         not floatExpr(-Infinity) <= floatExpr(  -1000.0) or
 1609         not floatExpr(-Infinity) <= floatExpr(     -0.0) or
 1610         not floatExpr(-Infinity) <= floatExpr(      0.0) or
 1611         not floatExpr(-Infinity) <= floatExpr(   1000.0) or
 1612         not floatExpr(-Infinity) <= floatExpr(   1.0E37) or
 1613         not floatExpr(-Infinity) <= floatExpr( Infinity) or
 1614             floatExpr(  -1.0E37) <= floatExpr(-Infinity) or
 1615         not floatExpr(  -1.0E37) <= floatExpr(  -1.0E37) or
 1616         not floatExpr(  -1.0E37) <= floatExpr(  -1000.0) or
 1617         not floatExpr(  -1.0E37) <= floatExpr(     -0.0) or
 1618         not floatExpr(  -1.0E37) <= floatExpr(      0.0) or
 1619         not floatExpr(  -1.0E37) <= floatExpr(   1000.0) or
 1620         not floatExpr(  -1.0E37) <= floatExpr(   1.0E37) or
 1621         not floatExpr(  -1.0E37) <= floatExpr( Infinity) or
 1622             floatExpr(  -1000.0) <= floatExpr(-Infinity) or
 1623             floatExpr(  -1000.0) <= floatExpr(  -1.0E37) or
 1624         not floatExpr(  -1000.0) <= floatExpr(  -1000.0) or
 1625         not floatExpr(  -1000.0) <= floatExpr(     -0.0) or
 1626         not floatExpr(  -1000.0) <= floatExpr(      0.0) or
 1627         not floatExpr(  -1000.0) <= floatExpr(   1000.0) or
 1628         not floatExpr(  -1000.0) <= floatExpr(   1.0E37) or
 1629         not floatExpr(  -1000.0) <= floatExpr( Infinity) or
 1630             floatExpr(     -0.0) <= floatExpr(-Infinity) or
 1631             floatExpr(     -0.0) <= floatExpr(  -1.0E37) or
 1632             floatExpr(     -0.0) <= floatExpr(  -1000.0) or
 1633         not floatExpr(     -0.0) <= floatExpr(     -0.0) or
 1634         not floatExpr(     -0.0) <= floatExpr(      0.0) or
 1635         not floatExpr(     -0.0) <= floatExpr(   1000.0) or
 1636         not floatExpr(     -0.0) <= floatExpr(   1.0E37) or
 1637         not floatExpr(     -0.0) <= floatExpr( Infinity) or
 1638             floatExpr(      0.0) <= floatExpr(-Infinity) or
 1639             floatExpr(      0.0) <= floatExpr(  -1.0E37) or
 1640             floatExpr(      0.0) <= floatExpr(  -1000.0) or
 1641         not floatExpr(      0.0) <= floatExpr(     -0.0) or
 1642         not floatExpr(      0.0) <= floatExpr(      0.0) or
 1643         not floatExpr(      0.0) <= floatExpr(   1000.0) or
 1644         not floatExpr(      0.0) <= floatExpr(   1.0E37) or
 1645         not floatExpr(      0.0) <= floatExpr( Infinity) or
 1646             floatExpr(   1000.0) <= floatExpr(-Infinity) or
 1647             floatExpr(   1000.0) <= floatExpr(  -1.0E37) or
 1648             floatExpr(   1000.0) <= floatExpr(  -1000.0) or
 1649             floatExpr(   1000.0) <= floatExpr(     -0.0) or
 1650             floatExpr(   1000.0) <= floatExpr(      0.0) or
 1651         not floatExpr(   1000.0) <= floatExpr(   1000.0) or
 1652         not floatExpr(   1000.0) <= floatExpr(   1.0E37) or
 1653         not floatExpr(   1000.0) <= floatExpr( Infinity) or
 1654             floatExpr(   1.0E37) <= floatExpr(-Infinity) or
 1655             floatExpr(   1.0E37) <= floatExpr(  -1.0E37) or
 1656             floatExpr(   1.0E37) <= floatExpr(  -1000.0) or
 1657             floatExpr(   1.0E37) <= floatExpr(     -0.0) or
 1658             floatExpr(   1.0E37) <= floatExpr(      0.0) or
 1659             floatExpr(   1.0E37) <= floatExpr(   1000.0) or
 1660         not floatExpr(   1.0E37) <= floatExpr(   1.0E37) or
 1661         not floatExpr(   1.0E37) <= floatExpr( Infinity) or
 1662             floatExpr( Infinity) <= floatExpr(-Infinity) or
 1663             floatExpr( Infinity) <= floatExpr(  -1.0E37) or
 1664             floatExpr( Infinity) <= floatExpr(  -1000.0) or
 1665             floatExpr( Infinity) <= floatExpr(     -0.0) or
 1666             floatExpr( Infinity) <= floatExpr(      0.0) or
 1667             floatExpr( Infinity) <= floatExpr(   1000.0) or
 1668             floatExpr( Infinity) <= floatExpr(   1.0E37) or
 1669         not floatExpr( Infinity) <= floatExpr( Infinity) then
 1670       writeln(" ***** Less equal for float values does not work correct.");
 1671       okay := FALSE;
 1672     end if;
 1673 
 1674     if  not           -Infinity  >=           -Infinity  or
 1675                       -Infinity  >=             -1.0E37  or
 1676                       -Infinity  >=             -1000.0  or
 1677                       -Infinity  >=                -0.0  or
 1678                       -Infinity  >=                 0.0  or
 1679                       -Infinity  >=              1000.0  or
 1680                       -Infinity  >=              1.0E37  or
 1681                       -Infinity  >=            Infinity  or
 1682         not             -1.0E37  >=           -Infinity  or
 1683         not             -1.0E37  >=             -1.0E37  or
 1684                         -1.0E37  >=             -1000.0  or
 1685                         -1.0E37  >=                -0.0  or
 1686                         -1.0E37  >=                 0.0  or
 1687                         -1.0E37  >=              1000.0  or
 1688                         -1.0E37  >=              1.0E37  or
 1689                         -1.0E37  >=            Infinity  or
 1690         not             -1000.0  >=           -Infinity  or
 1691         not             -1000.0  >=             -1.0E37  or
 1692         not             -1000.0  >=             -1000.0  or
 1693                         -1000.0  >=                -0.0  or
 1694                         -1000.0  >=                 0.0  or
 1695                         -1000.0  >=              1000.0  or
 1696                         -1000.0  >=              1.0E37  or
 1697                         -1000.0  >=            Infinity  or
 1698         not                -0.0  >=           -Infinity  or
 1699         not                -0.0  >=             -1.0E37  or
 1700         not                -0.0  >=             -1000.0  or
 1701         not                -0.0  >=                -0.0  or
 1702         not                -0.0  >=                 0.0  or
 1703                            -0.0  >=              1000.0  or
 1704                            -0.0  >=              1.0E37  or
 1705                            -0.0  >=            Infinity  or
 1706         not                 0.0  >=           -Infinity  or
 1707         not                 0.0  >=             -1.0E37  or
 1708         not                 0.0  >=             -1000.0  or
 1709         not                 0.0  >=                -0.0  or
 1710         not                 0.0  >=                 0.0  or
 1711                             0.0  >=              1000.0  or
 1712                             0.0  >=              1.0E37  or
 1713                             0.0  >=            Infinity  or
 1714         not              1000.0  >=           -Infinity  or
 1715         not              1000.0  >=             -1.0E37  or
 1716         not              1000.0  >=             -1000.0  or
 1717         not              1000.0  >=                -0.0  or
 1718         not              1000.0  >=                 0.0  or
 1719         not              1000.0  >=              1000.0  or
 1720                          1000.0  >=              1.0E37  or
 1721                          1000.0  >=            Infinity  or
 1722         not              1.0E37  >=           -Infinity  or
 1723         not              1.0E37  >=             -1.0E37  or
 1724         not              1.0E37  >=             -1000.0  or
 1725         not              1.0E37  >=                -0.0  or
 1726         not              1.0E37  >=                 0.0  or
 1727         not              1.0E37  >=              1000.0  or
 1728         not              1.0E37  >=              1.0E37  or
 1729                          1.0E37  >=            Infinity  or
 1730         not            Infinity  >=           -Infinity  or
 1731         not            Infinity  >=             -1.0E37  or
 1732         not            Infinity  >=             -1000.0  or
 1733         not            Infinity  >=                -0.0  or
 1734         not            Infinity  >=                 0.0  or
 1735         not            Infinity  >=              1000.0  or
 1736         not            Infinity  >=              1.0E37  or
 1737         not            Infinity  >=            Infinity  or
 1738         not floatExpr(-Infinity) >=           -Infinity  or
 1739             floatExpr(-Infinity) >=             -1.0E37  or
 1740             floatExpr(-Infinity) >=             -1000.0  or
 1741             floatExpr(-Infinity) >=                -0.0  or
 1742             floatExpr(-Infinity) >=                 0.0  or
 1743             floatExpr(-Infinity) >=              1000.0  or
 1744             floatExpr(-Infinity) >=              1.0E37  or
 1745             floatExpr(-Infinity) >=            Infinity  or
 1746         not floatExpr(  -1.0E37) >=           -Infinity  or
 1747         not floatExpr(  -1.0E37) >=             -1.0E37  or
 1748             floatExpr(  -1.0E37) >=             -1000.0  or
 1749             floatExpr(  -1.0E37) >=                -0.0  or
 1750             floatExpr(  -1.0E37) >=                 0.0  or
 1751             floatExpr(  -1.0E37) >=              1000.0  or
 1752             floatExpr(  -1.0E37) >=              1.0E37  or
 1753             floatExpr(  -1.0E37) >=            Infinity  or
 1754         not floatExpr(  -1000.0) >=           -Infinity  or
 1755         not floatExpr(  -1000.0) >=             -1.0E37  or
 1756         not floatExpr(  -1000.0) >=             -1000.0  or
 1757             floatExpr(  -1000.0) >=                -0.0  or
 1758             floatExpr(  -1000.0) >=                 0.0  or
 1759             floatExpr(  -1000.0) >=              1000.0  or
 1760             floatExpr(  -1000.0) >=              1.0E37  or
 1761             floatExpr(  -1000.0) >=            Infinity  or
 1762         not floatExpr(     -0.0) >=           -Infinity  or
 1763         not floatExpr(     -0.0) >=             -1.0E37  or
 1764         not floatExpr(     -0.0) >=             -1000.0  or
 1765         not floatExpr(     -0.0) >=                -0.0  or
 1766         not floatExpr(     -0.0) >=                 0.0  or
 1767             floatExpr(     -0.0) >=              1000.0  or
 1768             floatExpr(     -0.0) >=              1.0E37  or
 1769             floatExpr(     -0.0) >=            Infinity  or
 1770         not floatExpr(      0.0) >=           -Infinity  or
 1771         not floatExpr(      0.0) >=             -1.0E37  or
 1772         not floatExpr(      0.0) >=             -1000.0  or
 1773         not floatExpr(      0.0) >=                -0.0  or
 1774         not floatExpr(      0.0) >=                 0.0  or
 1775             floatExpr(      0.0) >=              1000.0  or
 1776             floatExpr(      0.0) >=              1.0E37  or
 1777             floatExpr(      0.0) >=            Infinity  or
 1778         not floatExpr(   1000.0) >=           -Infinity  or
 1779         not floatExpr(   1000.0) >=             -1.0E37  or
 1780         not floatExpr(   1000.0) >=             -1000.0  or
 1781         not floatExpr(   1000.0) >=                -0.0  or
 1782         not floatExpr(   1000.0) >=                 0.0  or
 1783         not floatExpr(   1000.0) >=              1000.0  or
 1784             floatExpr(   1000.0) >=              1.0E37  or
 1785             floatExpr(   1000.0) >=            Infinity  or
 1786         not floatExpr(   1.0E37) >=           -Infinity  or
 1787         not floatExpr(   1.0E37) >=             -1.0E37  or
 1788         not floatExpr(   1.0E37) >=             -1000.0  or
 1789         not floatExpr(   1.0E37) >=                -0.0  or
 1790         not floatExpr(   1.0E37) >=                 0.0  or
 1791         not floatExpr(   1.0E37) >=              1000.0  or
 1792         not floatExpr(   1.0E37) >=              1.0E37  or
 1793             floatExpr(   1.0E37) >=            Infinity  or
 1794         not floatExpr( Infinity) >=           -Infinity  or
 1795         not floatExpr( Infinity) >=             -1.0E37  or
 1796         not floatExpr( Infinity) >=             -1000.0  or
 1797         not floatExpr( Infinity) >=                -0.0  or
 1798         not floatExpr( Infinity) >=                 0.0  or
 1799         not floatExpr( Infinity) >=              1000.0  or
 1800         not floatExpr( Infinity) >=              1.0E37  or
 1801         not floatExpr( Infinity) >=            Infinity  or
 1802         not           -Infinity  >= floatExpr(-Infinity) or
 1803                       -Infinity  >= floatExpr(  -1.0E37) or
 1804                       -Infinity  >= floatExpr(  -1000.0) or
 1805                       -Infinity  >= floatExpr(     -0.0) or
 1806                       -Infinity  >= floatExpr(      0.0) or
 1807                       -Infinity  >= floatExpr(   1000.0) or
 1808                       -Infinity  >= floatExpr(   1.0E37) or
 1809                       -Infinity  >= floatExpr( Infinity) or
 1810         not             -1.0E37  >= floatExpr(-Infinity) or
 1811         not             -1.0E37  >= floatExpr(  -1.0E37) or
 1812                         -1.0E37  >= floatExpr(  -1000.0) or
 1813                         -1.0E37  >= floatExpr(     -0.0) or
 1814                         -1.0E37  >= floatExpr(      0.0) or
 1815                         -1.0E37  >= floatExpr(   1000.0) or
 1816                         -1.0E37  >= floatExpr(   1.0E37) or
 1817                         -1.0E37  >= floatExpr( Infinity) or
 1818         not             -1000.0  >= floatExpr(-Infinity) or
 1819         not             -1000.0  >= floatExpr(  -1.0E37) or
 1820         not             -1000.0  >= floatExpr(  -1000.0) or
 1821                         -1000.0  >= floatExpr(     -0.0) or
 1822                         -1000.0  >= floatExpr(      0.0) or
 1823                         -1000.0  >= floatExpr(   1000.0) or
 1824                         -1000.0  >= floatExpr(   1.0E37) or
 1825                         -1000.0  >= floatExpr( Infinity) or
 1826         not                -0.0  >= floatExpr(-Infinity) or
 1827         not                -0.0  >= floatExpr(  -1.0E37) or
 1828         not                -0.0  >= floatExpr(  -1000.0) or
 1829         not                -0.0  >= floatExpr(     -0.0) or
 1830         not                -0.0  >= floatExpr(      0.0) or
 1831                            -0.0  >= floatExpr(   1000.0) or
 1832                            -0.0  >= floatExpr(   1.0E37) or
 1833                            -0.0  >= floatExpr( Infinity) or
 1834         not                 0.0  >= floatExpr(-Infinity) or
 1835         not                 0.0  >= floatExpr(  -1.0E37) or
 1836         not                 0.0  >= floatExpr(  -1000.0) or
 1837         not                 0.0  >= floatExpr(     -0.0) or
 1838         not                 0.0  >= floatExpr(      0.0) or
 1839                             0.0  >= floatExpr(   1000.0) or
 1840                             0.0  >= floatExpr(   1.0E37) or
 1841                             0.0  >= floatExpr( Infinity) or
 1842         not              1000.0  >= floatExpr(-Infinity) or
 1843         not              1000.0  >= floatExpr(  -1.0E37) or
 1844         not              1000.0  >= floatExpr(  -1000.0) or
 1845         not              1000.0  >= floatExpr(     -0.0) or
 1846         not              1000.0  >= floatExpr(      0.0) or
 1847         not              1000.0  >= floatExpr(   1000.0) or
 1848                          1000.0  >= floatExpr(   1.0E37) or
 1849                          1000.0  >= floatExpr( Infinity) or
 1850         not              1.0E37  >= floatExpr(-Infinity) or
 1851         not              1.0E37  >= floatExpr(  -1.0E37) or
 1852         not              1.0E37  >= floatExpr(  -1000.0) or
 1853         not              1.0E37  >= floatExpr(     -0.0) or
 1854         not              1.0E37  >= floatExpr(      0.0) or
 1855         not              1.0E37  >= floatExpr(   1000.0) or
 1856         not              1.0E37  >= floatExpr(   1.0E37) or
 1857                          1.0E37  >= floatExpr( Infinity) or
 1858         not            Infinity  >= floatExpr(-Infinity) or
 1859         not            Infinity  >= floatExpr(  -1.0E37) or
 1860         not            Infinity  >= floatExpr(  -1000.0) or
 1861         not            Infinity  >= floatExpr(     -0.0) or
 1862         not            Infinity  >= floatExpr(      0.0) or
 1863         not            Infinity  >= floatExpr(   1000.0) or
 1864         not            Infinity  >= floatExpr(   1.0E37) or
 1865         not            Infinity  >= floatExpr( Infinity) or
 1866         not floatExpr(-Infinity) >= floatExpr(-Infinity) or
 1867             floatExpr(-Infinity) >= floatExpr(  -1.0E37) or
 1868             floatExpr(-Infinity) >= floatExpr(  -1000.0) or
 1869             floatExpr(-Infinity) >= floatExpr(     -0.0) or
 1870             floatExpr(-Infinity) >= floatExpr(      0.0) or
 1871             floatExpr(-Infinity) >= floatExpr(   1000.0) or
 1872             floatExpr(-Infinity) >= floatExpr(   1.0E37) or
 1873             floatExpr(-Infinity) >= floatExpr( Infinity) or
 1874         not floatExpr(  -1.0E37) >= floatExpr(-Infinity) or
 1875         not floatExpr(  -1.0E37) >= floatExpr(  -1.0E37) or
 1876             floatExpr(  -1.0E37) >= floatExpr(  -1000.0) or
 1877             floatExpr(  -1.0E37) >= floatExpr(     -0.0) or
 1878             floatExpr(  -1.0E37) >= floatExpr(      0.0) or
 1879             floatExpr(  -1.0E37) >= floatExpr(   1000.0) or
 1880             floatExpr(  -1.0E37) >= floatExpr(   1.0E37) or
 1881             floatExpr(  -1.0E37) >= floatExpr( Infinity) or
 1882         not floatExpr(  -1000.0) >= floatExpr(-Infinity) or
 1883         not floatExpr(  -1000.0) >= floatExpr(  -1.0E37) or
 1884         not floatExpr(  -1000.0) >= floatExpr(  -1000.0) or
 1885             floatExpr(  -1000.0) >= floatExpr(     -0.0) or
 1886             floatExpr(  -1000.0) >= floatExpr(      0.0) or
 1887             floatExpr(  -1000.0) >= floatExpr(   1000.0) or
 1888             floatExpr(  -1000.0) >= floatExpr(   1.0E37) or
 1889             floatExpr(  -1000.0) >= floatExpr( Infinity) or
 1890         not floatExpr(     -0.0) >= floatExpr(-Infinity) or
 1891         not floatExpr(     -0.0) >= floatExpr(  -1.0E37) or
 1892         not floatExpr(     -0.0) >= floatExpr(  -1000.0) or
 1893         not floatExpr(     -0.0) >= floatExpr(     -0.0) or
 1894         not floatExpr(     -0.0) >= floatExpr(      0.0) or
 1895             floatExpr(     -0.0) >= floatExpr(   1000.0) or
 1896             floatExpr(     -0.0) >= floatExpr(   1.0E37) or
 1897             floatExpr(     -0.0) >= floatExpr( Infinity) or
 1898         not floatExpr(      0.0) >= floatExpr(-Infinity) or
 1899         not floatExpr(      0.0) >= floatExpr(  -1.0E37) or
 1900         not floatExpr(      0.0) >= floatExpr(  -1000.0) or
 1901         not floatExpr(      0.0) >= floatExpr(     -0.0) or
 1902         not floatExpr(      0.0) >= floatExpr(      0.0) or
 1903             floatExpr(      0.0) >= floatExpr(   1000.0) or
 1904             floatExpr(      0.0) >= floatExpr(   1.0E37) or
 1905             floatExpr(      0.0) >= floatExpr( Infinity) or
 1906         not floatExpr(   1000.0) >= floatExpr(-Infinity) or
 1907         not floatExpr(   1000.0) >= floatExpr(  -1.0E37) or
 1908         not floatExpr(   1000.0) >= floatExpr(  -1000.0) or
 1909         not floatExpr(   1000.0) >= floatExpr(     -0.0) or
 1910         not floatExpr(   1000.0) >= floatExpr(      0.0) or
 1911         not floatExpr(   1000.0) >= floatExpr(   1000.0) or
 1912             floatExpr(   1000.0) >= floatExpr(   1.0E37) or
 1913             floatExpr(   1000.0) >= floatExpr( Infinity) or
 1914         not floatExpr(   1.0E37) >= floatExpr(-Infinity) or
 1915         not floatExpr(   1.0E37) >= floatExpr(  -1.0E37) or
 1916         not floatExpr(   1.0E37) >= floatExpr(  -1000.0) or
 1917         not floatExpr(   1.0E37) >= floatExpr(     -0.0) or
 1918         not floatExpr(   1.0E37) >= floatExpr(      0.0) or
 1919         not floatExpr(   1.0E37) >= floatExpr(   1000.0) or
 1920         not floatExpr(   1.0E37) >= floatExpr(   1.0E37) or
 1921             floatExpr(   1.0E37) >= floatExpr( Infinity) or
 1922         not floatExpr( Infinity) >= floatExpr(-Infinity) or
 1923         not floatExpr( Infinity) >= floatExpr(  -1.0E37) or
 1924         not floatExpr( Infinity) >= floatExpr(  -1000.0) or
 1925         not floatExpr( Infinity) >= floatExpr(     -0.0) or
 1926         not floatExpr( Infinity) >= floatExpr(      0.0) or
 1927         not floatExpr( Infinity) >= floatExpr(   1000.0) or
 1928         not floatExpr( Infinity) >= floatExpr(   1.0E37) or
 1929         not floatExpr( Infinity) >= floatExpr( Infinity) then
 1930       writeln(" ***** Greater equal for float values does not work correct.");
 1931       okay := FALSE;
 1932     end if;
 1933 
 1934     if okay then
 1935       writeln("Comparison of float values works correct.");
 1936     else
 1937       writeln(" ***** Comparison of float values does not work correct.");
 1938     end if;
 1939   end func;
 1940 
 1941 
 1942 const proc: check_compare is func
 1943   local
 1944     var boolean: okay is TRUE;
 1945   begin
 1946     if  compare(-Infinity, -Infinity) <>  0 or
 1947         compare(-Infinity,   -1.0E37) <> -1 or
 1948         compare(-Infinity,   -1000.0) <> -1 or
 1949         compare(-Infinity,      -0.0) <> -1 or
 1950         compare(-Infinity,       0.0) <> -1 or
 1951         compare(-Infinity,    1000.0) <> -1 or
 1952         compare(-Infinity,    1.0E37) <> -1 or
 1953         compare(-Infinity,  Infinity) <> -1 or
 1954         compare(-Infinity,       NaN) <> -1 or
 1955         compare(  -1.0E37, -Infinity) <>  1 or
 1956         compare(  -1.0E37,   -1.0E37) <>  0 or
 1957         compare(  -1.0E37,   -1000.0) <> -1 or
 1958         compare(  -1.0E37,      -0.0) <> -1 or
 1959         compare(  -1.0E37,       0.0) <> -1 or
 1960         compare(  -1.0E37,    1000.0) <> -1 or
 1961         compare(  -1.0E37,    1.0E37) <> -1 or
 1962         compare(  -1.0E37,  Infinity) <> -1 or
 1963         compare(  -1.0E37,       NaN) <> -1 or
 1964         compare(  -1000.0, -Infinity) <>  1 or
 1965         compare(  -1000.0,   -1.0E37) <>  1 or
 1966         compare(  -1000.0,   -1000.0) <>  0 or
 1967         compare(  -1000.0,      -0.0) <> -1 or
 1968         compare(  -1000.0,       0.0) <> -1 or
 1969         compare(  -1000.0,    1000.0) <> -1 or
 1970         compare(  -1000.0,    1.0E37) <> -1 or
 1971         compare(  -1000.0,  Infinity) <> -1 or
 1972         compare(  -1000.0,       NaN) <> -1 or
 1973         compare(     -0.0, -Infinity) <>  1 or
 1974         compare(     -0.0,   -1.0E37) <>  1 or
 1975         compare(     -0.0,   -1000.0) <>  1 or
 1976         compare(     -0.0,      -0.0) <>  0 or
 1977         compare(     -0.0,       0.0) <>  0 or
 1978         compare(     -0.0,    1000.0) <> -1 or
 1979         compare(     -0.0,    1.0E37) <> -1 or
 1980         compare(     -0.0,  Infinity) <> -1 or
 1981         compare(     -0.0,       NaN) <> -1 or
 1982         compare(      0.0, -Infinity) <>  1 or
 1983         compare(      0.0,   -1.0E37) <>  1 or
 1984         compare(      0.0,   -1000.0) <>  1 or
 1985         compare(      0.0,      -0.0) <>  0 or
 1986         compare(      0.0,       0.0) <>  0 or
 1987         compare(      0.0,    1000.0) <> -1 or
 1988         compare(      0.0,    1.0E37) <> -1 or
 1989         compare(      0.0,  Infinity) <> -1 or
 1990         compare(      0.0,       NaN) <> -1 or
 1991         compare(   1000.0, -Infinity) <>  1 or
 1992         compare(   1000.0,   -1.0E37) <>  1 or
 1993         compare(   1000.0,   -1000.0) <>  1 or
 1994         compare(   1000.0,      -0.0) <>  1 or
 1995         compare(   1000.0,       0.0) <>  1 or
 1996         compare(   1000.0,    1000.0) <>  0 or
 1997         compare(   1000.0,    1.0E37) <> -1 or
 1998         compare(   1000.0,  Infinity) <> -1 or
 1999         compare(   1000.0,       NaN) <> -1 or
 2000         compare(   1.0E37, -Infinity) <>  1 or
 2001         compare(   1.0E37,   -1.0E37) <>  1 or
 2002         compare(   1.0E37,   -1000.0) <>  1 or
 2003         compare(   1.0E37,      -0.0) <>  1 or
 2004         compare(   1.0E37,       0.0) <>  1 or
 2005         compare(   1.0E37,    1000.0) <>  1 or
 2006         compare(   1.0E37,    1.0E37) <>  0 or
 2007         compare(   1.0E37,  Infinity) <> -1 or
 2008         compare(   1.0E37,       NaN) <> -1 or
 2009         compare( Infinity, -Infinity) <>  1 or
 2010         compare( Infinity,   -1.0E37) <>  1 or
 2011         compare( Infinity,   -1000.0) <>  1 or
 2012         compare( Infinity,      -0.0) <>  1 or
 2013         compare( Infinity,       0.0) <>  1 or
 2014         compare( Infinity,    1000.0) <>  1 or
 2015         compare( Infinity,    1.0E37) <>  1 or
 2016         compare( Infinity,  Infinity) <>  0 or
 2017         compare( Infinity,       NaN) <> -1 or
 2018         compare(      NaN, -Infinity) <>  1 or
 2019         compare(      NaN,   -1.0E37) <>  1 or
 2020         compare(      NaN,   -1000.0) <>  1 or
 2021         compare(      NaN,      -0.0) <>  1 or
 2022         compare(      NaN,       0.0) <>  1 or
 2023         compare(      NaN,    1000.0) <>  1 or
 2024         compare(      NaN,    1.0E37) <>  1 or
 2025         compare(      NaN,  Infinity) <>  1 or
 2026         compare(      NaN,       NaN) <>  0 then
 2027       writeln(" ***** Compare of float values does not work correct. (1)");
 2028       okay := FALSE;
 2029     end if;
 2030 
 2031     if  compare(floatExpr(-Infinity), -Infinity) <>  0 or
 2032         compare(floatExpr(-Infinity),   -1.0E37) <> -1 or
 2033         compare(floatExpr(-Infinity),   -1000.0) <> -1 or
 2034         compare(floatExpr(-Infinity),      -0.0) <> -1 or
 2035         compare(floatExpr(-Infinity),       0.0) <> -1 or
 2036         compare(floatExpr(-Infinity),    1000.0) <> -1 or
 2037         compare(floatExpr(-Infinity),    1.0E37) <> -1 or
 2038         compare(floatExpr(-Infinity),  Infinity) <> -1 or
 2039         compare(floatExpr(-Infinity),       NaN) <> -1 or
 2040         compare(floatExpr(  -1.0E37), -Infinity) <>  1 or
 2041         compare(floatExpr(  -1.0E37),   -1.0E37) <>  0 or
 2042         compare(floatExpr(  -1.0E37),   -1000.0) <> -1 or
 2043         compare(floatExpr(  -1.0E37),      -0.0) <> -1 or
 2044         compare(floatExpr(  -1.0E37),       0.0) <> -1 or
 2045         compare(floatExpr(  -1.0E37),    1000.0) <> -1 or
 2046         compare(floatExpr(  -1.0E37),    1.0E37) <> -1 or
 2047         compare(floatExpr(  -1.0E37),  Infinity) <> -1 or
 2048         compare(floatExpr(  -1.0E37),       NaN) <> -1 or
 2049         compare(floatExpr(  -1000.0), -Infinity) <>  1 or
 2050         compare(floatExpr(  -1000.0),   -1.0E37) <>  1 or
 2051         compare(floatExpr(  -1000.0),   -1000.0) <>  0 or
 2052         compare(floatExpr(  -1000.0),      -0.0) <> -1 or
 2053         compare(floatExpr(  -1000.0),       0.0) <> -1 or
 2054         compare(floatExpr(  -1000.0),    1000.0) <> -1 or
 2055         compare(floatExpr(  -1000.0),    1.0E37) <> -1 or
 2056         compare(floatExpr(  -1000.0),  Infinity) <> -1 or
 2057         compare(floatExpr(  -1000.0),       NaN) <> -1 or
 2058         compare(floatExpr(     -0.0), -Infinity) <>  1 or
 2059         compare(floatExpr(     -0.0),   -1.0E37) <>  1 or
 2060         compare(floatExpr(     -0.0),   -1000.0) <>  1 or
 2061         compare(floatExpr(     -0.0),      -0.0) <>  0 or
 2062         compare(floatExpr(     -0.0),       0.0) <>  0 or
 2063         compare(floatExpr(     -0.0),    1000.0) <> -1 or
 2064         compare(floatExpr(     -0.0),    1.0E37) <> -1 or
 2065         compare(floatExpr(     -0.0),  Infinity) <> -1 or
 2066         compare(floatExpr(     -0.0),       NaN) <> -1 or
 2067         compare(floatExpr(      0.0), -Infinity) <>  1 or
 2068         compare(floatExpr(      0.0),   -1.0E37) <>  1 or
 2069         compare(floatExpr(      0.0),   -1000.0) <>  1 or
 2070         compare(floatExpr(      0.0),      -0.0) <>  0 or
 2071         compare(floatExpr(      0.0),       0.0) <>  0 or
 2072         compare(floatExpr(      0.0),    1000.0) <> -1 or
 2073         compare(floatExpr(      0.0),    1.0E37) <> -1 or
 2074         compare(floatExpr(      0.0),  Infinity) <> -1 or
 2075         compare(floatExpr(      0.0),       NaN) <> -1 or
 2076         compare(floatExpr(   1000.0), -Infinity) <>  1 or
 2077         compare(floatExpr(   1000.0),   -1.0E37) <>  1 or
 2078         compare(floatExpr(   1000.0),   -1000.0) <>  1 or
 2079         compare(floatExpr(   1000.0),      -0.0) <>  1 or
 2080         compare(floatExpr(   1000.0),       0.0) <>  1 or
 2081         compare(floatExpr(   1000.0),    1000.0) <>  0 or
 2082         compare(floatExpr(   1000.0),    1.0E37) <> -1 or
 2083         compare(floatExpr(   1000.0),  Infinity) <> -1 or
 2084         compare(floatExpr(   1000.0),       NaN) <> -1 or
 2085         compare(floatExpr(   1.0E37), -Infinity) <>  1 or
 2086         compare(floatExpr(   1.0E37),   -1.0E37) <>  1 or
 2087         compare(floatExpr(   1.0E37),   -1000.0) <>  1 or
 2088         compare(floatExpr(   1.0E37),      -0.0) <>  1 or
 2089         compare(floatExpr(   1.0E37),       0.0) <>  1 or
 2090         compare(floatExpr(   1.0E37),    1000.0) <>  1 or
 2091         compare(floatExpr(   1.0E37),    1.0E37) <>  0 or
 2092         compare(floatExpr(   1.0E37),  Infinity) <> -1 or
 2093         compare(floatExpr(   1.0E37),       NaN) <> -1 or
 2094         compare(floatExpr( Infinity), -Infinity) <>  1 or
 2095         compare(floatExpr( Infinity),   -1.0E37) <>  1 or
 2096         compare(floatExpr( Infinity),   -1000.0) <>  1 or
 2097         compare(floatExpr( Infinity),      -0.0) <>  1 or
 2098         compare(floatExpr( Infinity),       0.0) <>  1 or
 2099         compare(floatExpr( Infinity),    1000.0) <>  1 or
 2100         compare(floatExpr( Infinity),    1.0E37) <>  1 or
 2101         compare(floatExpr( Infinity),  Infinity) <>  0 or
 2102         compare(floatExpr( Infinity),       NaN) <> -1 or
 2103         compare(floatExpr(      NaN), -Infinity) <>  1 or
 2104         compare(floatExpr(      NaN),   -1.0E37) <>  1 or
 2105         compare(floatExpr(      NaN),   -1000.0) <>  1 or
 2106         compare(floatExpr(      NaN),      -0.0) <>  1 or
 2107         compare(floatExpr(      NaN),       0.0) <>  1 or
 2108         compare(floatExpr(      NaN),    1000.0) <>  1 or
 2109         compare(floatExpr(      NaN),    1.0E37) <>  1 or
 2110         compare(floatExpr(      NaN),  Infinity) <>  1 or
 2111         compare(floatExpr(      NaN),       NaN) <>  0 then
 2112       writeln(" ***** Compare of float values does not work correct. (2)");
 2113       okay := FALSE;
 2114     end if;
 2115 
 2116     if  compare(-Infinity, floatExpr(-Infinity)) <>  0 or
 2117         compare(-Infinity, floatExpr(  -1.0E37)) <> -1 or
 2118         compare(-Infinity, floatExpr(  -1000.0)) <> -1 or
 2119         compare(-Infinity, floatExpr(     -0.0)) <> -1 or
 2120         compare(-Infinity, floatExpr(      0.0)) <> -1 or
 2121         compare(-Infinity, floatExpr(   1000.0)) <> -1 or
 2122         compare(-Infinity, floatExpr(   1.0E37)) <> -1 or
 2123         compare(-Infinity, floatExpr( Infinity)) <> -1 or
 2124         compare(-Infinity, floatExpr(      NaN)) <> -1 or
 2125         compare(  -1.0E37, floatExpr(-Infinity)) <>  1 or
 2126         compare(  -1.0E37, floatExpr(  -1.0E37)) <>  0 or
 2127         compare(  -1.0E37, floatExpr(  -1000.0)) <> -1 or
 2128         compare(  -1.0E37, floatExpr(     -0.0)) <> -1 or
 2129         compare(  -1.0E37, floatExpr(      0.0)) <> -1 or
 2130         compare(  -1.0E37, floatExpr(   1000.0)) <> -1 or
 2131         compare(  -1.0E37, floatExpr(   1.0E37)) <> -1 or
 2132         compare(  -1.0E37, floatExpr( Infinity)) <> -1 or
 2133         compare(  -1.0E37, floatExpr(      NaN)) <> -1 or
 2134         compare(  -1000.0, floatExpr(-Infinity)) <>  1 or
 2135         compare(  -1000.0, floatExpr(  -1.0E37)) <>  1 or
 2136         compare(  -1000.0, floatExpr(  -1000.0)) <>  0 or
 2137         compare(  -1000.0, floatExpr(     -0.0)) <> -1 or
 2138         compare(  -1000.0, floatExpr(      0.0)) <> -1 or
 2139         compare(  -1000.0, floatExpr(   1000.0)) <> -1 or
 2140         compare(  -1000.0, floatExpr(   1.0E37)) <> -1 or
 2141         compare(  -1000.0, floatExpr( Infinity)) <> -1 or
 2142         compare(  -1000.0, floatExpr(      NaN)) <> -1 or
 2143         compare(     -0.0, floatExpr(-Infinity)) <>  1 or
 2144         compare(     -0.0, floatExpr(  -1.0E37)) <>  1 or
 2145         compare(     -0.0, floatExpr(  -1000.0)) <>  1 or
 2146         compare(     -0.0, floatExpr(     -0.0)) <>  0 or
 2147         compare(     -0.0, floatExpr(      0.0)) <>  0 or
 2148         compare(     -0.0, floatExpr(   1000.0)) <> -1 or
 2149         compare(     -0.0, floatExpr(   1.0E37)) <> -1 or
 2150         compare(     -0.0, floatExpr( Infinity)) <> -1 or
 2151         compare(     -0.0, floatExpr(      NaN)) <> -1 or
 2152         compare(      0.0, floatExpr(-Infinity)) <>  1 or
 2153         compare(      0.0, floatExpr(  -1.0E37)) <>  1 or
 2154         compare(      0.0, floatExpr(  -1000.0)) <>  1 or
 2155         compare(      0.0, floatExpr(     -0.0)) <>  0 or
 2156         compare(      0.0, floatExpr(      0.0)) <>  0 or
 2157         compare(      0.0, floatExpr(   1000.0)) <> -1 or
 2158         compare(      0.0, floatExpr(   1.0E37)) <> -1 or
 2159         compare(      0.0, floatExpr( Infinity)) <> -1 or
 2160         compare(      0.0, floatExpr(      NaN)) <> -1 or
 2161         compare(   1000.0, floatExpr(-Infinity)) <>  1 or
 2162         compare(   1000.0, floatExpr(  -1.0E37)) <>  1 or
 2163         compare(   1000.0, floatExpr(  -1000.0)) <>  1 or
 2164         compare(   1000.0, floatExpr(     -0.0)) <>  1 or
 2165         compare(   1000.0, floatExpr(      0.0)) <>  1 or
 2166         compare(   1000.0, floatExpr(   1000.0)) <>  0 or
 2167         compare(   1000.0, floatExpr(   1.0E37)) <> -1 or
 2168         compare(   1000.0, floatExpr( Infinity)) <> -1 or
 2169         compare(   1000.0, floatExpr(      NaN)) <> -1 or
 2170         compare(   1.0E37, floatExpr(-Infinity)) <>  1 or
 2171         compare(   1.0E37, floatExpr(  -1.0E37)) <>  1 or
 2172         compare(   1.0E37, floatExpr(  -1000.0)) <>  1 or
 2173         compare(   1.0E37, floatExpr(     -0.0)) <>  1 or
 2174         compare(   1.0E37, floatExpr(      0.0)) <>  1 or
 2175         compare(   1.0E37, floatExpr(   1000.0)) <>  1 or
 2176         compare(   1.0E37, floatExpr(   1.0E37)) <>  0 or
 2177         compare(   1.0E37, floatExpr( Infinity)) <> -1 or
 2178         compare(   1.0E37, floatExpr(      NaN)) <> -1 or
 2179         compare( Infinity, floatExpr(-Infinity)) <>  1 or
 2180         compare( Infinity, floatExpr(  -1.0E37)) <>  1 or
 2181         compare( Infinity, floatExpr(  -1000.0)) <>  1 or
 2182         compare( Infinity, floatExpr(     -0.0)) <>  1 or
 2183         compare( Infinity, floatExpr(      0.0)) <>  1 or
 2184         compare( Infinity, floatExpr(   1000.0)) <>  1 or
 2185         compare( Infinity, floatExpr(   1.0E37)) <>  1 or
 2186         compare( Infinity, floatExpr( Infinity)) <>  0 or
 2187         compare( Infinity, floatExpr(      NaN)) <> -1 or
 2188         compare(      NaN, floatExpr(-Infinity)) <>  1 or
 2189         compare(      NaN, floatExpr(  -1.0E37)) <>  1 or
 2190         compare(      NaN, floatExpr(  -1000.0)) <>  1 or
 2191         compare(      NaN, floatExpr(     -0.0)) <>  1 or
 2192         compare(      NaN, floatExpr(      0.0)) <>  1 or
 2193         compare(      NaN, floatExpr(   1000.0)) <>  1 or
 2194         compare(      NaN, floatExpr(   1.0E37)) <>  1 or
 2195         compare(      NaN, floatExpr( Infinity)) <>  1 or
 2196         compare(      NaN, floatExpr(      NaN)) <>  0 then
 2197       writeln(" ***** Compare of float values does not work correct. (3)");
 2198       okay := FALSE;
 2199     end if;
 2200 
 2201     if  compare(floatExpr(-Infinity), floatExpr(-Infinity)) <>  0 or
 2202         compare(floatExpr(-Infinity), floatExpr(  -1.0E37)) <> -1 or
 2203         compare(floatExpr(-Infinity), floatExpr(  -1000.0)) <> -1 or
 2204         compare(floatExpr(-Infinity), floatExpr(     -0.0)) <> -1 or
 2205         compare(floatExpr(-Infinity), floatExpr(      0.0)) <> -1 or
 2206         compare(floatExpr(-Infinity), floatExpr(   1000.0)) <> -1 or
 2207         compare(floatExpr(-Infinity), floatExpr(   1.0E37)) <> -1 or
 2208         compare(floatExpr(-Infinity), floatExpr( Infinity)) <> -1 or
 2209         compare(floatExpr(-Infinity), floatExpr(      NaN)) <> -1 or
 2210         compare(floatExpr(  -1.0E37), floatExpr(-Infinity)) <>  1 or
 2211         compare(floatExpr(  -1.0E37), floatExpr(  -1.0E37)) <>  0 or
 2212         compare(floatExpr(  -1.0E37), floatExpr(  -1000.0)) <> -1 or
 2213         compare(floatExpr(  -1.0E37), floatExpr(     -0.0)) <> -1 or
 2214         compare(floatExpr(  -1.0E37), floatExpr(      0.0)) <> -1 or
 2215         compare(floatExpr(  -1.0E37), floatExpr(   1000.0)) <> -1 or
 2216         compare(floatExpr(  -1.0E37), floatExpr(   1.0E37)) <> -1 or
 2217         compare(floatExpr(  -1.0E37), floatExpr( Infinity)) <> -1 or
 2218         compare(floatExpr(  -1.0E37), floatExpr(      NaN)) <> -1 or
 2219         compare(floatExpr(  -1000.0), floatExpr(-Infinity)) <>  1 or
 2220         compare(floatExpr(  -1000.0), floatExpr(  -1.0E37)) <>  1 or
 2221         compare(floatExpr(  -1000.0), floatExpr(  -1000.0)) <>  0 or
 2222         compare(floatExpr(  -1000.0), floatExpr(     -0.0)) <> -1 or
 2223         compare(floatExpr(  -1000.0), floatExpr(      0.0)) <> -1 or
 2224         compare(floatExpr(  -1000.0), floatExpr(   1000.0)) <> -1 or
 2225         compare(floatExpr(  -1000.0), floatExpr(   1.0E37)) <> -1 or
 2226         compare(floatExpr(  -1000.0), floatExpr( Infinity)) <> -1 or
 2227         compare(floatExpr(  -1000.0), floatExpr(      NaN)) <> -1 or
 2228         compare(floatExpr(     -0.0), floatExpr(-Infinity)) <>  1 or
 2229         compare(floatExpr(     -0.0), floatExpr(  -1.0E37)) <>  1 or
 2230         compare(floatExpr(     -0.0), floatExpr(  -1000.0)) <>  1 or
 2231         compare(floatExpr(     -0.0), floatExpr(     -0.0)) <>  0 or
 2232         compare(floatExpr(     -0.0), floatExpr(      0.0)) <>  0 or
 2233         compare(floatExpr(     -0.0), floatExpr(   1000.0)) <> -1 or
 2234         compare(floatExpr(     -0.0), floatExpr(   1.0E37)) <> -1 or
 2235         compare(floatExpr(     -0.0), floatExpr( Infinity)) <> -1 or
 2236         compare(floatExpr(     -0.0), floatExpr(      NaN)) <> -1 or
 2237         compare(floatExpr(      0.0), floatExpr(-Infinity)) <>  1 or
 2238         compare(floatExpr(      0.0), floatExpr(  -1.0E37)) <>  1 or
 2239         compare(floatExpr(      0.0), floatExpr(  -1000.0)) <>  1 or
 2240         compare(floatExpr(      0.0), floatExpr(     -0.0)) <>  0 or
 2241         compare(floatExpr(      0.0), floatExpr(      0.0)) <>  0 or
 2242         compare(floatExpr(      0.0), floatExpr(   1000.0)) <> -1 or
 2243         compare(floatExpr(      0.0), floatExpr(   1.0E37)) <> -1 or
 2244         compare(floatExpr(      0.0), floatExpr( Infinity)) <> -1 or
 2245         compare(floatExpr(      0.0), floatExpr(      NaN)) <> -1 or
 2246         compare(floatExpr(   1000.0), floatExpr(-Infinity)) <>  1 or
 2247         compare(floatExpr(   1000.0), floatExpr(  -1.0E37)) <>  1 or
 2248         compare(floatExpr(   1000.0), floatExpr(  -1000.0)) <>  1 or
 2249         compare(floatExpr(   1000.0), floatExpr(     -0.0)) <>  1 or
 2250         compare(floatExpr(   1000.0), floatExpr(      0.0)) <>  1 or
 2251         compare(floatExpr(   1000.0), floatExpr(   1000.0)) <>  0 or
 2252         compare(floatExpr(   1000.0), floatExpr(   1.0E37)) <> -1 or
 2253         compare(floatExpr(   1000.0), floatExpr( Infinity)) <> -1 or
 2254         compare(floatExpr(   1000.0), floatExpr(      NaN)) <> -1 or
 2255         compare(floatExpr(   1.0E37), floatExpr(-Infinity)) <>  1 or
 2256         compare(floatExpr(   1.0E37), floatExpr(  -1.0E37)) <>  1 or
 2257         compare(floatExpr(   1.0E37), floatExpr(  -1000.0)) <>  1 or
 2258         compare(floatExpr(   1.0E37), floatExpr(     -0.0)) <>  1 or
 2259         compare(floatExpr(   1.0E37), floatExpr(      0.0)) <>  1 or
 2260         compare(floatExpr(   1.0E37), floatExpr(   1000.0)) <>  1 or
 2261         compare(floatExpr(   1.0E37), floatExpr(   1.0E37)) <>  0 or
 2262         compare(floatExpr(   1.0E37), floatExpr( Infinity)) <> -1 or
 2263         compare(floatExpr(   1.0E37), floatExpr(      NaN)) <> -1 or
 2264         compare(floatExpr( Infinity), floatExpr(-Infinity)) <>  1 or
 2265         compare(floatExpr( Infinity), floatExpr(  -1.0E37)) <>  1 or
 2266         compare(floatExpr( Infinity), floatExpr(  -1000.0)) <>  1 or
 2267         compare(floatExpr( Infinity), floatExpr(     -0.0)) <>  1 or
 2268         compare(floatExpr( Infinity), floatExpr(      0.0)) <>  1 or
 2269         compare(floatExpr( Infinity), floatExpr(   1000.0)) <>  1 or
 2270         compare(floatExpr( Infinity), floatExpr(   1.0E37)) <>  1 or
 2271         compare(floatExpr( Infinity), floatExpr( Infinity)) <>  0 or
 2272         compare(floatExpr( Infinity), floatExpr(      NaN)) <> -1 or
 2273         compare(floatExpr(      NaN), floatExpr(-Infinity)) <>  1 or
 2274         compare(floatExpr(      NaN), floatExpr(  -1.0E37)) <>  1 or
 2275         compare(floatExpr(      NaN), floatExpr(  -1000.0)) <>  1 or
 2276         compare(floatExpr(      NaN), floatExpr(     -0.0)) <>  1 or
 2277         compare(floatExpr(      NaN), floatExpr(      0.0)) <>  1 or
 2278         compare(floatExpr(      NaN), floatExpr(   1000.0)) <>  1 or
 2279         compare(floatExpr(      NaN), floatExpr(   1.0E37)) <>  1 or
 2280         compare(floatExpr(      NaN), floatExpr( Infinity)) <>  1 or
 2281         compare(floatExpr(      NaN), floatExpr(      NaN)) <>  0 then
 2282       writeln(" ***** Compare of float values does not work correct. (4)");
 2283       okay := FALSE;
 2284     end if;
 2285 
 2286     if okay then
 2287       writeln("Compare of float values works correct.");
 2288     else
 2289       writeln(" ***** Compare of float values does not work correct.");
 2290     end if;
 2291   end func;
 2292 
 2293 
 2294 const proc: check_parse is func
 2295   local
 2296     var boolean: okay is TRUE;
 2297   begin
 2298     if  float parse                    "0.0"  <>       0.0 or
 2299         float parse                   "-0.0"  <>       0.0 or
 2300         float parse                    "1.0"  <>       1.0 or
 2301         float parse                   "-1.0"  <>      -1.0 or
 2302         float parse               "Infinity"  <>  Infinity or
 2303         float parse              "-Infinity"  <> -Infinity or
 2304         not isNaN(float parse          "NaN")              or
 2305         float parse striExpr(          "0.0") <>       0.0 or
 2306         float parse striExpr(         "-0.0") <>       0.0 or
 2307         float parse striExpr(          "1.0") <>       1.0 or
 2308         float parse striExpr(         "-1.0") <>      -1.0 or
 2309         float parse striExpr(     "Infinity") <>  Infinity or
 2310         float parse striExpr(    "-Infinity") <> -Infinity or
 2311         not isNaN(float parse striExpr("NaN"))             or
 2312         float parse           "123.456000000000000000000000000000000"  <>  123.456   or
 2313         float parse          "+123.456000000000000000000000000000000"  <>  123.456   or
 2314         float parse          "-123.456000000000000000000000000000000"  <> -123.456   or
 2315         float parse           "0.00000000000000000000000000000000001"  <>    1.0e-35 or
 2316         float parse          "+0.00000000000000000000000000000000001"  <>    1.0e-35 or
 2317         float parse          "-0.00000000000000000000000000000000001"  <>   -1.0e-35 or
 2318         float parse           "00000000000000000000000000000000000.5"  <>    0.5     or
 2319         float parse          "+00000000000000000000000000000000000.5"  <>    0.5     or
 2320         float parse          "-00000000000000000000000000000000000.5"  <>   -0.5     or
 2321         float parse striExpr( "123.456000000000000000000000000000000") <>  123.456   or
 2322         float parse striExpr("+123.456000000000000000000000000000000") <>  123.456   or
 2323         float parse striExpr("-123.456000000000000000000000000000000") <> -123.456   or
 2324         float parse striExpr( "0.00000000000000000000000000000000001") <>    1.0e-35 or
 2325         float parse striExpr("+0.00000000000000000000000000000000001") <>    1.0e-35 or
 2326         float parse striExpr("-0.00000000000000000000000000000000001") <>   -1.0e-35 or
 2327         float parse striExpr( "00000000000000000000000000000000000.5") <>    0.5     or
 2328         float parse striExpr("+00000000000000000000000000000000000.5") <>    0.5     or
 2329         float parse striExpr("-00000000000000000000000000000000000.5") <>   -0.5     or
 2330         float parse                               "1.0" <>                               1.0 or
 2331         float parse                               "2.0" <>                               2.0 or
 2332         float parse                               "4.0" <>                               4.0 or
 2333         float parse                               "8.0" <>                               8.0 or
 2334         float parse                              "16.0" <>                              16.0 or
 2335         float parse                              "32.0" <>                              32.0 or
 2336         float parse                              "64.0" <>                              64.0 or
 2337         float parse                             "128.0" <>                             128.0 or
 2338         float parse                             "256.0" <>                             256.0 or
 2339         float parse                             "512.0" <>                             512.0 or
 2340         float parse                            "1024.0" <>                            1024.0 or
 2341         float parse                            "2048.0" <>                            2048.0 or
 2342         float parse                            "4096.0" <>                            4096.0 or
 2343         float parse                            "8192.0" <>                            8192.0 or
 2344         float parse                           "16384.0" <>                           16384.0 or
 2345         float parse                           "32768.0" <>                           32768.0 or
 2346         float parse                           "65536.0" <>                           65536.0 or
 2347         float parse                          "131072.0" <>                          131072.0 or
 2348         float parse                          "262144.0" <>                          262144.0 or
 2349         float parse                          "524288.0" <>                          524288.0 or
 2350         float parse                         "1048576.0" <>                         1048576.0 or
 2351         float parse                         "2097152.0" <>                         2097152.0 or
 2352         float parse                         "4194304.0" <>                         4194304.0 or
 2353         float parse                         "8388608.0" <>                         8388608.0 or
 2354         float parse                        "16777216.0" <>                        16777216.0 or
 2355         float parse                        "33554432.0" <>                        33554432.0 or
 2356         float parse                        "67108864.0" <>                        67108864.0 or
 2357         float parse                       "134217728.0" <>                       134217728.0 or
 2358         float parse                       "268435456.0" <>                       268435456.0 or
 2359         float parse                       "536870912.0" <>                       536870912.0 or
 2360         float parse                      "1073741824.0" <>                      1073741824.0 or
 2361         float parse                      "2147483648.0" <>                      2147483648.0 or
 2362         float parse                      "4294967296.0" <>                      4294967296.0 or
 2363         float parse                      "8589934592.0" <>                      8589934592.0 or
 2364         float parse                     "17179869184.0" <>                     17179869184.0 or
 2365         float parse                     "34359738368.0" <>                     34359738368.0 or
 2366         float parse                     "68719476736.0" <>                     68719476736.0 or
 2367         float parse                    "137438953472.0" <>                    137438953472.0 or
 2368         float parse                    "274877906944.0" <>                    274877906944.0 or
 2369         float parse                    "549755813888.0" <>                    549755813888.0 or
 2370         float parse                   "1099511627776.0" <>                   1099511627776.0 or
 2371         float parse                   "2199023255552.0" <>                   2199023255552.0 or
 2372         float parse                   "4398046511104.0" <>                   4398046511104.0 or
 2373         float parse                   "8796093022208.0" <>                   8796093022208.0 or
 2374         float parse                  "17592186044416.0" <>                  17592186044416.0 or
 2375         float parse                  "35184372088832.0" <>                  35184372088832.0 or
 2376         float parse                  "70368744177664.0" <>                  70368744177664.0 or
 2377         float parse                 "140737488355328.0" <>                 140737488355328.0 or
 2378         float parse                 "281474976710656.0" <>                 281474976710656.0 or
 2379         float parse                 "562949953421312.0" <>                 562949953421312.0 or
 2380         float parse                "1125899906842624.0" <>                1125899906842624.0 or
 2381         float parse                "2251799813685248.0" <>                2251799813685248.0 or
 2382         float parse                "4503599627370496.0" <>                4503599627370496.0 or
 2383         float parse                "9007199254740992.0" <>                9007199254740992.0 or
 2384         float parse               "18014398509481984.0" <>               18014398509481984.0 or
 2385         float parse               "36028797018963968.0" <>               36028797018963968.0 or
 2386         float parse               "72057594037927936.0" <>               72057594037927936.0 or
 2387         float parse              "144115188075855872.0" <>              144115188075855872.0 or
 2388         float parse              "288230376151711744.0" <>              288230376151711744.0 or
 2389         float parse              "576460752303423488.0" <>              576460752303423488.0 or
 2390         float parse             "1152921504606846976.0" <>             1152921504606846976.0 or
 2391         float parse             "2305843009213693952.0" <>             2305843009213693952.0 or
 2392         float parse             "4611686018427387904.0" <>             4611686018427387904.0 or
 2393         float parse             "9223372036854775808.0" <>             9223372036854775808.0 or
 2394         float parse            "18446744073709551616.0" <>            18446744073709551616.0 or
 2395         float parse            "36893488147419103232.0" <>            36893488147419103232.0 or
 2396         float parse            "73786976294838206464.0" <>            73786976294838206464.0 or
 2397         float parse           "147573952589676412928.0" <>           147573952589676412928.0 or
 2398         float parse           "295147905179352825856.0" <>           295147905179352825856.0 or
 2399         float parse           "590295810358705651712.0" <>           590295810358705651712.0 or
 2400         float parse          "1180591620717411303424.0" <>          1180591620717411303424.0 or
 2401         float parse          "2361183241434822606848.0" <>          2361183241434822606848.0 or
 2402         float parse          "4722366482869645213696.0" <>          4722366482869645213696.0 or
 2403         float parse          "9444732965739290427392.0" <>          9444732965739290427392.0 or
 2404         float parse         "18889465931478580854784.0" <>         18889465931478580854784.0 or
 2405         float parse         "37778931862957161709568.0" <>         37778931862957161709568.0 or
 2406         float parse         "75557863725914323419136.0" <>         75557863725914323419136.0 or
 2407         float parse        "151115727451828646838272.0" <>        151115727451828646838272.0 or
 2408         float parse        "302231454903657293676544.0" <>        302231454903657293676544.0 or
 2409         float parse        "604462909807314587353088.0" <>        604462909807314587353088.0 or
 2410         float parse       "1208925819614629174706176.0" <>       1208925819614629174706176.0 or
 2411         float parse       "2417851639229258349412352.0" <>       2417851639229258349412352.0 or
 2412         float parse       "4835703278458516698824704.0" <>       4835703278458516698824704.0 or
 2413         float parse       "9671406556917033397649408.0" <>       9671406556917033397649408.0 or
 2414         float parse      "19342813113834066795298816.0" <>      19342813113834066795298816.0 or
 2415         float parse      "38685626227668133590597632.0" <>      38685626227668133590597632.0 or
 2416         float parse      "77371252455336267181195264.0" <>      77371252455336267181195264.0 or
 2417         float parse      "15474250491067253436239052.0" <>      15474250491067253436239052.0 or
 2418         float parse      "30948500982134506872478105.0" <>      30948500982134506872478105.0 or
 2419         float parse     "618970019642690137449562112.0" <>     618970019642690137449562112.0 or
 2420         float parse    "1237940039285380274899124224.0" <>    1237940039285380274899124224.0 or
 2421         float parse    "2475880078570760549798248448.0" <>    2475880078570760549798248448.0 or
 2422         float parse    "4951760157141521099596496896.0" <>    4951760157141521099596496896.0 or
 2423         float parse    "9903520314283042199192993792.0" <>    9903520314283042199192993792.0 or
 2424         float parse   "19807040628566084398385987584.0" <>   19807040628566084398385987584.0 or
 2425         float parse   "39614081257132168796771975168.0" <>   39614081257132168796771975168.0 or
 2426         float parse   "79228162514264337593543950336.0" <>   79228162514264337593543950336.0 or
 2427         float parse  "158456325028528675187087900672.0" <>  158456325028528675187087900672.0 or
 2428         float parse  "316912650057057350374175801344.0" <>  316912650057057350374175801344.0 or
 2429         float parse  "633825300114114700748351602688.0" <>  633825300114114700748351602688.0 or
 2430         float parse "1267650600228229401496703205376.0" <> 1267650600228229401496703205376.0 or
 2431         float parse "0.5"                                <> 0.5 or
 2432         float parse "0.25"                               <> 0.25 or
 2433         float parse "0.125"                              <> 0.125 or
 2434         float parse "0.0625"                             <> 0.0625 or
 2435         float parse "0.03125"                            <> 0.03125 or
 2436         float parse "0.015625"                           <> 0.015625 or
 2437         float parse "0.0078125"                          <> 0.0078125 or
 2438         float parse "0.00390625"                         <> 0.00390625 or
 2439         float parse "0.001953125"                        <> 0.001953125 or
 2440         float parse "0.0009765625"                       <> 0.0009765625 or
 2441         float parse "0.00048828125"                      <> 0.00048828125 or
 2442         float parse "0.000244140625"                     <> 0.000244140625 or
 2443         float parse "0.0001220703125"                    <> 0.0001220703125 or
 2444         float parse "0.00006103515625"                   <> 0.00006103515625 or
 2445         float parse "0.000030517578125"                  <> 0.000030517578125 or
 2446         float parse "0.0000152587890625"                 <> 0.0000152587890625 or
 2447         float parse "0.00000762939453125"                <> 0.00000762939453125 or
 2448         float parse "0.000003814697265625"               <> 0.000003814697265625 or
 2449         float parse "0.0000019073486328125"              <> 0.0000019073486328125 or
 2450         float parse "0.00000095367431640625"             <> 0.00000095367431640625 or
 2451         float parse "0.000000476837158203125"            <> 0.000000476837158203125 or
 2452         float parse "0.0000002384185791015625"           <> 0.0000002384185791015625 or
 2453         float parse "0.00000011920928955078125"          <> 0.00000011920928955078125 or
 2454         float parse "0.000000059604644775390625"         <> 0.000000059604644775390625 or
 2455         float parse "0.0000000298023223876953125"        <> 0.0000000298023223876953125 or
 2456         float parse "0.00000001490116119384765625"       <> 0.00000001490116119384765625 or
 2457         float parse "0.000000007450580596923828125"      <> 0.000000007450580596923828125 or
 2458         float parse "0.0000000037252902984619140625"     <> 0.0000000037252902984619140625 or
 2459         float parse "0.00000000186264514923095703125"    <> 0.00000000186264514923095703125 or
 2460         float parse "0.000000000931322574615478515625"   <> 0.000000000931322574615478515625 or
 2461         float parse "0.0000000004656612873077392578125"  <> 0.0000000004656612873077392578125 or
 2462         float parse "0.00000000023283064365386962890625" <> 0.00000000023283064365386962890625 or
 2463         float parse "0.000000000116415321826934814453125" <>
 2464                      0.000000000116415321826934814453125 or
 2465         float parse "0.0000000000582076609134674072265625" <>
 2466                      0.0000000000582076609134674072265625 or
 2467         float parse "0.00000000002910383045673370361328125" <>
 2468                      0.00000000002910383045673370361328125 or
 2469         float parse "0.000000000014551915228366851806640625" <>
 2470                      0.000000000014551915228366851806640625 or
 2471         float parse "0.0000000000072759576141834259033203125" <>
 2472                      0.0000000000072759576141834259033203125 or
 2473         float parse "0.00000000000363797880709171295166015625" <>
 2474                      0.00000000000363797880709171295166015625 or
 2475         float parse "0.000000000001818989403545856475830078125" <>
 2476                      0.000000000001818989403545856475830078125 or
 2477         float parse "0.0000000000009094947017729282379150390625" <>
 2478                      0.0000000000009094947017729282379150390625 or
 2479         float parse "0.00000000000045474735088646411895751953125" <>
 2480                      0.00000000000045474735088646411895751953125 or
 2481         float parse "0.000000000000227373675443232059478759765625" <>
 2482                      0.000000000000227373675443232059478759765625 or
 2483         float parse "0.0000000000001136868377216160297393798828125" <>
 2484                      0.0000000000001136868377216160297393798828125 or
 2485         float parse "0.00000000000005684341886080801486968994140625" <>
 2486                      0.00000000000005684341886080801486968994140625 or
 2487         float parse "0.000000000000028421709430404007434844970703125" <>
 2488                      0.000000000000028421709430404007434844970703125 or
 2489         float parse "0.0000000000000142108547152020037174224853515625" <>
 2490                      0.0000000000000142108547152020037174224853515625 or
 2491         float parse "0.00000000000000710542735760100185871124267578125" <>
 2492                      0.00000000000000710542735760100185871124267578125 or
 2493         float parse "0.000000000000003552713678800500929355621337890625" <>
 2494                      0.000000000000003552713678800500929355621337890625 or
 2495         float parse "0.0000000000000017763568394002504646778106689453125" <>
 2496                      0.0000000000000017763568394002504646778106689453125 or
 2497         float parse "0.00000000000000088817841970012523233890533447265625" <>
 2498                      0.00000000000000088817841970012523233890533447265625 or
 2499         float parse "0.000000000000000444089209850062616169452667236328125" <>
 2500                      0.000000000000000444089209850062616169452667236328125 or
 2501         float parse "0.0000000000000002220446049250313080847263336181640625" <>
 2502                      0.0000000000000002220446049250313080847263336181640625 or
 2503         float parse "0.00000000000000011102230246251565404236316680908203125" <>
 2504                      0.00000000000000011102230246251565404236316680908203125 or
 2505         float parse "0.000000000000000055511151231257827021181583404541015625" <>
 2506                      0.000000000000000055511151231257827021181583404541015625 or
 2507         float parse "0.0000000000000000277555756156289135105907917022705078125" <>
 2508                      0.0000000000000000277555756156289135105907917022705078125 or
 2509         float parse "0.00000000000000001387778780781445675529539585113525390625" <>
 2510                      0.00000000000000001387778780781445675529539585113525390625 or
 2511         float parse "0.000000000000000006938893903907228377647697925567626953125" <>
 2512                      0.000000000000000006938893903907228377647697925567626953125 or
 2513         float parse "0.0000000000000000034694469519536141888238489627838134765625" <>
 2514                      0.0000000000000000034694469519536141888238489627838134765625 or
 2515         float parse "0.00000000000000000173472347597680709441192448139190673828125" <>
 2516                      0.00000000000000000173472347597680709441192448139190673828125 or
 2517         float parse "0.000000000000000000867361737988403547205962240695953369140625" <>
 2518                      0.000000000000000000867361737988403547205962240695953369140625 or
 2519         float parse "0.0000000000000000004336808689942017736029811203479766845703125" <>
 2520                      0.0000000000000000004336808689942017736029811203479766845703125 or
 2521         float parse "0.00000000000000000021684043449710088680149056017398834228515625" <>
 2522                      0.00000000000000000021684043449710088680149056017398834228515625 or
 2523         float parse "0.000000000000000000108420217248550443400745280086994171142578125" <>
 2524                      0.000000000000000000108420217248550443400745280086994171142578125 or
 2525         float parse "0.0000000000000000000542101086242752217003726400434970855712890625" <>
 2526                      0.0000000000000000000542101086242752217003726400434970855712890625 or
 2527         float parse "0.00000000000000000002710505431213761085018632002174854278564453125" <>
 2528                      0.00000000000000000002710505431213761085018632002174854278564453125 or
 2529         float parse "0.000000000000000000013552527156068805425093160010874271392822265625" <>
 2530                      0.000000000000000000013552527156068805425093160010874271392822265625 or
 2531         float parse "0.0000000000000000000067762635780344027125465800054371356964111328125" <>
 2532                      0.0000000000000000000067762635780344027125465800054371356964111328125 or
 2533         float parse "0.00000000000000000000338813178901720135627329000271856784820556640625" <>
 2534                      0.00000000000000000000338813178901720135627329000271856784820556640625 or
 2535         float parse "0.000000000000000000001694065894508600678136645001359283924102783203125" <>
 2536                      0.000000000000000000001694065894508600678136645001359283924102783203125 or
 2537         float parse "0.0000000000000000000008470329472543003390683225006796419620513916015625" <>
 2538                      0.0000000000000000000008470329472543003390683225006796419620513916015625 or
 2539         float parse "0.00000000000000000000042351647362715016953416125033982098102569580078125" <>
 2540                      0.00000000000000000000042351647362715016953416125033982098102569580078125 or
 2541         float parse "0.000000000000000000000211758236813575084767080625169910490512847900390625" <>
 2542                      0.000000000000000000000211758236813575084767080625169910490512847900390625 or
 2543         float parse "0.0000000000000000000001058791184067875423835403125849552452564239501953125" <>
 2544                      0.0000000000000000000001058791184067875423835403125849552452564239501953125 or
 2545         float parse "0.00000000000000000000005293955920339377119177015629247762262821197509765625" <>
 2546                      0.00000000000000000000005293955920339377119177015629247762262821197509765625 or
 2547         float parse "0.000000000000000000000026469779601696885595885078146238811314105987548828125" <>
 2548                      0.000000000000000000000026469779601696885595885078146238811314105987548828125 then
 2549       writeln(" ***** Parse operator for float does not work correct.");
 2550       okay := FALSE;
 2551     end if;
 2552 
 2553     if  float parse  "9007199254740991.0" <>  9007199254740991.0 or
 2554         float parse "-9007199254740991.0" <> -9007199254740991.0 or
 2555         float parse  "9007199254740991.0" <>  9007199254740990.0 + 1.0 or
 2556         float parse "-9007199254740991.0" <> -9007199254740990.0 - 1.0 or
 2557         float parse striExpr( "9007199254740991.0") <>  9007199254740991.0 or
 2558         float parse striExpr("-9007199254740991.0") <> -9007199254740991.0 or
 2559         float parse striExpr( "9007199254740991.0") <>  9007199254740990.0 + 1.0 or
 2560         float parse striExpr("-9007199254740991.0") <> -9007199254740990.0 - 1.0 then
 2561       writeln(" ***** Parse operator for maximum or minimum odd value does not work correct.");
 2562       okay := FALSE;
 2563     end if;
 2564 
 2565     if  float parse "1.0e-308" <> 1.0e-308 or
 2566         float parse "1.0e-307" <> 1.0e-307 or
 2567         float parse "1.0e-300" <> 1.0e-300 or
 2568         float parse "1.0e-275" <> 1.0e-275 or
 2569         float parse "1.0e-250" <> 1.0e-250 or
 2570         float parse "1.0e-225" <> 1.0e-225 or
 2571         float parse "1.0e-200" <> 1.0e-200 or
 2572         float parse "1.0e-175" <> 1.0e-175 or
 2573         float parse "1.0e-150" <> 1.0e-150 or
 2574         float parse "1.0e-125" <> 1.0e-125 or
 2575         float parse "1.0e-101" <> 1.0e-101 or
 2576         float parse "1.0e-100" <> 1.0e-100 or
 2577         float parse "1.0e-99"  <> 1.0e-99  or
 2578         float parse "1.0e-75"  <> 1.0e-75  or
 2579         float parse "1.0e-50"  <> 1.0e-50  or
 2580         float parse "1.0e-25"  <> 1.0e-25  or
 2581         float parse "1.0e-20"  <> 1.0e-20  or
 2582         float parse "1.0e-15"  <> 1.0e-15  or
 2583         float parse "1.0e-11"  <> 1.0e-11  or
 2584         float parse "1.0e-10"  <> 1.0e-10  or
 2585         float parse "1.0e-9"   <> 1.0e-9   or
 2586         float parse "1.0e-2"   <> 1.0e-2   or
 2587         float parse "1.0e-1"   <> 1.0e-1   or
 2588         float parse "1.0e0"    <> 1.0e0    or
 2589         float parse "1.0e1"    <> 1.0e1    or
 2590         float parse "1.0e2"    <> 1.0e2    or
 2591         float parse "1.0e9"    <> 1.0e9    or
 2592         float parse "1.0e10"   <> 1.0e10   or
 2593         float parse "1.0e11"   <> 1.0e11   or
 2594         float parse "1.0e15"   <> 1.0e15   or
 2595         float parse "1.0e20"   <> 1.0e20   or
 2596         float parse "1.0e25"   <> 1.0e25   or
 2597         float parse "1.0e50"   <> 1.0e50   or
 2598         float parse "1.0e75"   <> 1.0e75   or
 2599         float parse "1.0e99"   <> 1.0e99   or
 2600         float parse "1.0e100"  <> 1.0e100  or
 2601         float parse "1.0e101"  <> 1.0e101  or
 2602         float parse "1.0e125"  <> 1.0e125  or
 2603         float parse "1.0e150"  <> 1.0e150  or
 2604         float parse "1.0e175"  <> 1.0e175  or
 2605         float parse "1.0e200"  <> 1.0e200  or
 2606         float parse "1.0e225"  <> 1.0e225  or
 2607         float parse "1.0e250"  <> 1.0e250  or
 2608         float parse "1.0e275"  <> 1.0e275  or
 2609         float parse "1.0e300"  <> 1.0e300  or
 2610         float parse "1.0e307"  <> 1.0e307  or
 2611         float parse "1.0e308"  <> 1.0e308  or
 2612         float parse striExpr("1.0e-308") <> 1.0e-308 or
 2613         float parse striExpr("1.0e-307") <> 1.0e-307 or
 2614         float parse striExpr("1.0e-300") <> 1.0e-300 or
 2615         float parse striExpr("1.0e-275") <> 1.0e-275 or
 2616         float parse striExpr("1.0e-250") <> 1.0e-250 or
 2617         float parse striExpr("1.0e-225") <> 1.0e-225 or
 2618         float parse striExpr("1.0e-200") <> 1.0e-200 or
 2619         float parse striExpr("1.0e-175") <> 1.0e-175 or
 2620         float parse striExpr("1.0e-150") <> 1.0e-150 or
 2621         float parse striExpr("1.0e-125") <> 1.0e-125 or
 2622         float parse striExpr("1.0e-101") <> 1.0e-101 or
 2623         float parse striExpr("1.0e-100") <> 1.0e-100 or
 2624         float parse striExpr("1.0e-99")  <> 1.0e-99  or
 2625         float parse striExpr("1.0e-75")  <> 1.0e-75  or
 2626         float parse striExpr("1.0e-50")  <> 1.0e-50  or
 2627         float parse striExpr("1.0e-25")  <> 1.0e-25  or
 2628         float parse striExpr("1.0e-20")  <> 1.0e-20  or
 2629         float parse striExpr("1.0e-15")  <> 1.0e-15  or
 2630         float parse striExpr("1.0e-11")  <> 1.0e-11  or
 2631         float parse striExpr("1.0e-10")  <> 1.0e-10  or
 2632         float parse striExpr("1.0e-9")   <> 1.0e-9   or
 2633         float parse striExpr("1.0e-2")   <> 1.0e-2   or
 2634         float parse striExpr("1.0e-1")   <> 1.0e-1   or
 2635         float parse striExpr("1.0e0")    <> 1.0e0    or
 2636         float parse striExpr("1.0e1")    <> 1.0e1    or
 2637         float parse striExpr("1.0e2")    <> 1.0e2    or
 2638         float parse striExpr("1.0e9")    <> 1.0e9    or
 2639         float parse striExpr("1.0e10")   <> 1.0e10   or
 2640         float parse striExpr("1.0e11")   <> 1.0e11   or
 2641         float parse striExpr("1.0e15")   <> 1.0e15   or
 2642         float parse striExpr("1.0e20")   <> 1.0e20   or
 2643         float parse striExpr("1.0e25")   <> 1.0e25   or
 2644         float parse striExpr("1.0e50")   <> 1.0e50   or
 2645         float parse striExpr("1.0e75")   <> 1.0e75   or
 2646         float parse striExpr("1.0e99")   <> 1.0e99   or
 2647         float parse striExpr("1.0e100")  <> 1.0e100  or
 2648         float parse striExpr("1.0e101")  <> 1.0e101  or
 2649         float parse striExpr("1.0e125")  <> 1.0e125  or
 2650         float parse striExpr("1.0e150")  <> 1.0e150  or
 2651         float parse striExpr("1.0e175")  <> 1.0e175  or
 2652         float parse striExpr("1.0e200")  <> 1.0e200  or
 2653         float parse striExpr("1.0e225")  <> 1.0e225  or
 2654         float parse striExpr("1.0e250")  <> 1.0e250  or
 2655         float parse striExpr("1.0e275")  <> 1.0e275  or
 2656         float parse striExpr("1.0e300")  <> 1.0e300  or
 2657         float parse striExpr("1.0e307")  <> 1.0e307  or
 2658         float parse striExpr("1.0e308")  <> 1.0e308  then
 2659       writeln(" ***** Parse operator for float with exponent does not work correct.");
 2660       okay := FALSE;
 2661     end if;
 2662 
 2663     if  float parse str(1.0e-308) <> 1.0e-308 or
 2664         float parse str(1.0e-307) <> 1.0e-307 or
 2665         float parse str(1.0e-300) <> 1.0e-300 or
 2666         float parse str(1.0e-275) <> 1.0e-275 or
 2667         float parse str(1.0e-250) <> 1.0e-250 or
 2668         float parse str(1.0e-225) <> 1.0e-225 or
 2669         float parse str(1.0e-200) <> 1.0e-200 or
 2670         float parse str(1.0e-175) <> 1.0e-175 or
 2671         float parse str(1.0e-150) <> 1.0e-150 or
 2672         float parse str(1.0e-125) <> 1.0e-125 or
 2673         float parse str(1.0e-101) <> 1.0e-101 or
 2674         float parse str(1.0e-100) <> 1.0e-100 or
 2675         float parse str(1.0e-99)  <> 1.0e-99  or
 2676         float parse str(1.0e-75)  <> 1.0e-75  or
 2677         float parse str(1.0e-50)  <> 1.0e-50  or
 2678         float parse str(1.0e-25)  <> 1.0e-25  or
 2679         float parse str(1.0e-20)  <> 1.0e-20  or
 2680         float parse str(1.0e-15)  <> 1.0e-15  or
 2681         float parse str(1.0e-11)  <> 1.0e-11  or
 2682         float parse str(1.0e-10)  <> 1.0e-10  or
 2683         float parse str(1.0e-9)   <> 1.0e-9   or
 2684         float parse str(1.0e-2)   <> 1.0e-2   or
 2685         float parse str(1.0e-1)   <> 1.0e-1   or
 2686         float parse str(1.0e0)    <> 1.0e0    or
 2687         float parse str(1.0e1)    <> 1.0e1    or
 2688         float parse str(1.0e2)    <> 1.0e2    or
 2689         float parse str(1.0e9)    <> 1.0e9    or
 2690         float parse str(1.0e10)   <> 1.0e10   or
 2691         float parse str(1.0e11)   <> 1.0e11   or
 2692         float parse str(1.0e15)   <> 1.0e15   or
 2693         float parse str(1.0e20)   <> 1.0e20   or
 2694         float parse str(1.0e25)   <> 1.0e25   or
 2695         float parse str(1.0e50)   <> 1.0e50   or
 2696         float parse str(1.0e75)   <> 1.0e75   or
 2697         float parse str(1.0e99)   <> 1.0e99   or
 2698         float parse str(1.0e100)  <> 1.0e100  or
 2699         float parse str(1.0e101)  <> 1.0e101  or
 2700         float parse str(1.0e125)  <> 1.0e125  or
 2701         float parse str(1.0e150)  <> 1.0e150  or
 2702         float parse str(1.0e175)  <> 1.0e175  or
 2703         float parse str(1.0e200)  <> 1.0e200  or
 2704         float parse str(1.0e225)  <> 1.0e225  or
 2705         float parse str(1.0e250)  <> 1.0e250  or
 2706         float parse str(1.0e275)  <> 1.0e275  or
 2707         float parse str(1.0e300)  <> 1.0e300  or
 2708         float parse str(1.0e307)  <> 1.0e307  or
 2709         float parse str(1.0e308)  <> 1.0e308  or
 2710         float parse str(floatExpr(1.0e-308)) <> 1.0e-308 or
 2711         float parse str(floatExpr(1.0e-307)) <> 1.0e-307 or
 2712         float parse str(floatExpr(1.0e-300)) <> 1.0e-300 or
 2713         float parse str(floatExpr(1.0e-275)) <> 1.0e-275 or
 2714         float parse str(floatExpr(1.0e-250)) <> 1.0e-250 or
 2715         float parse str(floatExpr(1.0e-225)) <> 1.0e-225 or
 2716         float parse str(floatExpr(1.0e-200)) <> 1.0e-200 or
 2717         float parse str(floatExpr(1.0e-175)) <> 1.0e-175 or
 2718         float parse str(floatExpr(1.0e-150)) <> 1.0e-150 or
 2719         float parse str(floatExpr(1.0e-125)) <> 1.0e-125 or
 2720         float parse str(floatExpr(1.0e-101)) <> 1.0e-101 or
 2721         float parse str(floatExpr(1.0e-100)) <> 1.0e-100 or
 2722         float parse str(floatExpr(1.0e-99))  <> 1.0e-99  or
 2723         float parse str(floatExpr(1.0e-75))  <> 1.0e-75  or
 2724         float parse str(floatExpr(1.0e-50))  <> 1.0e-50  or
 2725         float parse str(floatExpr(1.0e-25))  <> 1.0e-25  or
 2726         float parse str(floatExpr(1.0e-20))  <> 1.0e-20  or
 2727         float parse str(floatExpr(1.0e-15))  <> 1.0e-15  or
 2728         float parse str(floatExpr(1.0e-11))  <> 1.0e-11  or
 2729         float parse str(floatExpr(1.0e-10))  <> 1.0e-10  or
 2730         float parse str(floatExpr(1.0e-9))   <> 1.0e-9   or
 2731         float parse str(floatExpr(1.0e-2))   <> 1.0e-2   or
 2732         float parse str(floatExpr(1.0e-1))   <> 1.0e-1   or
 2733         float parse str(floatExpr(1.0e0))    <> 1.0e0    or
 2734         float parse str(floatExpr(1.0e1))    <> 1.0e1    or
 2735         float parse str(floatExpr(1.0e2))    <> 1.0e2    or
 2736         float parse str(floatExpr(1.0e9))    <> 1.0e9    or
 2737         float parse str(floatExpr(1.0e10))   <> 1.0e10   or
 2738         float parse str(floatExpr(1.0e11))   <> 1.0e11   or
 2739         float parse str(floatExpr(1.0e15))   <> 1.0e15   or
 2740         float parse str(floatExpr(1.0e20))   <> 1.0e20   or
 2741         float parse str(floatExpr(1.0e25))   <> 1.0e25   or
 2742         float parse str(floatExpr(1.0e50))   <> 1.0e50   or
 2743         float parse str(floatExpr(1.0e75))   <> 1.0e75   or
 2744         float parse str(floatExpr(1.0e99))   <> 1.0e99   or
 2745         float parse str(floatExpr(1.0e100))  <> 1.0e100  or
 2746         float parse str(floatExpr(1.0e101))  <> 1.0e101  or
 2747         float parse str(floatExpr(1.0e125))  <> 1.0e125  or
 2748         float parse str(floatExpr(1.0e150))  <> 1.0e150  or
 2749         float parse str(floatExpr(1.0e175))  <> 1.0e175  or
 2750         float parse str(floatExpr(1.0e200))  <> 1.0e200  or
 2751         float parse str(floatExpr(1.0e225))  <> 1.0e225  or
 2752         float parse str(floatExpr(1.0e250))  <> 1.0e250  or
 2753         float parse str(floatExpr(1.0e275))  <> 1.0e275  or
 2754         float parse str(floatExpr(1.0e300))  <> 1.0e300  or
 2755         float parse str(floatExpr(1.0e307))  <> 1.0e307  or
 2756         float parse str(floatExpr(1.0e308))  <> 1.0e308  then
 2757       writeln(" ***** Convert float to string and parse back to float does not work correct.");
 2758       okay := FALSE;
 2759     end if;
 2760 
 2761     if  not raisesRangeError(float parse           " 0.0" ) or
 2762         not raisesRangeError(float parse           "asdf" ) or
 2763         not raisesRangeError(float parse           "0.0a" ) or
 2764         not raisesRangeError(float parse            "1,2" ) or
 2765         not raisesRangeError(float parse            "0x1" ) or
 2766         not raisesRangeError(float parse            "0X1" ) or
 2767         not raisesRangeError(float parse          "0x1.2" ) or
 2768         not raisesRangeError(float parse          "0X1.3" ) or
 2769         not raisesRangeError(float parse              "€" ) or
 2770         not raisesRangeError(float parse striExpr( " 0.0")) or
 2771         not raisesRangeError(float parse striExpr( "asdf")) or
 2772         not raisesRangeError(float parse striExpr( "0.0a")) or
 2773         not raisesRangeError(float parse striExpr(  "1,2")) or
 2774         not raisesRangeError(float parse striExpr(  "0x1")) or
 2775         not raisesRangeError(float parse striExpr(  "0X1")) or
 2776         not raisesRangeError(float parse striExpr("0x1.2")) or
 2777         not raisesRangeError(float parse striExpr("0X1.3")) or
 2778         not raisesRangeError(float parse striExpr(    "€")) then
 2779       writeln(" ***** Parse operator for float with illegal literal does not raise RANGE_ERROR.");
 2780       okay := FALSE;
 2781     end if;
 2782 
 2783     if  float(                   "0.0" ) <>       0.0 or
 2784         float(                  "-0.0" ) <>       0.0 or
 2785         float(                   "1.0" ) <>       1.0 or
 2786         float(                  "-1.0" ) <>      -1.0 or
 2787         float(              "Infinity" ) <>  Infinity or
 2788         float(             "-Infinity" ) <> -Infinity or
 2789         not isNaN(float(         "NaN"))              or
 2790         float(striExpr(          "0.0")) <>       0.0 or
 2791         float(striExpr(         "-0.0")) <>       0.0 or
 2792         float(striExpr(          "1.0")) <>       1.0 or
 2793         float(striExpr(         "-1.0")) <>      -1.0 or
 2794         float(striExpr(     "Infinity")) <>  Infinity or
 2795         float(striExpr(    "-Infinity")) <> -Infinity or
 2796         not isNaN(float(striExpr("NaN")))             or
 2797         float(          "123.456000000000000000000000000000000" ) <>  123.456   or
 2798         float(         "+123.456000000000000000000000000000000" ) <>  123.456   or
 2799         float(         "-123.456000000000000000000000000000000" ) <> -123.456   or
 2800         float(          "0.00000000000000000000000000000000001" ) <>    1.0e-35 or
 2801         float(         "+0.00000000000000000000000000000000001" ) <>    1.0e-35 or
 2802         float(         "-0.00000000000000000000000000000000001" ) <>   -1.0e-35 or
 2803         float(          "00000000000000000000000000000000000.5" ) <>    0.5     or
 2804         float(         "+00000000000000000000000000000000000.5" ) <>    0.5     or
 2805         float(         "-00000000000000000000000000000000000.5" ) <>   -0.5     or
 2806         float(striExpr( "123.456000000000000000000000000000000")) <>  123.456   or
 2807         float(striExpr("+123.456000000000000000000000000000000")) <>  123.456   or
 2808         float(striExpr("-123.456000000000000000000000000000000")) <> -123.456   or
 2809         float(striExpr( "0.00000000000000000000000000000000001")) <>    1.0e-35 or
 2810         float(striExpr("+0.00000000000000000000000000000000001")) <>    1.0e-35 or
 2811         float(striExpr("-0.00000000000000000000000000000000001")) <>   -1.0e-35 or
 2812         float(striExpr( "00000000000000000000000000000000000.5")) <>    0.5     or
 2813         float(striExpr("+00000000000000000000000000000000000.5")) <>    0.5     or
 2814         float(striExpr("-00000000000000000000000000000000000.5")) <>   -0.5     or
 2815         float(                              "1.0") <>                               1.0 or
 2816         float(                              "2.0") <>                               2.0 or
 2817         float(                              "4.0") <>                               4.0 or
 2818         float(                              "8.0") <>                               8.0 or
 2819         float(                             "16.0") <>                              16.0 or
 2820         float(                             "32.0") <>                              32.0 or
 2821         float(                             "64.0") <>                              64.0 or
 2822         float(                            "128.0") <>                             128.0 or
 2823         float(                            "256.0") <>                             256.0 or
 2824         float(                            "512.0") <>                             512.0 or
 2825         float(                           "1024.0") <>                            1024.0 or
 2826         float(                           "2048.0") <>                            2048.0 or
 2827         float(                           "4096.0") <>                            4096.0 or
 2828         float(                           "8192.0") <>                            8192.0 or
 2829         float(                          "16384.0") <>                           16384.0 or
 2830         float(                          "32768.0") <>                           32768.0 or
 2831         float(                          "65536.0") <>                           65536.0 or
 2832         float(                         "131072.0") <>                          131072.0 or
 2833         float(                         "262144.0") <>                          262144.0 or
 2834         float(                         "524288.0") <>                          524288.0 or
 2835         float(                        "1048576.0") <>                         1048576.0 or
 2836         float(                        "2097152.0") <>                         2097152.0 or
 2837         float(                        "4194304.0") <>                         4194304.0 or
 2838         float(                        "8388608.0") <>                         8388608.0 or
 2839         float(                       "16777216.0") <>                        16777216.0 or
 2840         float(                       "33554432.0") <>                        33554432.0 or
 2841         float(                       "67108864.0") <>                        67108864.0 or
 2842         float(                      "134217728.0") <>                       134217728.0 or
 2843         float(                      "268435456.0") <>                       268435456.0 or
 2844         float(                      "536870912.0") <>                       536870912.0 or
 2845         float(                     "1073741824.0") <>                      1073741824.0 or
 2846         float(                     "2147483648.0") <>                      2147483648.0 or
 2847         float(                     "4294967296.0") <>                      4294967296.0 or
 2848         float(                     "8589934592.0") <>                      8589934592.0 or
 2849         float(                    "17179869184.0") <>                     17179869184.0 or
 2850         float(                    "34359738368.0") <>                     34359738368.0 or
 2851         float(                    "68719476736.0") <>                     68719476736.0 or
 2852         float(                   "137438953472.0") <>                    137438953472.0 or
 2853         float(                   "274877906944.0") <>                    274877906944.0 or
 2854         float(                   "549755813888.0") <>                    549755813888.0 or
 2855         float(                  "1099511627776.0") <>                   1099511627776.0 or
 2856         float(                  "2199023255552.0") <>                   2199023255552.0 or
 2857         float(                  "4398046511104.0") <>                   4398046511104.0 or
 2858         float(                  "8796093022208.0") <>                   8796093022208.0 or
 2859         float(                 "17592186044416.0") <>                  17592186044416.0 or
 2860         float(                 "35184372088832.0") <>                  35184372088832.0 or
 2861         float(                 "70368744177664.0") <>                  70368744177664.0 or
 2862         float(                "140737488355328.0") <>                 140737488355328.0 or
 2863         float(                "281474976710656.0") <>                 281474976710656.0 or
 2864         float(                "562949953421312.0") <>                 562949953421312.0 or
 2865         float(               "1125899906842624.0") <>                1125899906842624.0 or
 2866         float(               "2251799813685248.0") <>                2251799813685248.0 or
 2867         float(               "4503599627370496.0") <>                4503599627370496.0 or
 2868         float(               "9007199254740992.0") <>                9007199254740992.0 or
 2869         float(              "18014398509481984.0") <>               18014398509481984.0 or
 2870         float(              "36028797018963968.0") <>               36028797018963968.0 or
 2871         float(              "72057594037927936.0") <>               72057594037927936.0 or
 2872         float(             "144115188075855872.0") <>              144115188075855872.0 or
 2873         float(             "288230376151711744.0") <>              288230376151711744.0 or
 2874         float(             "576460752303423488.0") <>              576460752303423488.0 or
 2875         float(            "1152921504606846976.0") <>             1152921504606846976.0 or
 2876         float(            "2305843009213693952.0") <>             2305843009213693952.0 or
 2877         float(            "4611686018427387904.0") <>             4611686018427387904.0 or
 2878         float(            "9223372036854775808.0") <>             9223372036854775808.0 or
 2879         float(           "18446744073709551616.0") <>            18446744073709551616.0 or
 2880         float(           "36893488147419103232.0") <>            36893488147419103232.0 or
 2881         float(           "73786976294838206464.0") <>            73786976294838206464.0 or
 2882         float(          "147573952589676412928.0") <>           147573952589676412928.0 or
 2883         float(          "295147905179352825856.0") <>           295147905179352825856.0 or
 2884         float(          "590295810358705651712.0") <>           590295810358705651712.0 or
 2885         float(         "1180591620717411303424.0") <>          1180591620717411303424.0 or
 2886         float(         "2361183241434822606848.0") <>          2361183241434822606848.0 or
 2887         float(         "4722366482869645213696.0") <>          4722366482869645213696.0 or
 2888         float(         "9444732965739290427392.0") <>          9444732965739290427392.0 or
 2889         float(        "18889465931478580854784.0") <>         18889465931478580854784.0 or
 2890         float(        "37778931862957161709568.0") <>         37778931862957161709568.0 or
 2891         float(        "75557863725914323419136.0") <>         75557863725914323419136.0 or
 2892         float(       "151115727451828646838272.0") <>        151115727451828646838272.0 or
 2893         float(       "302231454903657293676544.0") <>        302231454903657293676544.0 or
 2894         float(       "604462909807314587353088.0") <>        604462909807314587353088.0 or
 2895         float(      "1208925819614629174706176.0") <>       1208925819614629174706176.0 or
 2896         float(      "2417851639229258349412352.0") <>       2417851639229258349412352.0 or
 2897         float(      "4835703278458516698824704.0") <>       4835703278458516698824704.0 or
 2898         float(      "9671406556917033397649408.0") <>       9671406556917033397649408.0 or
 2899         float(     "19342813113834066795298816.0") <>      19342813113834066795298816.0 or
 2900         float(     "38685626227668133590597632.0") <>      38685626227668133590597632.0 or
 2901         float(     "77371252455336267181195264.0") <>      77371252455336267181195264.0 or
 2902         float(     "15474250491067253436239052.0") <>      15474250491067253436239052.0 or
 2903         float(     "30948500982134506872478105.0") <>      30948500982134506872478105.0 or
 2904         float(    "618970019642690137449562112.0") <>     618970019642690137449562112.0 or
 2905         float(   "1237940039285380274899124224.0") <>    1237940039285380274899124224.0 or
 2906         float(   "2475880078570760549798248448.0") <>    2475880078570760549798248448.0 or
 2907         float(   "4951760157141521099596496896.0") <>    4951760157141521099596496896.0 or
 2908         float(   "9903520314283042199192993792.0") <>    9903520314283042199192993792.0 or
 2909         float(  "19807040628566084398385987584.0") <>   19807040628566084398385987584.0 or
 2910         float(  "39614081257132168796771975168.0") <>   39614081257132168796771975168.0 or
 2911         float(  "79228162514264337593543950336.0") <>   79228162514264337593543950336.0 or
 2912         float( "158456325028528675187087900672.0") <>  158456325028528675187087900672.0 or
 2913         float( "316912650057057350374175801344.0") <>  316912650057057350374175801344.0 or
 2914         float( "633825300114114700748351602688.0") <>  633825300114114700748351602688.0 or
 2915         float("1267650600228229401496703205376.0") <> 1267650600228229401496703205376.0 or
 2916         float("0.5")                               <> 0.5 or
 2917         float("0.25")                              <> 0.25 or
 2918         float("0.125")                             <> 0.125 or
 2919         float("0.0625")                            <> 0.0625 or
 2920         float("0.03125")                           <> 0.03125 or
 2921         float("0.015625")                          <> 0.015625 or
 2922         float("0.0078125")                         <> 0.0078125 or
 2923         float("0.00390625")                        <> 0.00390625 or
 2924         float("0.001953125")                       <> 0.001953125 or
 2925         float("0.0009765625")                      <> 0.0009765625 or
 2926         float("0.00048828125")                     <> 0.00048828125 or
 2927         float("0.000244140625")                    <> 0.000244140625 or
 2928         float("0.0001220703125")                   <> 0.0001220703125 or
 2929         float("0.00006103515625")                  <> 0.00006103515625 or
 2930         float("0.000030517578125")                 <> 0.000030517578125 or
 2931         float("0.0000152587890625")                <> 0.0000152587890625 or
 2932         float("0.00000762939453125")               <> 0.00000762939453125 or
 2933         float("0.000003814697265625")              <> 0.000003814697265625 or
 2934         float("0.0000019073486328125")             <> 0.0000019073486328125 or
 2935         float("0.00000095367431640625")            <> 0.00000095367431640625 or
 2936         float("0.000000476837158203125")           <> 0.000000476837158203125 or
 2937         float("0.0000002384185791015625")          <> 0.0000002384185791015625 or
 2938         float("0.00000011920928955078125")         <> 0.00000011920928955078125 or
 2939         float("0.000000059604644775390625")        <> 0.000000059604644775390625 or
 2940         float("0.0000000298023223876953125")       <> 0.0000000298023223876953125 or
 2941         float("0.00000001490116119384765625")      <> 0.00000001490116119384765625 or
 2942         float("0.000000007450580596923828125")     <> 0.000000007450580596923828125 or
 2943         float("0.0000000037252902984619140625")    <> 0.0000000037252902984619140625 or
 2944         float("0.00000000186264514923095703125")   <> 0.00000000186264514923095703125 or
 2945         float("0.000000000931322574615478515625")  <> 0.000000000931322574615478515625 or
 2946         float("0.0000000004656612873077392578125") <> 0.0000000004656612873077392578125 or
 2947         float("0.00000000023283064365386962890625")<> 0.00000000023283064365386962890625 or
 2948         float("0.000000000116415321826934814453125") <>
 2949                      0.000000000116415321826934814453125 or
 2950         float("0.0000000000582076609134674072265625") <>
 2951                      0.0000000000582076609134674072265625 or
 2952         float("0.00000000002910383045673370361328125") <>
 2953                      0.00000000002910383045673370361328125 or
 2954         float("0.000000000014551915228366851806640625") <>
 2955                      0.000000000014551915228366851806640625 or
 2956         float("0.0000000000072759576141834259033203125") <>
 2957                      0.0000000000072759576141834259033203125 or
 2958         float("0.00000000000363797880709171295166015625") <>
 2959                      0.00000000000363797880709171295166015625 or
 2960         float("0.000000000001818989403545856475830078125") <>
 2961                      0.000000000001818989403545856475830078125 or
 2962         float("0.0000000000009094947017729282379150390625") <>
 2963                      0.0000000000009094947017729282379150390625 or
 2964         float("0.00000000000045474735088646411895751953125") <>
 2965                      0.00000000000045474735088646411895751953125 or
 2966         float("0.000000000000227373675443232059478759765625") <>
 2967                      0.000000000000227373675443232059478759765625 or
 2968         float("0.0000000000001136868377216160297393798828125") <>
 2969                      0.0000000000001136868377216160297393798828125 or
 2970         float("0.00000000000005684341886080801486968994140625") <>
 2971                      0.00000000000005684341886080801486968994140625 or
 2972         float("0.000000000000028421709430404007434844970703125") <>
 2973                      0.000000000000028421709430404007434844970703125 or
 2974         float("0.0000000000000142108547152020037174224853515625") <>
 2975                      0.0000000000000142108547152020037174224853515625 or
 2976         float("0.00000000000000710542735760100185871124267578125") <>
 2977                      0.00000000000000710542735760100185871124267578125 or
 2978         float("0.000000000000003552713678800500929355621337890625") <>
 2979                      0.000000000000003552713678800500929355621337890625 or
 2980         float("0.0000000000000017763568394002504646778106689453125") <>
 2981                      0.0000000000000017763568394002504646778106689453125 or
 2982         float("0.00000000000000088817841970012523233890533447265625") <>
 2983                      0.00000000000000088817841970012523233890533447265625 or
 2984         float("0.000000000000000444089209850062616169452667236328125") <>
 2985                      0.000000000000000444089209850062616169452667236328125 or
 2986         float("0.0000000000000002220446049250313080847263336181640625") <>
 2987                      0.0000000000000002220446049250313080847263336181640625 or
 2988         float("0.00000000000000011102230246251565404236316680908203125") <>
 2989                      0.00000000000000011102230246251565404236316680908203125 or
 2990         float("0.000000000000000055511151231257827021181583404541015625") <>
 2991                      0.000000000000000055511151231257827021181583404541015625 or
 2992         float("0.0000000000000000277555756156289135105907917022705078125") <>
 2993                      0.0000000000000000277555756156289135105907917022705078125 or
 2994         float("0.00000000000000001387778780781445675529539585113525390625") <>
 2995                      0.00000000000000001387778780781445675529539585113525390625 or
 2996         float("0.000000000000000006938893903907228377647697925567626953125") <>
 2997                      0.000000000000000006938893903907228377647697925567626953125 or
 2998         float("0.0000000000000000034694469519536141888238489627838134765625") <>
 2999                      0.0000000000000000034694469519536141888238489627838134765625 or
 3000         float("0.00000000000000000173472347597680709441192448139190673828125") <>
 3001                      0.00000000000000000173472347597680709441192448139190673828125 or
 3002         float("0.000000000000000000867361737988403547205962240695953369140625") <>
 3003                      0.000000000000000000867361737988403547205962240695953369140625 or
 3004         float("0.0000000000000000004336808689942017736029811203479766845703125") <>
 3005                      0.0000000000000000004336808689942017736029811203479766845703125 or
 3006         float("0.00000000000000000021684043449710088680149056017398834228515625") <>
 3007                      0.00000000000000000021684043449710088680149056017398834228515625 or
 3008         float("0.000000000000000000108420217248550443400745280086994171142578125") <>
 3009                      0.000000000000000000108420217248550443400745280086994171142578125 or
 3010         float("0.0000000000000000000542101086242752217003726400434970855712890625") <>
 3011                      0.0000000000000000000542101086242752217003726400434970855712890625 or
 3012         float("0.00000000000000000002710505431213761085018632002174854278564453125") <>
 3013                      0.00000000000000000002710505431213761085018632002174854278564453125 or
 3014         float("0.000000000000000000013552527156068805425093160010874271392822265625") <>
 3015                      0.000000000000000000013552527156068805425093160010874271392822265625 or
 3016         float("0.0000000000000000000067762635780344027125465800054371356964111328125") <>
 3017                      0.0000000000000000000067762635780344027125465800054371356964111328125 or
 3018         float("0.00000000000000000000338813178901720135627329000271856784820556640625") <>
 3019                      0.00000000000000000000338813178901720135627329000271856784820556640625 or
 3020         float("0.000000000000000000001694065894508600678136645001359283924102783203125") <>
 3021                      0.000000000000000000001694065894508600678136645001359283924102783203125 or
 3022         float("0.0000000000000000000008470329472543003390683225006796419620513916015625") <>
 3023                      0.0000000000000000000008470329472543003390683225006796419620513916015625 or
 3024         float("0.00000000000000000000042351647362715016953416125033982098102569580078125") <>
 3025                      0.00000000000000000000042351647362715016953416125033982098102569580078125 or
 3026         float("0.000000000000000000000211758236813575084767080625169910490512847900390625") <>
 3027                      0.000000000000000000000211758236813575084767080625169910490512847900390625 or
 3028         float("0.0000000000000000000001058791184067875423835403125849552452564239501953125") <>
 3029                      0.0000000000000000000001058791184067875423835403125849552452564239501953125 or
 3030         float("0.00000000000000000000005293955920339377119177015629247762262821197509765625") <>
 3031                      0.00000000000000000000005293955920339377119177015629247762262821197509765625 or
 3032         float("0.000000000000000000000026469779601696885595885078146238811314105987548828125") <>
 3033                      0.000000000000000000000026469779601696885595885078146238811314105987548828125 then
 3034       writeln(" ***** Parse operator for float does not work correct.");
 3035       okay := FALSE;
 3036     end if;
 3037 
 3038     if  float( "9007199254740991.0") <>  9007199254740991.0 or
 3039         float("-9007199254740991.0") <> -9007199254740991.0 or
 3040         float( "9007199254740991.0") <>  9007199254740990.0 + 1.0 or
 3041         float("-9007199254740991.0") <> -9007199254740990.0 - 1.0 or
 3042         float(striExpr( "9007199254740991.0")) <>  9007199254740991.0 or
 3043         float(striExpr("-9007199254740991.0")) <> -9007199254740991.0 or
 3044         float(striExpr( "9007199254740991.0")) <>  9007199254740990.0 + 1.0 or
 3045         float(striExpr("-9007199254740991.0")) <> -9007199254740990.0 - 1.0 then
 3046       writeln(" ***** Parse operator for maximum or minimum odd value does not work correct.");
 3047       okay := FALSE;
 3048     end if;
 3049 
 3050     if  float("1.0e-308") <> 1.0e-308 or
 3051         float("1.0e-307") <> 1.0e-307 or
 3052         float("1.0e-300") <> 1.0e-300 or
 3053         float("1.0e-275") <> 1.0e-275 or
 3054         float("1.0e-250") <> 1.0e-250 or
 3055         float("1.0e-225") <> 1.0e-225 or
 3056         float("1.0e-200") <> 1.0e-200 or
 3057         float("1.0e-175") <> 1.0e-175 or
 3058         float("1.0e-150") <> 1.0e-150 or
 3059         float("1.0e-125") <> 1.0e-125 or
 3060         float("1.0e-101") <> 1.0e-101 or
 3061         float("1.0e-100") <> 1.0e-100 or
 3062         float("1.0e-99" ) <> 1.0e-99  or
 3063         float("1.0e-75" ) <> 1.0e-75  or
 3064         float("1.0e-50" ) <> 1.0e-50  or
 3065         float("1.0e-25" ) <> 1.0e-25  or
 3066         float("1.0e-20" ) <> 1.0e-20  or
 3067         float("1.0e-15" ) <> 1.0e-15  or
 3068         float("1.0e-11" ) <> 1.0e-11  or
 3069         float("1.0e-10" ) <> 1.0e-10  or
 3070         float("1.0e-9"  ) <> 1.0e-9   or
 3071         float("1.0e-2"  ) <> 1.0e-2   or
 3072         float("1.0e-1"  ) <> 1.0e-1   or
 3073         float("1.0e0"   ) <> 1.0e0    or
 3074         float("1.0e1"   ) <> 1.0e1    or
 3075         float("1.0e2"   ) <> 1.0e2    or
 3076         float("1.0e9"   ) <> 1.0e9    or
 3077         float("1.0e10"  ) <> 1.0e10   or
 3078         float("1.0e11"  ) <> 1.0e11   or
 3079         float("1.0e15"  ) <> 1.0e15   or
 3080         float("1.0e20"  ) <> 1.0e20   or
 3081         float("1.0e25"  ) <> 1.0e25   or
 3082         float("1.0e50"  ) <> 1.0e50   or
 3083         float("1.0e75"  ) <> 1.0e75   or
 3084         float("1.0e99"  ) <> 1.0e99   or
 3085         float("1.0e100" ) <> 1.0e100  or
 3086         float("1.0e101" ) <> 1.0e101  or
 3087         float("1.0e125" ) <> 1.0e125  or
 3088         float("1.0e150" ) <> 1.0e150  or
 3089         float("1.0e175" ) <> 1.0e175  or
 3090         float("1.0e200" ) <> 1.0e200  or
 3091         float("1.0e225" ) <> 1.0e225  or
 3092         float("1.0e250" ) <> 1.0e250  or
 3093         float("1.0e275" ) <> 1.0e275  or
 3094         float("1.0e300" ) <> 1.0e300  or
 3095         float("1.0e307" ) <> 1.0e307  or
 3096         float("1.0e308" ) <> 1.0e308  or
 3097         float(striExpr("1.0e-308")) <> 1.0e-308 or
 3098         float(striExpr("1.0e-307")) <> 1.0e-307 or
 3099         float(striExpr("1.0e-300")) <> 1.0e-300 or
 3100         float(striExpr("1.0e-275")) <> 1.0e-275 or
 3101         float(striExpr("1.0e-250")) <> 1.0e-250 or
 3102         float(striExpr("1.0e-225")) <> 1.0e-225 or
 3103         float(striExpr("1.0e-200")) <> 1.0e-200 or
 3104         float(striExpr("1.0e-175")) <> 1.0e-175 or
 3105         float(striExpr("1.0e-150")) <> 1.0e-150 or
 3106         float(striExpr("1.0e-125")) <> 1.0e-125 or
 3107         float(striExpr("1.0e-101")) <> 1.0e-101 or
 3108         float(striExpr("1.0e-100")) <> 1.0e-100 or
 3109         float(striExpr("1.0e-99" )) <> 1.0e-99  or
 3110         float(striExpr("1.0e-75" )) <> 1.0e-75  or
 3111         float(striExpr("1.0e-50" )) <> 1.0e-50  or
 3112         float(striExpr("1.0e-25" )) <> 1.0e-25  or
 3113         float(striExpr("1.0e-20" )) <> 1.0e-20  or
 3114         float(striExpr("1.0e-15" )) <> 1.0e-15  or
 3115         float(striExpr("1.0e-11" )) <> 1.0e-11  or
 3116         float(striExpr("1.0e-10" )) <> 1.0e-10  or
 3117         float(striExpr("1.0e-9"  )) <> 1.0e-9   or
 3118         float(striExpr("1.0e-2"  )) <> 1.0e-2   or
 3119         float(striExpr("1.0e-1"  )) <> 1.0e-1   or
 3120         float(striExpr("1.0e0"   )) <> 1.0e0    or
 3121         float(striExpr("1.0e1"   )) <> 1.0e1    or
 3122         float(striExpr("1.0e2"   )) <> 1.0e2    or
 3123         float(striExpr("1.0e9"   )) <> 1.0e9    or
 3124         float(striExpr("1.0e10"  )) <> 1.0e10   or
 3125         float(striExpr("1.0e11"  )) <> 1.0e11   or
 3126         float(striExpr("1.0e15"  )) <> 1.0e15   or
 3127         float(striExpr("1.0e20"  )) <> 1.0e20   or
 3128         float(striExpr("1.0e25"  )) <> 1.0e25   or
 3129         float(striExpr("1.0e50"  )) <> 1.0e50   or
 3130         float(striExpr("1.0e75"  )) <> 1.0e75   or
 3131         float(striExpr("1.0e99"  )) <> 1.0e99   or
 3132         float(striExpr("1.0e100" )) <> 1.0e100  or
 3133         float(striExpr("1.0e101" )) <> 1.0e101  or
 3134         float(striExpr("1.0e125" )) <> 1.0e125  or
 3135         float(striExpr("1.0e150" )) <> 1.0e150  or
 3136         float(striExpr("1.0e175" )) <> 1.0e175  or
 3137         float(striExpr("1.0e200" )) <> 1.0e200  or
 3138         float(striExpr("1.0e225" )) <> 1.0e225  or
 3139         float(striExpr("1.0e250" )) <> 1.0e250  or
 3140         float(striExpr("1.0e275" )) <> 1.0e275  or
 3141         float(striExpr("1.0e300" )) <> 1.0e300  or
 3142         float(striExpr("1.0e307" )) <> 1.0e307  or
 3143         float(striExpr("1.0e308" )) <> 1.0e308  then
 3144       writeln(" ***** Parse operator for float with exponent does not work correct.");
 3145       okay := FALSE;
 3146     end if;
 3147 
 3148     if  float(str(1.0e-308)) <> 1.0e-308 or
 3149         float(str(1.0e-307)) <> 1.0e-307 or
 3150         float(str(1.0e-300)) <> 1.0e-300 or
 3151         float(str(1.0e-275)) <> 1.0e-275 or
 3152         float(str(1.0e-250)) <> 1.0e-250 or
 3153         float(str(1.0e-225)) <> 1.0e-225 or
 3154         float(str(1.0e-200)) <> 1.0e-200 or
 3155         float(str(1.0e-175)) <> 1.0e-175 or
 3156         float(str(1.0e-150)) <> 1.0e-150 or
 3157         float(str(1.0e-125)) <> 1.0e-125 or
 3158         float(str(1.0e-101)) <> 1.0e-101 or
 3159         float(str(1.0e-100)) <> 1.0e-100 or
 3160         float(str(1.0e-99 )) <> 1.0e-99  or
 3161         float(str(1.0e-75 )) <> 1.0e-75  or
 3162         float(str(1.0e-50 )) <> 1.0e-50  or
 3163         float(str(1.0e-25 )) <> 1.0e-25  or
 3164         float(str(1.0e-20 )) <> 1.0e-20  or
 3165         float(str(1.0e-15 )) <> 1.0e-15  or
 3166         float(str(1.0e-11 )) <> 1.0e-11  or
 3167         float(str(1.0e-10 )) <> 1.0e-10  or
 3168         float(str(1.0e-9  )) <> 1.0e-9   or
 3169         float(str(1.0e-2  )) <> 1.0e-2   or
 3170         float(str(1.0e-1  )) <> 1.0e-1   or
 3171         float(str(1.0e0   )) <> 1.0e0    or
 3172         float(str(1.0e1   )) <> 1.0e1    or
 3173         float(str(1.0e2   )) <> 1.0e2    or
 3174         float(str(1.0e9   )) <> 1.0e9    or
 3175         float(str(1.0e10  )) <> 1.0e10   or
 3176         float(str(1.0e11  )) <> 1.0e11   or
 3177         float(str(1.0e15  )) <> 1.0e15   or
 3178         float(str(1.0e20  )) <> 1.0e20   or
 3179         float(str(1.0e25  )) <> 1.0e25   or
 3180         float(str(1.0e50  )) <> 1.0e50   or
 3181         float(str(1.0e75  )) <> 1.0e75   or
 3182         float(str(1.0e99  )) <> 1.0e99   or
 3183         float(str(1.0e100 )) <> 1.0e100  or
 3184         float(str(1.0e101 )) <> 1.0e101  or
 3185         float(str(1.0e125 )) <> 1.0e125  or
 3186         float(str(1.0e150 )) <> 1.0e150  or
 3187         float(str(1.0e175 )) <> 1.0e175  or
 3188         float(str(1.0e200 )) <> 1.0e200  or
 3189         float(str(1.0e225 )) <> 1.0e225  or
 3190         float(str(1.0e250 )) <> 1.0e250  or
 3191         float(str(1.0e275 )) <> 1.0e275  or
 3192         float(str(1.0e300 )) <> 1.0e300  or
 3193         float(str(1.0e307 )) <> 1.0e307  or
 3194         float(str(1.0e308 )) <> 1.0e308  or
 3195         float(str(floatExpr(1.0e-308))) <> 1.0e-308 or
 3196         float(str(floatExpr(1.0e-307))) <> 1.0e-307 or
 3197         float(str(floatExpr(1.0e-300))) <> 1.0e-300 or
 3198         float(str(floatExpr(1.0e-275))) <> 1.0e-275 or
 3199         float(str(floatExpr(1.0e-250))) <> 1.0e-250 or
 3200         float(str(floatExpr(1.0e-225))) <> 1.0e-225 or
 3201         float(str(floatExpr(1.0e-200))) <> 1.0e-200 or
 3202         float(str(floatExpr(1.0e-175))) <> 1.0e-175 or
 3203         float(str(floatExpr(1.0e-150))) <> 1.0e-150 or
 3204         float(str(floatExpr(1.0e-125))) <> 1.0e-125 or
 3205         float(str(floatExpr(1.0e-101))) <> 1.0e-101 or
 3206         float(str(floatExpr(1.0e-100))) <> 1.0e-100 or
 3207         float(str(floatExpr(1.0e-99 ))) <> 1.0e-99  or
 3208         float(str(floatExpr(1.0e-75 ))) <> 1.0e-75  or
 3209         float(str(floatExpr(1.0e-50 ))) <> 1.0e-50  or
 3210         float(str(floatExpr(1.0e-25 ))) <> 1.0e-25  or
 3211         float(str(floatExpr(1.0e-20 ))) <> 1.0e-20  or
 3212         float(str(floatExpr(1.0e-15 ))) <> 1.0e-15  or
 3213         float(str(floatExpr(1.0e-11 ))) <> 1.0e-11  or
 3214         float(str(floatExpr(1.0e-10 ))) <> 1.0e-10  or
 3215         float(str(floatExpr(1.0e-9  ))) <> 1.0e-9   or
 3216         float(str(floatExpr(1.0e-2  ))) <> 1.0e-2   or
 3217         float(str(floatExpr(1.0e-1  ))) <> 1.0e-1   or
 3218         float(str(floatExpr(1.0e0   ))) <> 1.0e0    or
 3219         float(str(floatExpr(1.0e1   ))) <> 1.0e1    or
 3220         float(str(floatExpr(1.0e2   ))) <> 1.0e2    or
 3221         float(str(floatExpr(1.0e9   ))) <> 1.0e9    or
 3222         float(str(floatExpr(1.0e10  ))) <> 1.0e10   or
 3223         float(str(floatExpr(1.0e11  ))) <> 1.0e11   or
 3224         float(str(floatExpr(1.0e15  ))) <> 1.0e15   or
 3225         float(str(floatExpr(1.0e20  ))) <> 1.0e20   or
 3226         float(str(floatExpr(1.0e25  ))) <> 1.0e25   or
 3227         float(str(floatExpr(1.0e50  ))) <> 1.0e50   or
 3228         float(str(floatExpr(1.0e75  ))) <> 1.0e75   or
 3229         float(str(floatExpr(1.0e99  ))) <> 1.0e99   or
 3230         float(str(floatExpr(1.0e100 ))) <> 1.0e100  or
 3231         float(str(floatExpr(1.0e101 ))) <> 1.0e101  or
 3232         float(str(floatExpr(1.0e125 ))) <> 1.0e125  or
 3233         float(str(floatExpr(1.0e150 ))) <> 1.0e150  or
 3234         float(str(floatExpr(1.0e175 ))) <> 1.0e175  or
 3235         float(str(floatExpr(1.0e200 ))) <> 1.0e200  or
 3236         float(str(floatExpr(1.0e225 ))) <> 1.0e225  or
 3237         float(str(floatExpr(1.0e250 ))) <> 1.0e250  or
 3238         float(str(floatExpr(1.0e275 ))) <> 1.0e275  or
 3239         float(str(floatExpr(1.0e300 ))) <> 1.0e300  or
 3240         float(str(floatExpr(1.0e307 ))) <> 1.0e307  or
 3241         float(str(floatExpr(1.0e308 ))) <> 1.0e308  then
 3242       writeln(" ***** Convert float to string and parse back to float does not work correct.");
 3243       okay := FALSE;
 3244     end if;
 3245 
 3246     if  not raisesRangeError(float(          " 0.0" )) or
 3247         not raisesRangeError(float(          "asdf" )) or
 3248         not raisesRangeError(float(          "0.0a" )) or
 3249         not raisesRangeError(float(           "1,2" )) or
 3250         not raisesRangeError(float(           "0x1" )) or
 3251         not raisesRangeError(float(           "0X1" )) or
 3252         not raisesRangeError(float(         "0x1.2" )) or
 3253         not raisesRangeError(float(         "0X1.3" )) or
 3254         not raisesRangeError(float(             "€" )) or
 3255         not raisesRangeError(float(striExpr( " 0.0"))) or
 3256         not raisesRangeError(float(striExpr( "asdf"))) or
 3257         not raisesRangeError(float(striExpr( "0.0a"))) or
 3258         not raisesRangeError(float(striExpr(  "1,2"))) or
 3259         not raisesRangeError(float(striExpr(  "0x1"))) or
 3260         not raisesRangeError(float(striExpr(  "0X1"))) or
 3261         not raisesRangeError(float(striExpr("0x1.2"))) or
 3262         not raisesRangeError(float(striExpr("0X1.3"))) or
 3263         not raisesRangeError(float(striExpr(    "€"))) then
 3264       writeln(" ***** Parse operator for float with illegal literal does not raise RANGE_ERROR.");
 3265       okay := FALSE;
 3266     end if;
 3267 
 3268     if okay then
 3269       writeln("Parsing of strings with float literals works correct.");
 3270     else
 3271       writeln(" ***** Parsing of strings with float literals does not work correct.");
 3272     end if;
 3273   end func;
 3274 
 3275 
 3276 const proc: check_str is func
 3277   local
 3278     var boolean: okay is TRUE;
 3279   begin
 3280     if  str(-10000000000000000.0)  <> "-10000000000000000.0" or
 3281         str( -9007199254740992.0)  <>  "-9007199254740992.0" or
 3282         str( -4503599627370496.0)  <>  "-4503599627370496.0" or
 3283         str( -2251799813685248.0)  <>  "-2251799813685248.0" or
 3284         str( -1125899906842624.0)  <>  "-1125899906842624.0" or
 3285         str( -1000000000000000.0)  <>  "-1000000000000000.0" or
 3286         str(  -999999999999999.0)  <>   "-999999999999999.0" or
 3287         str(  -234567891234567.0)  <>   "-234567891234567.0" or
 3288         str(  -100000000000000.0)  <>   "-100000000000000.0" or
 3289         str(   -99999999999999.0)  <>    "-99999999999999.0" or
 3290         str(   -34567891234567.0)  <>    "-34567891234567.0" or
 3291         str(   -10000000000000.0)  <>    "-10000000000000.0" or
 3292         str(    -9999999999999.0)  <>     "-9999999999999.0" or
 3293         str(    -4567891234567.0)  <>     "-4567891234567.0" or
 3294         str(    -1000000000000.0)  <>     "-1000000000000.0" or
 3295         str(     -999999999999.0)  <>      "-999999999999.0" or
 3296         str(     -567891234567.0)  <>      "-567891234567.0" or
 3297         str(     -100000000000.0)  <>      "-100000000000.0" or
 3298         str(      -99999999999.0)  <>       "-99999999999.0" or
 3299         str(      -67891234567.0)  <>       "-67891234567.0" or
 3300         str(      -10000000000.0)  <>       "-10000000000.0" or
 3301         str(       -9999999999.0)  <>        "-9999999999.0" or
 3302         str(       -7891234567.0)  <>        "-7891234567.0" or
 3303         str(       -1000000000.0)  <>        "-1000000000.0" or
 3304         str(        -999999999.0)  <>         "-999999999.0" or
 3305         str(        -891234567.0)  <>         "-891234567.0" or
 3306         str(        -100000000.0)  <>         "-100000000.0" or
 3307         str(         -99999999.0)  <>          "-99999999.0" or
 3308         str(         -91234567.0)  <>          "-91234567.0" or
 3309         str(         -10000000.0)  <>          "-10000000.0" or
 3310         str(          -9999999.0)  <>           "-9999999.0" or
 3311         str(          -1234567.0)  <>           "-1234567.0" or
 3312         str(          -1000000.0)  <>           "-1000000.0" or
 3313         str(           -999999.0)  <>            "-999999.0" or
 3314         str(           -234567.0)  <>            "-234567.0" or
 3315         str(           -100000.0)  <>            "-100000.0" or
 3316         str(            -99999.0)  <>             "-99999.0" or
 3317         str(            -34567.0)  <>             "-34567.0" or
 3318         str(            -10000.0)  <>             "-10000.0" or
 3319         str(             -9999.0)  <>              "-9999.0" or
 3320         str(             -4567.0)  <>              "-4567.0" or
 3321         str(             -1000.0)  <>              "-1000.0" or
 3322         str(              -999.0)  <>               "-999.0" or
 3323         str(              -567.0)  <>               "-567.0" or
 3324         str(              -100.0)  <>               "-100.0" or
 3325         str(               -99.0)  <>                "-99.0" or
 3326         str(               -67.0)  <>                "-67.0" or
 3327         str(               -10.0)  <>                "-10.0" or
 3328         str(                -9.0)  <>                 "-9.0" or
 3329         str(                -7.0)  <>                 "-7.0" or
 3330         str(                -1.0)  <>                 "-1.0" or
 3331         str(                 0.0)  <>                  "0.0" or
 3332         str(                 1.0)  <>                  "1.0" or
 3333         str(                 7.0)  <>                  "7.0" or
 3334         str(                 9.0)  <>                  "9.0" or
 3335         str(                10.0)  <>                 "10.0" or
 3336         str(                67.0)  <>                 "67.0" or
 3337         str(                99.0)  <>                 "99.0" or
 3338         str(               100.0)  <>                "100.0" or
 3339         str(               567.0)  <>                "567.0" or
 3340         str(               999.0)  <>                "999.0" or
 3341         str(              1000.0)  <>               "1000.0" or
 3342         str(              4567.0)  <>               "4567.0" or
 3343         str(              9999.0)  <>               "9999.0" or
 3344         str(             10000.0)  <>              "10000.0" or
 3345         str(             34567.0)  <>              "34567.0" or
 3346         str(             99999.0)  <>              "99999.0" or
 3347         str(            100000.0)  <>             "100000.0" or
 3348         str(            234567.0)  <>             "234567.0" or
 3349         str(            999999.0)  <>             "999999.0" or
 3350         str(           1000000.0)  <>            "1000000.0" or
 3351         str(           1234567.0)  <>            "1234567.0" or
 3352         str(           9999999.0)  <>            "9999999.0" or
 3353         str(          10000000.0)  <>           "10000000.0" or
 3354         str(          91234567.0)  <>           "91234567.0" or
 3355         str(          99999999.0)  <>           "99999999.0" or
 3356         str(         100000000.0)  <>          "100000000.0" or
 3357         str(         891234567.0)  <>          "891234567.0" or
 3358         str(         999999999.0)  <>          "999999999.0" or
 3359         str(        1000000000.0)  <>         "1000000000.0" or
 3360         str(        7891234567.0)  <>         "7891234567.0" or
 3361         str(        9999999999.0)  <>         "9999999999.0" or
 3362         str(       10000000000.0)  <>        "10000000000.0" or
 3363         str(       67891234567.0)  <>        "67891234567.0" or
 3364         str(       99999999999.0)  <>        "99999999999.0" or
 3365         str(      100000000000.0)  <>       "100000000000.0" or
 3366         str(      567891234567.0)  <>       "567891234567.0" or
 3367         str(      999999999999.0)  <>       "999999999999.0" or
 3368         str(     1000000000000.0)  <>      "1000000000000.0" or
 3369         str(     4567891234567.0)  <>      "4567891234567.0" or
 3370         str(     9999999999999.0)  <>      "9999999999999.0" or
 3371         str(    10000000000000.0)  <>     "10000000000000.0" or
 3372         str(    34567891234567.0)  <>     "34567891234567.0" or
 3373         str(    99999999999999.0)  <>     "99999999999999.0" or
 3374         str(   100000000000000.0)  <>    "100000000000000.0" or
 3375         str(   234567891234567.0)  <>    "234567891234567.0" or
 3376         str(   999999999999999.0)  <>    "999999999999999.0" or
 3377         str(  1000000000000000.0)  <>   "1000000000000000.0" or
 3378         str(  1125899906842624.0)  <>   "1125899906842624.0" or
 3379         str(  2251799813685248.0)  <>   "2251799813685248.0" or
 3380         str(  4503599627370496.0)  <>   "4503599627370496.0" or
 3381         str(  9007199254740992.0)  <>   "9007199254740992.0" or
 3382         str( 10000000000000000.0)  <>  "10000000000000000.0" or
 3383         str( -4503599627370495.5)  <>  "-4503599627370495.5" or
 3384         str( -4000000000000000.5)  <>  "-4000000000000000.5" or
 3385         str( -3000000000000000.5)  <>  "-3000000000000000.5" or
 3386         str( -2251799813685248.5)  <>  "-2251799813685248.5" or
 3387         str(  2251799813685248.5)  <>   "2251799813685248.5" or
 3388         str(  3000000000000000.5)  <>   "3000000000000000.5" or
 3389         str(  4000000000000000.5)  <>   "4000000000000000.5" or
 3390         str(  4503599627370495.5)  <>   "4503599627370495.5" or
 3391         str( 0.999999999999999)      <>  "0.999999999999999" or
 3392         str( 0.1)                    <>  "0.1" or
 3393         str( 0.0999999999999999)     <>  "0.0999999999999999" or
 3394         str( 0.01)                   <>  "0.01" or
 3395         str( 0.00999999999999999)    <>  "0.00999999999999999" or
 3396         str( 0.001)                  <>  "0.001" or
 3397         str( 0.000999999999999999)   <>  "0.000999999999999999" or
 3398         str( 0.0001)                 <>  "0.0001" or
 3399         str( 0.0000999999999999999)  <>  "0.0000999999999999999" or
 3400         str( 0.00001)                <>  "0.00001" or
 3401         str( 0.00000999999999999999) <>  "0.00000999999999999999" or
 3402         str( 0.000001)               <>  "0.000001" or
 3403         str( 9.99999999999999e-7)    <>  "0.000000999999999999999" or
 3404         str( 1.00000000000000e-7)    <>  "0.0000001" or
 3405         str( 9.99999999999999e-10)   <>  "0.000000000999999999999999" or
 3406         str( 1.00000000000000e-10)   <>  "0.0000000001" or
 3407         str( 9.99999999999999e-15)   <>  "0.00000000000000999999999999999" or
 3408         str( 1.00000000000000e-15)   <>  "0.000000000000001" or
 3409         str( 9.99999999999999e-20)   <>  "0.0000000000000000000999999999999999" or
 3410         str( 1.00000000000000e-20)   <>  "0.00000000000000000001" or
 3411         str( 9.99999999999999e-25)   <>  "0.000000000000000000000000999999999999999" or
 3412         str( 1.00000000000000e-25)   <>  "0.0000000000000000000000001" or
 3413         str( 9.99999999999999e-30)   <>  "0.00000000000000000000000000000999999999999999" or
 3414         str( 1.00000000000000e-30)   <>  "0.000000000000000000000000000001" or
 3415         str( 9.99999999999999e-35)   <>  "0.0000000000000000000000000000000000999999999999999" or
 3416         str( 1.00000000000000e-35)   <>  "0.00000000000000000000000000000000001" or
 3417         str(-0.999999999999999)      <> "-0.999999999999999" or
 3418         str(-0.1)                    <> "-0.1" or
 3419         str(-0.0999999999999999)     <> "-0.0999999999999999" or
 3420         str(-0.01)                   <> "-0.01" or
 3421         str(-0.00999999999999999)    <> "-0.00999999999999999" or
 3422         str(-0.001)                  <> "-0.001" or
 3423         str(-0.000999999999999999)   <> "-0.000999999999999999" or
 3424         str(-0.0001)                 <> "-0.0001" or
 3425         str(-0.0000999999999999999)  <> "-0.0000999999999999999" or
 3426         str(-0.00001)                <> "-0.00001" or
 3427         str(-0.00000999999999999999) <> "-0.00000999999999999999" or
 3428         str(-0.000001)               <> "-0.000001" or
 3429         str(-9.99999999999999e-7)    <> "-0.000000999999999999999" or
 3430         str(-1.00000000000000e-7)    <> "-0.0000001" or
 3431         str(-9.99999999999999e-10)   <> "-0.000000000999999999999999" or
 3432         str(-1.00000000000000e-10)   <> "-0.0000000001" or
 3433         str(-9.99999999999999e-15)   <> "-0.00000000000000999999999999999" or
 3434         str(-1.00000000000000e-15)   <> "-0.000000000000001" or
 3435         str(-9.99999999999999e-20)   <> "-0.0000000000000000000999999999999999" or
 3436         str(-1.00000000000000e-20)   <> "-0.00000000000000000001" or
 3437         str(-9.99999999999999e-25)   <> "-0.000000000000000000000000999999999999999" or
 3438         str(-1.00000000000000e-25)   <> "-0.0000000000000000000000001" or
 3439         str(-9.99999999999999e-30)   <> "-0.00000000000000000000000000000999999999999999" or
 3440         str(-1.00000000000000e-30)   <> "-0.000000000000000000000000000001" or
 3441         str(-9.99999999999999e-35)   <> "-0.0000000000000000000000000000000000999999999999999" or
 3442         str(-1.00000000000000e-35)   <> "-0.00000000000000000000000000000000001" or
 3443         str( 12345.0e15) <>  "12345000000000000000.0" or
 3444         str( 12345.0e14) <>   "1234500000000000000.0" or
 3445         str( 12345.0e13) <>    "123450000000000000.0" or
 3446         str( 12345.0e12) <>     "12345000000000000.0" or
 3447         str( 12345.0e10) <>       "123450000000000.0" or
 3448         str( 12345.0e8)  <>         "1234500000000.0" or
 3449         str( 12345.0e6)  <>           "12345000000.0" or
 3450         str( 12345.0e4)  <>             "123450000.0" or
 3451         str( 12345.0e2)  <>               "1234500.0" or
 3452         str( 12345.0e1)  <>                "123450.0" or
 3453         str( 12345.0e0)  <>                 "12345.0" or
 3454         str( 12345.0e-1)  <>                 "1234.5" or
 3455         str( 12345.0e-2)  <>                  "123.45" or
 3456         str( 12345.0e-3)  <>                   "12.345" or
 3457         str( 12345.0e-4)  <>                    "1.2345" or
 3458         str( 12345.0e-5)  <>                    "0.12345" or
 3459         str( 12345.0e-6)  <>                    "0.012345" or
 3460         str( 12345.0e-7)  <>                    "0.0012345" or
 3461         str( 12345.0e-8)  <>                    "0.00012345" or
 3462         str( 12345.0e-10)  <>                   "0.0000012345" or
 3463         str( 12345.0e-12)  <>                   "0.000000012345" or
 3464         str( 12345.0e-14)  <>                   "0.00000000012345" or
 3465         str( 12345.0e-16)  <>                   "0.0000000000012345" or
 3466         str( 12345.0e-18)  <>                   "0.000000000000012345" or
 3467         str( 12345.0e-20)  <>                   "0.00000000000000012345" or
 3468         str( 12345.0e-25)  <>                   "0.0000000000000000000012345" or
 3469         str( 12345.0e-30)  <>                   "0.000000000000000000000000012345" or
 3470         str( 12345.0e-35)  <>                   "0.00000000000000000000000000000012345" or
 3471         str( 12345.0e-40)  <>                   "0.0000000000000000000000000000000000012345" or
 3472         str( 12345.0e-45)  <>                   "0.000000000000000000000000000000000000000012345" or
 3473         str(-12345.0e15) <> "-12345000000000000000.0" or
 3474         str(-12345.0e14) <>  "-1234500000000000000.0" or
 3475         str(-12345.0e13) <>   "-123450000000000000.0" or
 3476         str(-12345.0e12) <>    "-12345000000000000.0" or
 3477         str(-12345.0e10) <>      "-123450000000000.0" or
 3478         str(-12345.0e8)  <>        "-1234500000000.0" or
 3479         str(-12345.0e6)  <>          "-12345000000.0" or
 3480         str(-12345.0e4)  <>            "-123450000.0" or
 3481         str(-12345.0e2)  <>              "-1234500.0" or
 3482         str(-12345.0e1)  <>               "-123450.0" or
 3483         str(-12345.0e0)  <>                "-12345.0" or
 3484         str(-12345.0e-1)  <>                "-1234.5" or
 3485         str(-12345.0e-2)  <>                 "-123.45" or
 3486         str(-12345.0e-3)  <>                  "-12.345" or
 3487         str(-12345.0e-4)  <>                   "-1.2345" or
 3488         str(-12345.0e-5)  <>                   "-0.12345" or
 3489         str(-12345.0e-6)  <>                   "-0.012345" or
 3490         str(-12345.0e-7)  <>                   "-0.0012345" or
 3491         str(-12345.0e-8)  <>                   "-0.00012345" or
 3492         str(-12345.0e-10)  <>                  "-0.0000012345" or
 3493         str(-12345.0e-12)  <>                  "-0.000000012345" or
 3494         str(-12345.0e-14)  <>                  "-0.00000000012345" or
 3495         str(-12345.0e-16)  <>                  "-0.0000000000012345" or
 3496         str(-12345.0e-18)  <>                  "-0.000000000000012345" or
 3497         str(-12345.0e-20)  <>                  "-0.00000000000000012345" or
 3498         str(-12345.0e-25)  <>                  "-0.0000000000000000000012345" or
 3499         str(-12345.0e-30)  <>                  "-0.000000000000000000000000012345" or
 3500         str(-12345.0e-35)  <>                  "-0.00000000000000000000000000000012345" or
 3501         str(-12345.0e-40)  <>                  "-0.0000000000000000000000000000000000012345" or
 3502         str(-12345.0e-45)  <>                  "-0.000000000000000000000000000000000000000012345" or
 3503         str(                 0.00000123456789012345) <>                  "0.00000123456789012345" or
 3504         str(                 0.0000123456789012345)  <>                  "0.0000123456789012345" or
 3505         str(                 0.000123456789012345)   <>                  "0.000123456789012345" or
 3506         str(                 0.00123456789012345)    <>                  "0.00123456789012345" or
 3507         str(                 0.0123456789012345)     <>                  "0.0123456789012345" or
 3508         str(                 0.123456789012345)      <>                  "0.123456789012345" or
 3509         str(                 1.23456789012345)       <>                  "1.23456789012345" or
 3510         str(                12.3456789012345)        <>                 "12.3456789012345" or
 3511         str(               123.456789012345)         <>                "123.456789012345" or
 3512         str(              1234.56789012345)          <>               "1234.56789012345" or
 3513         str(             12345.6789012345)           <>              "12345.6789012345" or
 3514         str(            123456.789012345)            <>             "123456.789012345" or
 3515         str(           1234567.89012345)             <>            "1234567.89012345" or
 3516         str(          12345678.9012345)              <>           "12345678.9012345" or
 3517         str(         123456789.012345)               <>          "123456789.012345" or
 3518         str(        1234567890.12345)                <>         "1234567890.12345" or
 3519         str(       12345678901.2345)                 <>        "12345678901.2345" or
 3520         str(      123456789012.345)                  <>       "123456789012.345" or
 3521         str(     1234567890123.45)                   <>      "1234567890123.45" or
 3522         str(    12345678901234.5)                    <>     "12345678901234.5" or
 3523         str(   123456789012345.0)                    <>    "123456789012345.0" or
 3524         str(  1234567890123450.0)                    <>   "1234567890123450.0" or
 3525         str( 12345678901234500.0)                    <>  "12345678901234500.0" or
 3526         str(                -0.00000123456789012345) <>                 "-0.00000123456789012345" or
 3527         str(                -0.0000123456789012345)  <>                 "-0.0000123456789012345" or
 3528         str(                -0.000123456789012345)   <>                 "-0.000123456789012345" or
 3529         str(                -0.00123456789012345)    <>                 "-0.00123456789012345" or
 3530         str(                -0.0123456789012345)     <>                 "-0.0123456789012345" or
 3531         str(                -0.123456789012345)      <>                 "-0.123456789012345" or
 3532         str(                -1.23456789012345)       <>                 "-1.23456789012345" or
 3533         str(               -12.3456789012345)        <>                "-12.3456789012345" or
 3534         str(              -123.456789012345)         <>               "-123.456789012345" or
 3535         str(             -1234.56789012345)          <>              "-1234.56789012345" or
 3536         str(            -12345.6789012345)           <>             "-12345.6789012345" or
 3537         str(           -123456.789012345)            <>            "-123456.789012345" or
 3538         str(          -1234567.89012345)             <>           "-1234567.89012345" or
 3539         str(         -12345678.9012345)              <>          "-12345678.9012345" or
 3540         str(        -123456789.012345)               <>         "-123456789.012345" or
 3541         str(       -1234567890.12345)                <>        "-1234567890.12345" or
 3542         str(      -12345678901.2345)                 <>       "-12345678901.2345" or
 3543         str(     -123456789012.345)                  <>      "-123456789012.345" or
 3544         str(    -1234567890123.45)                   <>     "-1234567890123.45" or
 3545         str(   -12345678901234.5)                    <>    "-12345678901234.5" or
 3546         str(  -123456789012345.0)                    <>   "-123456789012345.0" or
 3547         str( -1234567890123450.0)                    <>  "-1234567890123450.0" or
 3548         str(-12345678901234500.0)                    <> "-12345678901234500.0" or
 3549         str(1.0e-308) <> "0." & "0" mult 307 & "1" or
 3550         str(1.0e-307) <> "0." & "0" mult 306 & "1" or
 3551         str(1.0e-300) <> "0." & "0" mult 299 & "1" or
 3552         str(1.0e-275) <> "0." & "0" mult 274 & "1" or
 3553         str(1.0e-250) <> "0." & "0" mult 249 & "1" or
 3554         str(1.0e-225) <> "0." & "0" mult 224 & "1" or
 3555         str(1.0e-200) <> "0." & "0" mult 199 & "1" or
 3556         str(1.0e-175) <> "0." & "0" mult 174 & "1" or
 3557         str(1.0e-150) <> "0." & "0" mult 149 & "1" or
 3558         str(1.0e-125) <> "0." & "0" mult 124 & "1" or
 3559         str(1.0e-101) <> "0." & "0" mult 100 & "1" or
 3560         str(1.0e-100) <> "0." & "0" mult  99 & "1" or
 3561         str(1.0e-99)  <> "0." & "0" mult  98 & "1" or
 3562         str(1.0e-75)  <> "0." & "0" mult  74 & "1" or
 3563         str(1.0e-50)  <> "0." & "0" mult  49 & "1" or
 3564         str(1.0e-25)  <> "0." & "0" mult  24 & "1" or
 3565         str(1.0e-20)  <> "0.00000000000000000001" or
 3566         str(1.0e-15)  <> "0.000000000000001" or
 3567         str(1.0e-11)  <> "0.00000000001" or
 3568         str(1.0e-10)  <> "0.0000000001"  or
 3569         str(1.0e-9)   <> "0.000000001"   or
 3570         str(1.0e-2)   <> "0.01"   or
 3571         str(1.0e-1)   <> "0.1"    or
 3572         str(1.0e0)    <> "1.0"    or
 3573         str(1.0e1)    <> "10.0"   or
 3574         str(1.0e2)    <> "100.0"  or
 3575         str(1.0e9)    <> "1000000000.0"  or
 3576         str(1.0e10)   <> "10000000000.0"  or
 3577         str(1.0e11)   <> "100000000000.0"  or
 3578         str(1.0e15)   <> "1000000000000000.0"  or
 3579         str(1.0e20)   <> "100000000000000000000.0" or
 3580         str(                0.0)  <>       "0.0" or
 3581         str(               -0.0)  <>       "0.0" or
 3582         str(                1.0)  <>       "1.0" or
 3583         str(               -1.0)  <>      "-1.0" or
 3584         str(           Infinity)  <>  "Infinity" or
 3585         str(          -Infinity)  <> "-Infinity" or
 3586         str(                NaN)  <>       "NaN" or
 3587         str(floatExpr(  123.456)) <>   "123.456" or
 3588         str(floatExpr( -123.456)) <>  "-123.456" or
 3589         str(floatExpr(      0.0)) <>       "0.0" or
 3590         str(floatExpr(     -0.0)) <>       "0.0" or
 3591         str(floatExpr(      1.0)) <>       "1.0" or
 3592         str(floatExpr(     -1.0)) <>      "-1.0" or
 3593         str(floatExpr( Infinity)) <>  "Infinity" or
 3594         str(floatExpr(-Infinity)) <> "-Infinity" or
 3595         str(floatExpr(      NaN)) <>       "NaN" then
 3596       writeln(" ***** Str function for float does not work correct.");
 3597       okay := FALSE;
 3598     end if;
 3599 
 3600     if  (          0.012345   digits 4)      <> "0.0123"     or
 3601         (          1.2468     digits 2)      <> "1.25"       or
 3602         (          3.1415     digits 0)      <> "3"          or
 3603       # (          0.125      digits 2)      <> "0.12"       or
 3604         (          0.375      digits 2)      <> "0.38"       or
 3605         (          Infinity   digits 5)      <> "Infinity"   or
 3606         (          -Infinity  digits 6)      <> "-Infinity"  or
 3607         (          NaN        digits 7)      <> "NaN"        or
 3608         (          -0.004     digits 2)      <> "0.00"       or
 3609         (          -0.0       digits 0)      <> "0"          or
 3610         (floatExpr(0.012345 ) digits 4)      <> "0.0123"     or
 3611         (floatExpr(1.2468   ) digits 2)      <> "1.25"       or
 3612         (floatExpr(3.1415   ) digits 0)      <> "3"          or
 3613       # (floatExpr(0.125    ) digits 2)      <> "0.12"       or
 3614         (floatExpr(0.375    ) digits 2)      <> "0.38"       or
 3615         (floatExpr(Infinity ) digits 5)      <> "Infinity"   or
 3616         (floatExpr(-Infinity) digits 6)      <> "-Infinity"  or
 3617         (floatExpr(NaN      ) digits 7)      <> "NaN"        or
 3618         (floatExpr(-0.004   ) digits 2)      <> "0.00"       or
 3619         (floatExpr(-0.0     ) digits 0)      <> "0"          then
 3620       writeln(" ***** Digits operator for float does not work correct.");
 3621       okay := FALSE;
 3622     end if;
 3623 
 3624     if (          1.0  digits  0)      <> "1" or
 3625        (          1.0  digits  1)      <> "1.0" or
 3626        (          1.0  digits  2)      <> "1.00" or
 3627        (          1.0  digits  3)      <> "1.000" or
 3628        (          1.0  digits  4)      <> "1.0000" or
 3629        (          1.0  digits  5)      <> "1.00000" or
 3630        (          1.0  digits  6)      <> "1.000000" or
 3631        (          1.0  digits  7)      <> "1.0000000" or
 3632        (          1.0  digits  8)      <> "1.00000000" or
 3633        (          1.0  digits  9)      <> "1.000000000" or
 3634        (          1.0  digits 10)      <> "1.0000000000" or
 3635        (          1.0  digits 11)      <> "1.00000000000" or
 3636        (          1.0  digits 12)      <> "1.000000000000" or
 3637        (          1.0  digits 13)      <> "1.0000000000000" or
 3638        (          1.0  digits 14)      <> "1.00000000000000" or
 3639        (          1.0  digits 15)      <> "1.000000000000000" or
 3640        (          1.0  digits 16)      <> "1.0000000000000000" or
 3641        (          1.0  digits 17)      <> "1.00000000000000000" or
 3642        (          1.0  digits 18)      <> "1.000000000000000000" or
 3643        (          1.0  digits 19)      <> "1.0000000000000000000" or
 3644        (          1.0  digits 20)      <> "1.00000000000000000000" or
 3645        (          1.0  digits 21)      <> "1.000000000000000000000" or
 3646        (          1.0  digits 22)      <> "1.0000000000000000000000" or
 3647        (          1.0  digits 23)      <> "1.00000000000000000000000" or
 3648        (          1.0  digits 24)      <> "1.000000000000000000000000" or
 3649        (          1.0  digits 25)      <> "1.0000000000000000000000000" or
 3650        (          1.0  digits 26)      <> "1.00000000000000000000000000" or
 3651        (          1.0  digits 27)      <> "1.000000000000000000000000000" or
 3652        (          1.0  digits 28)      <> "1.0000000000000000000000000000" or
 3653        (          1.0  digits 29)      <> "1.00000000000000000000000000000" or
 3654        (          1.0  digits 30)      <> "1.000000000000000000000000000000" or
 3655        (          1.0  digits 100)     <> "1." & "0" mult 100 or
 3656        (          1.0  digits 1000)    <> "1." & "0" mult 1000 or
 3657        (          1.0  digits 10000)   <> "1." & "0" mult 10000 or
 3658        (          1.0  digits 100000)  <> "1." & "0" mult 100000 or
 3659        (          1.0  digits 1000000) <> "1." & "0" mult 1000000 or
 3660        (floatExpr(1.0) digits  0)      <> "1" or
 3661        (floatExpr(1.0) digits  1)      <> "1.0" or
 3662        (floatExpr(1.0) digits  2)      <> "1.00" or
 3663        (floatExpr(1.0) digits  3)      <> "1.000" or
 3664        (floatExpr(1.0) digits  4)      <> "1.0000" or
 3665        (floatExpr(1.0) digits  5)      <> "1.00000" or
 3666        (floatExpr(1.0) digits  6)      <> "1.000000" or
 3667        (floatExpr(1.0) digits  7)      <> "1.0000000" or
 3668        (floatExpr(1.0) digits  8)      <> "1.00000000" or
 3669        (floatExpr(1.0) digits  9)      <> "1.000000000" or
 3670        (floatExpr(1.0) digits 10)      <> "1.0000000000" or
 3671        (floatExpr(1.0) digits 11)      <> "1.00000000000" or
 3672        (floatExpr(1.0) digits 12)      <> "1.000000000000" or
 3673        (floatExpr(1.0) digits 13)      <> "1.0000000000000" or
 3674        (floatExpr(1.0) digits 14)      <> "1.00000000000000" or
 3675        (floatExpr(1.0) digits 15)      <> "1.000000000000000" or
 3676        (floatExpr(1.0) digits 16)      <> "1.0000000000000000" or
 3677        (floatExpr(1.0) digits 17)      <> "1.00000000000000000" or
 3678        (floatExpr(1.0) digits 18)      <> "1.000000000000000000" or
 3679        (floatExpr(1.0) digits 19)      <> "1.0000000000000000000" or
 3680        (floatExpr(1.0) digits 20)      <> "1.00000000000000000000" or
 3681        (floatExpr(1.0) digits 21)      <> "1.000000000000000000000" or
 3682        (floatExpr(1.0) digits 22)      <> "1.0000000000000000000000" or
 3683        (floatExpr(1.0) digits 23)      <> "1.00000000000000000000000" or
 3684        (floatExpr(1.0) digits 24)      <> "1.000000000000000000000000" or
 3685        (floatExpr(1.0) digits 25)      <> "1.0000000000000000000000000" or
 3686        (floatExpr(1.0) digits 26)      <> "1.00000000000000000000000000" or
 3687        (floatExpr(1.0) digits 27)      <> "1.000000000000000000000000000" or
 3688        (floatExpr(1.0) digits 28)      <> "1.0000000000000000000000000000" or
 3689        (floatExpr(1.0) digits 29)      <> "1.00000000000000000000000000000" or
 3690        (floatExpr(1.0) digits 30)      <> "1.000000000000000000000000000000" or
 3691        (floatExpr(1.0) digits 100)     <> "1." & "0" mult 100 or
 3692        (floatExpr(1.0) digits 1000)    <> "1." & "0" mult 1000 or
 3693        (floatExpr(1.0) digits 10000)   <> "1." & "0" mult 10000 or
 3694        (floatExpr(1.0) digits 100000)  <> "1." & "0" mult 100000 or
 3695        (floatExpr(1.0) digits 1000000) <> "1." & "0" mult 1000000 then
 3696       writeln(" ***** Digits operator for float with many digits does not work correct.");
 3697       okay := FALSE;
 3698     end if;
 3699 
 3700     if  not raisesRangeError(          3.1415     digits         -1 ) or
 3701         not raisesRangeError(floatExpr(3.1415   ) digits         -1 ) or
 3702         not raisesRangeError(          3.1415     digits intExpr(-1)) or
 3703         not raisesRangeError(floatExpr(3.1415   ) digits intExpr(-1)) then
 3704       writeln(" ***** Digits operator for float with negative precision does not raise RANGE_ERROR.");
 3705       okay := FALSE;
 3706     end if;
 3707 
 3708     if  (          0.012345   sci 4)         <> "1.2345e-2"  or
 3709         (          1.2468     sci 2)         <> "1.25e+0"    or
 3710         (          3.1415     sci 0)         <> "3e+0"       or
 3711       # (          0.125      sci 1)         <> "1.2e-1"     or
 3712         (          0.375      sci 1)         <> "3.8e-1"     or
 3713         (          Infinity   sci 5)         <> "Infinity"   or
 3714         (          -Infinity  sci 6)         <> "-Infinity"  or
 3715         (          NaN        sci 7)         <> "NaN"        or
 3716         (          -0.004     sci 2)         <> "-4.00e-3"   or
 3717         (          -0.0       sci 2)         <> "0.00e+0"    or
 3718         (          -0.0       sci 0)         <> "0e+0"       or
 3719         (floatExpr(0.012345 ) sci 4)         <> "1.2345e-2"  or
 3720         (floatExpr(1.2468   ) sci 2)         <> "1.25e+0"    or
 3721         (floatExpr(3.1415   ) sci 0)         <> "3e+0"       or
 3722       # (floatExpr(0.125    ) sci 1)         <> "1.2e-1"     or
 3723         (floatExpr(0.375    ) sci 1)         <> "3.8e-1"     or
 3724         (floatExpr(Infinity ) sci 5)         <> "Infinity"   or
 3725         (floatExpr(-Infinity) sci 6)         <> "-Infinity"  or
 3726         (floatExpr(NaN      ) sci 7)         <> "NaN"        or
 3727         (floatExpr(-0.004   ) sci 2)         <> "-4.00e-3"   or
 3728         (floatExpr(-0.0     ) sci 2)         <> "0.00e+0"    or
 3729         (floatExpr(-0.0     ) sci 0)         <> "0e+0"       or
 3730         (          0.012345   sci 4 exp 2)   <> "1.2345e-02" or
 3731         (          1.2468e15  sci 2 exp 1)   <> "1.25e+15"   or
 3732         (          3.1415     sci 0 exp 3)   <> "3e+000"     or
 3733       # (          0.125      sci 1 exp 2)   <> "1.2e-01"    or
 3734         (          0.375      sci 1 exp 2)   <> "3.8e-01"    or
 3735         (          Infinity   sci 5 exp 2)   <> "Infinity"   or
 3736         (          -Infinity  sci 6 exp 2)   <> "-Infinity"  or
 3737         (          NaN        sci 7 exp 2)   <> "NaN"        or
 3738         (          -0.004     sci 2 exp 2)   <> "-4.00e-03"  or
 3739         (          -0.0       sci 2 exp 2)   <> "0.00e+00"   or
 3740         (          -0.0       sci 0 exp 2)   <> "0e+00"      or
 3741         (floatExpr(0.012345 ) sci 4 exp 2)   <> "1.2345e-02" or
 3742         (floatExpr(1.2468e15) sci 2 exp 1)   <> "1.25e+15"   or
 3743         (floatExpr(3.1415   ) sci 0 exp 3)   <> "3e+000"     or
 3744       # (floatExpr(0.125    ) sci 1 exp 2)   <> "1.2e-01"    or
 3745         (floatExpr(0.375    ) sci 1 exp 2)   <> "3.8e-01"    or
 3746         (floatExpr(Infinity ) sci 5 exp 2)   <> "Infinity"   or
 3747         (floatExpr(-Infinity) sci 6 exp 2)   <> "-Infinity"  or
 3748         (floatExpr(NaN      ) sci 7 exp 2)   <> "NaN"        or
 3749         (floatExpr(-0.004   ) sci 2 exp 2)   <> "-4.00e-03"  or
 3750         (floatExpr(-0.0     ) sci 2 exp 2)   <> "0.00e+00"   or
 3751         (floatExpr(-0.0     ) sci 0 exp 2)   <> "0e+00"      then
 3752       writeln(" ***** Sci operator for float does not work correct.");
 3753       okay := FALSE;
 3754     end if;
 3755 
 3756     if (          1.0  sci  0)         <> "1e+0" or
 3757        (          1.0  sci  1)         <> "1.0e+0" or
 3758        (          1.0  sci  2)         <> "1.00e+0" or
 3759        (          1.0  sci  3)         <> "1.000e+0" or
 3760        (          1.0  sci  4)         <> "1.0000e+0" or
 3761        (          1.0  sci  5)         <> "1.00000e+0" or
 3762        (          1.0  sci  6)         <> "1.000000e+0" or
 3763        (          1.0  sci  7)         <> "1.0000000e+0" or
 3764        (          1.0  sci  8)         <> "1.00000000e+0" or
 3765        (          1.0  sci  9)         <> "1.000000000e+0" or
 3766        (          1.0  sci 10)         <> "1.0000000000e+0" or
 3767        (          1.0  sci 11)         <> "1.00000000000e+0" or
 3768        (          1.0  sci 12)         <> "1.000000000000e+0" or
 3769        (          1.0  sci 13)         <> "1.0000000000000e+0" or
 3770        (          1.0  sci 14)         <> "1.00000000000000e+0" or
 3771        (          1.0  sci 15)         <> "1.000000000000000e+0" or
 3772        (          1.0  sci 16)         <> "1.0000000000000000e+0" or
 3773        (          1.0  sci 17)         <> "1.00000000000000000e+0" or
 3774        (          1.0  sci 18)         <> "1.000000000000000000e+0" or
 3775        (          1.0  sci 19)         <> "1.0000000000000000000e+0" or
 3776        (          1.0  sci 20)         <> "1.00000000000000000000e+0" or
 3777        (          1.0  sci 21)         <> "1.000000000000000000000e+0" or
 3778        (          1.0  sci 22)         <> "1.0000000000000000000000e+0" or
 3779        (          1.0  sci 23)         <> "1.00000000000000000000000e+0" or
 3780        (          1.0  sci 24)         <> "1.000000000000000000000000e+0" or
 3781        (          1.0  sci 25)         <> "1.0000000000000000000000000e+0" or
 3782        (          1.0  sci 26)         <> "1.00000000000000000000000000e+0" or
 3783        (          1.0  sci 27)         <> "1.000000000000000000000000000e+0" or
 3784        (          1.0  sci 28)         <> "1.0000000000000000000000000000e+0" or
 3785        (          1.0  sci 29)         <> "1.00000000000000000000000000000e+0" or
 3786        (          1.0  sci 30)         <> "1.000000000000000000000000000000e+0" or
 3787        (          1.0  sci 100)        <> "1." & "0" mult 100 & "e+0" or
 3788        (          1.0  sci 1000)       <> "1." & "0" mult 1000 & "e+0" or
 3789        (          1.0  sci 10000)      <> "1." & "0" mult 10000 & "e+0" or
 3790        (          1.0  sci 100000)     <> "1." & "0" mult 100000 & "e+0" or
 3791        (          1.0  sci 1000000)    <> "1." & "0" mult 1000000 & "e+0" or
 3792        (floatExpr(1.0) sci  0)         <> "1e+0" or
 3793        (floatExpr(1.0) sci  1)         <> "1.0e+0" or
 3794        (floatExpr(1.0) sci  2)         <> "1.00e+0" or
 3795        (floatExpr(1.0) sci  3)         <> "1.000e+0" or
 3796        (floatExpr(1.0) sci  4)         <> "1.0000e+0" or
 3797        (floatExpr(1.0) sci  5)         <> "1.00000e+0" or
 3798        (floatExpr(1.0) sci  6)         <> "1.000000e+0" or
 3799        (floatExpr(1.0) sci  7)         <> "1.0000000e+0" or
 3800        (floatExpr(1.0) sci  8)         <> "1.00000000e+0" or
 3801        (floatExpr(1.0) sci  9)         <> "1.000000000e+0" or
 3802        (floatExpr(1.0) sci 10)         <> "1.0000000000e+0" or
 3803        (floatExpr(1.0) sci 11)         <> "1.00000000000e+0" or
 3804        (floatExpr(1.0) sci 12)         <> "1.000000000000e+0" or
 3805        (floatExpr(1.0) sci 13)         <> "1.0000000000000e+0" or
 3806        (floatExpr(1.0) sci 14)         <> "1.00000000000000e+0" or
 3807        (floatExpr(1.0) sci 15)         <> "1.000000000000000e+0" or
 3808        (floatExpr(1.0) sci 16)         <> "1.0000000000000000e+0" or
 3809        (floatExpr(1.0) sci 17)         <> "1.00000000000000000e+0" or
 3810        (floatExpr(1.0) sci 18)         <> "1.000000000000000000e+0" or
 3811        (floatExpr(1.0) sci 19)         <> "1.0000000000000000000e+0" or
 3812        (floatExpr(1.0) sci 20)         <> "1.00000000000000000000e+0" or
 3813        (floatExpr(1.0) sci 21)         <> "1.000000000000000000000e+0" or
 3814        (floatExpr(1.0) sci 22)         <> "1.0000000000000000000000e+0" or
 3815        (floatExpr(1.0) sci 23)         <> "1.00000000000000000000000e+0" or
 3816        (floatExpr(1.0) sci 24)         <> "1.000000000000000000000000e+0" or
 3817        (floatExpr(1.0) sci 25)         <> "1.0000000000000000000000000e+0" or
 3818        (floatExpr(1.0) sci 26)         <> "1.00000000000000000000000000e+0" or
 3819        (floatExpr(1.0) sci 27)         <> "1.000000000000000000000000000e+0" or
 3820        (floatExpr(1.0) sci 28)         <> "1.0000000000000000000000000000e+0" or
 3821        (floatExpr(1.0) sci 29)         <> "1.00000000000000000000000000000e+0" or
 3822        (floatExpr(1.0) sci 30)         <> "1.000000000000000000000000000000e+0" or
 3823        (floatExpr(1.0) sci 100)        <> "1." & "0" mult 100 & "e+0" or
 3824        (floatExpr(1.0) sci 1000)       <> "1." & "0" mult 1000 & "e+0" or
 3825        (floatExpr(1.0) sci 10000)      <> "1." & "0" mult 10000 & "e+0" or
 3826        (floatExpr(1.0) sci 100000)     <> "1." & "0" mult 100000 & "e+0" or
 3827        (floatExpr(1.0) sci 1000000)    <> "1." & "0" mult 1000000 & "e+0" then
 3828       writeln(" ***** Sci operator for float with many digits does not work correct.");
 3829       okay := FALSE;
 3830     end if;
 3831 
 3832     if (          1.0e-308  sci 1) <> "1.0e-308" or
 3833        (          1.0e-307  sci 1) <> "1.0e-307" or
 3834        (          1.0e-300  sci 1) <> "1.0e-300" or
 3835        (          1.0e-275  sci 1) <> "1.0e-275" or
 3836        (          1.0e-250  sci 1) <> "1.0e-250" or
 3837        (          1.0e-225  sci 1) <> "1.0e-225" or
 3838        (          1.0e-200  sci 1) <> "1.0e-200" or
 3839        (          1.0e-175  sci 1) <> "1.0e-175" or
 3840        (          1.0e-150  sci 1) <> "1.0e-150" or
 3841        (          1.0e-125  sci 1) <> "1.0e-125" or
 3842        (          1.0e-101  sci 1) <> "1.0e-101" or
 3843        (          1.0e-100  sci 1) <> "1.0e-100" or
 3844        (          1.0e-99   sci 1) <> "1.0e-99"  or
 3845        (          1.0e-75   sci 1) <> "1.0e-75"  or
 3846        (          1.0e-50   sci 1) <> "1.0e-50"  or
 3847        (          1.0e-25   sci 1) <> "1.0e-25"  or
 3848        (          1.0e-20   sci 1) <> "1.0e-20"  or
 3849        (          1.0e-15   sci 1) <> "1.0e-15"  or
 3850        (          1.0e-11   sci 1) <> "1.0e-11"  or
 3851        (          1.0e-10   sci 1) <> "1.0e-10"  or
 3852        (          1.0e-9    sci 1) <> "1.0e-9"   or
 3853        (          1.0e-2    sci 1) <> "1.0e-2"   or
 3854        (          1.0e-1    sci 1) <> "1.0e-1"   or
 3855        (          1.0e0     sci 1) <> "1.0e+0"   or
 3856        (          1.0e1     sci 1) <> "1.0e+1"   or
 3857        (          1.0e2     sci 1) <> "1.0e+2"   or
 3858        (          1.0e9     sci 1) <> "1.0e+9"   or
 3859        (          1.0e10    sci 1) <> "1.0e+10"  or
 3860        (          1.0e11    sci 1) <> "1.0e+11"  or
 3861        (          1.0e15    sci 1) <> "1.0e+15"  or
 3862        (          1.0e20    sci 1) <> "1.0e+20"  or
 3863        (          1.0e25    sci 1) <> "1.0e+25"  or
 3864        (          1.0e50    sci 1) <> "1.0e+50"  or
 3865        (          1.0e75    sci 1) <> "1.0e+75"  or
 3866        (          1.0e99    sci 1) <> "1.0e+99"  or
 3867        (          1.0e100   sci 1) <> "1.0e+100" or
 3868        (          1.0e101   sci 1) <> "1.0e+101" or
 3869        (          1.0e125   sci 1) <> "1.0e+125" or
 3870        (          1.0e150   sci 1) <> "1.0e+150" or
 3871        (          1.0e175   sci 1) <> "1.0e+175" or
 3872        (          1.0e200   sci 1) <> "1.0e+200" or
 3873        (          1.0e225   sci 1) <> "1.0e+225" or
 3874        (          1.0e250   sci 1) <> "1.0e+250" or
 3875        (          1.0e275   sci 1) <> "1.0e+275" or
 3876        (          1.0e300   sci 1) <> "1.0e+300" or
 3877        (          1.0e307   sci 1) <> "1.0e+307" or
 3878        (          1.0e308   sci 1) <> "1.0e+308" or
 3879        (floatExpr(1.0e-308) sci 1) <> "1.0e-308" or
 3880        (floatExpr(1.0e-307) sci 1) <> "1.0e-307" or
 3881        (floatExpr(1.0e-300) sci 1) <> "1.0e-300" or
 3882        (floatExpr(1.0e-275) sci 1) <> "1.0e-275" or
 3883        (floatExpr(1.0e-250) sci 1) <> "1.0e-250" or
 3884        (floatExpr(1.0e-225) sci 1) <> "1.0e-225" or
 3885        (floatExpr(1.0e-200) sci 1) <> "1.0e-200" or
 3886        (floatExpr(1.0e-175) sci 1) <> "1.0e-175" or
 3887        (floatExpr(1.0e-150) sci 1) <> "1.0e-150" or
 3888        (floatExpr(1.0e-125) sci 1) <> "1.0e-125" or
 3889        (floatExpr(1.0e-101) sci 1) <> "1.0e-101" or
 3890        (floatExpr(1.0e-100) sci 1) <> "1.0e-100" or
 3891        (floatExpr(1.0e-99 ) sci 1) <> "1.0e-99"  or
 3892        (floatExpr(1.0e-75 ) sci 1) <> "1.0e-75"  or
 3893        (floatExpr(1.0e-50 ) sci 1) <> "1.0e-50"  or
 3894        (floatExpr(1.0e-25 ) sci 1) <> "1.0e-25"  or
 3895        (floatExpr(1.0e-20 ) sci 1) <> "1.0e-20"  or
 3896        (floatExpr(1.0e-15 ) sci 1) <> "1.0e-15"  or
 3897        (floatExpr(1.0e-11 ) sci 1) <> "1.0e-11"  or
 3898        (floatExpr(1.0e-10 ) sci 1) <> "1.0e-10"  or
 3899        (floatExpr(1.0e-9  ) sci 1) <> "1.0e-9"   or
 3900        (floatExpr(1.0e-2  ) sci 1) <> "1.0e-2"   or
 3901        (floatExpr(1.0e-1  ) sci 1) <> "1.0e-1"   or
 3902        (floatExpr(1.0e0   ) sci 1) <> "1.0e+0"   or
 3903        (floatExpr(1.0e1   ) sci 1) <> "1.0e+1"   or
 3904        (floatExpr(1.0e2   ) sci 1) <> "1.0e+2"   or
 3905        (floatExpr(1.0e9   ) sci 1) <> "1.0e+9"   or
 3906        (floatExpr(1.0e10  ) sci 1) <> "1.0e+10"  or
 3907        (floatExpr(1.0e11  ) sci 1) <> "1.0e+11"  or
 3908        (floatExpr(1.0e15  ) sci 1) <> "1.0e+15"  or
 3909        (floatExpr(1.0e20  ) sci 1) <> "1.0e+20"  or
 3910        (floatExpr(1.0e25  ) sci 1) <> "1.0e+25"  or
 3911        (floatExpr(1.0e50  ) sci 1) <> "1.0e+50"  or
 3912        (floatExpr(1.0e75  ) sci 1) <> "1.0e+75"  or
 3913        (floatExpr(1.0e99  ) sci 1) <> "1.0e+99"  or
 3914        (floatExpr(1.0e100 ) sci 1) <> "1.0e+100" or
 3915        (floatExpr(1.0e101 ) sci 1) <> "1.0e+101" or
 3916        (floatExpr(1.0e125 ) sci 1) <> "1.0e+125" or
 3917        (floatExpr(1.0e150 ) sci 1) <> "1.0e+150" or
 3918        (floatExpr(1.0e175 ) sci 1) <> "1.0e+175" or
 3919        (floatExpr(1.0e200 ) sci 1) <> "1.0e+200" or
 3920        (floatExpr(1.0e225 ) sci 1) <> "1.0e+225" or
 3921        (floatExpr(1.0e250 ) sci 1) <> "1.0e+250" or
 3922        (floatExpr(1.0e275 ) sci 1) <> "1.0e+275" or
 3923        (floatExpr(1.0e300 ) sci 1) <> "1.0e+300" or
 3924        (floatExpr(1.0e307 ) sci 1) <> "1.0e+307" or
 3925        (floatExpr(1.0e308 ) sci 1) <> "1.0e+308" then
 3926       writeln(" ***** Sci operator for float with higher exponent does not work correct.");
 3927       okay := FALSE;
 3928     end if;
 3929 
 3930     if  not raisesRangeError(          3.1415     sci            -1 ) or
 3931         not raisesRangeError(floatExpr(3.1415   ) sci            -1 ) or
 3932         not raisesRangeError(          3.1415     sci    intExpr(-1)) or
 3933         not raisesRangeError(floatExpr(3.1415   ) sci    intExpr(-1)) then
 3934       writeln(" ***** Sci operator for float with negative precision does not raise RANGE_ERROR.");
 3935       okay := FALSE;
 3936     end if;
 3937 
 3938     if okay then
 3939       writeln("Decimal conversion of float works correct.");
 3940     else
 3941       writeln(" ***** Decimal conversion of float does not work correct.");
 3942     end if;
 3943   end func;
 3944 
 3945 
 3946 const proc: check_conversion is func
 3947   local
 3948     var boolean: okay is TRUE;
 3949   begin
 3950     if  float conv        (integer.first) <> -9223372036854775808.0 or
 3951         float conv (-9223372036854774784) <> -9223372036854774784.0 or
 3952         float conv (-1000000000000000000) <> -1000000000000000000.0 or
 3953         float conv  (-100000000000000000) <>  -100000000000000000.0 or
 3954         float conv   (-10000000000000000) <>   -10000000000000000.0 or
 3955         float conv    (-9007199254740992) <>    -9007199254740992.0 or
 3956         float conv    (-4503599627370496) <>    -4503599627370496.0 or
 3957         float conv    (-2251799813685248) <>    -2251799813685248.0 or
 3958         float conv    (-1125899906842624) <>    -1125899906842624.0 or
 3959         float conv    (-1000000000000000) <>    -1000000000000000.0 or
 3960         float conv     (-999999999999999) <>     -999999999999999.0 or
 3961         float conv     (-234567891234567) <>     -234567891234567.0 or
 3962         float conv     (-100000000000000) <>     -100000000000000.0 or
 3963         float conv      (-99999999999999) <>      -99999999999999.0 or
 3964         float conv      (-34567891234567) <>      -34567891234567.0 or
 3965         float conv      (-10000000000000) <>      -10000000000000.0 or
 3966         float conv       (-9999999999999) <>       -9999999999999.0 or
 3967         float conv       (-4567891234567) <>       -4567891234567.0 or
 3968         float conv       (-1000000000000) <>       -1000000000000.0 or
 3969         float conv        (-999999999999) <>        -999999999999.0 or
 3970         float conv        (-567891234567) <>        -567891234567.0 or
 3971         float conv        (-100000000000) <>        -100000000000.0 or
 3972         float conv         (-99999999999) <>         -99999999999.0 or
 3973         float conv         (-10000000000) <>         -10000000000.0 or
 3974         float conv          (-9999999999) <>          -9999999999.0 or
 3975         float conv          (-7891234567) <>          -7891234567.0 or
 3976         float conv          (-1000000000) <>          -1000000000.0 or
 3977         float conv           (-999999999) <>           -999999999.0 or
 3978         float conv           (-891234567) <>           -891234567.0 or
 3979         float conv           (-100000000) <>           -100000000.0 or
 3980         float conv            (-99999999) <>            -99999999.0 or
 3981         float conv            (-91234567) <>            -91234567.0 or
 3982         float conv            (-10000000) <>            -10000000.0 or
 3983         float conv             (-9999999) <>             -9999999.0 or
 3984         float conv             (-1234567) <>             -1234567.0 or
 3985         float conv             (-1000000) <>             -1000000.0 or
 3986         float conv              (-999999) <>              -999999.0 or
 3987         float conv              (-234567) <>              -234567.0 or
 3988         float conv              (-100000) <>              -100000.0 or
 3989         float conv               (-99999) <>               -99999.0 or
 3990         float conv               (-34567) <>               -34567.0 or
 3991         float conv               (-10000) <>               -10000.0 or
 3992         float conv                (-9999) <>                -9999.0 or
 3993         float conv                (-4567) <>                -4567.0 or
 3994         float conv                (-1000) <>                -1000.0 or
 3995         float conv                 (-999) <>                 -999.0 or
 3996         float conv                 (-567) <>                 -567.0 or
 3997         float conv                 (-100) <>                 -100.0 or
 3998         float conv                  (-99) <>                  -99.0 or
 3999         float conv                  (-67) <>                  -67.0 or
 4000         float conv                  (-10) <>                  -10.0 or
 4001         float conv                   (-9) <>                   -9.0 or
 4002         float conv                   (-7) <>                   -7.0 or
 4003         float conv                   (-1) <>                   -1.0 or
 4004         float conv                     0  <>                    0.0 or
 4005         float conv                     1  <>                    1.0 or
 4006         float conv                     7  <>                    7.0 or
 4007         float conv                     9  <>                    9.0 or
 4008         float conv                    10  <>                   10.0 or
 4009         float conv                    67  <>                   67.0 or
 4010         float conv                    99  <>                   99.0 or
 4011         float conv                   100  <>                  100.0 or
 4012         float conv                   567  <>                  567.0 or
 4013         float conv                   999  <>                  999.0 or
 4014         float conv                  1000  <>                 1000.0 or
 4015         float conv                  4567  <>                 4567.0 or
 4016         float conv                  9999  <>                 9999.0 or
 4017         float conv                 10000  <>                10000.0 or
 4018         float conv                 34567  <>                34567.0 or
 4019         float conv                 99999  <>                99999.0 or
 4020         float conv                100000  <>               100000.0 or
 4021         float conv                234567  <>               234567.0 or
 4022         float conv                999999  <>               999999.0 or
 4023         float conv               1000000  <>              1000000.0 or
 4024         float conv               1234567  <>              1234567.0 or
 4025         float conv               9999999  <>              9999999.0 or
 4026         float conv              10000000  <>             10000000.0 or
 4027         float conv              91234567  <>             91234567.0 or
 4028         float conv              99999999  <>             99999999.0 or
 4029         float conv             100000000  <>            100000000.0 or
 4030         float conv             891234567  <>            891234567.0 or
 4031         float conv             999999999  <>            999999999.0 or
 4032         float conv            1000000000  <>           1000000000.0 or
 4033         float conv            7891234567  <>           7891234567.0 or
 4034         float conv            9999999999  <>           9999999999.0 or
 4035         float conv           10000000000  <>          10000000000.0 or
 4036         float conv           67891234567  <>          67891234567.0 or
 4037         float conv           99999999999  <>          99999999999.0 or
 4038         float conv          100000000000  <>         100000000000.0 or
 4039         float conv          567891234567  <>         567891234567.0 or
 4040         float conv          999999999999  <>         999999999999.0 or
 4041         float conv         1000000000000  <>        1000000000000.0 or
 4042         float conv         4567891234567  <>        4567891234567.0 or
 4043         float conv         9999999999999  <>        9999999999999.0 or
 4044         float conv        10000000000000  <>       10000000000000.0 or
 4045         float conv        34567891234567  <>       34567891234567.0 or
 4046         float conv        99999999999999  <>       99999999999999.0 or
 4047         float conv       100000000000000  <>      100000000000000.0 or
 4048         float conv       234567891234567  <>      234567891234567.0 or
 4049         float conv       999999999999999  <>      999999999999999.0 or
 4050         float conv      1000000000000000  <>     1000000000000000.0 or
 4051         float conv      1125899906842624  <>     1125899906842624.0 or
 4052         float conv      2251799813685248  <>     2251799813685248.0 or
 4053         float conv      4503599627370496  <>     4503599627370496.0 or
 4054         float conv      9007199254740992  <>     9007199254740992.0 or
 4055         float conv     10000000000000000  <>    10000000000000000.0 or
 4056         float conv    100000000000000000  <>   100000000000000000.0 or
 4057         float conv   1000000000000000000  <>  1000000000000000000.0 or
 4058         float conv   9223372036854774784  <>  9223372036854774784.0 then
 4059       writeln(" ***** Conversion from integer to float does not work correct. (1)");
 4060       okay := FALSE;
 4061     end if;
 4062 
 4063     if  float conv intExpr(       integer.first) <> -9223372036854775808.0 or
 4064         float conv intExpr(-9223372036854774784) <> -9223372036854774784.0 or
 4065         float conv intExpr(-1000000000000000000) <> -1000000000000000000.0 or
 4066         float conv intExpr( -100000000000000000) <>  -100000000000000000.0 or
 4067         float conv intExpr(  -10000000000000000) <>   -10000000000000000.0 or
 4068         float conv intExpr(   -9007199254740992) <>    -9007199254740992.0 or
 4069         float conv intExpr(   -4503599627370496) <>    -4503599627370496.0 or
 4070         float conv intExpr(   -2251799813685248) <>    -2251799813685248.0 or
 4071         float conv intExpr(   -1125899906842624) <>    -1125899906842624.0 or
 4072         float conv intExpr(   -1000000000000000) <>    -1000000000000000.0 or
 4073         float conv intExpr(    -999999999999999) <>     -999999999999999.0 or
 4074         float conv intExpr(    -234567891234567) <>     -234567891234567.0 or
 4075         float conv intExpr(    -100000000000000) <>     -100000000000000.0 or
 4076         float conv intExpr(     -99999999999999) <>      -99999999999999.0 or
 4077         float conv intExpr(     -34567891234567) <>      -34567891234567.0 or
 4078         float conv intExpr(     -10000000000000) <>      -10000000000000.0 or
 4079         float conv intExpr(      -9999999999999) <>       -9999999999999.0 or
 4080         float conv intExpr(      -4567891234567) <>       -4567891234567.0 or
 4081         float conv intExpr(      -1000000000000) <>       -1000000000000.0 or
 4082         float conv intExpr(       -999999999999) <>        -999999999999.0 or
 4083         float conv intExpr(       -567891234567) <>        -567891234567.0 or
 4084         float conv intExpr(       -100000000000) <>        -100000000000.0 or
 4085         float conv intExpr(        -99999999999) <>         -99999999999.0 or
 4086         float conv intExpr(        -10000000000) <>         -10000000000.0 or
 4087         float conv intExpr(         -9999999999) <>          -9999999999.0 or
 4088         float conv intExpr(         -7891234567) <>          -7891234567.0 or
 4089         float conv intExpr(         -1000000000) <>          -1000000000.0 or
 4090         float conv intExpr(          -999999999) <>           -999999999.0 or
 4091         float conv intExpr(          -891234567) <>           -891234567.0 or
 4092         float conv intExpr(          -100000000) <>           -100000000.0 or
 4093         float conv intExpr(           -99999999) <>            -99999999.0 or
 4094         float conv intExpr(           -91234567) <>            -91234567.0 or
 4095         float conv intExpr(           -10000000) <>            -10000000.0 or
 4096         float conv intExpr(            -9999999) <>             -9999999.0 or
 4097         float conv intExpr(            -1234567) <>             -1234567.0 or
 4098         float conv intExpr(            -1000000) <>             -1000000.0 or
 4099         float conv intExpr(             -999999) <>              -999999.0 or
 4100         float conv intExpr(             -234567) <>              -234567.0 or
 4101         float conv intExpr(             -100000) <>              -100000.0 or
 4102         float conv intExpr(              -99999) <>               -99999.0 or
 4103         float conv intExpr(              -34567) <>               -34567.0 or
 4104         float conv intExpr(              -10000) <>               -10000.0 or
 4105         float conv intExpr(               -9999) <>                -9999.0 or
 4106         float conv intExpr(               -4567) <>                -4567.0 or
 4107         float conv intExpr(               -1000) <>                -1000.0 or
 4108         float conv intExpr(                -999) <>                 -999.0 or
 4109         float conv intExpr(                -567) <>                 -567.0 or
 4110         float conv intExpr(                -100) <>                 -100.0 or
 4111         float conv intExpr(                 -99) <>                  -99.0 or
 4112         float conv intExpr(                 -67) <>                  -67.0 or
 4113         float conv intExpr(                 -10) <>                  -10.0 or
 4114         float conv intExpr(                  -9) <>                   -9.0 or
 4115         float conv intExpr(                  -7) <>                   -7.0 or
 4116         float conv intExpr(                  -1) <>                   -1.0 or
 4117         float conv intExpr(                   0) <>                    0.0 or
 4118         float conv intExpr(                   1) <>                    1.0 or
 4119         float conv intExpr(                   7) <>                    7.0 or
 4120         float conv intExpr(                   9) <>                    9.0 or
 4121         float conv intExpr(                  10) <>                   10.0 or
 4122         float conv intExpr(                  67) <>                   67.0 or
 4123         float conv intExpr(                  99) <>                   99.0 or
 4124         float conv intExpr(                 100) <>                  100.0 or
 4125         float conv intExpr(                 567) <>                  567.0 or
 4126         float conv intExpr(                 999) <>                  999.0 or
 4127         float conv intExpr(                1000) <>                 1000.0 or
 4128         float conv intExpr(                4567) <>                 4567.0 or
 4129         float conv intExpr(                9999) <>                 9999.0 or
 4130         float conv intExpr(               10000) <>                10000.0 or
 4131         float conv intExpr(               34567) <>                34567.0 or
 4132         float conv intExpr(               99999) <>                99999.0 or
 4133         float conv intExpr(              100000) <>               100000.0 or
 4134         float conv intExpr(              234567) <>               234567.0 or
 4135         float conv intExpr(              999999) <>               999999.0 or
 4136         float conv intExpr(             1000000) <>              1000000.0 or
 4137         float conv intExpr(             1234567) <>              1234567.0 or
 4138         float conv intExpr(             9999999) <>              9999999.0 or
 4139         float conv intExpr(            10000000) <>             10000000.0 or
 4140         float conv intExpr(            91234567) <>             91234567.0 or
 4141         float conv intExpr(            99999999) <>             99999999.0 or
 4142         float conv intExpr(           100000000) <>            100000000.0 or
 4143         float conv intExpr(           891234567) <>            891234567.0 or
 4144         float conv intExpr(           999999999) <>            999999999.0 or
 4145         float conv intExpr(          1000000000) <>           1000000000.0 or
 4146         float conv intExpr(          7891234567) <>           7891234567.0 or
 4147         float conv intExpr(          9999999999) <>           9999999999.0 or
 4148         float conv intExpr(         10000000000) <>          10000000000.0 or
 4149         float conv intExpr(         67891234567) <>          67891234567.0 or
 4150         float conv intExpr(         99999999999) <>          99999999999.0 or
 4151         float conv intExpr(        100000000000) <>         100000000000.0 or
 4152         float conv intExpr(        567891234567) <>         567891234567.0 or
 4153         float conv intExpr(        999999999999) <>         999999999999.0 or
 4154         float conv intExpr(       1000000000000) <>        1000000000000.0 or
 4155         float conv intExpr(       4567891234567) <>        4567891234567.0 or
 4156         float conv intExpr(       9999999999999) <>        9999999999999.0 or
 4157         float conv intExpr(      10000000000000) <>       10000000000000.0 or
 4158         float conv intExpr(      34567891234567) <>       34567891234567.0 or
 4159         float conv intExpr(      99999999999999) <>       99999999999999.0 or
 4160         float conv intExpr(     100000000000000) <>      100000000000000.0 or
 4161         float conv intExpr(     234567891234567) <>      234567891234567.0 or
 4162         float conv intExpr(     999999999999999) <>      999999999999999.0 or
 4163         float conv intExpr(    1000000000000000) <>     1000000000000000.0 or
 4164         float conv intExpr(    1125899906842624) <>     1125899906842624.0 or
 4165         float conv intExpr(    2251799813685248) <>     2251799813685248.0 or
 4166         float conv intExpr(    4503599627370496) <>     4503599627370496.0 or
 4167         float conv intExpr(    9007199254740992) <>     9007199254740992.0 or
 4168         float conv intExpr(   10000000000000000) <>    10000000000000000.0 or
 4169         float conv intExpr(  100000000000000000) <>   100000000000000000.0 or
 4170         float conv intExpr( 1000000000000000000) <>  1000000000000000000.0 or
 4171         float conv intExpr( 9223372036854774784) <>  9223372036854774784.0 then
 4172       writeln(" ***** Conversion from integer to float does not work correct. (2)");
 4173       okay := FALSE;
 4174     end if;
 4175 
 4176     if  float(       integer.first) <> -9223372036854775808.0 or
 4177         float(-9223372036854774784) <> -9223372036854774784.0 or
 4178         float(-1000000000000000000) <> -1000000000000000000.0 or
 4179         float( -100000000000000000) <>  -100000000000000000.0 or
 4180         float(  -10000000000000000) <>   -10000000000000000.0 or
 4181         float(   -9007199254740992) <>    -9007199254740992.0 or
 4182         float(   -4503599627370496) <>    -4503599627370496.0 or
 4183         float(   -2251799813685248) <>    -2251799813685248.0 or
 4184         float(   -1125899906842624) <>    -1125899906842624.0 or
 4185         float(   -1000000000000000) <>    -1000000000000000.0 or
 4186         float(    -999999999999999) <>     -999999999999999.0 or
 4187         float(    -234567891234567) <>     -234567891234567.0 or
 4188         float(    -100000000000000) <>     -100000000000000.0 or
 4189         float(     -99999999999999) <>      -99999999999999.0 or
 4190         float(     -34567891234567) <>      -34567891234567.0 or
 4191         float(     -10000000000000) <>      -10000000000000.0 or
 4192         float(      -9999999999999) <>       -9999999999999.0 or
 4193         float(      -4567891234567) <>       -4567891234567.0 or
 4194         float(      -1000000000000) <>       -1000000000000.0 or
 4195         float(       -999999999999) <>        -999999999999.0 or
 4196         float(       -567891234567) <>        -567891234567.0 or
 4197         float(       -100000000000) <>        -100000000000.0 or
 4198         float(        -99999999999) <>         -99999999999.0 or
 4199         float(        -10000000000) <>         -10000000000.0 or
 4200         float(         -9999999999) <>          -9999999999.0 or
 4201         float(         -7891234567) <>          -7891234567.0 or
 4202         float(         -1000000000) <>          -1000000000.0 or
 4203         float(          -999999999) <>           -999999999.0 or
 4204         float(          -891234567) <>           -891234567.0 or
 4205         float(          -100000000) <>           -100000000.0 or
 4206         float(           -99999999) <>            -99999999.0 or
 4207         float(           -91234567) <>            -91234567.0 or
 4208         float(           -10000000) <>            -10000000.0 or
 4209         float(            -9999999) <>             -9999999.0 or
 4210         float(            -1234567) <>             -1234567.0 or
 4211         float(            -1000000) <>             -1000000.0 or
 4212         float(             -999999) <>              -999999.0 or
 4213         float(             -234567) <>              -234567.0 or
 4214         float(             -100000) <>              -100000.0 or
 4215         float(              -99999) <>               -99999.0 or
 4216         float(              -34567) <>               -34567.0 or
 4217         float(              -10000) <>               -10000.0 or
 4218         float(               -9999) <>                -9999.0 or
 4219         float(               -4567) <>                -4567.0 or
 4220         float(               -1000) <>                -1000.0 or
 4221         float(                -999) <>                 -999.0 or
 4222         float(                -567) <>                 -567.0 or
 4223         float(                -100) <>                 -100.0 or
 4224         float(                 -99) <>                  -99.0 or
 4225         float(                 -67) <>                  -67.0 or
 4226         float(                 -10) <>                  -10.0 or
 4227         float(                  -9) <>                   -9.0 or
 4228         float(                  -7) <>                   -7.0 or
 4229         float(                  -1) <>                   -1.0 or
 4230         float(                   0) <>                    0.0 or
 4231         float(                   1) <>                    1.0 or
 4232         float(                   7) <>                    7.0 or
 4233         float(                   9) <>                    9.0 or
 4234         float(                  10) <>                   10.0 or
 4235         float(                  67) <>                   67.0 or
 4236         float(                  99) <>                   99.0 or
 4237         float(                 100) <>                  100.0 or
 4238         float(                 567) <>                  567.0 or
 4239         float(                 999) <>                  999.0 or
 4240         float(                1000) <>                 1000.0 or
 4241         float(                4567) <>                 4567.0 or
 4242         float(                9999) <>                 9999.0 or
 4243         float(               10000) <>                10000.0 or
 4244         float(               34567) <>                34567.0 or
 4245         float(               99999) <>                99999.0 or
 4246         float(              100000) <>               100000.0 or
 4247         float(              234567) <>               234567.0 or
 4248         float(              999999) <>               999999.0 or
 4249         float(             1000000) <>              1000000.0 or
 4250         float(             1234567) <>              1234567.0 or
 4251         float(             9999999) <>              9999999.0 or
 4252         float(            10000000) <>             10000000.0 or
 4253         float(            91234567) <>             91234567.0 or
 4254         float(            99999999) <>             99999999.0 or
 4255         float(           100000000) <>            100000000.0 or
 4256         float(           891234567) <>            891234567.0 or
 4257         float(           999999999) <>            999999999.0 or
 4258         float(          1000000000) <>           1000000000.0 or
 4259         float(          7891234567) <>           7891234567.0 or
 4260         float(          9999999999) <>           9999999999.0 or
 4261         float(         10000000000) <>          10000000000.0 or
 4262         float(         67891234567) <>          67891234567.0 or
 4263         float(         99999999999) <>          99999999999.0 or
 4264         float(        100000000000) <>         100000000000.0 or
 4265         float(        567891234567) <>         567891234567.0 or
 4266         float(        999999999999) <>         999999999999.0 or
 4267         float(       1000000000000) <>        1000000000000.0 or
 4268         float(       4567891234567) <>        4567891234567.0 or
 4269         float(       9999999999999) <>        9999999999999.0 or
 4270         float(      10000000000000) <>       10000000000000.0 or
 4271         float(      34567891234567) <>       34567891234567.0 or
 4272         float(      99999999999999) <>       99999999999999.0 or
 4273         float(     100000000000000) <>      100000000000000.0 or
 4274         float(     234567891234567) <>      234567891234567.0 or
 4275         float(     999999999999999) <>      999999999999999.0 or
 4276         float(    1000000000000000) <>     1000000000000000.0 or
 4277         float(    1125899906842624) <>     1125899906842624.0 or
 4278         float(    2251799813685248) <>     2251799813685248.0 or
 4279         float(    4503599627370496) <>     4503599627370496.0 or
 4280         float(    9007199254740992) <>     9007199254740992.0 or
 4281         float(   10000000000000000) <>    10000000000000000.0 or
 4282         float(  100000000000000000) <>   100000000000000000.0 or
 4283         float( 1000000000000000000) <>  1000000000000000000.0 or
 4284         float( 9223372036854774784) <>  9223372036854774784.0 then
 4285       writeln(" ***** Conversion from integer to float does not work correct. (3)");
 4286       okay := FALSE;
 4287     end if;
 4288 
 4289     if  float(intExpr(       integer.first)) <> -9223372036854775808.0 or
 4290         float(intExpr(-9223372036854774784)) <> -9223372036854774784.0 or
 4291         float(intExpr(-1000000000000000000)) <> -1000000000000000000.0 or
 4292         float(intExpr( -100000000000000000)) <>  -100000000000000000.0 or
 4293         float(intExpr(  -10000000000000000)) <>   -10000000000000000.0 or
 4294         float(intExpr(   -9007199254740992)) <>    -9007199254740992.0 or
 4295         float(intExpr(   -4503599627370496)) <>    -4503599627370496.0 or
 4296         float(intExpr(   -2251799813685248)) <>    -2251799813685248.0 or
 4297         float(intExpr(   -1125899906842624)) <>    -1125899906842624.0 or
 4298         float(intExpr(   -1000000000000000)) <>    -1000000000000000.0 or
 4299         float(intExpr(    -999999999999999)) <>     -999999999999999.0 or
 4300         float(intExpr(    -234567891234567)) <>     -234567891234567.0 or
 4301         float(intExpr(    -100000000000000)) <>     -100000000000000.0 or
 4302         float(intExpr(     -99999999999999)) <>      -99999999999999.0 or
 4303         float(intExpr(     -34567891234567)) <>      -34567891234567.0 or
 4304         float(intExpr(     -10000000000000)) <>      -10000000000000.0 or
 4305         float(intExpr(      -9999999999999)) <>       -9999999999999.0 or
 4306         float(intExpr(      -4567891234567)) <>       -4567891234567.0 or
 4307         float(intExpr(      -1000000000000)) <>       -1000000000000.0 or
 4308         float(intExpr(       -999999999999)) <>        -999999999999.0 or
 4309         float(intExpr(       -567891234567)) <>        -567891234567.0 or
 4310         float(intExpr(       -100000000000)) <>        -100000000000.0 or
 4311         float(intExpr(        -99999999999)) <>         -99999999999.0 or
 4312         float(intExpr(        -10000000000)) <>         -10000000000.0 or
 4313         float(intExpr(         -9999999999)) <>          -9999999999.0 or
 4314         float(intExpr(         -7891234567)) <>          -7891234567.0 or
 4315         float(intExpr(         -1000000000)) <>          -1000000000.0 or
 4316         float(intExpr(          -999999999)) <>           -999999999.0 or
 4317         float(intExpr(          -891234567)) <>           -891234567.0 or
 4318         float(intExpr(          -100000000)) <>           -100000000.0 or
 4319         float(intExpr(           -99999999)) <>            -99999999.0 or
 4320         float(intExpr(           -91234567)) <>            -91234567.0 or
 4321         float(intExpr(           -10000000)) <>            -10000000.0 or
 4322         float(intExpr(            -9999999)) <>             -9999999.0 or
 4323         float(intExpr(            -1234567)) <>             -1234567.0 or
 4324         float(intExpr(            -1000000)) <>             -1000000.0 or
 4325         float(intExpr(             -999999)) <>              -999999.0 or
 4326         float(intExpr(             -234567)) <>              -234567.0 or
 4327         float(intExpr(             -100000)) <>              -100000.0 or
 4328         float(intExpr(              -99999)) <>               -99999.0 or
 4329         float(intExpr(              -34567)) <>               -34567.0 or
 4330         float(intExpr(              -10000)) <>               -10000.0 or
 4331         float(intExpr(               -9999)) <>                -9999.0 or
 4332         float(intExpr(               -4567)) <>                -4567.0 or
 4333         float(intExpr(               -1000)) <>                -1000.0 or
 4334         float(intExpr(                -999)) <>                 -999.0 or
 4335         float(intExpr(                -567)) <>                 -567.0 or
 4336         float(intExpr(                -100)) <>                 -100.0 or
 4337         float(intExpr(                 -99)) <>                  -99.0 or
 4338         float(intExpr(                 -67)) <>                  -67.0 or
 4339         float(intExpr(                 -10)) <>                  -10.0 or
 4340         float(intExpr(                  -9)) <>                   -9.0 or
 4341         float(intExpr(                  -7)) <>                   -7.0 or
 4342         float(intExpr(                  -1)) <>                   -1.0 or
 4343         float(intExpr(                   0)) <>                    0.0 or
 4344         float(intExpr(                   1)) <>                    1.0 or
 4345         float(intExpr(                   7)) <>                    7.0 or
 4346         float(intExpr(                   9)) <>                    9.0 or
 4347         float(intExpr(                  10)) <>                   10.0 or
 4348         float(intExpr(                  67)) <>                   67.0 or
 4349         float(intExpr(                  99)) <>                   99.0 or
 4350         float(intExpr(                 100)) <>                  100.0 or
 4351         float(intExpr(                 567)) <>                  567.0 or
 4352         float(intExpr(                 999)) <>                  999.0 or
 4353         float(intExpr(                1000)) <>                 1000.0 or
 4354         float(intExpr(                4567)) <>                 4567.0 or
 4355         float(intExpr(                9999)) <>                 9999.0 or
 4356         float(intExpr(               10000)) <>                10000.0 or
 4357         float(intExpr(               34567)) <>                34567.0 or
 4358         float(intExpr(               99999)) <>                99999.0 or
 4359         float(intExpr(              100000)) <>               100000.0 or
 4360         float(intExpr(              234567)) <>               234567.0 or
 4361         float(intExpr(              999999)) <>               999999.0 or
 4362         float(intExpr(             1000000)) <>              1000000.0 or
 4363         float(intExpr(             1234567)) <>              1234567.0 or
 4364         float(intExpr(             9999999)) <>              9999999.0 or
 4365         float(intExpr(            10000000)) <>             10000000.0 or
 4366         float(intExpr(            91234567)) <>             91234567.0 or
 4367         float(intExpr(            99999999)) <>             99999999.0 or
 4368         float(intExpr(           100000000)) <>            100000000.0 or
 4369         float(intExpr(           891234567)) <>            891234567.0 or
 4370         float(intExpr(           999999999)) <>            999999999.0 or
 4371         float(intExpr(          1000000000)) <>           1000000000.0 or
 4372         float(intExpr(          7891234567)) <>           7891234567.0 or
 4373         float(intExpr(          9999999999)) <>           9999999999.0 or
 4374         float(intExpr(         10000000000)) <>          10000000000.0 or
 4375         float(intExpr(         67891234567)) <>          67891234567.0 or
 4376         float(intExpr(         99999999999)) <>          99999999999.0 or
 4377         float(intExpr(        100000000000)) <>         100000000000.0 or
 4378         float(intExpr(        567891234567)) <>         567891234567.0 or
 4379         float(intExpr(        999999999999)) <>         999999999999.0 or
 4380         float(intExpr(       1000000000000)) <>        1000000000000.0 or
 4381         float(intExpr(       4567891234567)) <>        4567891234567.0 or
 4382         float(intExpr(       9999999999999)) <>        9999999999999.0 or
 4383         float(intExpr(      10000000000000)) <>       10000000000000.0 or
 4384         float(intExpr(      34567891234567)) <>       34567891234567.0 or
 4385         float(intExpr(      99999999999999)) <>       99999999999999.0 or
 4386         float(intExpr(     100000000000000)) <>      100000000000000.0 or
 4387         float(intExpr(     234567891234567)) <>      234567891234567.0 or
 4388         float(intExpr(     999999999999999)) <>      999999999999999.0 or
 4389         float(intExpr(    1000000000000000)) <>     1000000000000000.0 or
 4390         float(intExpr(    1125899906842624)) <>     1125899906842624.0 or
 4391         float(intExpr(    2251799813685248)) <>     2251799813685248.0 or
 4392         float(intExpr(    4503599627370496)) <>     4503599627370496.0 or
 4393         float(intExpr(    9007199254740992)) <>     9007199254740992.0 or
 4394         float(intExpr(   10000000000000000)) <>    10000000000000000.0 or
 4395         float(intExpr(  100000000000000000)) <>   100000000000000000.0 or
 4396         float(intExpr( 1000000000000000000)) <>  1000000000000000000.0 or
 4397         float(intExpr( 9223372036854774784)) <>  9223372036854774784.0 then
 4398       writeln(" ***** Conversion from integer to float does not work correct. (4)");
 4399       okay := FALSE;
 4400     end if;
 4401 
 4402     if okay then
 4403       writeln("Conversion from integer to float works correct.");
 4404     else
 4405       writeln(" ***** Conversion from integer to float does not work correct.");
 4406     end if;
 4407   end func;
 4408 
 4409 
 4410 const proc: check_trunc is func
 4411   local
 4412     var boolean: okay is TRUE;
 4413   begin
 4414     if  not raisesRangeError(trunc(           -Infinity  )) or
 4415         not raisesRangeError(trunc(          -FLOAT_MAX  )) or
 4416         not raisesRangeError(trunc(             -1.0e37  )) or
 4417         not raisesRangeError(trunc(-9223372036854777000.0)) or
 4418         trunc(-9223372036854775808.0) <>        integer.first or
 4419         trunc(-4611686018427387904.0) <> -4611686018427387904 or
 4420         trunc(-2305843009213693952.0) <> -2305843009213693952 or
 4421         trunc(-1152921504606846976.0) <> -1152921504606846976 or
 4422         trunc( -576460752303423488.0) <>  -576460752303423488 or
 4423         trunc(   -9007199254740992.0) <>    -9007199254740992 or
 4424         trunc(   -9007199254740991.0) <>    -9007199254740991 or
 4425         trunc(   -9007199254740990.0) <>    -9007199254740990 or
 4426         trunc(     -10000000000000.9) <>      -10000000000000 or
 4427         trunc(     -10000000000000.0) <>      -10000000000000 or
 4428         trunc(      -1000000000000.99) <>      -1000000000000 or
 4429         trunc(      -1000000000000.0) <>       -1000000000000 or
 4430         trunc(       -100000000000.999) <>      -100000000000 or
 4431         trunc(       -100000000000.0) <>        -100000000000 or
 4432         trunc(        -10000000000.9999) <>      -10000000000 or
 4433         trunc(        -10000000000.0) <>         -10000000000 or
 4434         trunc(         -1000000000.99999) <>      -1000000000 or
 4435         trunc(         -1000000000.0) <>          -1000000000 or
 4436         trunc(          -100000000.999999) <>      -100000000 or
 4437         trunc(          -100000000.0) <>           -100000000 or
 4438         trunc(           -10000000.9999999) <>      -10000000 or
 4439         trunc(           -10000000.0) <>            -10000000 or
 4440         trunc(            -1000000.99999999) <>      -1000000 or
 4441         trunc(            -1000000.0) <>             -1000000 or
 4442         trunc(             -100000.999999999) <>      -100000 or
 4443         trunc(             -100000.0) <>              -100000 or
 4444         trunc(              -10000.9999999999) <>      -10000 or
 4445         trunc(              -10000.0) <>               -10000 or
 4446         trunc(               -1000.99999999999) <>      -1000 or
 4447         trunc(               -1000.0) <>                -1000 or
 4448         trunc(                -100.999999999999) <>      -100 or
 4449         trunc(                -100.0) <>                 -100 or
 4450         trunc(                 -10.9999999999999) <>      -10 or
 4451         trunc(                 -10.0) <>                  -10 or
 4452         trunc(                  -1.99999999999999) <>      -1 or
 4453         trunc(                  -1.0) <>                   -1 or
 4454         trunc(                  -0.999999999999999) <>      0 or
 4455         trunc(                   0.0) <>                    0 or
 4456         trunc(                   0.999999999999999) <>      0 or
 4457         trunc(                   1.0) <>                    1 or
 4458         trunc(                   1.99999999999999) <>       1 or
 4459         trunc(                  10.0) <>                   10 or
 4460         trunc(                  10.9999999999999) <>       10 or
 4461         trunc(                 100.0) <>                  100 or
 4462         trunc(                 100.999999999999) <>       100 or
 4463         trunc(                1000.0) <>                 1000 or
 4464         trunc(                1000.99999999999) <>       1000 or
 4465         trunc(               10000.0) <>                10000 or
 4466         trunc(               10000.9999999999) <>       10000 or
 4467         trunc(              100000.0) <>               100000 or
 4468         trunc(              100000.999999999) <>       100000 or
 4469         trunc(             1000000.0) <>              1000000 or
 4470         trunc(             1000000.99999999) <>       1000000 or
 4471         trunc(            10000000.0) <>             10000000 or
 4472         trunc(            10000000.9999999) <>       10000000 or
 4473         trunc(           100000000.0) <>            100000000 or
 4474         trunc(           100000000.999999) <>       100000000 or
 4475         trunc(          1000000000.0) <>           1000000000 or
 4476         trunc(          1000000000.99999) <>       1000000000 or
 4477         trunc(         10000000000.0) <>          10000000000 or
 4478         trunc(         10000000000.9999) <>       10000000000 or
 4479         trunc(        100000000000.0) <>         100000000000 or
 4480         trunc(        100000000000.999) <>       100000000000 or
 4481         trunc(       1000000000000.0) <>        1000000000000 or
 4482         trunc(       1000000000000.99) <>       1000000000000 or
 4483         trunc(      10000000000000.0) <>       10000000000000 or
 4484         trunc(      10000000000000.9) <>       10000000000000 or
 4485         trunc(    9007199254740990.0) <>     9007199254740990 or
 4486         trunc(    9007199254740991.0) <>     9007199254740991 or
 4487         trunc(    9007199254740992.0) <>     9007199254740992 or
 4488         trunc(  576460752303423488.0) <>   576460752303423488 or
 4489         trunc( 1152921504606846976.0) <>  1152921504606846976 or
 4490         trunc( 2305843009213693952.0) <>  2305843009213693952 or
 4491         trunc( 4611686018427387904.0) <>  4611686018427387904 or
 4492         trunc( 9223372036854773760.0) <>  9223372036854773760 or
 4493         trunc( 9223372036854774784.0) <>  9223372036854774784 or
 4494             raisesRangeError(trunc( 9223372036854775295.0)) or
 4495         not raisesRangeError(trunc( 9223372036854775297.0)) and
 4496                              trunc( 9223372036854775297.0) <> 9223372036854775807 or
 4497         not raisesRangeError(trunc( 9223372036854775807.0)) and
 4498                              trunc( 9223372036854775807.0) <> 9223372036854775807 or
 4499         not raisesRangeError(trunc( 9223372036854777000.0)) or
 4500         not raisesRangeError(trunc(              1.0e37  )) or
 4501         not raisesRangeError(trunc(           FLOAT_MAX  )) or
 4502         not raisesRangeError(trunc(            Infinity  )) or
 4503         not raisesRangeError(trunc(                 NaN  )) then
 4504       writeln(" ***** Truncation of float does not work correct. (1)");
 4505       okay := FALSE;
 4506     end if;
 4507 
 4508     if  not raisesRangeError(trunc(floatExpr(           -Infinity  ))) or
 4509         not raisesRangeError(trunc(floatExpr(          -FLOAT_MAX  ))) or
 4510         not raisesRangeError(trunc(floatExpr(             -1.0e37  ))) or
 4511         not raisesRangeError(trunc(floatExpr(-9223372036854777000.0))) or
 4512         trunc(floatExpr(-9223372036854775808.0)) <>        integer.first or
 4513         trunc(floatExpr(-4611686018427387904.0)) <> -4611686018427387904 or
 4514         trunc(floatExpr(-2305843009213693952.0)) <> -2305843009213693952 or
 4515         trunc(floatExpr(-1152921504606846976.0)) <> -1152921504606846976 or
 4516         trunc(floatExpr( -576460752303423488.0)) <>  -576460752303423488 or
 4517         trunc(floatExpr(   -9007199254740992.0)) <>    -9007199254740992 or
 4518         trunc(floatExpr(   -9007199254740991.0)) <>    -9007199254740991 or
 4519         trunc(floatExpr(   -9007199254740990.0)) <>    -9007199254740990 or
 4520         trunc(floatExpr(     -10000000000000.9)) <>      -10000000000000 or
 4521         trunc(floatExpr(     -10000000000000.0)) <>      -10000000000000 or
 4522         trunc(floatExpr(      -1000000000000.99)) <>      -1000000000000 or
 4523         trunc(floatExpr(      -1000000000000.0)) <>       -1000000000000 or
 4524         trunc(floatExpr(       -100000000000.999)) <>      -100000000000 or
 4525         trunc(floatExpr(       -100000000000.0)) <>        -100000000000 or
 4526         trunc(floatExpr(        -10000000000.9999)) <>      -10000000000 or
 4527         trunc(floatExpr(        -10000000000.0)) <>         -10000000000 or
 4528         trunc(floatExpr(         -1000000000.99999)) <>      -1000000000 or
 4529         trunc(floatExpr(         -1000000000.0)) <>          -1000000000 or
 4530         trunc(floatExpr(          -100000000.999999)) <>      -100000000 or
 4531         trunc(floatExpr(          -100000000.0)) <>           -100000000 or
 4532         trunc(floatExpr(           -10000000.9999999)) <>      -10000000 or
 4533         trunc(floatExpr(           -10000000.0)) <>            -10000000 or
 4534         trunc(floatExpr(            -1000000.99999999)) <>      -1000000 or
 4535         trunc(floatExpr(            -1000000.0)) <>             -1000000 or
 4536         trunc(floatExpr(             -100000.999999999)) <>      -100000 or
 4537         trunc(floatExpr(             -100000.0)) <>              -100000 or
 4538         trunc(floatExpr(              -10000.9999999999)) <>      -10000 or
 4539         trunc(floatExpr(              -10000.0)) <>               -10000 or
 4540         trunc(floatExpr(               -1000.99999999999)) <>      -1000 or
 4541         trunc(floatExpr(               -1000.0)) <>                -1000 or
 4542         trunc(floatExpr(                -100.999999999999)) <>      -100 or
 4543         trunc(floatExpr(                -100.0)) <>                 -100 or
 4544         trunc(floatExpr(                 -10.9999999999999)) <>      -10 or
 4545         trunc(floatExpr(                 -10.0)) <>                  -10 or
 4546         trunc(floatExpr(                  -1.99999999999999)) <>      -1 or
 4547         trunc(floatExpr(                  -1.0)) <>                   -1 or
 4548         trunc(floatExpr(                  -0.999999999999999)) <>      0 or
 4549         trunc(floatExpr(                   0.0)) <>                    0 or
 4550         trunc(floatExpr(                   0.999999999999999)) <>      0 or
 4551         trunc(floatExpr(                   1.0)) <>                    1 or
 4552         trunc(floatExpr(                   1.99999999999999)) <>       1 or
 4553         trunc(floatExpr(                  10.0)) <>                   10 or
 4554         trunc(floatExpr(                  10.9999999999999)) <>       10 or
 4555         trunc(floatExpr(                 100.0)) <>                  100 or
 4556         trunc(floatExpr(                 100.999999999999)) <>       100 or
 4557         trunc(floatExpr(                1000.0)) <>                 1000 or
 4558         trunc(floatExpr(                1000.99999999999)) <>       1000 or
 4559         trunc(floatExpr(               10000.0)) <>                10000 or
 4560         trunc(floatExpr(               10000.9999999999)) <>       10000 or
 4561         trunc(floatExpr(              100000.0)) <>               100000 or
 4562         trunc(floatExpr(              100000.999999999)) <>       100000 or
 4563         trunc(floatExpr(             1000000.0)) <>              1000000 or
 4564         trunc(floatExpr(             1000000.99999999)) <>       1000000 or
 4565         trunc(floatExpr(            10000000.0)) <>             10000000 or
 4566         trunc(floatExpr(            10000000.9999999)) <>       10000000 or
 4567         trunc(floatExpr(           100000000.0)) <>            100000000 or
 4568         trunc(floatExpr(           100000000.999999)) <>       100000000 or
 4569         trunc(floatExpr(          1000000000.0)) <>           1000000000 or
 4570         trunc(floatExpr(          1000000000.99999)) <>       1000000000 or
 4571         trunc(floatExpr(         10000000000.0)) <>          10000000000 or
 4572         trunc(floatExpr(         10000000000.9999)) <>       10000000000 or
 4573         trunc(floatExpr(        100000000000.0)) <>         100000000000 or
 4574         trunc(floatExpr(        100000000000.999)) <>       100000000000 or
 4575         trunc(floatExpr(       1000000000000.0)) <>        1000000000000 or
 4576         trunc(floatExpr(       1000000000000.99)) <>       1000000000000 or
 4577         trunc(floatExpr(      10000000000000.0)) <>       10000000000000 or
 4578         trunc(floatExpr(      10000000000000.9)) <>       10000000000000 or
 4579         trunc(floatExpr(    9007199254740990.0)) <>     9007199254740990 or
 4580         trunc(floatExpr(    9007199254740991.0)) <>     9007199254740991 or
 4581         trunc(floatExpr(    9007199254740992.0)) <>     9007199254740992 or
 4582         trunc(floatExpr(  576460752303423488.0)) <>   576460752303423488 or
 4583         trunc(floatExpr( 1152921504606846976.0)) <>  1152921504606846976 or
 4584         trunc(floatExpr( 2305843009213693952.0)) <>  2305843009213693952 or
 4585         trunc(floatExpr( 4611686018427387904.0)) <>  4611686018427387904 or
 4586         trunc(floatExpr( 9223372036854773760.0)) <>  9223372036854773760 or
 4587         trunc(floatExpr( 9223372036854774784.0)) <>  9223372036854774784 or
 4588             raisesRangeError(trunc(floatExpr( 9223372036854775295.0))) or
 4589         not raisesRangeError(trunc(floatExpr( 9223372036854775297.0))) and
 4590                              trunc(floatExpr( 9223372036854775297.0)) <> 9223372036854775807 or
 4591         not raisesRangeError(trunc(floatExpr( 9223372036854775807.0))) and
 4592                              trunc(floatExpr( 9223372036854775807.0)) <> 9223372036854775807 or
 4593         not raisesRangeError(trunc(floatExpr( 9223372036854777000.0))) or
 4594         not raisesRangeError(trunc(floatExpr(              1.0e37  ))) or
 4595         not raisesRangeError(trunc(floatExpr(           FLOAT_MAX  ))) or
 4596         not raisesRangeError(trunc(floatExpr(            Infinity  ))) or
 4597         not raisesRangeError(trunc(floatExpr(                 NaN  ))) then
 4598       writeln(" ***** Truncation of float does not work correct. (2)");
 4599       okay := FALSE;
 4600     end if;
 4601 
 4602     if okay then
 4603       writeln("Truncation of float works correct.");
 4604     else
 4605       writeln(" ***** Truncation of float does not work correct.");
 4606     end if;
 4607   end func;
 4608 
 4609 
 4610 const proc: check_round is func
 4611   local
 4612     var boolean: okay is TRUE;
 4613   begin
 4614     if  not raisesRangeError(round(           -Infinity  )) or
 4615         not raisesRangeError(round(          -FLOAT_MAX  )) or
 4616         not raisesRangeError(round(             -1.0e37  )) or
 4617         not raisesRangeError(round(-9223372036854777000.0)) or
 4618         round(-9223372036854775808.0) <>        integer.first or
 4619         round(-4611686018427387904.0) <> -4611686018427387904 or
 4620         round(-2305843009213693952.0) <> -2305843009213693952 or
 4621         round(-1152921504606846976.0) <> -1152921504606846976 or
 4622         round( -576460752303423488.0) <>  -576460752303423488 or
 4623         round(   -9007199254740990.0) <>    -9007199254740990 or
 4624         round(      -1000000000000.5) <>       -1000000000001 or
 4625         round(      -1000000000000.49) <>      -1000000000000 or
 4626         round(      -1000000000000.0) <>       -1000000000000 or
 4627         round(       -999999999999.5) <>       -1000000000000 or
 4628         round(       -999999999999.49) <>       -999999999999 or
 4629         round(       -100000000000.5) <>        -100000000001 or
 4630         round(       -100000000000.499) <>      -100000000000 or
 4631         round(       -100000000000.0) <>        -100000000000 or
 4632         round(        -99999999999.5) <>        -100000000000 or
 4633         round(        -99999999999.499) <>       -99999999999 or
 4634         round(        -10000000000.5) <>         -10000000001 or
 4635         round(        -10000000000.4999) <>      -10000000000 or
 4636         round(        -10000000000.0) <>         -10000000000 or
 4637         round(         -9999999999.5) <>         -10000000000 or
 4638         round(         -9999999999.4999) <>       -9999999999 or
 4639         round(         -1000000000.5) <>          -1000000001 or
 4640         round(         -1000000000.49999) <>      -1000000000 or
 4641         round(         -1000000000.0) <>          -1000000000 or
 4642         round(          -999999999.5) <>          -1000000000 or
 4643         round(          -999999999.49999) <>       -999999999 or
 4644         round(          -100000000.5) <>           -100000001 or
 4645         round(          -100000000.499999) <>      -100000000 or
 4646         round(          -100000000.0) <>           -100000000 or
 4647         round(           -99999999.5) <>           -100000000 or
 4648         round(           -99999999.499999) <>       -99999999 or
 4649         round(           -10000000.5) <>            -10000001 or
 4650         round(           -10000000.4999999) <>      -10000000 or
 4651         round(           -10000000.0) <>            -10000000 or
 4652         round(            -9999999.5) <>            -10000000 or
 4653         round(            -9999999.4999999) <>       -9999999 or
 4654         round(            -1000000.5) <>             -1000001 or
 4655         round(            -1000000.49999999) <>      -1000000 or
 4656         round(            -1000000.0) <>             -1000000 or
 4657         round(             -999999.5) <>             -1000000 or
 4658         round(             -999999.49999999) <>       -999999 or
 4659         round(             -100000.5) <>              -100001 or
 4660         round(             -100000.499999999) <>      -100000 or
 4661         round(             -100000.0) <>              -100000 or
 4662         round(              -99999.5) <>              -100000 or
 4663         round(              -99999.499999999) <>       -99999 or
 4664         round(              -10000.5) <>               -10001 or
 4665         round(              -10000.4999999999) <>      -10000 or
 4666         round(              -10000.0) <>               -10000 or
 4667         round(               -9999.5) <>               -10000 or
 4668         round(               -9999.4999999999) <>       -9999 or
 4669         round(               -1000.5) <>                -1001 or
 4670         round(               -1000.49999999999) <>      -1000 or
 4671         round(               -1000.0) <>                -1000 or
 4672         round(                -999.5) <>                -1000 or
 4673         round(                -999.49999999999) <>       -999 or
 4674         round(                -100.5) <>                 -101 or
 4675         round(                -100.499999999999) <>      -100 or
 4676         round(                -100.0) <>                 -100 or
 4677         round(                 -99.5) <>                 -100 or
 4678         round(                 -99.499999999999) <>       -99 or
 4679         round(                 -10.5) <>                  -11 or
 4680         round(                 -10.4999999999999) <>      -10 or
 4681         round(                 -10.0) <>                  -10 or
 4682         round(                  -9.5) <>                  -10 or
 4683         round(                  -9.4999999999999) <>       -9 or
 4684         round(                  -1.5) <>                   -2 or
 4685         round(                  -1.49999999999999) <>      -1 or
 4686         round(                  -1.0) <>                   -1 or
 4687         round(                  -0.5) <>                   -1 or
 4688         round(                  -0.499999999999999) <>      0 or
 4689         round(                   0.0) <>                    0 or
 4690         round(                   0.499999999999999) <>      0 or
 4691         round(                   0.5) <>                    1 or
 4692         round(                   1.0) <>                    1 or
 4693         round(                   1.49999999999999) <>       1 or
 4694         round(                   1.5) <>                    2 or
 4695         round(                   9.4999999999999) <>        9 or
 4696         round(                   9.5) <>                   10 or
 4697         round(                  10.0) <>                   10 or
 4698         round(                  10.4999999999999) <>       10 or
 4699         round(                  10.5) <>                   11 or
 4700         round(                  99.499999999999) <>        99 or
 4701         round(                  99.5) <>                  100 or
 4702         round(                 100.0) <>                  100 or
 4703         round(                 100.499999999999) <>       100 or
 4704         round(                 100.5) <>                  101 or
 4705         round(                 999.49999999999) <>        999 or
 4706         round(                 999.5) <>                 1000 or
 4707         round(                1000.0) <>                 1000 or
 4708         round(                1000.49999999999) <>       1000 or
 4709         round(                1000.5) <>                 1001 or
 4710         round(                9999.4999999999) <>        9999 or
 4711         round(                9999.5) <>                10000 or
 4712         round(               10000.0) <>                10000 or
 4713         round(               10000.4999999999) <>       10000 or
 4714         round(               10000.5) <>                10001 or
 4715         round(               99999.499999999) <>        99999 or
 4716         round(               99999.5) <>               100000 or
 4717         round(              100000.0) <>               100000 or
 4718         round(              100000.499999999) <>       100000 or
 4719         round(              100000.5) <>               100001 or
 4720         round(              999999.49999999) <>        999999 or
 4721         round(              999999.5) <>              1000000 or
 4722         round(             1000000.0) <>              1000000 or
 4723         round(             1000000.49999999) <>       1000000 or
 4724         round(             1000000.5) <>              1000001 or
 4725         round(             9999999.4999999) <>        9999999 or
 4726         round(             9999999.5) <>             10000000 or
 4727         round(            10000000.0) <>             10000000 or
 4728         round(            10000000.4999999) <>       10000000 or
 4729         round(            10000000.5) <>             10000001 or
 4730         round(            99999999.499999) <>        99999999 or
 4731         round(            99999999.5) <>            100000000 or
 4732         round(           100000000.0) <>            100000000 or
 4733         round(           100000000.499999) <>       100000000 or
 4734         round(           100000000.5) <>            100000001 or
 4735         round(           999999999.49999) <>        999999999 or
 4736         round(           999999999.5) <>           1000000000 or
 4737         round(          1000000000.0) <>           1000000000 or
 4738         round(          1000000000.49999) <>       1000000000 or
 4739         round(          1000000000.5) <>           1000000001 or
 4740         round(          9999999999.4999) <>        9999999999 or
 4741         round(          9999999999.5) <>          10000000000 or
 4742         round(         10000000000.0) <>          10000000000 or
 4743         round(         10000000000.4999) <>       10000000000 or
 4744         round(         10000000000.5) <>          10000000001 or
 4745         round(         99999999999.499) <>        99999999999 or
 4746         round(         99999999999.5) <>         100000000000 or
 4747         round(        100000000000.0) <>         100000000000 or
 4748         round(        100000000000.499) <>       100000000000 or
 4749         round(        100000000000.5) <>         100000000001 or
 4750         round(        999999999999.49) <>        999999999999 or
 4751         round(        999999999999.5) <>        1000000000000 or
 4752         round(       1000000000000.0) <>        1000000000000 or
 4753         round(       1000000000000.49) <>       1000000000000 or
 4754         round(       1000000000000.5) <>        1000000000001 or
 4755         round(    9007199254740990.0) <>     9007199254740990 or
 4756         round(  576460752303423488.0) <>   576460752303423488 or
 4757         round( 1152921504606846976.0) <>  1152921504606846976 or
 4758         round( 2305843009213693952.0) <>  2305843009213693952 or
 4759         round( 4611686018427387904.0) <>  4611686018427387904 or
 4760         round( 9223372036854773760.0) <>  9223372036854773760 or
 4761         round( 9223372036854774784.0) <>  9223372036854774784 or
 4762             raisesRangeError(round( 9223372036854775295.0)) or
 4763         not raisesRangeError(round( 9223372036854775297.0)) and
 4764                              round( 9223372036854775297.0) <> 9223372036854775807 or
 4765         not raisesRangeError(round( 9223372036854775807.0)) and
 4766                              round( 9223372036854775807.0) <> 9223372036854775807 or
 4767         not raisesRangeError(round( 9223372036854777000.0)) or
 4768         not raisesRangeError(round(              1.0e37  )) or
 4769         not raisesRangeError(round(           FLOAT_MAX  )) or
 4770         not raisesRangeError(round(            Infinity  )) or
 4771         not raisesRangeError(round(                 NaN  )) then
 4772       writeln(" ***** Rounding of float does not work correct. (1)");
 4773       okay := FALSE;
 4774     end if;
 4775 
 4776     if  not raisesRangeError(round(floatExpr(           -Infinity  ))) or
 4777         not raisesRangeError(round(floatExpr(          -FLOAT_MAX  ))) or
 4778         not raisesRangeError(round(floatExpr(             -1.0e37  ))) or
 4779         not raisesRangeError(round(floatExpr(-9223372036854777000.0))) or
 4780         round(floatExpr(-9223372036854775808.0)) <>        integer.first or
 4781         round(floatExpr(-4611686018427387904.0)) <> -4611686018427387904 or
 4782         round(floatExpr(-2305843009213693952.0)) <> -2305843009213693952 or
 4783         round(floatExpr(-1152921504606846976.0)) <> -1152921504606846976 or
 4784         round(floatExpr( -576460752303423488.0)) <>  -576460752303423488 or
 4785         round(floatExpr(   -9007199254740990.0)) <>    -9007199254740990 or
 4786         round(floatExpr(      -1000000000000.5)) <>       -1000000000001 or
 4787         round(floatExpr(      -1000000000000.49)) <>      -1000000000000 or
 4788         round(floatExpr(      -1000000000000.0)) <>       -1000000000000 or
 4789         round(floatExpr(       -999999999999.5)) <>       -1000000000000 or
 4790         round(floatExpr(       -999999999999.49)) <>       -999999999999 or
 4791         round(floatExpr(       -100000000000.5)) <>        -100000000001 or
 4792         round(floatExpr(       -100000000000.499)) <>      -100000000000 or
 4793         round(floatExpr(       -100000000000.0)) <>        -100000000000 or
 4794         round(floatExpr(        -99999999999.5)) <>        -100000000000 or
 4795         round(floatExpr(        -99999999999.499)) <>       -99999999999 or
 4796         round(floatExpr(        -10000000000.5)) <>         -10000000001 or
 4797         round(floatExpr(        -10000000000.4999)) <>      -10000000000 or
 4798         round(floatExpr(        -10000000000.0)) <>         -10000000000 or
 4799         round(floatExpr(         -9999999999.5)) <>         -10000000000 or
 4800         round(floatExpr(         -9999999999.4999)) <>       -9999999999 or
 4801         round(floatExpr(         -1000000000.5)) <>          -1000000001 or
 4802         round(floatExpr(         -1000000000.49999)) <>      -1000000000 or
 4803         round(floatExpr(         -1000000000.0)) <>          -1000000000 or
 4804         round(floatExpr(          -999999999.5)) <>          -1000000000 or
 4805         round(floatExpr(          -999999999.49999)) <>       -999999999 or
 4806         round(floatExpr(          -100000000.5)) <>           -100000001 or
 4807         round(floatExpr(          -100000000.499999)) <>      -100000000 or
 4808         round(floatExpr(          -100000000.0)) <>           -100000000 or
 4809         round(floatExpr(           -99999999.5)) <>           -100000000 or
 4810         round(floatExpr(           -99999999.499999)) <>       -99999999 or
 4811         round(floatExpr(           -10000000.5)) <>            -10000001 or
 4812         round(floatExpr(           -10000000.4999999)) <>      -10000000 or
 4813         round(floatExpr(           -10000000.0)) <>            -10000000 or
 4814         round(floatExpr(            -9999999.5)) <>            -10000000 or
 4815         round(floatExpr(            -9999999.4999999)) <>       -9999999 or
 4816         round(floatExpr(            -1000000.5)) <>             -1000001 or
 4817         round(floatExpr(            -1000000.49999999)) <>      -1000000 or
 4818         round(floatExpr(            -1000000.0)) <>             -1000000 or
 4819         round(floatExpr(             -999999.5)) <>             -1000000 or
 4820         round(floatExpr(             -999999.49999999)) <>       -999999 or
 4821         round(floatExpr(             -100000.5)) <>              -100001 or
 4822         round(floatExpr(             -100000.499999999)) <>      -100000 or
 4823         round(floatExpr(             -100000.0)) <>              -100000 or
 4824         round(floatExpr(              -99999.5)) <>              -100000 or
 4825         round(floatExpr(              -99999.499999999)) <>       -99999 or
 4826         round(floatExpr(              -10000.5)) <>               -10001 or
 4827         round(floatExpr(              -10000.4999999999)) <>      -10000 or
 4828         round(floatExpr(              -10000.0)) <>               -10000 or
 4829         round(floatExpr(               -9999.5)) <>               -10000 or
 4830         round(floatExpr(               -9999.4999999999)) <>       -9999 or
 4831         round(floatExpr(               -1000.5)) <>                -1001 or
 4832         round(floatExpr(               -1000.49999999999)) <>      -1000 or
 4833         round(floatExpr(               -1000.0)) <>                -1000 or
 4834         round(floatExpr(                -999.5)) <>                -1000 or
 4835         round(floatExpr(                -999.49999999999)) <>       -999 or
 4836         round(floatExpr(                -100.5)) <>                 -101 or
 4837         round(floatExpr(                -100.499999999999)) <>      -100 or
 4838         round(floatExpr(                -100.0)) <>                 -100 or
 4839         round(floatExpr(                 -99.5)) <>                 -100 or
 4840         round(floatExpr(                 -99.499999999999)) <>       -99 or
 4841         round(floatExpr(                 -10.5)) <>                  -11 or
 4842         round(floatExpr(                 -10.4999999999999)) <>      -10 or
 4843         round(floatExpr(                 -10.0)) <>                  -10 or
 4844         round(floatExpr(                  -9.5)) <>                  -10 or
 4845         round(floatExpr(                  -9.4999999999999)) <>       -9 or
 4846         round(floatExpr(                  -1.5)) <>                   -2 or
 4847         round(floatExpr(                  -1.49999999999999)) <>      -1 or
 4848         round(floatExpr(                  -1.0)) <>                   -1 or
 4849         round(floatExpr(                  -0.5)) <>                   -1 or
 4850         round(floatExpr(                  -0.499999999999999)) <>      0 or
 4851         round(floatExpr(                   0.0)) <>                    0 or
 4852         round(floatExpr(                   0.499999999999999)) <>      0 or
 4853         round(floatExpr(                   0.5)) <>                    1 or
 4854         round(floatExpr(                   1.0)) <>                    1 or
 4855         round(floatExpr(                   1.49999999999999)) <>       1 or
 4856         round(floatExpr(                   1.5)) <>                    2 or
 4857         round(floatExpr(                   9.4999999999999)) <>        9 or
 4858         round(floatExpr(                   9.5)) <>                   10 or
 4859         round(floatExpr(                  10.0)) <>                   10 or
 4860         round(floatExpr(                  10.4999999999999)) <>       10 or
 4861         round(floatExpr(                  10.5)) <>                   11 or
 4862         round(floatExpr(                  99.499999999999)) <>        99 or
 4863         round(floatExpr(                  99.5)) <>                  100 or
 4864         round(floatExpr(                 100.0)) <>                  100 or
 4865         round(floatExpr(                 100.499999999999)) <>       100 or
 4866         round(floatExpr(                 100.5)) <>                  101 or
 4867         round(floatExpr(                 999.49999999999)) <>        999 or
 4868         round(floatExpr(                 999.5)) <>                 1000 or
 4869         round(floatExpr(                1000.0)) <>                 1000 or
 4870         round(floatExpr(                1000.49999999999)) <>       1000 or
 4871         round(floatExpr(                1000.5)) <>                 1001 or
 4872         round(floatExpr(                9999.4999999999)) <>        9999 or
 4873         round(floatExpr(                9999.5)) <>                10000 or
 4874         round(floatExpr(               10000.0)) <>                10000 or
 4875         round(floatExpr(               10000.4999999999)) <>       10000 or
 4876         round(floatExpr(               10000.5)) <>                10001 or
 4877         round(floatExpr(               99999.499999999)) <>        99999 or
 4878         round(floatExpr(               99999.5)) <>               100000 or
 4879         round(floatExpr(              100000.0)) <>               100000 or
 4880         round(floatExpr(              100000.499999999)) <>       100000 or
 4881         round(floatExpr(              100000.5)) <>               100001 or
 4882         round(floatExpr(              999999.49999999)) <>        999999 or
 4883         round(floatExpr(              999999.5)) <>              1000000 or
 4884         round(floatExpr(             1000000.0)) <>              1000000 or
 4885         round(floatExpr(             1000000.49999999)) <>       1000000 or
 4886         round(floatExpr(             1000000.5)) <>              1000001 or
 4887         round(floatExpr(             9999999.4999999)) <>        9999999 or
 4888         round(floatExpr(             9999999.5)) <>             10000000 or
 4889         round(floatExpr(            10000000.0)) <>             10000000 or
 4890         round(floatExpr(            10000000.4999999)) <>       10000000 or
 4891         round(floatExpr(            10000000.5)) <>             10000001 or
 4892         round(floatExpr(            99999999.499999)) <>        99999999 or
 4893         round(floatExpr(            99999999.5)) <>            100000000 or
 4894         round(floatExpr(           100000000.0)) <>            100000000 or
 4895         round(floatExpr(           100000000.499999)) <>       100000000 or
 4896         round(floatExpr(           100000000.5)) <>            100000001 or
 4897         round(floatExpr(           999999999.49999)) <>        999999999 or
 4898         round(floatExpr(           999999999.5)) <>           1000000000 or
 4899         round(floatExpr(          1000000000.0)) <>           1000000000 or
 4900         round(floatExpr(          1000000000.49999)) <>       1000000000 or
 4901         round(floatExpr(          1000000000.5)) <>           1000000001 or
 4902         round(floatExpr(          9999999999.4999)) <>        9999999999 or
 4903         round(floatExpr(          9999999999.5)) <>          10000000000 or
 4904         round(floatExpr(         10000000000.0)) <>          10000000000 or
 4905         round(floatExpr(         10000000000.4999)) <>       10000000000 or
 4906         round(floatExpr(         10000000000.5)) <>          10000000001 or
 4907         round(floatExpr(         99999999999.499)) <>        99999999999 or
 4908         round(floatExpr(         99999999999.5)) <>         100000000000 or
 4909         round(floatExpr(        100000000000.0)) <>         100000000000 or
 4910         round(floatExpr(        100000000000.499)) <>       100000000000 or
 4911         round(floatExpr(        100000000000.5)) <>         100000000001 or
 4912         round(floatExpr(        999999999999.49)) <>        999999999999 or
 4913         round(floatExpr(        999999999999.5)) <>        1000000000000 or
 4914         round(floatExpr(       1000000000000.0)) <>        1000000000000 or
 4915         round(floatExpr(       1000000000000.49)) <>       1000000000000 or
 4916         round(floatExpr(       1000000000000.5)) <>        1000000000001 or
 4917         round(floatExpr(    9007199254740990.0)) <>     9007199254740990 or
 4918         round(floatExpr(  576460752303423488.0)) <>   576460752303423488 or
 4919         round(floatExpr( 1152921504606846976.0)) <>  1152921504606846976 or
 4920         round(floatExpr( 2305843009213693952.0)) <>  2305843009213693952 or
 4921         round(floatExpr( 4611686018427387904.0)) <>  4611686018427387904 or
 4922         round(floatExpr( 9223372036854773760.0)) <>  9223372036854773760 or
 4923         round(floatExpr( 9223372036854774784.0)) <>  9223372036854774784 or
 4924             raisesRangeError(round(floatExpr( 9223372036854775295.0))) or
 4925         not raisesRangeError(round(floatExpr( 9223372036854775297.0))) and
 4926                              round(floatExpr( 9223372036854775297.0)) <> 9223372036854775807 or
 4927         not raisesRangeError(round(floatExpr( 9223372036854775807.0))) and
 4928                              round(floatExpr( 9223372036854775807.0)) <> 9223372036854775807 or
 4929         not raisesRangeError(round(floatExpr( 9223372036854777000.0))) or
 4930         not raisesRangeError(round(floatExpr(              1.0e37  ))) or
 4931         not raisesRangeError(round(floatExpr(           FLOAT_MAX  ))) or
 4932         not raisesRangeError(round(floatExpr(            Infinity  ))) or
 4933         not raisesRangeError(round(floatExpr(                 NaN  ))) then
 4934       writeln(" ***** Rounding of float does not work correct. (2)");
 4935       okay := FALSE;
 4936     end if;
 4937 
 4938     if okay then
 4939       writeln("Rounding of float works correct.");
 4940     else
 4941       writeln(" ***** Rounding of float does not work correct.");
 4942     end if;
 4943   end func;
 4944 
 4945 
 4946 const proc: check_add is func
 4947   local
 4948     var boolean: okay is TRUE;
 4949     var boolean: ok is TRUE;
 4950     var float: num is 0.0;
 4951   begin
 4952     if           0.0 +          0.0 <>          0.0 or
 4953                  2.0 +          3.0 <>          5.0 or
 4954                127.0 +        127.0 <>        254.0 or
 4955                255.0 +        255.0 <>        510.0 or
 4956              18341.0 +      26783.0 <>      45124.0 or
 4957              32767.0 +      32767.0 <>      65534.0 or
 4958              35759.0 +      58537.0 <>      94296.0 or
 4959              65535.0 +      65535.0 <>     131070.0 or
 4960              73819.0 +     124303.0 <>     198122.0 or
 4961         2147483647.0 +          0.0 <> 2147483647.0 or
 4962                  0.0 + 2147483647.0 <> 2147483647.0 or
 4963                  0.1 +          0.0 <>          0.1 or
 4964                  0.0 +          0.1 <>          0.1 or
 4965                  2.3 +          3.2 <>          5.5 or
 4966              390.625 +     195.3125 <>     585.9375 or
 4967              0.78125 +      0.15625 <>       0.9375 then
 4968       writeln(" ***** Addition with selected values does not work correct.");
 4969       okay := FALSE;
 4970     end if;
 4971 
 4972     num :=          0.0; num +:=          0.0; ok := ok and num =          0.0;
 4973     num :=          2.0; num +:=          3.0; ok := ok and num =          5.0;
 4974     num :=        127.0; num +:=        127.0; ok := ok and num =        254.0;
 4975     num :=        255.0; num +:=        255.0; ok := ok and num =        510.0;
 4976     num :=      18341.0; num +:=      26783.0; ok := ok and num =      45124.0;
 4977     num :=      32767.0; num +:=      32767.0; ok := ok and num =      65534.0;
 4978     num :=      35759.0; num +:=      58537.0; ok := ok and num =      94296.0;
 4979     num :=      65535.0; num +:=      65535.0; ok := ok and num =     131070.0;
 4980     num :=      73819.0; num +:=     124303.0; ok := ok and num =     198122.0;
 4981     num := 2147483647.0; num +:=          0.0; ok := ok and num = 2147483647.0;
 4982     num :=          0.0; num +:= 2147483647.0; ok := ok and num = 2147483647.0;
 4983     num :=          0.1; num +:=          0.0; ok := ok and num =          0.1;
 4984     num :=          0.0; num +:=          0.1; ok := ok and num =          0.1;
 4985     num :=          2.3; num +:=          3.2; ok := ok and num =          5.5;
 4986     num :=      390.625; num +:=     195.3125; ok := ok and num =     585.9375;
 4987     num :=      0.78125; num +:=      0.15625; ok := ok and num =       0.9375;
 4988     if not ok then
 4989       writeln(" ***** Addition assignment with selected values does not work correct.");
 4990       okay := FALSE;
 4991     end if;
 4992 
 4993     if okay then
 4994       writeln("Addition works correct for selected values.");
 4995     else
 4996       writeln(" ***** Addition does not work correct.");
 4997     end if;
 4998   end func;
 4999 
 5000 
 5001 const proc: check_mult is func
 5002   local
 5003     var boolean: okay is TRUE;
 5004   begin
 5005     if 123.0 * 0.0 **       integer.first  <> Infinity or
 5006        123.0 * 0.0 **        (-2147483649) <> Infinity or
 5007        123.0 * 0.0 **        (-2147483648) <> Infinity or
 5008        123.0 * 0.0 **             (-32769) <> Infinity or
 5009        123.0 * 0.0 **             (-32768) <> Infinity or
 5010        123.0 * 0.0 **               (-100) <> Infinity or
 5011        123.0 * 0.0 **                 (-4) <> Infinity or
 5012        123.0 * 0.0 **                 (-3) <> Infinity or
 5013        123.0 * 0.0 **                 (-2) <> Infinity or
 5014        123.0 * 0.0 **                 (-1) <> Infinity or
 5015        123.0 * 0.0 **                   0  <>    123.0 or
 5016        123.0 * 0.0 **                   1  <>      0.0 or
 5017        123.0 * 0.0 **                   2  <>      0.0 or
 5018        123.0 * 0.0 **                   3  <>      0.0 or
 5019        123.0 * 0.0 **                   4  <>      0.0 or
 5020        123.0 * 0.0 **                 100  <>      0.0 or
 5021        123.0 * 0.0 **               32767  <>      0.0 or
 5022        123.0 * 0.0 **               32768  <>      0.0 or
 5023        123.0 * 0.0 **          2147483647  <>      0.0 or
 5024        123.0 * 0.0 **          2147483648  <>      0.0 or
 5025        123.0 * 0.0 ** 9223372036854775807  <>      0.0 or
 5026        123.0 * 1.0 **       integer.first  <>    123.0 or
 5027        123.0 * 1.0 **        (-2147483649) <>    123.0 or
 5028        123.0 * 1.0 **        (-2147483648) <>    123.0 or
 5029        123.0 * 1.0 **             (-32769) <>    123.0 or
 5030        123.0 * 1.0 **             (-32768) <>    123.0 or
 5031        123.0 * 1.0 **               (-100) <>    123.0 or
 5032        123.0 * 1.0 **                 (-4) <>    123.0 or
 5033        123.0 * 1.0 **                 (-3) <>    123.0 or
 5034        123.0 * 1.0 **                 (-2) <>    123.0 or
 5035        123.0 * 1.0 **                 (-1) <>    123.0 or
 5036        123.0 * 1.0 **                   0  <>    123.0 or
 5037        123.0 * 1.0 **                   1  <>    123.0 or
 5038        123.0 * 1.0 **                   2  <>    123.0 or
 5039        123.0 * 1.0 **                   3  <>    123.0 or
 5040        123.0 * 1.0 **                   4  <>    123.0 or
 5041        123.0 * 1.0 **                 100  <>    123.0 or
 5042        123.0 * 1.0 **               32767  <>    123.0 or
 5043        123.0 * 1.0 **               32768  <>    123.0 or
 5044        123.0 * 1.0 **          2147483647  <>    123.0 or
 5045        123.0 * 1.0 **          2147483648  <>    123.0 or
 5046        123.0 * 1.0 ** 9223372036854775807  <>    123.0 or
 5047        123.0 * 2.0 **       integer.first  <>                  0.0 or
 5048        123.0 * 2.0 **        (-2147483649) <>                  0.0 or
 5049        123.0 * 2.0 **        (-2147483648) <>                  0.0 or
 5050        123.0 * 2.0 **             (-32769) <>                  0.0 or
 5051        123.0 * 2.0 **             (-32768) <>                  0.0 or
 5052        123.0 * 2.0 **               (-150) <>                  8.6179855555976250e-44 or
 5053        123.0 * 2.0 **               (-100) <>                  9.7029891342184452e-29 or
 5054        123.0 * 2.0 **                (-50) <>                  1.0924594562311540e-13 or
 5055        123.0 * 2.0 **                (-40) <>                  1.1186784831807017e-10 or
 5056        123.0 * 2.0 **                (-30) <>                  1.1455267667770386e-07 or
 5057        123.0 * 2.0 **                (-20) <>                  1.1730194091796875e-04 or
 5058        123.0 * 2.0 **                (-10) <>                  0.1201171875 or
 5059        123.0 * 2.0 **                 (-4) <>                  7.6875 or
 5060        123.0 * 2.0 **                 (-3) <>                 15.375 or
 5061        123.0 * 2.0 **                 (-2) <>                 30.75 or
 5062        123.0 * 2.0 **                 (-1) <>                 61.5 or
 5063        123.0 * 2.0 **                   0  <>                123.0 or
 5064        123.0 * 2.0 **                   1  <>                246.0 or
 5065        123.0 * 2.0 **                   2  <>                492.0 or
 5066        123.0 * 2.0 **                   3  <>                984.0 or
 5067        123.0 * 2.0 **                   4  <>               1968.0 or
 5068        123.0 * 2.0 **                  10  <>             125952.0 or
 5069        123.0 * 2.0 **                  20  <>          128974848.0 or
 5070        123.0 * 2.0 **                  30  <>       132070244352.0 or
 5071        123.0 * 2.0 **                  40  <>    135239930216448.0 or
 5072        123.0 * 2.0 **                  50  <> 138485688541642752.0 or
 5073        123.0 * 2.0 **                 100  <>                  1.5592102382807222e+32 or
 5074        123.0 * 2.0 **                 150  <>                  1.7555146620283307e+47 or
 5075        123.0 * 2.0 **               32767  <>             Infinity or
 5076        123.0 * 2.0 **               32768  <>             Infinity or
 5077        123.0 * 2.0 **          2147483647  <>             Infinity or
 5078        123.0 * 2.0 **          2147483648  <>             Infinity or
 5079        123.0 * 2.0 ** 9223372036854775807  <>             Infinity or
 5080        123.0 * 4.0 **       integer.first  <>                  0.0 or
 5081        123.0 * 4.0 **        (-2147483649) <>                  0.0 or
 5082        123.0 * 4.0 **        (-2147483648) <>                  0.0 or
 5083        123.0 * 4.0 **             (-32769) <>                  0.0 or
 5084        123.0 * 4.0 **             (-32768) <>                  0.0 or
 5085        123.0 * 4.0 **               (-150) <>                  6.0381849623162037e-89 or
 5086        123.0 * 4.0 **               (-100) <>                  7.6543087917692043e-59 or
 5087        123.0 * 4.0 **                (-50) <>                  9.7029891342184452e-29 or
 5088        123.0 * 4.0 **                (-40) <>                  1.0174321534402240e-22 or
 5089        123.0 * 4.0 **                (-30) <>                  1.0668549377257364e-16 or
 5090        123.0 * 4.0 **                (-20) <>                  1.1186784831807017e-10 or
 5091        123.0 * 4.0 **                (-10) <>                  1.1730194091796875e-04 or
 5092        123.0 * 4.0 **                 (-4) <>                  0.48046875 or
 5093        123.0 * 4.0 **                 (-3) <>                  1.921875 or
 5094        123.0 * 4.0 **                 (-2) <>                  7.6875 or
 5095        123.0 * 4.0 **                 (-1) <>                 30.75 or
 5096        123.0 * 4.0 **                   0  <>                123.0 or
 5097        123.0 * 4.0 **                   1  <>                492.0 or
 5098        123.0 * 4.0 **                   2  <>               1968.0 or
 5099        123.0 * 4.0 **                   3  <>               7872.0 or
 5100        123.0 * 4.0 **                   4  <>              31488.0 or
 5101        123.0 * 4.0 **                  10  <>          128974848.0 or
 5102        123.0 * 4.0 **                  20  <>    135239930216448.0 or
 5103        123.0 * 4.0 **                  30  <>                  1.4180934506664218e+20 or
 5104        123.0 * 4.0 **                  40  <>                  1.4869787581259939e+26 or
 5105        123.0 * 4.0 **                  50  <>                  1.5592102382807222e+32 or
 5106        123.0 * 4.0 **                 100  <>                  1.9765337944385580e+62 or
 5107        123.0 * 4.0 **                 150  <>                  2.5055542508914179e+92 or
 5108        123.0 * 4.0 **               32767  <>             Infinity or
 5109        123.0 * 4.0 **               32768  <>             Infinity or
 5110        123.0 * 4.0 **          2147483647  <>             Infinity or
 5111        123.0 * 4.0 **          2147483648  <>             Infinity or
 5112        123.0 * 4.0 ** 9223372036854775807  <>             Infinity then
 5113       writeln(" ***** Multiplication A * B ** C does not work correct. (1)");
 5114       okay := FALSE;
 5115     end if;
 5116 
 5117     if 123.0 * 0.0 ** intExpr(      integer.first) <> Infinity or
 5118        123.0 * 0.0 ** intExpr(        -2147483649) <> Infinity or
 5119        123.0 * 0.0 ** intExpr(        -2147483648) <> Infinity or
 5120        123.0 * 0.0 ** intExpr(             -32769) <> Infinity or
 5121        123.0 * 0.0 ** intExpr(             -32768) <> Infinity or
 5122        123.0 * 0.0 ** intExpr(               -100) <> Infinity or
 5123        123.0 * 0.0 ** intExpr(                 -4) <> Infinity or
 5124        123.0 * 0.0 ** intExpr(                 -3) <> Infinity or
 5125        123.0 * 0.0 ** intExpr(                 -2) <> Infinity or
 5126        123.0 * 0.0 ** intExpr(                 -1) <> Infinity or
 5127        123.0 * 0.0 ** intExpr(                  0) <>    123.0 or
 5128        123.0 * 0.0 ** intExpr(                  1) <>      0.0 or
 5129        123.0 * 0.0 ** intExpr(                  2) <>      0.0 or
 5130        123.0 * 0.0 ** intExpr(                  3) <>      0.0 or
 5131        123.0 * 0.0 ** intExpr(                  4) <>      0.0 or
 5132        123.0 * 0.0 ** intExpr(                100) <>      0.0 or
 5133        123.0 * 0.0 ** intExpr(              32767) <>      0.0 or
 5134        123.0 * 0.0 ** intExpr(              32768) <>      0.0 or
 5135        123.0 * 0.0 ** intExpr(         2147483647) <>      0.0 or
 5136        123.0 * 0.0 ** intExpr(         2147483648) <>      0.0 or
 5137        123.0 * 0.0 ** intExpr(9223372036854775807) <>      0.0 or
 5138        123.0 * 1.0 ** intExpr(      integer.first) <>    123.0 or
 5139        123.0 * 1.0 ** intExpr(        -2147483649) <>    123.0 or
 5140        123.0 * 1.0 ** intExpr(        -2147483648) <>    123.0 or
 5141        123.0 * 1.0 ** intExpr(             -32769) <>    123.0 or
 5142        123.0 * 1.0 ** intExpr(             -32768) <>    123.0 or
 5143        123.0 * 1.0 ** intExpr(               -100) <>    123.0 or
 5144        123.0 * 1.0 ** intExpr(                 -4) <>    123.0 or
 5145        123.0 * 1.0 ** intExpr(                 -3) <>    123.0 or
 5146        123.0 * 1.0 ** intExpr(                 -2) <>    123.0 or
 5147        123.0 * 1.0 ** intExpr(                 -1) <>    123.0 or
 5148        123.0 * 1.0 ** intExpr(                  0) <>    123.0 or
 5149        123.0 * 1.0 ** intExpr(                  1) <>    123.0 or
 5150        123.0 * 1.0 ** intExpr(                  2) <>    123.0 or
 5151        123.0 * 1.0 ** intExpr(                  3) <>    123.0 or
 5152        123.0 * 1.0 ** intExpr(                  4) <>    123.0 or
 5153        123.0 * 1.0 ** intExpr(                100) <>    123.0 or
 5154        123.0 * 1.0 ** intExpr(              32767) <>    123.0 or
 5155        123.0 * 1.0 ** intExpr(              32768) <>    123.0 or
 5156        123.0 * 1.0 ** intExpr(         2147483647) <>    123.0 or
 5157        123.0 * 1.0 ** intExpr(         2147483648) <>    123.0 or
 5158        123.0 * 1.0 ** intExpr(9223372036854775807) <>    123.0 or
 5159        123.0 * 2.0 ** intExpr(      integer.first) <>                  0.0 or
 5160        123.0 * 2.0 ** intExpr(        -2147483649) <>                  0.0 or
 5161        123.0 * 2.0 ** intExpr(        -2147483648) <>                  0.0 or
 5162        123.0 * 2.0 ** intExpr(             -32769) <>                  0.0 or
 5163        123.0 * 2.0 ** intExpr(             -32768) <>                  0.0 or
 5164        123.0 * 2.0 ** intExpr(               -150) <>                  8.6179855555976250e-44 or
 5165        123.0 * 2.0 ** intExpr(               -100) <>                  9.7029891342184452e-29 or
 5166        123.0 * 2.0 ** intExpr(                -50) <>                  1.0924594562311540e-13 or
 5167        123.0 * 2.0 ** intExpr(                -40) <>                  1.1186784831807017e-10 or
 5168        123.0 * 2.0 ** intExpr(                -30) <>                  1.1455267667770386e-07 or
 5169        123.0 * 2.0 ** intExpr(                -20) <>                  1.1730194091796875e-04 or
 5170        123.0 * 2.0 ** intExpr(                -10) <>                  0.1201171875 or
 5171        123.0 * 2.0 ** intExpr(                 -4) <>                  7.6875 or
 5172        123.0 * 2.0 ** intExpr(                 -3) <>                 15.375 or
 5173        123.0 * 2.0 ** intExpr(                 -2) <>                 30.75 or
 5174        123.0 * 2.0 ** intExpr(                 -1) <>                 61.5 or
 5175        123.0 * 2.0 ** intExpr(                  0) <>                123.0 or
 5176        123.0 * 2.0 ** intExpr(                  1) <>                246.0 or
 5177        123.0 * 2.0 ** intExpr(                  2) <>                492.0 or
 5178        123.0 * 2.0 ** intExpr(                  3) <>                984.0 or
 5179        123.0 * 2.0 ** intExpr(                  4) <>               1968.0 or
 5180        123.0 * 2.0 ** intExpr(                 10) <>             125952.0 or
 5181        123.0 * 2.0 ** intExpr(                 20) <>          128974848.0 or
 5182        123.0 * 2.0 ** intExpr(                 30) <>       132070244352.0 or
 5183        123.0 * 2.0 ** intExpr(                 40) <>    135239930216448.0 or
 5184        123.0 * 2.0 ** intExpr(                 50) <> 138485688541642752.0 or
 5185        123.0 * 2.0 ** intExpr(                100) <>                  1.5592102382807222e+32 or
 5186        123.0 * 2.0 ** intExpr(                150) <>                  1.7555146620283307e+47 or
 5187        123.0 * 2.0 ** intExpr(              32767) <>             Infinity or
 5188        123.0 * 2.0 ** intExpr(              32768) <>             Infinity or
 5189        123.0 * 2.0 ** intExpr(         2147483647) <>             Infinity or
 5190        123.0 * 2.0 ** intExpr(         2147483648) <>             Infinity or
 5191        123.0 * 2.0 ** intExpr(9223372036854775807) <>             Infinity or
 5192        123.0 * 4.0 ** intExpr(      integer.first) <>                  0.0 or
 5193        123.0 * 4.0 ** intExpr(        -2147483649) <>                  0.0 or
 5194        123.0 * 4.0 ** intExpr(        -2147483648) <>                  0.0 or
 5195        123.0 * 4.0 ** intExpr(             -32769) <>                  0.0 or
 5196        123.0 * 4.0 ** intExpr(             -32768) <>                  0.0 or
 5197        123.0 * 4.0 ** intExpr(               -150) <>                  6.0381849623162037e-89 or
 5198        123.0 * 4.0 ** intExpr(               -100) <>                  7.6543087917692043e-59 or
 5199        123.0 * 4.0 ** intExpr(                -50) <>                  9.7029891342184452e-29 or
 5200        123.0 * 4.0 ** intExpr(                -40) <>                  1.0174321534402240e-22 or
 5201        123.0 * 4.0 ** intExpr(                -30) <>                  1.0668549377257364e-16 or
 5202        123.0 * 4.0 ** intExpr(                -20) <>                  1.1186784831807017e-10 or
 5203        123.0 * 4.0 ** intExpr(                -10) <>                  1.1730194091796875e-04 or
 5204        123.0 * 4.0 ** intExpr(                 -4) <>                  0.48046875 or
 5205        123.0 * 4.0 ** intExpr(                 -3) <>                  1.921875 or
 5206        123.0 * 4.0 ** intExpr(                 -2) <>                  7.6875 or
 5207        123.0 * 4.0 ** intExpr(                 -1) <>                 30.75 or
 5208        123.0 * 4.0 ** intExpr(                  0) <>                123.0 or
 5209        123.0 * 4.0 ** intExpr(                  1) <>                492.0 or
 5210        123.0 * 4.0 ** intExpr(                  2) <>               1968.0 or
 5211        123.0 * 4.0 ** intExpr(                  3) <>               7872.0 or
 5212        123.0 * 4.0 ** intExpr(                  4) <>              31488.0 or
 5213        123.0 * 4.0 ** intExpr(                 10) <>          128974848.0 or
 5214        123.0 * 4.0 ** intExpr(                 20) <>    135239930216448.0 or
 5215        123.0 * 4.0 ** intExpr(                 30) <>                  1.4180934506664218e+20 or
 5216        123.0 * 4.0 ** intExpr(                 40) <>                  1.4869787581259939e+26 or
 5217        123.0 * 4.0 ** intExpr(                 50) <>                  1.5592102382807222e+32 or
 5218        123.0 * 4.0 ** intExpr(                100) <>                  1.9765337944385580e+62 or
 5219        123.0 * 4.0 ** intExpr(                150) <>                  2.5055542508914179e+92 or
 5220        123.0 * 4.0 ** intExpr(              32767) <>             Infinity or
 5221        123.0 * 4.0 ** intExpr(              32768) <>             Infinity or
 5222        123.0 * 4.0 ** intExpr(         2147483647) <>             Infinity or
 5223        123.0 * 4.0 ** intExpr(         2147483648) <>             Infinity or
 5224        123.0 * 4.0 ** intExpr(9223372036854775807) <>             Infinity then
 5225       writeln(" ***** Multiplication A * B ** C does not work correct. (2)");
 5226       okay := FALSE;
 5227     end if;
 5228 
 5229     if floatExpr(123.0) * 0.0 **       integer.first  <> Infinity or
 5230        floatExpr(123.0) * 0.0 **        (-2147483649) <> Infinity or
 5231        floatExpr(123.0) * 0.0 **        (-2147483648) <> Infinity or
 5232        floatExpr(123.0) * 0.0 **             (-32769) <> Infinity or
 5233        floatExpr(123.0) * 0.0 **             (-32768) <> Infinity or
 5234        floatExpr(123.0) * 0.0 **               (-100) <> Infinity or
 5235        floatExpr(123.0) * 0.0 **                 (-4) <> Infinity or
 5236        floatExpr(123.0) * 0.0 **                 (-3) <> Infinity or
 5237        floatExpr(123.0) * 0.0 **                 (-2) <> Infinity or
 5238        floatExpr(123.0) * 0.0 **                 (-1) <> Infinity or
 5239        floatExpr(123.0) * 0.0 **                   0  <>    123.0 or
 5240        floatExpr(123.0) * 0.0 **                   1  <>      0.0 or
 5241        floatExpr(123.0) * 0.0 **                   2  <>      0.0 or
 5242        floatExpr(123.0) * 0.0 **                   3  <>      0.0 or
 5243        floatExpr(123.0) * 0.0 **                   4  <>      0.0 or
 5244        floatExpr(123.0) * 0.0 **                 100  <>      0.0 or
 5245        floatExpr(123.0) * 0.0 **               32767  <>      0.0 or
 5246        floatExpr(123.0) * 0.0 **               32768  <>      0.0 or
 5247        floatExpr(123.0) * 0.0 **          2147483647  <>      0.0 or
 5248        floatExpr(123.0) * 0.0 **          2147483648  <>      0.0 or
 5249        floatExpr(123.0) * 0.0 ** 9223372036854775807  <>      0.0 or
 5250        floatExpr(123.0) * 1.0 **       integer.first  <>    123.0 or
 5251        floatExpr(123.0) * 1.0 **        (-2147483649) <>    123.0 or
 5252        floatExpr(123.0) * 1.0 **        (-2147483648) <>    123.0 or
 5253        floatExpr(123.0) * 1.0 **             (-32769) <>    123.0 or
 5254        floatExpr(123.0) * 1.0 **             (-32768) <>    123.0 or
 5255        floatExpr(123.0) * 1.0 **               (-100) <>    123.0 or
 5256        floatExpr(123.0) * 1.0 **                 (-4) <>    123.0 or
 5257        floatExpr(123.0) * 1.0 **                 (-3) <>    123.0 or
 5258        floatExpr(123.0) * 1.0 **                 (-2) <>    123.0 or
 5259        floatExpr(123.0) * 1.0 **                 (-1) <>    123.0 or
 5260        floatExpr(123.0) * 1.0 **                   0  <>    123.0 or
 5261        floatExpr(123.0) * 1.0 **                   1  <>    123.0 or
 5262        floatExpr(123.0) * 1.0 **                   2  <>    123.0 or
 5263        floatExpr(123.0) * 1.0 **                   3  <>    123.0 or
 5264        floatExpr(123.0) * 1.0 **                   4  <>    123.0 or
 5265        floatExpr(123.0) * 1.0 **                 100  <>    123.0 or
 5266        floatExpr(123.0) * 1.0 **               32767  <>    123.0 or
 5267        floatExpr(123.0) * 1.0 **               32768  <>    123.0 or
 5268        floatExpr(123.0) * 1.0 **          2147483647  <>    123.0 or
 5269        floatExpr(123.0) * 1.0 **          2147483648  <>    123.0 or
 5270        floatExpr(123.0) * 1.0 ** 9223372036854775807  <>    123.0 or
 5271        floatExpr(123.0) * 2.0 **       integer.first  <>                  0.0 or
 5272        floatExpr(123.0) * 2.0 **        (-2147483649) <>                  0.0 or
 5273        floatExpr(123.0) * 2.0 **        (-2147483648) <>                  0.0 or
 5274        floatExpr(123.0) * 2.0 **             (-32769) <>                  0.0 or
 5275        floatExpr(123.0) * 2.0 **             (-32768) <>                  0.0 or
 5276        floatExpr(123.0) * 2.0 **               (-150) <>                  8.6179855555976250e-44 or
 5277        floatExpr(123.0) * 2.0 **               (-100) <>                  9.7029891342184452e-29 or
 5278        floatExpr(123.0) * 2.0 **                (-50) <>                  1.0924594562311540e-13 or
 5279        floatExpr(123.0) * 2.0 **                (-40) <>                  1.1186784831807017e-10 or
 5280        floatExpr(123.0) * 2.0 **                (-30) <>                  1.1455267667770386e-07 or
 5281        floatExpr(123.0) * 2.0 **                (-20) <>                  1.1730194091796875e-04 or
 5282        floatExpr(123.0) * 2.0 **                (-10) <>                  0.1201171875 or
 5283        floatExpr(123.0) * 2.0 **                 (-4) <>                  7.6875 or
 5284        floatExpr(123.0) * 2.0 **                 (-3) <>                 15.375 or
 5285        floatExpr(123.0) * 2.0 **                 (-2) <>                 30.75 or
 5286        floatExpr(123.0) * 2.0 **                 (-1) <>                 61.5 or
 5287        floatExpr(123.0) * 2.0 **                   0  <>                123.0 or
 5288        floatExpr(123.0) * 2.0 **                   1  <>                246.0 or
 5289        floatExpr(123.0) * 2.0 **                   2  <>                492.0 or
 5290        floatExpr(123.0) * 2.0 **                   3  <>                984.0 or
 5291        floatExpr(123.0) * 2.0 **                   4  <>               1968.0 or
 5292        floatExpr(123.0) * 2.0 **                  10  <>             125952.0 or
 5293        floatExpr(123.0) * 2.0 **                  20  <>          128974848.0 or
 5294        floatExpr(123.0) * 2.0 **                  30  <>       132070244352.0 or
 5295        floatExpr(123.0) * 2.0 **                  40  <>    135239930216448.0 or
 5296        floatExpr(123.0) * 2.0 **                  50  <> 138485688541642752.0 or
 5297        floatExpr(123.0) * 2.0 **                 100  <>                  1.5592102382807222e+32 or
 5298        floatExpr(123.0) * 2.0 **                 150  <>                  1.7555146620283307e+47 or
 5299        floatExpr(123.0) * 2.0 **               32767  <>             Infinity or
 5300        floatExpr(123.0) * 2.0 **               32768  <>             Infinity or
 5301        floatExpr(123.0) * 2.0 **          2147483647  <>             Infinity or
 5302        floatExpr(123.0) * 2.0 **          2147483648  <>             Infinity or
 5303        floatExpr(123.0) * 2.0 ** 9223372036854775807  <>             Infinity or
 5304        floatExpr(123.0) * 4.0 **       integer.first  <>                  0.0 or
 5305        floatExpr(123.0) * 4.0 **        (-2147483649) <>                  0.0 or
 5306        floatExpr(123.0) * 4.0 **        (-2147483648) <>                  0.0 or
 5307        floatExpr(123.0) * 4.0 **             (-32769) <>                  0.0 or
 5308        floatExpr(123.0) * 4.0 **             (-32768) <>                  0.0 or
 5309        floatExpr(123.0) * 4.0 **               (-150) <>                  6.0381849623162037e-89 or
 5310        floatExpr(123.0) * 4.0 **               (-100) <>                  7.6543087917692043e-59 or
 5311        floatExpr(123.0) * 4.0 **                (-50) <>                  9.7029891342184452e-29 or
 5312        floatExpr(123.0) * 4.0 **                (-40) <>                  1.0174321534402240e-22 or
 5313        floatExpr(123.0) * 4.0 **                (-30) <>                  1.0668549377257364e-16 or
 5314        floatExpr(123.0) * 4.0 **                (-20) <>                  1.1186784831807017e-10 or
 5315        floatExpr(123.0) * 4.0 **                (-10) <>                  1.1730194091796875e-04 or
 5316        floatExpr(123.0) * 4.0 **                 (-4) <>                  0.48046875 or
 5317        floatExpr(123.0) * 4.0 **                 (-3) <>                  1.921875 or
 5318        floatExpr(123.0) * 4.0 **                 (-2) <>                  7.6875 or
 5319        floatExpr(123.0) * 4.0 **                 (-1) <>                 30.75 or
 5320        floatExpr(123.0) * 4.0 **                   0  <>                123.0 or
 5321        floatExpr(123.0) * 4.0 **                   1  <>                492.0 or
 5322        floatExpr(123.0) * 4.0 **                   2  <>               1968.0 or
 5323        floatExpr(123.0) * 4.0 **                   3  <>               7872.0 or
 5324        floatExpr(123.0) * 4.0 **                   4  <>              31488.0 or
 5325        floatExpr(123.0) * 4.0 **                  10  <>          128974848.0 or
 5326        floatExpr(123.0) * 4.0 **                  20  <>    135239930216448.0 or
 5327        floatExpr(123.0) * 4.0 **                  30  <>                  1.4180934506664218e+20 or
 5328        floatExpr(123.0) * 4.0 **                  40  <>                  1.4869787581259939e+26 or
 5329        floatExpr(123.0) * 4.0 **                  50  <>                  1.5592102382807222e+32 or
 5330        floatExpr(123.0) * 4.0 **                 100  <>                  1.9765337944385580e+62 or
 5331        floatExpr(123.0) * 4.0 **                 150  <>                  2.5055542508914179e+92 or
 5332        floatExpr(123.0) * 4.0 **               32767  <>             Infinity or
 5333        floatExpr(123.0) * 4.0 **               32768  <>             Infinity or
 5334        floatExpr(123.0) * 4.0 **          2147483647  <>             Infinity or
 5335        floatExpr(123.0) * 4.0 **          2147483648  <>             Infinity or
 5336        floatExpr(123.0) * 4.0 ** 9223372036854775807  <>             Infinity then
 5337       writeln(" ***** Multiplication A * B ** C does not work correct. (3)");
 5338       okay := FALSE;
 5339     end if;
 5340 
 5341     if floatExpr(123.0) * 0.0 ** intExpr(      integer.first) <> Infinity or
 5342        floatExpr(123.0) * 0.0 ** intExpr(        -2147483649) <> Infinity or
 5343        floatExpr(123.0) * 0.0 ** intExpr(        -2147483648) <> Infinity or
 5344        floatExpr(123.0) * 0.0 ** intExpr(             -32769) <> Infinity or
 5345        floatExpr(123.0) * 0.0 ** intExpr(             -32768) <> Infinity or
 5346        floatExpr(123.0) * 0.0 ** intExpr(               -100) <> Infinity or
 5347        floatExpr(123.0) * 0.0 ** intExpr(                 -4) <> Infinity or
 5348        floatExpr(123.0) * 0.0 ** intExpr(                 -3) <> Infinity or
 5349        floatExpr(123.0) * 0.0 ** intExpr(                 -2) <> Infinity or
 5350        floatExpr(123.0) * 0.0 ** intExpr(                 -1) <> Infinity or
 5351        floatExpr(123.0) * 0.0 ** intExpr(                  0) <>    123.0 or
 5352        floatExpr(123.0) * 0.0 ** intExpr(                  1) <>      0.0 or
 5353        floatExpr(123.0) * 0.0 ** intExpr(                  2) <>      0.0 or
 5354        floatExpr(123.0) * 0.0 ** intExpr(                  3) <>      0.0 or
 5355        floatExpr(123.0) * 0.0 ** intExpr(                  4) <>      0.0 or
 5356        floatExpr(123.0) * 0.0 ** intExpr(                100) <>      0.0 or
 5357        floatExpr(123.0) * 0.0 ** intExpr(              32767) <>      0.0 or
 5358        floatExpr(123.0) * 0.0 ** intExpr(              32768) <>      0.0 or
 5359        floatExpr(123.0) * 0.0 ** intExpr(         2147483647) <>      0.0 or
 5360        floatExpr(123.0) * 0.0 ** intExpr(         2147483648) <>      0.0 or
 5361        floatExpr(123.0) * 0.0 ** intExpr(9223372036854775807) <>      0.0 or
 5362        floatExpr(123.0) * 1.0 ** intExpr(      integer.first) <>    123.0 or
 5363        floatExpr(123.0) * 1.0 ** intExpr(        -2147483649) <>    123.0 or
 5364        floatExpr(123.0) * 1.0 ** intExpr(        -2147483648) <>    123.0 or
 5365        floatExpr(123.0) * 1.0 ** intExpr(             -32769) <>    123.0 or
 5366        floatExpr(123.0) * 1.0 ** intExpr(             -32768) <>    123.0 or
 5367        floatExpr(123.0) * 1.0 ** intExpr(               -100) <>    123.0 or
 5368        floatExpr(123.0) * 1.0 ** intExpr(                 -4) <>    123.0 or
 5369        floatExpr(123.0) * 1.0 ** intExpr(                 -3) <>    123.0 or
 5370        floatExpr(123.0) * 1.0 ** intExpr(                 -2) <>    123.0 or
 5371        floatExpr(123.0) * 1.0 ** intExpr(                 -1) <>    123.0 or
 5372        floatExpr(123.0) * 1.0 ** intExpr(                  0) <>    123.0 or
 5373        floatExpr(123.0) * 1.0 ** intExpr(                  1) <>    123.0 or
 5374        floatExpr(123.0) * 1.0 ** intExpr(                  2) <>    123.0 or
 5375        floatExpr(123.0) * 1.0 ** intExpr(                  3) <>    123.0 or
 5376        floatExpr(123.0) * 1.0 ** intExpr(                  4) <>    123.0 or
 5377        floatExpr(123.0) * 1.0 ** intExpr(                100) <>    123.0 or
 5378        floatExpr(123.0) * 1.0 ** intExpr(              32767) <>    123.0 or
 5379        floatExpr(123.0) * 1.0 ** intExpr(              32768) <>    123.0 or
 5380        floatExpr(123.0) * 1.0 ** intExpr(         2147483647) <>    123.0 or
 5381        floatExpr(123.0) * 1.0 ** intExpr(         2147483648) <>    123.0 or
 5382        floatExpr(123.0) * 1.0 ** intExpr(9223372036854775807) <>    123.0 or
 5383        floatExpr(123.0) * 2.0 ** intExpr(      integer.first) <>                  0.0 or
 5384        floatExpr(123.0) * 2.0 ** intExpr(        -2147483649) <>                  0.0 or
 5385        floatExpr(123.0) * 2.0 ** intExpr(        -2147483648) <>                  0.0 or
 5386        floatExpr(123.0) * 2.0 ** intExpr(             -32769) <>                  0.0 or
 5387        floatExpr(123.0) * 2.0 ** intExpr(             -32768) <>                  0.0 or
 5388        floatExpr(123.0) * 2.0 ** intExpr(               -150) <>                  8.6179855555976250e-44 or
 5389        floatExpr(123.0) * 2.0 ** intExpr(               -100) <>                  9.7029891342184452e-29 or
 5390        floatExpr(123.0) * 2.0 ** intExpr(                -50) <>                  1.0924594562311540e-13 or
 5391        floatExpr(123.0) * 2.0 ** intExpr(                -40) <>                  1.1186784831807017e-10 or
 5392        floatExpr(123.0) * 2.0 ** intExpr(                -30) <>                  1.1455267667770386e-07 or
 5393        floatExpr(123.0) * 2.0 ** intExpr(                -20) <>                  1.1730194091796875e-04 or
 5394        floatExpr(123.0) * 2.0 ** intExpr(                -10) <>                  0.1201171875 or
 5395        floatExpr(123.0) * 2.0 ** intExpr(                 -4) <>                  7.6875 or
 5396        floatExpr(123.0) * 2.0 ** intExpr(                 -3) <>                 15.375 or
 5397        floatExpr(123.0) * 2.0 ** intExpr(                 -2) <>                 30.75 or
 5398        floatExpr(123.0) * 2.0 ** intExpr(                 -1) <>                 61.5 or
 5399        floatExpr(123.0) * 2.0 ** intExpr(                  0) <>                123.0 or
 5400        floatExpr(123.0) * 2.0 ** intExpr(                  1) <>                246.0 or
 5401        floatExpr(123.0) * 2.0 ** intExpr(                  2) <>                492.0 or
 5402        floatExpr(123.0) * 2.0 ** intExpr(                  3) <>                984.0 or
 5403        floatExpr(123.0) * 2.0 ** intExpr(                  4) <>               1968.0 or
 5404        floatExpr(123.0) * 2.0 ** intExpr(                 10) <>             125952.0 or
 5405        floatExpr(123.0) * 2.0 ** intExpr(                 20) <>          128974848.0 or
 5406        floatExpr(123.0) * 2.0 ** intExpr(                 30) <>       132070244352.0 or
 5407        floatExpr(123.0) * 2.0 ** intExpr(                 40) <>    135239930216448.0 or
 5408        floatExpr(123.0) * 2.0 ** intExpr(                 50) <> 138485688541642752.0 or
 5409        floatExpr(123.0) * 2.0 ** intExpr(                100) <>                  1.5592102382807222e+32 or
 5410        floatExpr(123.0) * 2.0 ** intExpr(                150) <>                  1.7555146620283307e+47 or
 5411        floatExpr(123.0) * 2.0 ** intExpr(              32767) <>             Infinity or
 5412        floatExpr(123.0) * 2.0 ** intExpr(              32768) <>             Infinity or
 5413        floatExpr(123.0) * 2.0 ** intExpr(         2147483647) <>             Infinity or
 5414        floatExpr(123.0) * 2.0 ** intExpr(         2147483648) <>             Infinity or
 5415        floatExpr(123.0) * 2.0 ** intExpr(9223372036854775807) <>             Infinity or
 5416        floatExpr(123.0) * 4.0 ** intExpr(      integer.first) <>                  0.0 or
 5417        floatExpr(123.0) * 4.0 ** intExpr(        -2147483649) <>                  0.0 or
 5418        floatExpr(123.0) * 4.0 ** intExpr(        -2147483648) <>                  0.0 or
 5419        floatExpr(123.0) * 4.0 ** intExpr(             -32769) <>                  0.0 or
 5420        floatExpr(123.0) * 4.0 ** intExpr(             -32768) <>                  0.0 or
 5421        floatExpr(123.0) * 4.0 ** intExpr(               -150) <>                  6.0381849623162037e-89 or
 5422        floatExpr(123.0) * 4.0 ** intExpr(               -100) <>                  7.6543087917692043e-59 or
 5423        floatExpr(123.0) * 4.0 ** intExpr(                -50) <>                  9.7029891342184452e-29 or
 5424        floatExpr(123.0) * 4.0 ** intExpr(                -40) <>                  1.0174321534402240e-22 or
 5425        floatExpr(123.0) * 4.0 ** intExpr(                -30) <>                  1.0668549377257364e-16 or
 5426        floatExpr(123.0) * 4.0 ** intExpr(                -20) <>                  1.1186784831807017e-10 or
 5427        floatExpr(123.0) * 4.0 ** intExpr(                -10) <>                  1.1730194091796875e-04 or
 5428        floatExpr(123.0) * 4.0 ** intExpr(                 -4) <>                  0.48046875 or
 5429        floatExpr(123.0) * 4.0 ** intExpr(                 -3) <>                  1.921875 or
 5430        floatExpr(123.0) * 4.0 ** intExpr(                 -2) <>                  7.6875 or
 5431        floatExpr(123.0) * 4.0 ** intExpr(                 -1) <>                 30.75 or
 5432        floatExpr(123.0) * 4.0 ** intExpr(                  0) <>                123.0 or
 5433        floatExpr(123.0) * 4.0 ** intExpr(                  1) <>                492.0 or
 5434        floatExpr(123.0) * 4.0 ** intExpr(                  2) <>               1968.0 or
 5435        floatExpr(123.0) * 4.0 ** intExpr(                  3) <>               7872.0 or
 5436        floatExpr(123.0) * 4.0 ** intExpr(                  4) <>              31488.0 or
 5437        floatExpr(123.0) * 4.0 ** intExpr(                 10) <>          128974848.0 or
 5438        floatExpr(123.0) * 4.0 ** intExpr(                 20) <>    135239930216448.0 or
 5439        floatExpr(123.0) * 4.0 ** intExpr(                 30) <>                  1.4180934506664218e+20 or
 5440        floatExpr(123.0) * 4.0 ** intExpr(                 40) <>                  1.4869787581259939e+26 or
 5441        floatExpr(123.0) * 4.0 ** intExpr(                 50) <>                  1.5592102382807222e+32 or
 5442        floatExpr(123.0) * 4.0 ** intExpr(                100) <>                  1.9765337944385580e+62 or
 5443        floatExpr(123.0) * 4.0 ** intExpr(                150) <>                  2.5055542508914179e+92 or
 5444        floatExpr(123.0) * 4.0 ** intExpr(              32767) <>             Infinity or
 5445        floatExpr(123.0) * 4.0 ** intExpr(              32768) <>             Infinity or
 5446        floatExpr(123.0) * 4.0 ** intExpr(         2147483647) <>             Infinity or
 5447        floatExpr(123.0) * 4.0 ** intExpr(         2147483648) <>             Infinity or
 5448        floatExpr(123.0) * 4.0 ** intExpr(9223372036854775807) <>             Infinity then
 5449       writeln(" ***** Multiplication A * B ** C does not work correct. (4)");
 5450       okay := FALSE;
 5451     end if;
 5452 
 5453     if 123.0 * floatExpr(0.0) **       integer.first  <> Infinity or
 5454        123.0 * floatExpr(0.0) **        (-2147483649) <> Infinity or
 5455        123.0 * floatExpr(0.0) **        (-2147483648) <> Infinity or
 5456        123.0 * floatExpr(0.0) **             (-32769) <> Infinity or
 5457        123.0 * floatExpr(0.0) **             (-32768) <> Infinity or
 5458        123.0 * floatExpr(0.0) **               (-100) <> Infinity or
 5459        123.0 * floatExpr(0.0) **                 (-4) <> Infinity or
 5460        123.0 * floatExpr(0.0) **                 (-3) <> Infinity or
 5461        123.0 * floatExpr(0.0) **                 (-2) <> Infinity or
 5462        123.0 * floatExpr(0.0) **                 (-1) <> Infinity or
 5463        123.0 * floatExpr(0.0) **                   0  <>    123.0 or
 5464        123.0 * floatExpr(0.0) **                   1  <>      0.0 or
 5465        123.0 * floatExpr(0.0) **                   2  <>      0.0 or
 5466        123.0 * floatExpr(0.0) **                   3  <>      0.0 or
 5467        123.0 * floatExpr(0.0) **                   4  <>      0.0 or
 5468        123.0 * floatExpr(0.0) **                 100  <>      0.0 or
 5469        123.0 * floatExpr(0.0) **               32767  <>      0.0 or
 5470        123.0 * floatExpr(0.0) **               32768  <>      0.0 or
 5471        123.0 * floatExpr(0.0) **          2147483647  <>      0.0 or
 5472        123.0 * floatExpr(0.0) **          2147483648  <>      0.0 or
 5473        123.0 * floatExpr(0.0) ** 9223372036854775807  <>      0.0 or
 5474        123.0 * floatExpr(1.0) **       integer.first  <>    123.0 or
 5475        123.0 * floatExpr(1.0) **        (-2147483649) <>    123.0 or
 5476        123.0 * floatExpr(1.0) **        (-2147483648) <>    123.0 or
 5477        123.0 * floatExpr(1.0) **             (-32769) <>    123.0 or
 5478        123.0 * floatExpr(1.0) **             (-32768) <>    123.0 or
 5479        123.0 * floatExpr(1.0) **               (-100) <>    123.0 or
 5480        123.0 * floatExpr(1.0) **                 (-4) <>    123.0 or
 5481        123.0 * floatExpr(1.0) **                 (-3) <>    123.0 or
 5482        123.0 * floatExpr(1.0) **                 (-2) <>    123.0 or
 5483        123.0 * floatExpr(1.0) **                 (-1) <>    123.0 or
 5484        123.0 * floatExpr(1.0) **                   0  <>    123.0 or
 5485        123.0 * floatExpr(1.0) **                   1  <>    123.0 or
 5486        123.0 * floatExpr(1.0) **                   2  <>    123.0 or
 5487        123.0 * floatExpr(1.0) **                   3  <>    123.0 or
 5488        123.0 * floatExpr(1.0) **                   4  <>    123.0 or
 5489        123.0 * floatExpr(1.0) **                 100  <>    123.0 or
 5490        123.0 * floatExpr(1.0) **               32767  <>    123.0 or
 5491        123.0 * floatExpr(1.0) **               32768  <>    123.0 or
 5492        123.0 * floatExpr(1.0) **          2147483647  <>    123.0 or
 5493        123.0 * floatExpr(1.0) **          2147483648  <>    123.0 or
 5494        123.0 * floatExpr(1.0) ** 9223372036854775807  <>    123.0 or
 5495        123.0 * floatExpr(2.0) **       integer.first  <>                  0.0 or
 5496        123.0 * floatExpr(2.0) **        (-2147483649) <>                  0.0 or
 5497        123.0 * floatExpr(2.0) **        (-2147483648) <>                  0.0 or
 5498        123.0 * floatExpr(2.0) **             (-32769) <>                  0.0 or
 5499        123.0 * floatExpr(2.0) **             (-32768) <>                  0.0 or
 5500        123.0 * floatExpr(2.0) **               (-150) <>                  8.6179855555976250e-44 or
 5501        123.0 * floatExpr(2.0) **               (-100) <>                  9.7029891342184452e-29 or
 5502        123.0 * floatExpr(2.0) **                (-50) <>                  1.0924594562311540e-13 or
 5503        123.0 * floatExpr(2.0) **                (-40) <>                  1.1186784831807017e-10 or
 5504        123.0 * floatExpr(2.0) **                (-30) <>                  1.1455267667770386e-07 or
 5505        123.0 * floatExpr(2.0) **                (-20) <>                  1.1730194091796875e-04 or
 5506        123.0 * floatExpr(2.0) **                (-10) <>                  0.1201171875 or
 5507        123.0 * floatExpr(2.0) **                 (-4) <>                  7.6875 or
 5508        123.0 * floatExpr(2.0) **                 (-3) <>                 15.375 or
 5509        123.0 * floatExpr(2.0) **                 (-2) <>                 30.75 or
 5510        123.0 * floatExpr(2.0) **                 (-1) <>                 61.5 or
 5511        123.0 * floatExpr(2.0) **                   0  <>                123.0 or
 5512        123.0 * floatExpr(2.0) **                   1  <>                246.0 or
 5513        123.0 * floatExpr(2.0) **                   2  <>                492.0 or
 5514        123.0 * floatExpr(2.0) **                   3  <>                984.0 or
 5515        123.0 * floatExpr(2.0) **                   4  <>               1968.0 or
 5516        123.0 * floatExpr(2.0) **                  10  <>             125952.0 or
 5517        123.0 * floatExpr(2.0) **                  20  <>          128974848.0 or
 5518        123.0 * floatExpr(2.0) **                  30  <>       132070244352.0 or
 5519        123.0 * floatExpr(2.0) **                  40  <>    135239930216448.0 or
 5520        123.0 * floatExpr(2.0) **                  50  <> 138485688541642752.0 or
 5521        123.0 * floatExpr(2.0) **                 100  <>                  1.5592102382807222e+32 or
 5522        123.0 * floatExpr(2.0) **                 150  <>                  1.7555146620283307e+47 or
 5523        123.0 * floatExpr(2.0) **               32767  <>             Infinity or
 5524        123.0 * floatExpr(2.0) **               32768  <>             Infinity or
 5525        123.0 * floatExpr(2.0) **          2147483647  <>             Infinity or
 5526        123.0 * floatExpr(2.0) **          2147483648  <>             Infinity or
 5527        123.0 * floatExpr(2.0) ** 9223372036854775807  <>             Infinity or
 5528        123.0 * floatExpr(4.0) **       integer.first  <>                  0.0 or
 5529        123.0 * floatExpr(4.0) **        (-2147483649) <>                  0.0 or
 5530        123.0 * floatExpr(4.0) **        (-2147483648) <>                  0.0 or
 5531        123.0 * floatExpr(4.0) **             (-32769) <>                  0.0 or
 5532        123.0 * floatExpr(4.0) **             (-32768) <>                  0.0 or
 5533        123.0 * floatExpr(4.0) **               (-150) <>                  6.0381849623162037e-89 or
 5534        123.0 * floatExpr(4.0) **               (-100) <>                  7.6543087917692043e-59 or
 5535        123.0 * floatExpr(4.0) **                (-50) <>                  9.7029891342184452e-29 or
 5536        123.0 * floatExpr(4.0) **                (-40) <>                  1.0174321534402240e-22 or
 5537        123.0 * floatExpr(4.0) **                (-30) <>                  1.0668549377257364e-16 or
 5538        123.0 * floatExpr(4.0) **                (-20) <>                  1.1186784831807017e-10 or
 5539        123.0 * floatExpr(4.0) **                (-10) <>                  1.1730194091796875e-04 or
 5540        123.0 * floatExpr(4.0) **                 (-4) <>                  0.48046875 or
 5541        123.0 * floatExpr(4.0) **                 (-3) <>                  1.921875 or
 5542        123.0 * floatExpr(4.0) **                 (-2) <>                  7.6875 or
 5543        123.0 * floatExpr(4.0) **                 (-1) <>                 30.75 or
 5544        123.0 * floatExpr(4.0) **                   0  <>                123.0 or
 5545        123.0 * floatExpr(4.0) **                   1  <>                492.0 or
 5546        123.0 * floatExpr(4.0) **                   2  <>               1968.0 or
 5547        123.0 * floatExpr(4.0) **                   3  <>               7872.0 or
 5548        123.0 * floatExpr(4.0) **                   4  <>              31488.0 or
 5549        123.0 * floatExpr(4.0) **                  10  <>          128974848.0 or
 5550        123.0 * floatExpr(4.0) **                  20  <>    135239930216448.0 or
 5551        123.0 * floatExpr(4.0) **                  30  <>                  1.4180934506664218e+20 or
 5552        123.0 * floatExpr(4.0) **                  40  <>                  1.4869787581259939e+26 or
 5553        123.0 * floatExpr(4.0) **                  50  <>                  1.5592102382807222e+32 or
 5554        123.0 * floatExpr(4.0) **                 100  <>                  1.9765337944385580e+62 or
 5555        123.0 * floatExpr(4.0) **                 150  <>                  2.5055542508914179e+92 or
 5556        123.0 * floatExpr(4.0) **               32767  <>             Infinity or
 5557        123.0 * floatExpr(4.0) **               32768  <>             Infinity or
 5558        123.0 * floatExpr(4.0) **          2147483647  <>             Infinity or
 5559        123.0 * floatExpr(4.0) **          2147483648  <>             Infinity or
 5560        123.0 * floatExpr(4.0) ** 9223372036854775807  <>             Infinity then
 5561       writeln(" ***** Multiplication A * B ** C does not work correct. (5)");
 5562       okay := FALSE;
 5563     end if;
 5564 
 5565     if 0.0 **       integer.first  * 123.0 <> Infinity or
 5566        0.0 **        (-2147483649) * 123.0 <> Infinity or
 5567        0.0 **        (-2147483648) * 123.0 <> Infinity or
 5568        0.0 **             (-32769) * 123.0 <> Infinity or
 5569        0.0 **             (-32768) * 123.0 <> Infinity or
 5570        0.0 **               (-100) * 123.0 <> Infinity or
 5571        0.0 **                 (-4) * 123.0 <> Infinity or
 5572        0.0 **                 (-3) * 123.0 <> Infinity or
 5573        0.0 **                 (-2) * 123.0 <> Infinity or
 5574        0.0 **                 (-1) * 123.0 <> Infinity or
 5575        0.0 **                   0  * 123.0 <>    123.0 or
 5576        0.0 **                   1  * 123.0 <>      0.0 or
 5577        0.0 **                   2  * 123.0 <>      0.0 or
 5578        0.0 **                   3  * 123.0 <>      0.0 or
 5579        0.0 **                   4  * 123.0 <>      0.0 or
 5580        0.0 **                 100  * 123.0 <>      0.0 or
 5581        0.0 **               32767  * 123.0 <>      0.0 or
 5582        0.0 **               32768  * 123.0 <>      0.0 or
 5583        0.0 **          2147483647  * 123.0 <>      0.0 or
 5584        0.0 **          2147483648  * 123.0 <>      0.0 or
 5585        0.0 ** 9223372036854775807  * 123.0 <>      0.0 or
 5586        1.0 **       integer.first  * 123.0 <>    123.0 or
 5587        1.0 **        (-2147483649) * 123.0 <>    123.0 or
 5588        1.0 **        (-2147483648) * 123.0 <>    123.0 or
 5589        1.0 **             (-32769) * 123.0 <>    123.0 or
 5590        1.0 **             (-32768) * 123.0 <>    123.0 or
 5591        1.0 **               (-100) * 123.0 <>    123.0 or
 5592        1.0 **                 (-4) * 123.0 <>    123.0 or
 5593        1.0 **                 (-3) * 123.0 <>    123.0 or
 5594        1.0 **                 (-2) * 123.0 <>    123.0 or
 5595        1.0 **                 (-1) * 123.0 <>    123.0 or
 5596        1.0 **                   0  * 123.0 <>    123.0 or
 5597        1.0 **                   1  * 123.0 <>    123.0 or
 5598        1.0 **                   2  * 123.0 <>    123.0 or
 5599        1.0 **                   3  * 123.0 <>    123.0 or
 5600        1.0 **                   4  * 123.0 <>    123.0 or
 5601        1.0 **                 100  * 123.0 <>    123.0 or
 5602        1.0 **               32767  * 123.0 <>    123.0 or
 5603        1.0 **               32768  * 123.0 <>    123.0 or
 5604        1.0 **          2147483647  * 123.0 <>    123.0 or
 5605        1.0 **          2147483648  * 123.0 <>    123.0 or
 5606        1.0 ** 9223372036854775807  * 123.0 <>    123.0 or
 5607        2.0 **       integer.first  * 123.0 <>                  0.0 or
 5608        2.0 **        (-2147483649) * 123.0 <>                  0.0 or
 5609        2.0 **        (-2147483648) * 123.0 <>                  0.0 or
 5610        2.0 **             (-32769) * 123.0 <>                  0.0 or
 5611        2.0 **             (-32768) * 123.0 <>                  0.0 or
 5612        2.0 **               (-150) * 123.0 <>                  8.6179855555976250e-44 or
 5613        2.0 **               (-100) * 123.0 <>                  9.7029891342184452e-29 or
 5614        2.0 **                (-50) * 123.0 <>                  1.0924594562311540e-13 or
 5615        2.0 **                (-40) * 123.0 <>                  1.1186784831807017e-10 or
 5616        2.0 **                (-30) * 123.0 <>                  1.1455267667770386e-07 or
 5617        2.0 **                (-20) * 123.0 <>                  1.1730194091796875e-04 or
 5618        2.0 **                (-10) * 123.0 <>                  0.1201171875 or
 5619        2.0 **                 (-4) * 123.0 <>                  7.6875 or
 5620        2.0 **                 (-3) * 123.0 <>                 15.375 or
 5621        2.0 **                 (-2) * 123.0 <>                 30.75 or
 5622        2.0 **                 (-1) * 123.0 <>                 61.5 or
 5623        2.0 **                   0  * 123.0 <>                123.0 or
 5624        2.0 **                   1  * 123.0 <>                246.0 or
 5625        2.0 **                   2  * 123.0 <>                492.0 or
 5626        2.0 **                   3  * 123.0 <>                984.0 or
 5627        2.0 **                   4  * 123.0 <>               1968.0 or
 5628        2.0 **                  10  * 123.0 <>             125952.0 or
 5629        2.0 **                  20  * 123.0 <>          128974848.0 or
 5630        2.0 **                  30  * 123.0 <>       132070244352.0 or
 5631        2.0 **                  40  * 123.0 <>    135239930216448.0 or
 5632        2.0 **                  50  * 123.0 <> 138485688541642752.0 or
 5633        2.0 **                 100  * 123.0 <>                  1.5592102382807222e+32 or
 5634        2.0 **                 150  * 123.0 <>                  1.7555146620283307e+47 or
 5635        2.0 **               32767  * 123.0 <>             Infinity or
 5636        2.0 **               32768  * 123.0 <>             Infinity or
 5637        2.0 **          2147483647  * 123.0 <>             Infinity or
 5638        2.0 **          2147483648  * 123.0 <>             Infinity or
 5639        2.0 ** 9223372036854775807  * 123.0 <>             Infinity or
 5640        4.0 **       integer.first  * 123.0 <>                  0.0 or
 5641        4.0 **        (-2147483649) * 123.0 <>                  0.0 or
 5642        4.0 **        (-2147483648) * 123.0 <>                  0.0 or
 5643        4.0 **             (-32769) * 123.0 <>                  0.0 or
 5644        4.0 **             (-32768) * 123.0 <>                  0.0 or
 5645        4.0 **               (-150) * 123.0 <>                  6.0381849623162037e-89 or
 5646        4.0 **               (-100) * 123.0 <>                  7.6543087917692043e-59 or
 5647        4.0 **                (-50) * 123.0 <>                  9.7029891342184452e-29 or
 5648        4.0 **                (-40) * 123.0 <>                  1.0174321534402240e-22 or
 5649        4.0 **                (-30) * 123.0 <>                  1.0668549377257364e-16 or
 5650        4.0 **                (-20) * 123.0 <>                  1.1186784831807017e-10 or
 5651        4.0 **                (-10) * 123.0 <>                  1.1730194091796875e-04 or
 5652        4.0 **                 (-4) * 123.0 <>                  0.48046875 or
 5653        4.0 **                 (-3) * 123.0 <>                  1.921875 or
 5654        4.0 **                 (-2) * 123.0 <>                  7.6875 or
 5655        4.0 **                 (-1) * 123.0 <>                 30.75 or
 5656        4.0 **                   0  * 123.0 <>                123.0 or
 5657        4.0 **                   1  * 123.0 <>                492.0 or
 5658        4.0 **                   2  * 123.0 <>               1968.0 or
 5659        4.0 **                   3  * 123.0 <>               7872.0 or
 5660        4.0 **                   4  * 123.0 <>              31488.0 or
 5661        4.0 **                  10  * 123.0 <>          128974848.0 or
 5662        4.0 **                  20  * 123.0 <>    135239930216448.0 or
 5663        4.0 **                  30  * 123.0 <>                  1.4180934506664218e+20 or
 5664        4.0 **                  40  * 123.0 <>                  1.4869787581259939e+26 or
 5665        4.0 **                  50  * 123.0 <>                  1.5592102382807222e+32 or
 5666        4.0 **                 100  * 123.0 <>                  1.9765337944385580e+62 or
 5667        4.0 **                 150  * 123.0 <>                  2.5055542508914179e+92 or
 5668        4.0 **               32767  * 123.0 <>             Infinity or
 5669        4.0 **               32768  * 123.0 <>             Infinity or
 5670        4.0 **          2147483647  * 123.0 <>             Infinity or
 5671        4.0 **          2147483648  * 123.0 <>             Infinity or
 5672        4.0 ** 9223372036854775807  * 123.0 <>             Infinity then
 5673       writeln(" ***** Multiplication A ** B * C does not work correct. (1)");
 5674       okay := FALSE;
 5675     end if;
 5676 
 5677     if 0.0 ** intExpr(      integer.first) * 123.0 <> Infinity or
 5678        0.0 ** intExpr(        -2147483649) * 123.0 <> Infinity or
 5679        0.0 ** intExpr(        -2147483648) * 123.0 <> Infinity or
 5680        0.0 ** intExpr(             -32769) * 123.0 <> Infinity or
 5681        0.0 ** intExpr(             -32768) * 123.0 <> Infinity or
 5682        0.0 ** intExpr(               -100) * 123.0 <> Infinity or
 5683        0.0 ** intExpr(                 -4) * 123.0 <> Infinity or
 5684        0.0 ** intExpr(                 -3) * 123.0 <> Infinity or
 5685        0.0 ** intExpr(                 -2) * 123.0 <> Infinity or
 5686        0.0 ** intExpr(                 -1) * 123.0 <> Infinity or
 5687        0.0 ** intExpr(                  0) * 123.0 <>    123.0 or
 5688        0.0 ** intExpr(                  1) * 123.0 <>      0.0 or
 5689        0.0 ** intExpr(                  2) * 123.0 <>      0.0 or
 5690        0.0 ** intExpr(                  3) * 123.0 <>      0.0 or
 5691        0.0 ** intExpr(                  4) * 123.0 <>      0.0 or
 5692        0.0 ** intExpr(                100) * 123.0 <>      0.0 or
 5693        0.0 ** intExpr(              32767) * 123.0 <>      0.0 or
 5694        0.0 ** intExpr(              32768) * 123.0 <>      0.0 or
 5695        0.0 ** intExpr(         2147483647) * 123.0 <>      0.0 or
 5696        0.0 ** intExpr(         2147483648) * 123.0 <>      0.0 or
 5697        0.0 ** intExpr(9223372036854775807) * 123.0 <>      0.0 or
 5698        1.0 ** intExpr(      integer.first) * 123.0 <>    123.0 or
 5699        1.0 ** intExpr(        -2147483649) * 123.0 <>    123.0 or
 5700        1.0 ** intExpr(        -2147483648) * 123.0 <>    123.0 or
 5701        1.0 ** intExpr(             -32769) * 123.0 <>    123.0 or
 5702        1.0 ** intExpr(             -32768) * 123.0 <>    123.0 or
 5703        1.0 ** intExpr(               -100) * 123.0 <>    123.0 or
 5704        1.0 ** intExpr(                 -4) * 123.0 <>    123.0 or
 5705        1.0 ** intExpr(                 -3) * 123.0 <>    123.0 or
 5706        1.0 ** intExpr(                 -2) * 123.0 <>    123.0 or
 5707        1.0 ** intExpr(                 -1) * 123.0 <>    123.0 or
 5708        1.0 ** intExpr(                  0) * 123.0 <>    123.0 or
 5709        1.0 ** intExpr(                  1) * 123.0 <>    123.0 or
 5710        1.0 ** intExpr(                  2) * 123.0 <>    123.0 or
 5711        1.0 ** intExpr(                  3) * 123.0 <>    123.0 or
 5712        1.0 ** intExpr(                  4) * 123.0 <>    123.0 or
 5713        1.0 ** intExpr(                100) * 123.0 <>    123.0 or
 5714        1.0 ** intExpr(              32767) * 123.0 <>    123.0 or
 5715        1.0 ** intExpr(              32768) * 123.0 <>    123.0 or
 5716        1.0 ** intExpr(         2147483647) * 123.0 <>    123.0 or
 5717        1.0 ** intExpr(         2147483648) * 123.0 <>    123.0 or
 5718        1.0 ** intExpr(9223372036854775807) * 123.0 <>    123.0 or
 5719        2.0 ** intExpr(      integer.first) * 123.0 <>                  0.0 or
 5720        2.0 ** intExpr(        -2147483649) * 123.0 <>                  0.0 or
 5721        2.0 ** intExpr(        -2147483648) * 123.0 <>                  0.0 or
 5722        2.0 ** intExpr(             -32769) * 123.0 <>                  0.0 or
 5723        2.0 ** intExpr(             -32768) * 123.0 <>                  0.0 or
 5724        2.0 ** intExpr(               -150) * 123.0 <>                  8.6179855555976250e-44 or
 5725        2.0 ** intExpr(               -100) * 123.0 <>                  9.7029891342184452e-29 or
 5726        2.0 ** intExpr(                -50) * 123.0 <>                  1.0924594562311540e-13 or
 5727        2.0 ** intExpr(                -40) * 123.0 <>                  1.1186784831807017e-10 or
 5728        2.0 ** intExpr(                -30) * 123.0 <>                  1.1455267667770386e-07 or
 5729        2.0 ** intExpr(                -20) * 123.0 <>                  1.1730194091796875e-04 or
 5730        2.0 ** intExpr(                -10) * 123.0 <>                  0.1201171875 or
 5731        2.0 ** intExpr(                 -4) * 123.0 <>                  7.6875 or
 5732        2.0 ** intExpr(                 -3) * 123.0 <>                 15.375 or
 5733        2.0 ** intExpr(                 -2) * 123.0 <>                 30.75 or
 5734        2.0 ** intExpr(                 -1) * 123.0 <>                 61.5 or
 5735        2.0 ** intExpr(                  0) * 123.0 <>                123.0 or
 5736        2.0 ** intExpr(                  1) * 123.0 <>                246.0 or
 5737        2.0 ** intExpr(                  2) * 123.0 <>                492.0 or
 5738        2.0 ** intExpr(                  3) * 123.0 <>                984.0 or
 5739        2.0 ** intExpr(                  4) * 123.0 <>               1968.0 or
 5740        2.0 ** intExpr(                 10) * 123.0 <>             125952.0 or
 5741        2.0 ** intExpr(                 20) * 123.0 <>          128974848.0 or
 5742        2.0 ** intExpr(                 30) * 123.0 <>       132070244352.0 or
 5743        2.0 ** intExpr(                 40) * 123.0 <>    135239930216448.0 or
 5744        2.0 ** intExpr(                 50) * 123.0 <> 138485688541642752.0 or
 5745        2.0 ** intExpr(                100) * 123.0 <>                  1.5592102382807222e+32 or
 5746        2.0 ** intExpr(                150) * 123.0 <>                  1.7555146620283307e+47 or
 5747        2.0 ** intExpr(              32767) * 123.0 <>             Infinity or
 5748        2.0 ** intExpr(              32768) * 123.0 <>             Infinity or
 5749        2.0 ** intExpr(         2147483647) * 123.0 <>             Infinity or
 5750        2.0 ** intExpr(         2147483648) * 123.0 <>             Infinity or
 5751        2.0 ** intExpr(9223372036854775807) * 123.0 <>             Infinity or
 5752        4.0 ** intExpr(      integer.first) * 123.0 <>                  0.0 or
 5753        4.0 ** intExpr(        -2147483649) * 123.0 <>                  0.0 or
 5754        4.0 ** intExpr(        -2147483648) * 123.0 <>                  0.0 or
 5755        4.0 ** intExpr(             -32769) * 123.0 <>                  0.0 or
 5756        4.0 ** intExpr(             -32768) * 123.0 <>                  0.0 or
 5757        4.0 ** intExpr(               -150) * 123.0 <>                  6.0381849623162037e-89 or
 5758        4.0 ** intExpr(               -100) * 123.0 <>                  7.6543087917692043e-59 or
 5759        4.0 ** intExpr(                -50) * 123.0 <>                  9.7029891342184452e-29 or
 5760        4.0 ** intExpr(                -40) * 123.0 <>                  1.0174321534402240e-22 or
 5761        4.0 ** intExpr(                -30) * 123.0 <>                  1.0668549377257364e-16 or
 5762        4.0 ** intExpr(                -20) * 123.0 <>                  1.1186784831807017e-10 or
 5763        4.0 ** intExpr(                -10) * 123.0 <>                  1.1730194091796875e-04 or
 5764        4.0 ** intExpr(                 -4) * 123.0 <>                  0.48046875 or
 5765        4.0 ** intExpr(                 -3) * 123.0 <>                  1.921875 or
 5766        4.0 ** intExpr(                 -2) * 123.0 <>                  7.6875 or
 5767        4.0 ** intExpr(                 -1) * 123.0 <>                 30.75 or
 5768        4.0 ** intExpr(                  0) * 123.0 <>                123.0 or
 5769        4.0 ** intExpr(                  1) * 123.0 <>                492.0 or
 5770        4.0 ** intExpr(                  2) * 123.0 <>               1968.0 or
 5771        4.0 ** intExpr(                  3) * 123.0 <>               7872.0 or
 5772        4.0 ** intExpr(                  4) * 123.0 <>              31488.0 or
 5773        4.0 ** intExpr(                 10) * 123.0 <>          128974848.0 or
 5774        4.0 ** intExpr(                 20) * 123.0 <>    135239930216448.0 or
 5775        4.0 ** intExpr(                 30) * 123.0 <>                  1.4180934506664218e+20 or
 5776        4.0 ** intExpr(                 40) * 123.0 <>                  1.4869787581259939e+26 or
 5777        4.0 ** intExpr(                 50) * 123.0 <>                  1.5592102382807222e+32 or
 5778        4.0 ** intExpr(                100) * 123.0 <>                  1.9765337944385580e+62 or
 5779        4.0 ** intExpr(                150) * 123.0 <>                  2.5055542508914179e+92 or
 5780        4.0 ** intExpr(              32767) * 123.0 <>             Infinity or
 5781        4.0 ** intExpr(              32768) * 123.0 <>             Infinity or
 5782        4.0 ** intExpr(         2147483647) * 123.0 <>             Infinity or
 5783        4.0 ** intExpr(         2147483648) * 123.0 <>             Infinity or
 5784        4.0 ** intExpr(9223372036854775807) * 123.0 <>             Infinity then
 5785       writeln(" ***** Multiplication A ** B * C does not work correct. (2)");
 5786       okay := FALSE;
 5787     end if;
 5788 
 5789     if 0.0 **       integer.first  * floatExpr(123.0) <> Infinity or
 5790        0.0 **        (-2147483649) * floatExpr(123.0) <> Infinity or
 5791        0.0 **        (-2147483648) * floatExpr(123.0) <> Infinity or
 5792        0.0 **             (-32769) * floatExpr(123.0) <> Infinity or
 5793        0.0 **             (-32768) * floatExpr(123.0) <> Infinity or
 5794        0.0 **               (-100) * floatExpr(123.0) <> Infinity or
 5795        0.0 **                 (-4) * floatExpr(123.0) <> Infinity or
 5796        0.0 **                 (-3) * floatExpr(123.0) <> Infinity or
 5797        0.0 **                 (-2) * floatExpr(123.0) <> Infinity or
 5798        0.0 **                 (-1) * floatExpr(123.0) <> Infinity or
 5799        0.0 **                   0  * floatExpr(123.0) <>    123.0 or
 5800        0.0 **                   1  * floatExpr(123.0) <>      0.0 or
 5801        0.0 **                   2  * floatExpr(123.0) <>      0.0 or
 5802        0.0 **                   3  * floatExpr(123.0) <>      0.0 or
 5803        0.0 **                   4  * floatExpr(123.0) <>      0.0 or
 5804        0.0 **                 100  * floatExpr(123.0) <>      0.0 or
 5805        0.0 **               32767  * floatExpr(123.0) <>      0.0 or
 5806        0.0 **               32768  * floatExpr(123.0) <>      0.0 or
 5807        0.0 **          2147483647  * floatExpr(123.0) <>      0.0 or
 5808        0.0 **          2147483648  * floatExpr(123.0) <>      0.0 or
 5809        0.0 ** 9223372036854775807  * floatExpr(123.0) <>      0.0 or
 5810        1.0 **       integer.first  * floatExpr(123.0) <>    123.0 or
 5811        1.0 **        (-2147483649) * floatExpr(123.0) <>    123.0 or
 5812        1.0 **        (-2147483648) * floatExpr(123.0) <>    123.0 or
 5813        1.0 **             (-32769) * floatExpr(123.0) <>    123.0 or
 5814        1.0 **             (-32768) * floatExpr(123.0) <>    123.0 or
 5815        1.0 **               (-100) * floatExpr(123.0) <>    123.0 or
 5816        1.0 **                 (-4) * floatExpr(123.0) <>    123.0 or
 5817        1.0 **                 (-3) * floatExpr(123.0) <>    123.0 or
 5818        1.0 **                 (-2) * floatExpr(123.0) <>    123.0 or
 5819        1.0 **                 (-1) * floatExpr(123.0) <>    123.0 or
 5820        1.0 **                   0  * floatExpr(123.0) <>    123.0 or
 5821        1.0 **                   1  * floatExpr(123.0) <>    123.0 or
 5822        1.0 **                   2  * floatExpr(123.0) <>    123.0 or
 5823        1.0 **                   3  * floatExpr(123.0) <>    123.0 or
 5824        1.0 **                   4  * floatExpr(123.0) <>    123.0 or
 5825        1.0 **                 100  * floatExpr(123.0) <>    123.0 or
 5826        1.0 **               32767  * floatExpr(123.0) <>    123.0 or
 5827        1.0 **               32768  * floatExpr(123.0) <>    123.0 or
 5828        1.0 **          2147483647  * floatExpr(123.0) <>    123.0 or
 5829        1.0 **          2147483648  * floatExpr(123.0) <>    123.0 or
 5830        1.0 ** 9223372036854775807  * floatExpr(123.0) <>    123.0 or
 5831        2.0 **       integer.first  * floatExpr(123.0) <>                  0.0 or
 5832        2.0 **        (-2147483649) * floatExpr(123.0) <>                  0.0 or
 5833        2.0 **        (-2147483648) * floatExpr(123.0) <>                  0.0 or
 5834        2.0 **             (-32769) * floatExpr(123.0) <>                  0.0 or
 5835        2.0 **             (-32768) * floatExpr(123.0) <>                  0.0 or
 5836        2.0 **               (-150) * floatExpr(123.0) <>                  8.6179855555976250e-44 or
 5837        2.0 **               (-100) * floatExpr(123.0) <>                  9.7029891342184452e-29 or
 5838        2.0 **                (-50) * floatExpr(123.0) <>                  1.0924594562311540e-13 or
 5839        2.0 **                (-40) * floatExpr(123.0) <>                  1.1186784831807017e-10 or
 5840        2.0 **                (-30) * floatExpr(123.0) <>                  1.1455267667770386e-07 or
 5841        2.0 **                (-20) * floatExpr(123.0) <>                  1.1730194091796875e-04 or
 5842        2.0 **                (-10) * floatExpr(123.0) <>                  0.1201171875 or
 5843        2.0 **                 (-4) * floatExpr(123.0) <>                  7.6875 or
 5844        2.0 **                 (-3) * floatExpr(123.0) <>                 15.375 or
 5845        2.0 **                 (-2) * floatExpr(123.0) <>                 30.75 or
 5846        2.0 **                 (-1) * floatExpr(123.0) <>                 61.5 or
 5847        2.0 **                   0  * floatExpr(123.0) <>                123.0 or
 5848        2.0 **                   1  * floatExpr(123.0) <>                246.0 or
 5849        2.0 **                   2  * floatExpr(123.0) <>                492.0 or
 5850        2.0 **                   3  * floatExpr(123.0) <>                984.0 or
 5851        2.0 **                   4  * floatExpr(123.0) <>               1968.0 or
 5852        2.0 **                  10  * floatExpr(123.0) <>             125952.0 or
 5853        2.0 **                  20  * floatExpr(123.0) <>          128974848.0 or
 5854        2.0 **                  30  * floatExpr(123.0) <>       132070244352.0 or
 5855        2.0 **                  40  * floatExpr(123.0) <>    135239930216448.0 or
 5856        2.0 **                  50  * floatExpr(123.0) <> 138485688541642752.0 or
 5857        2.0 **                 100  * floatExpr(123.0) <>                  1.5592102382807222e+32 or
 5858        2.0 **                 150  * floatExpr(123.0) <>                  1.7555146620283307e+47 or
 5859        2.0 **               32767  * floatExpr(123.0) <>             Infinity or
 5860        2.0 **               32768  * floatExpr(123.0) <>             Infinity or
 5861        2.0 **          2147483647  * floatExpr(123.0) <>             Infinity or
 5862        2.0 **          2147483648  * floatExpr(123.0) <>             Infinity or
 5863        2.0 ** 9223372036854775807  * floatExpr(123.0) <>             Infinity or
 5864        4.0 **       integer.first  * floatExpr(123.0) <>                  0.0 or
 5865        4.0 **        (-2147483649) * floatExpr(123.0) <>                  0.0 or
 5866        4.0 **        (-2147483648) * floatExpr(123.0) <>                  0.0 or
 5867        4.0 **             (-32769) * floatExpr(123.0) <>                  0.0 or
 5868        4.0 **             (-32768) * floatExpr(123.0) <>                  0.0 or
 5869        4.0 **               (-150) * floatExpr(123.0) <>                  6.0381849623162037e-89 or
 5870        4.0 **               (-100) * floatExpr(123.0) <>                  7.6543087917692043e-59 or
 5871        4.0 **                (-50) * floatExpr(123.0) <>                  9.7029891342184452e-29 or
 5872        4.0 **                (-40) * floatExpr(123.0) <>                  1.0174321534402240e-22 or
 5873        4.0 **                (-30) * floatExpr(123.0) <>                  1.0668549377257364e-16 or
 5874        4.0 **                (-20) * floatExpr(123.0) <>                  1.1186784831807017e-10 or
 5875        4.0 **                (-10) * floatExpr(123.0) <>                  1.1730194091796875e-04 or
 5876        4.0 **                 (-4) * floatExpr(123.0) <>                  0.48046875 or
 5877        4.0 **                 (-3) * floatExpr(123.0) <>                  1.921875 or
 5878        4.0 **                 (-2) * floatExpr(123.0) <>                  7.6875 or
 5879        4.0 **                 (-1) * floatExpr(123.0) <>                 30.75 or
 5880        4.0 **                   0  * floatExpr(123.0) <>                123.0 or
 5881        4.0 **                   1  * floatExpr(123.0) <>                492.0 or
 5882        4.0 **                   2  * floatExpr(123.0) <>               1968.0 or
 5883        4.0 **                   3  * floatExpr(123.0) <>               7872.0 or
 5884        4.0 **                   4  * floatExpr(123.0) <>              31488.0 or
 5885        4.0 **                  10  * floatExpr(123.0) <>          128974848.0 or
 5886        4.0 **                  20  * floatExpr(123.0) <>    135239930216448.0 or
 5887        4.0 **                  30  * floatExpr(123.0) <>                  1.4180934506664218e+20 or
 5888        4.0 **                  40  * floatExpr(123.0) <>                  1.4869787581259939e+26 or
 5889        4.0 **                  50  * floatExpr(123.0) <>                  1.5592102382807222e+32 or
 5890        4.0 **                 100  * floatExpr(123.0) <>                  1.9765337944385580e+62 or
 5891        4.0 **                 150  * floatExpr(123.0) <>                  2.5055542508914179e+92 or
 5892        4.0 **               32767  * floatExpr(123.0) <>             Infinity or
 5893        4.0 **               32768  * floatExpr(123.0) <>             Infinity or
 5894        4.0 **          2147483647  * floatExpr(123.0) <>             Infinity or
 5895        4.0 **          2147483648  * floatExpr(123.0) <>             Infinity or
 5896        4.0 ** 9223372036854775807  * floatExpr(123.0) <>             Infinity then
 5897       writeln(" ***** Multiplication A ** B * C does not work correct. (3)");
 5898       okay := FALSE;
 5899     end if;
 5900 
 5901     if 0.0 ** intExpr(      integer.first) * floatExpr(123.0) <> Infinity or
 5902        0.0 ** intExpr(        -2147483649) * floatExpr(123.0) <> Infinity or
 5903        0.0 ** intExpr(        -2147483648) * floatExpr(123.0) <> Infinity or
 5904        0.0 ** intExpr(             -32769) * floatExpr(123.0) <> Infinity or
 5905        0.0 ** intExpr(             -32768) * floatExpr(123.0) <> Infinity or
 5906        0.0 ** intExpr(               -100) * floatExpr(123.0) <> Infinity or
 5907        0.0 ** intExpr(                 -4) * floatExpr(123.0) <> Infinity or
 5908        0.0 ** intExpr(                 -3) * floatExpr(123.0) <> Infinity or
 5909        0.0 ** intExpr(                 -2) * floatExpr(123.0) <> Infinity or
 5910        0.0 ** intExpr(                 -1) * floatExpr(123.0) <> Infinity or
 5911        0.0 ** intExpr(                  0) * floatExpr(123.0) <>    123.0 or
 5912        0.0 ** intExpr(                  1) * floatExpr(123.0) <>      0.0 or
 5913        0.0 ** intExpr(                  2) * floatExpr(123.0) <>      0.0 or
 5914        0.0 ** intExpr(                  3) * floatExpr(123.0) <>      0.0 or
 5915        0.0 ** intExpr(                  4) * floatExpr(123.0) <>      0.0 or
 5916        0.0 ** intExpr(                100) * floatExpr(123.0) <>      0.0 or
 5917        0.0 ** intExpr(              32767) * floatExpr(123.0) <>      0.0 or
 5918        0.0 ** intExpr(              32768) * floatExpr(123.0) <>      0.0 or
 5919        0.0 ** intExpr(         2147483647) * floatExpr(123.0) <>      0.0 or
 5920        0.0 ** intExpr(         2147483648) * floatExpr(123.0) <>      0.0 or
 5921        0.0 ** intExpr(9223372036854775807) * floatExpr(123.0) <>      0.0 or
 5922        1.0 ** intExpr(      integer.first) * floatExpr(123.0) <>    123.0 or
 5923        1.0 ** intExpr(        -2147483649) * floatExpr(123.0) <>    123.0 or
 5924        1.0 ** intExpr(        -2147483648) * floatExpr(123.0) <>    123.0 or
 5925        1.0 ** intExpr(             -32769) * floatExpr(123.0) <>    123.0 or
 5926        1.0 ** intExpr(             -32768) * floatExpr(123.0) <>    123.0 or
 5927        1.0 ** intExpr(               -100) * floatExpr(123.0) <>    123.0 or
 5928        1.0 ** intExpr(                 -4) * floatExpr(123.0) <>    123.0 or
 5929        1.0 ** intExpr(                 -3) * floatExpr(123.0) <>    123.0 or
 5930        1.0 ** intExpr(                 -2) * floatExpr(123.0) <>    123.0 or
 5931        1.0 ** intExpr(                 -1) * floatExpr(123.0) <>    123.0 or
 5932        1.0 ** intExpr(                  0) * floatExpr(123.0) <>    123.0 or
 5933        1.0 ** intExpr(                  1) * floatExpr(123.0) <>    123.0 or
 5934        1.0 ** intExpr(                  2) * floatExpr(123.0) <>    123.0 or
 5935        1.0 ** intExpr(                  3) * floatExpr(123.0) <>    123.0 or
 5936        1.0 ** intExpr(                  4) * floatExpr(123.0) <>    123.0 or
 5937        1.0 ** intExpr(                100) * floatExpr(123.0) <>    123.0 or
 5938        1.0 ** intExpr(              32767) * floatExpr(123.0) <>    123.0 or
 5939        1.0 ** intExpr(              32768) * floatExpr(123.0) <>    123.0 or
 5940        1.0 ** intExpr(         2147483647) * floatExpr(123.0) <>    123.0 or
 5941        1.0 ** intExpr(         2147483648) * floatExpr(123.0) <>    123.0 or
 5942        1.0 ** intExpr(9223372036854775807) * floatExpr(123.0) <>    123.0 or
 5943        2.0 ** intExpr(      integer.first) * floatExpr(123.0) <>                  0.0 or
 5944        2.0 ** intExpr(        -2147483649) * floatExpr(123.0) <>                  0.0 or
 5945        2.0 ** intExpr(        -2147483648) * floatExpr(123.0) <>                  0.0 or
 5946        2.0 ** intExpr(             -32769) * floatExpr(123.0) <>                  0.0 or
 5947        2.0 ** intExpr(             -32768) * floatExpr(123.0) <>                  0.0 or
 5948        2.0 ** intExpr(               -150) * floatExpr(123.0) <>                  8.6179855555976250e-44 or
 5949        2.0 ** intExpr(               -100) * floatExpr(123.0) <>                  9.7029891342184452e-29 or
 5950        2.0 ** intExpr(                -50) * floatExpr(123.0) <>                  1.0924594562311540e-13 or
 5951        2.0 ** intExpr(                -40) * floatExpr(123.0) <>                  1.1186784831807017e-10 or
 5952        2.0 ** intExpr(                -30) * floatExpr(123.0) <>                  1.1455267667770386e-07 or
 5953        2.0 ** intExpr(                -20) * floatExpr(123.0) <>                  1.1730194091796875e-04 or
 5954        2.0 ** intExpr(                -10) * floatExpr(123.0) <>                  0.1201171875 or
 5955        2.0 ** intExpr(                 -4) * floatExpr(123.0) <>                  7.6875 or
 5956        2.0 ** intExpr(                 -3) * floatExpr(123.0) <>                 15.375 or
 5957        2.0 ** intExpr(                 -2) * floatExpr(123.0) <>                 30.75 or
 5958        2.0 ** intExpr(                 -1) * floatExpr(123.0) <>                 61.5 or
 5959        2.0 ** intExpr(                  0) * floatExpr(123.0) <>                123.0 or
 5960        2.0 ** intExpr(                  1) * floatExpr(123.0) <>                246.0 or
 5961        2.0 ** intExpr(                  2) * floatExpr(123.0) <>                492.0 or
 5962        2.0 ** intExpr(                  3) * floatExpr(123.0) <>                984.0 or
 5963        2.0 ** intExpr(                  4) * floatExpr(123.0) <>               1968.0 or
 5964        2.0 ** intExpr(                 10) * floatExpr(123.0) <>             125952.0 or
 5965        2.0 ** intExpr(                 20) * floatExpr(123.0) <>          128974848.0 or
 5966        2.0 ** intExpr(                 30) * floatExpr(123.0) <>       132070244352.0 or
 5967        2.0 ** intExpr(                 40) * floatExpr(123.0) <>    135239930216448.0 or
 5968        2.0 ** intExpr(                 50) * floatExpr(123.0) <> 138485688541642752.0 or
 5969        2.0 ** intExpr(                100) * floatExpr(123.0) <>                  1.5592102382807222e+32 or
 5970        2.0 ** intExpr(                150) * floatExpr(123.0) <>                  1.7555146620283307e+47 or
 5971        2.0 ** intExpr(              32767) * floatExpr(123.0) <>             Infinity or
 5972        2.0 ** intExpr(              32768) * floatExpr(123.0) <>             Infinity or
 5973        2.0 ** intExpr(         2147483647) * floatExpr(123.0) <>             Infinity or
 5974        2.0 ** intExpr(         2147483648) * floatExpr(123.0) <>             Infinity or
 5975        2.0 ** intExpr(9223372036854775807) * floatExpr(123.0) <>             Infinity or
 5976        4.0 ** intExpr(      integer.first) * floatExpr(123.0) <>                  0.0 or
 5977        4.0 ** intExpr(        -2147483649) * floatExpr(123.0) <>                  0.0 or
 5978        4.0 ** intExpr(        -2147483648) * floatExpr(123.0) <>                  0.0 or
 5979        4.0 ** intExpr(             -32769) * floatExpr(123.0) <>                  0.0 or
 5980        4.0 ** intExpr(             -32768) * floatExpr(123.0) <>                  0.0 or
 5981        4.0 ** intExpr(               -150) * floatExpr(123.0) <>                  6.0381849623162037e-89 or
 5982        4.0 ** intExpr(               -100) * floatExpr(123.0) <>                  7.6543087917692043e-59 or
 5983        4.0 ** intExpr(                -50) * floatExpr(123.0) <>                  9.7029891342184452e-29 or
 5984        4.0 ** intExpr(                -40) * floatExpr(123.0) <>                  1.0174321534402240e-22 or
 5985        4.0 ** intExpr(                -30) * floatExpr(123.0) <>                  1.0668549377257364e-16 or
 5986        4.0 ** intExpr(                -20) * floatExpr(123.0) <>                  1.1186784831807017e-10 or
 5987        4.0 ** intExpr(                -10) * floatExpr(123.0) <>                  1.1730194091796875e-04 or
 5988        4.0 ** intExpr(                 -4) * floatExpr(123.0) <>                  0.48046875 or
 5989        4.0 ** intExpr(                 -3) * floatExpr(123.0) <>                  1.921875 or
 5990        4.0 ** intExpr(                 -2) * floatExpr(123.0) <>                  7.6875 or
 5991        4.0 ** intExpr(                 -1) * floatExpr(123.0) <>                 30.75 or
 5992        4.0 ** intExpr(                  0) * floatExpr(123.0) <>                123.0 or
 5993        4.0 ** intExpr(                  1) * floatExpr(123.0) <>                492.0 or
 5994        4.0 ** intExpr(                  2) * floatExpr(123.0) <>               1968.0 or
 5995        4.0 ** intExpr(                  3) * floatExpr(123.0) <>               7872.0 or
 5996        4.0 ** intExpr(                  4) * floatExpr(123.0) <>              31488.0 or
 5997        4.0 ** intExpr(                 10) * floatExpr(123.0) <>          128974848.0 or
 5998        4.0 ** intExpr(                 20) * floatExpr(123.0) <>    135239930216448.0 or
 5999        4.0 ** intExpr(                 30) * floatExpr(123.0) <>                  1.4180934506664218e+20 or
 6000        4.0 ** intExpr(                 40) * floatExpr(123.0) <>                  1.4869787581259939e+26 or
 6001        4.0 ** intExpr(                 50) * floatExpr(123.0) <>                  1.5592102382807222e+32 or
 6002        4.0 ** intExpr(                100) * floatExpr(123.0) <>                  1.9765337944385580e+62 or
 6003        4.0 ** intExpr(                150) * floatExpr(123.0) <>                  2.5055542508914179e+92 or
 6004        4.0 ** intExpr(              32767) * floatExpr(123.0) <>             Infinity or
 6005        4.0 ** intExpr(              32768) * floatExpr(123.0) <>             Infinity or
 6006        4.0 ** intExpr(         2147483647) * floatExpr(123.0) <>             Infinity or
 6007        4.0 ** intExpr(         2147483648) * floatExpr(123.0) <>             Infinity or
 6008        4.0 ** intExpr(9223372036854775807) * floatExpr(123.0) <>             Infinity then
 6009       writeln(" ***** Multiplication A ** B * C does not work correct. (4)");
 6010       okay := FALSE;
 6011     end if;
 6012 
 6013     if floatExpr(0.0) **       integer.first  * 123.0 <> Infinity or
 6014        floatExpr(0.0) **        (-2147483649) * 123.0 <> Infinity or
 6015        floatExpr(0.0) **        (-2147483648) * 123.0 <> Infinity or
 6016        floatExpr(0.0) **             (-32769) * 123.0 <> Infinity or
 6017        floatExpr(0.0) **             (-32768) * 123.0 <> Infinity or
 6018        floatExpr(0.0) **               (-100) * 123.0 <> Infinity or
 6019        floatExpr(0.0) **                 (-4) * 123.0 <> Infinity or
 6020        floatExpr(0.0) **                 (-3) * 123.0 <> Infinity or
 6021        floatExpr(0.0) **                 (-2) * 123.0 <> Infinity or
 6022        floatExpr(0.0) **                 (-1) * 123.0 <> Infinity or
 6023        floatExpr(0.0) **                   0  * 123.0 <>    123.0 or
 6024        floatExpr(0.0) **                   1  * 123.0 <>      0.0 or
 6025        floatExpr(0.0) **                   2  * 123.0 <>      0.0 or
 6026        floatExpr(0.0) **                   3  * 123.0 <>      0.0 or
 6027        floatExpr(0.0) **                   4  * 123.0 <>      0.0 or
 6028        floatExpr(0.0) **                 100  * 123.0 <>      0.0 or
 6029        floatExpr(0.0) **               32767  * 123.0 <>      0.0 or
 6030        floatExpr(0.0) **               32768  * 123.0 <>      0.0 or
 6031        floatExpr(0.0) **          2147483647  * 123.0 <>      0.0 or
 6032        floatExpr(0.0) **          2147483648  * 123.0 <>      0.0 or
 6033        floatExpr(0.0) ** 9223372036854775807  * 123.0 <>      0.0 or
 6034        floatExpr(1.0) **       integer.first  * 123.0 <>    123.0 or
 6035        floatExpr(1.0) **        (-2147483649) * 123.0 <>    123.0 or
 6036        floatExpr(1.0) **        (-2147483648) * 123.0 <>    123.0 or
 6037        floatExpr(1.0) **             (-32769) * 123.0 <>    123.0 or
 6038        floatExpr(1.0) **             (-32768) * 123.0 <>    123.0 or
 6039        floatExpr(1.0) **               (-100) * 123.0 <>    123.0 or
 6040        floatExpr(1.0) **                 (-4) * 123.0 <>    123.0 or
 6041        floatExpr(1.0) **                 (-3) * 123.0 <>    123.0 or
 6042        floatExpr(1.0) **                 (-2) * 123.0 <>    123.0 or
 6043        floatExpr(1.0) **                 (-1) * 123.0 <>    123.0 or
 6044        floatExpr(1.0) **                   0  * 123.0 <>    123.0 or
 6045        floatExpr(1.0) **                   1  * 123.0 <>    123.0 or
 6046        floatExpr(1.0) **                   2  * 123.0 <>    123.0 or
 6047        floatExpr(1.0) **                   3  * 123.0 <>    123.0 or
 6048        floatExpr(1.0) **                   4  * 123.0 <>    123.0 or
 6049        floatExpr(1.0) **                 100  * 123.0 <>    123.0 or
 6050        floatExpr(1.0) **               32767  * 123.0 <>    123.0 or
 6051        floatExpr(1.0) **               32768  * 123.0 <>    123.0 or
 6052        floatExpr(1.0) **          2147483647  * 123.0 <>    123.0 or
 6053        floatExpr(1.0) **          2147483648  * 123.0 <>    123.0 or
 6054        floatExpr(1.0) ** 9223372036854775807  * 123.0 <>    123.0 or
 6055        floatExpr(2.0) **       integer.first  * 123.0 <>                  0.0 or
 6056        floatExpr(2.0) **        (-2147483649) * 123.0 <>                  0.0 or
 6057        floatExpr(2.0) **        (-2147483648) * 123.0 <>                  0.0 or
 6058        floatExpr(2.0) **             (-32769) * 123.0 <>                  0.0 or
 6059        floatExpr(2.0) **             (-32768) * 123.0 <>                  0.0 or
 6060        floatExpr(2.0) **               (-150) * 123.0 <>                  8.6179855555976250e-44 or
 6061        floatExpr(2.0) **               (-100) * 123.0 <>                  9.7029891342184452e-29 or
 6062        floatExpr(2.0) **                (-50) * 123.0 <>                  1.0924594562311540e-13 or
 6063        floatExpr(2.0) **                (-40) * 123.0 <>                  1.1186784831807017e-10 or
 6064        floatExpr(2.0) **                (-30) * 123.0 <>                  1.1455267667770386e-07 or
 6065        floatExpr(2.0) **                (-20) * 123.0 <>                  1.1730194091796875e-04 or
 6066        floatExpr(2.0) **                (-10) * 123.0 <>                  0.1201171875 or
 6067        floatExpr(2.0) **                 (-4) * 123.0 <>                  7.6875 or
 6068        floatExpr(2.0) **                 (-3) * 123.0 <>                 15.375 or
 6069        floatExpr(2.0) **                 (-2) * 123.0 <>                 30.75 or
 6070        floatExpr(2.0) **                 (-1) * 123.0 <>                 61.5 or
 6071        floatExpr(2.0) **                   0  * 123.0 <>                123.0 or
 6072        floatExpr(2.0) **                   1  * 123.0 <>                246.0 or
 6073        floatExpr(2.0) **                   2  * 123.0 <>                492.0 or
 6074        floatExpr(2.0) **                   3  * 123.0 <>                984.0 or
 6075        floatExpr(2.0) **                   4  * 123.0 <>               1968.0 or
 6076        floatExpr(2.0) **                  10  * 123.0 <>             125952.0 or
 6077        floatExpr(2.0) **                  20  * 123.0 <>          128974848.0 or
 6078        floatExpr(2.0) **                  30  * 123.0 <>       132070244352.0 or
 6079        floatExpr(2.0) **                  40  * 123.0 <>    135239930216448.0 or
 6080        floatExpr(2.0) **                  50  * 123.0 <> 138485688541642752.0 or
 6081        floatExpr(2.0) **                 100  * 123.0 <>                  1.5592102382807222e+32 or
 6082        floatExpr(2.0) **                 150  * 123.0 <>                  1.7555146620283307e+47 or
 6083        floatExpr(2.0) **               32767  * 123.0 <>             Infinity or
 6084        floatExpr(2.0) **               32768  * 123.0 <>             Infinity or
 6085        floatExpr(2.0) **          2147483647  * 123.0 <>             Infinity or
 6086        floatExpr(2.0) **          2147483648  * 123.0 <>             Infinity or
 6087        floatExpr(2.0) ** 9223372036854775807  * 123.0 <>             Infinity or
 6088        floatExpr(4.0) **       integer.first  * 123.0 <>                  0.0 or
 6089        floatExpr(4.0) **        (-2147483649) * 123.0 <>                  0.0 or
 6090        floatExpr(4.0) **        (-2147483648) * 123.0 <>                  0.0 or
 6091        floatExpr(4.0) **             (-32769) * 123.0 <>                  0.0 or
 6092        floatExpr(4.0) **             (-32768) * 123.0 <>                  0.0 or
 6093        floatExpr(4.0) **               (-150) * 123.0 <>                  6.0381849623162037e-89 or
 6094        floatExpr(4.0) **               (-100) * 123.0 <>                  7.6543087917692043e-59 or
 6095        floatExpr(4.0) **                (-50) * 123.0 <>                  9.7029891342184452e-29 or
 6096        floatExpr(4.0) **                (-40) * 123.0 <>                  1.0174321534402240e-22 or
 6097        floatExpr(4.0) **                (-30) * 123.0 <>                  1.0668549377257364e-16 or
 6098        floatExpr(4.0) **                (-20) * 123.0 <>                  1.1186784831807017e-10 or
 6099        floatExpr(4.0) **                (-10) * 123.0 <>                  1.1730194091796875e-04 or
 6100        floatExpr(4.0) **                 (-4) * 123.0 <>                  0.48046875 or
 6101        floatExpr(4.0) **                 (-3) * 123.0 <>                  1.921875 or
 6102        floatExpr(4.0) **                 (-2) * 123.0 <>                  7.6875 or
 6103        floatExpr(4.0) **                 (-1) * 123.0 <>                 30.75 or
 6104        floatExpr(4.0) **                   0  * 123.0 <>                123.0 or
 6105        floatExpr(4.0) **                   1  * 123.0 <>                492.0 or
 6106        floatExpr(4.0) **                   2  * 123.0 <>               1968.0 or
 6107        floatExpr(4.0) **                   3  * 123.0 <>               7872.0 or
 6108        floatExpr(4.0) **                   4  * 123.0 <>              31488.0 or
 6109        floatExpr(4.0) **                  10  * 123.0 <>          128974848.0 or
 6110        floatExpr(4.0) **                  20  * 123.0 <>    135239930216448.0 or
 6111        floatExpr(4.0) **                  30  * 123.0 <>                  1.4180934506664218e+20 or
 6112        floatExpr(4.0) **                  40  * 123.0 <>                  1.4869787581259939e+26 or
 6113        floatExpr(4.0) **                  50  * 123.0 <>                  1.5592102382807222e+32 or
 6114        floatExpr(4.0) **                 100  * 123.0 <>                  1.9765337944385580e+62 or
 6115        floatExpr(4.0) **                 150  * 123.0 <>                  2.5055542508914179e+92 or
 6116        floatExpr(4.0) **               32767  * 123.0 <>             Infinity or
 6117        floatExpr(4.0) **               32768  * 123.0 <>             Infinity or
 6118        floatExpr(4.0) **          2147483647  * 123.0 <>             Infinity or
 6119        floatExpr(4.0) **          2147483648  * 123.0 <>             Infinity or
 6120        floatExpr(4.0) ** 9223372036854775807  * 123.0 <>             Infinity then
 6121       writeln(" ***** Multiplication A ** B * C does not work correct. (5)");
 6122       okay := FALSE;
 6123     end if;
 6124 
 6125     if okay then
 6126       writeln("Multiplication works correct for selected values.");
 6127     else
 6128       writeln(" ***** Multiplication does not work correct.");
 6129     end if;
 6130   end func;
 6131 
 6132 
 6133 const proc: check_division is func
 6134   begin
 6135     if             0.0  /             1.0  =  0.0  and
 6136                    0.0  /            12.0  =  0.0  and
 6137                    1.0  /             2.0  =  0.5  and
 6138                    1.0  /             4.0  =  0.25 and
 6139         floatExpr( 0.0) /             1.0  =  0.0  and
 6140         floatExpr( 0.0) /            12.0  =  0.0  and
 6141         floatExpr( 1.0) /             2.0  =  0.5  and
 6142         floatExpr( 1.0) /             4.0  =  0.25 and
 6143                    0.0  / floatExpr(  1.0) =  0.0  and
 6144                    0.0  / floatExpr( 12.0) =  0.0  and
 6145                    1.0  / floatExpr(  2.0) =  0.5  and
 6146                    1.0  / floatExpr(  4.0) =  0.25 and
 6147         floatExpr( 0.0) / floatExpr(  1.0) =  0.0  and
 6148         floatExpr( 0.0) / floatExpr( 12.0) =  0.0  and
 6149         floatExpr( 1.0) / floatExpr(  2.0) =  0.5  and
 6150         floatExpr( 1.0) / floatExpr(  4.0) =  0.25 then
 6151       writeln("Division works correct for selected values.");
 6152     else
 6153       writeln(" ***** Division does not work correct.");
 6154     end if;
 6155   end func;
 6156 
 6157 
 6158 const proc: check_remainder is func
 6159   local
 6160     var boolean: okay is TRUE;
 6161   begin
 6162     if  not isNaN(      NaN rem       NaN)           or
 6163         not isNaN(      NaN rem -Infinity)           or
 6164         not isNaN(      NaN rem    -13.25)           or
 6165         not isNaN(      NaN rem     -1.0 )           or
 6166         not isNaN(      NaN rem     -0.75)           or
 6167         not isNaN(      NaN rem     -0.0 )           or
 6168         not isNaN(      NaN rem      0.0 )           or
 6169         not isNaN(      NaN rem      0.75)           or
 6170         not isNaN(      NaN rem      1.0 )           or
 6171         not isNaN(      NaN rem     13.25)           or
 6172         not isNaN(      NaN rem  Infinity)           or
 6173         not isNaN(-Infinity rem       NaN)           or
 6174         not isNaN(-Infinity rem -Infinity)           or
 6175         not isNaN(-Infinity rem    -13.25)           or
 6176         not isNaN(-Infinity rem     -1.0 )           or
 6177         not isNaN(-Infinity rem     -0.75)           or
 6178         not isNaN(-Infinity rem     -0.0 )           or
 6179         not isNaN(-Infinity rem      0.0 )           or
 6180         not isNaN(-Infinity rem      0.75)           or
 6181         not isNaN(-Infinity rem      1.0 )           or
 6182         not isNaN(-Infinity rem     13.25)           or
 6183         not isNaN(-Infinity rem  Infinity)           or
 6184         not isNaN(  -31.125 rem       NaN)           or
 6185                     -31.125 rem -Infinity <> -31.125 or
 6186                     -31.125 rem    -13.25 <>  -4.625 or
 6187                     -31.125 rem     -1.0  <>  -0.125 or
 6188                     -31.125 rem     -0.75 <>  -0.375 or
 6189         not isNaN(  -31.125 rem     -0.0 )           or
 6190         not isNaN(  -31.125 rem      0.0 )           or
 6191                     -31.125 rem      0.75 <>  -0.375 or
 6192                     -31.125 rem      1.0  <>  -0.125 or
 6193                     -31.125 rem     13.25 <>  -4.625 or
 6194                     -31.125 rem  Infinity <> -31.125 or
 6195         not isNaN(   -1.0   rem       NaN)           or
 6196                      -1.0   rem -Infinity <>  -1.0   or
 6197                      -1.0   rem    -13.25 <>  -1.0   or
 6198                      -1.0   rem     -1.0  <>   0.0   or
 6199                      -1.0   rem     -0.75 <>  -0.25  or
 6200         not isNaN(   -1.0   rem     -0.0 )           or
 6201         not isNaN(   -1.0   rem      0.0 )           or
 6202                      -1.0   rem      0.75 <>  -0.25  or
 6203                      -1.0   rem      1.0  <>   0.0   or
 6204                      -1.0   rem     13.25 <>  -1.0   or
 6205                      -1.0   rem  Infinity <>  -1.0   or
 6206         not isNaN(   -0.0   rem       NaN)           or
 6207                      -0.0   rem -Infinity <>   0.0   or
 6208                      -0.0   rem    -13.25 <>   0.0   or
 6209                      -0.0   rem     -1.0  <>   0.0   or
 6210                      -0.0   rem     -0.75 <>   0.0   or
 6211         not isNaN(   -0.0   rem     -0.0 )           or
 6212         not isNaN(   -0.0   rem      0.0 )           or
 6213                      -0.0   rem      0.75 <>   0.0   or
 6214                      -0.0   rem      1.0  <>   0.0   or
 6215                      -0.0   rem     13.25 <>   0.0   or
 6216                      -0.0   rem  Infinity <>   0.0   or
 6217         not isNaN(    0.0   rem       NaN)           or
 6218                       0.0   rem -Infinity <>   0.0   or
 6219                       0.0   rem    -13.25 <>   0.0   or
 6220                       0.0   rem     -1.0  <>   0.0   or
 6221                       0.0   rem     -0.75 <>   0.0   or
 6222         not isNaN(    0.0   rem     -0.0 )           or
 6223         not isNaN(    0.0   rem      0.0 )           or
 6224                       0.0   rem      0.75 <>   0.0   or
 6225                       0.0   rem      1.0  <>   0.0   or
 6226                       0.0   rem     13.25 <>   0.0   or
 6227                       0.0   rem  Infinity <>   0.0   or
 6228         not isNaN(    1.0   rem       NaN)           or
 6229                       1.0   rem -Infinity <>   1.0   or
 6230                       1.0   rem    -13.25 <>   1.0   or
 6231                       1.0   rem     -1.0  <>   0.0   or
 6232                       1.0   rem     -0.75 <>   0.25  or
 6233         not isNaN(    1.0   rem     -0.0 )           or
 6234         not isNaN(    1.0   rem      0.0 )           or
 6235                       1.0   rem      0.75 <>   0.25  or
 6236                       1.0   rem      1.0  <>   0.0   or
 6237                       1.0   rem     13.25 <>   1.0   or
 6238                       1.0   rem  Infinity <>   1.0   or
 6239         not isNaN(   31.125 rem       NaN)           or
 6240                      31.125 rem -Infinity <>  31.125 or
 6241                      31.125 rem    -13.25 <>   4.625 or
 6242                      31.125 rem     -1.0  <>   0.125 or
 6243                      31.125 rem     -0.75 <>   0.375 or
 6244         not isNaN(   31.125 rem     -0.0 )           or
 6245         not isNaN(   31.125 rem      0.0 )           or
 6246                      31.125 rem      0.75 <>   0.375 or
 6247                      31.125 rem      1.0  <>   0.125 or
 6248                      31.125 rem     13.25 <>   4.625 or
 6249                      31.125 rem  Infinity <>  31.125 or
 6250         not isNaN( Infinity rem       NaN)           or
 6251         not isNaN( Infinity rem -Infinity)           or
 6252         not isNaN( Infinity rem    -13.25)           or
 6253         not isNaN( Infinity rem     -1.0 )           or
 6254         not isNaN( Infinity rem     -0.75)           or
 6255         not isNaN( Infinity rem     -0.0 )           or
 6256         not isNaN( Infinity rem      0.0 )           or
 6257         not isNaN( Infinity rem      0.75)           or
 6258         not isNaN( Infinity rem      1.0 )           or
 6259         not isNaN( Infinity rem     13.25)           or
 6260         not isNaN( Infinity rem  Infinity)           then
 6261       writeln(" ***** Remainder does not work correct. (1)");
 6262       okay := FALSE;
 6263     end if;
 6264 
 6265     if  not isNaN(floatExpr(      NaN) rem       NaN)           or
 6266         not isNaN(floatExpr(      NaN) rem -Infinity)           or
 6267         not isNaN(floatExpr(      NaN) rem    -13.25)           or
 6268         not isNaN(floatExpr(      NaN) rem     -1.0 )           or
 6269         not isNaN(floatExpr(      NaN) rem     -0.75)           or
 6270         not isNaN(floatExpr(      NaN) rem     -0.0 )           or
 6271         not isNaN(floatExpr(      NaN) rem      0.0 )           or
 6272         not isNaN(floatExpr(      NaN) rem      0.75)           or
 6273         not isNaN(floatExpr(      NaN) rem      1.0 )           or
 6274         not isNaN(floatExpr(      NaN) rem     13.25)           or
 6275         not isNaN(floatExpr(      NaN) rem  Infinity)           or
 6276         not isNaN(floatExpr(-Infinity) rem       NaN)           or
 6277         not isNaN(floatExpr(-Infinity) rem -Infinity)           or
 6278         not isNaN(floatExpr(-Infinity) rem    -13.25)           or
 6279         not isNaN(floatExpr(-Infinity) rem     -1.0 )           or
 6280         not isNaN(floatExpr(-Infinity) rem     -0.75)           or
 6281         not isNaN(floatExpr(-Infinity) rem     -0.0 )           or
 6282         not isNaN(floatExpr(-Infinity) rem      0.0 )           or
 6283         not isNaN(floatExpr(-Infinity) rem      0.75)           or
 6284         not isNaN(floatExpr(-Infinity) rem      1.0 )           or
 6285         not isNaN(floatExpr(-Infinity) rem     13.25)           or
 6286         not isNaN(floatExpr(-Infinity) rem  Infinity)           or
 6287         not isNaN(floatExpr(  -31.125) rem       NaN)           or
 6288                   floatExpr(  -31.125) rem -Infinity <> -31.125 or
 6289                   floatExpr(  -31.125) rem    -13.25 <>  -4.625 or
 6290                   floatExpr(  -31.125) rem     -1.0  <>  -0.125 or
 6291                   floatExpr(  -31.125) rem     -0.75 <>  -0.375 or
 6292         not isNaN(floatExpr(  -31.125) rem     -0.0 )           or
 6293         not isNaN(floatExpr(  -31.125) rem      0.0 )           or
 6294                   floatExpr(  -31.125) rem      0.75 <>  -0.375 or
 6295                   floatExpr(  -31.125) rem      1.0  <>  -0.125 or
 6296                   floatExpr(  -31.125) rem     13.25 <>  -4.625 or
 6297                   floatExpr(  -31.125) rem  Infinity <> -31.125 or
 6298         not isNaN(floatExpr(   -1.0  ) rem       NaN)           or
 6299                   floatExpr(   -1.0  ) rem -Infinity <>  -1.0   or
 6300                   floatExpr(   -1.0  ) rem    -13.25 <>  -1.0   or
 6301                   floatExpr(   -1.0  ) rem     -1.0  <>   0.0   or
 6302                   floatExpr(   -1.0  ) rem     -0.75 <>  -0.25  or
 6303         not isNaN(floatExpr(   -1.0  ) rem     -0.0 )           or
 6304         not isNaN(floatExpr(   -1.0  ) rem      0.0 )           or
 6305                   floatExpr(   -1.0  ) rem      0.75 <>  -0.25  or
 6306                   floatExpr(   -1.0  ) rem      1.0  <>   0.0   or
 6307                   floatExpr(   -1.0  ) rem     13.25 <>  -1.0   or
 6308                   floatExpr(   -1.0  ) rem  Infinity <>  -1.0   or
 6309         not isNaN(floatExpr(   -0.0  ) rem       NaN)           or
 6310                   floatExpr(   -0.0  ) rem -Infinity <>   0.0   or
 6311                   floatExpr(   -0.0  ) rem    -13.25 <>   0.0   or
 6312                   floatExpr(   -0.0  ) rem     -1.0  <>   0.0   or
 6313                   floatExpr(   -0.0  ) rem     -0.75 <>   0.0   or
 6314         not isNaN(floatExpr(   -0.0  ) rem     -0.0 )           or
 6315         not isNaN(floatExpr(   -0.0  ) rem      0.0 )           or
 6316                   floatExpr(   -0.0  ) rem      0.75 <>   0.0   or
 6317                   floatExpr(   -0.0  ) rem      1.0  <>   0.0   or
 6318                   floatExpr(   -0.0  ) rem     13.25 <>   0.0   or
 6319                   floatExpr(   -0.0  ) rem  Infinity <>   0.0   or
 6320         not isNaN(floatExpr(    0.0  ) rem       NaN)           or
 6321                   floatExpr(    0.0  ) rem -Infinity <>   0.0   or
 6322                   floatExpr(    0.0  ) rem    -13.25 <>   0.0   or
 6323                   floatExpr(    0.0  ) rem     -1.0  <>   0.0   or
 6324                   floatExpr(    0.0  ) rem     -0.75 <>   0.0   or
 6325         not isNaN(floatExpr(    0.0  ) rem     -0.0 )           or
 6326         not isNaN(floatExpr(    0.0  ) rem      0.0 )           or
 6327                   floatExpr(    0.0  ) rem      0.75 <>   0.0   or
 6328                   floatExpr(    0.0  ) rem      1.0  <>   0.0   or
 6329                   floatExpr(    0.0  ) rem     13.25 <>   0.0   or
 6330                   floatExpr(    0.0  ) rem  Infinity <>   0.0   or
 6331         not isNaN(floatExpr(    1.0  ) rem       NaN)           or
 6332                   floatExpr(    1.0  ) rem -Infinity <>   1.0   or
 6333                   floatExpr(    1.0  ) rem    -13.25 <>   1.0   or
 6334                   floatExpr(    1.0  ) rem     -1.0  <>   0.0   or
 6335                   floatExpr(    1.0  ) rem     -0.75 <>   0.25  or
 6336         not isNaN(floatExpr(    1.0  ) rem     -0.0 )           or
 6337         not isNaN(floatExpr(    1.0  ) rem      0.0 )           or
 6338                   floatExpr(    1.0  ) rem      0.75 <>   0.25  or
 6339                   floatExpr(    1.0  ) rem      1.0  <>   0.0   or
 6340                   floatExpr(    1.0  ) rem     13.25 <>   1.0   or
 6341                   floatExpr(    1.0  ) rem  Infinity <>   1.0   or
 6342         not isNaN(floatExpr(   31.125) rem       NaN)           or
 6343                   floatExpr(   31.125) rem -Infinity <>  31.125 or
 6344                   floatExpr(   31.125) rem    -13.25 <>   4.625 or
 6345                   floatExpr(   31.125) rem     -1.0  <>   0.125 or
 6346                   floatExpr(   31.125) rem     -0.75 <>   0.375 or
 6347         not isNaN(floatExpr(   31.125) rem     -0.0 )           or
 6348         not isNaN(floatExpr(   31.125) rem      0.0 )           or
 6349                   floatExpr(   31.125) rem      0.75 <>   0.375 or
 6350                   floatExpr(   31.125) rem      1.0  <>   0.125 or
 6351                   floatExpr(   31.125) rem     13.25 <>   4.625 or
 6352                   floatExpr(   31.125) rem  Infinity <>  31.125 or
 6353         not isNaN(floatExpr( Infinity) rem       NaN)           or
 6354         not isNaN(floatExpr( Infinity) rem -Infinity)           or
 6355         not isNaN(floatExpr( Infinity) rem    -13.25)           or
 6356         not isNaN(floatExpr( Infinity) rem     -1.0 )           or
 6357         not isNaN(floatExpr( Infinity) rem     -0.75)           or
 6358         not isNaN(floatExpr( Infinity) rem     -0.0 )           or
 6359         not isNaN(floatExpr( Infinity) rem      0.0 )           or
 6360         not isNaN(floatExpr( Infinity) rem      0.75)           or
 6361         not isNaN(floatExpr( Infinity) rem      1.0 )           or
 6362         not isNaN(floatExpr( Infinity) rem     13.25)           or
 6363         not isNaN(floatExpr( Infinity) rem  Infinity)           then
 6364       writeln(" ***** Remainder does not work correct. (2)");
 6365       okay := FALSE;
 6366     end if;
 6367 
 6368     if  not isNaN(      NaN rem floatExpr(      NaN))           or
 6369         not isNaN(      NaN rem floatExpr(-Infinity))           or
 6370         not isNaN(      NaN rem floatExpr(   -13.25))           or
 6371         not isNaN(      NaN rem floatExpr(    -1.0 ))           or
 6372         not isNaN(      NaN rem floatExpr(    -0.75))           or
 6373         not isNaN(      NaN rem floatExpr(    -0.0 ))           or
 6374         not isNaN(      NaN rem floatExpr(     0.0 ))           or
 6375         not isNaN(      NaN rem floatExpr(     0.75))           or
 6376         not isNaN(      NaN rem floatExpr(     1.0 ))           or
 6377         not isNaN(      NaN rem floatExpr(    13.25))           or
 6378         not isNaN(      NaN rem floatExpr( Infinity))           or
 6379         not isNaN(-Infinity rem floatExpr(      NaN))           or
 6380         not isNaN(-Infinity rem floatExpr(-Infinity))           or
 6381         not isNaN(-Infinity rem floatExpr(   -13.25))           or
 6382         not isNaN(-Infinity rem floatExpr(    -1.0 ))           or
 6383         not isNaN(-Infinity rem floatExpr(    -0.75))           or
 6384         not isNaN(-Infinity rem floatExpr(    -0.0 ))           or
 6385         not isNaN(-Infinity rem floatExpr(     0.0 ))           or
 6386         not isNaN(-Infinity rem floatExpr(     0.75))           or
 6387         not isNaN(-Infinity rem floatExpr(     1.0 ))           or
 6388         not isNaN(-Infinity rem floatExpr(    13.25))           or
 6389         not isNaN(-Infinity rem floatExpr( Infinity))           or
 6390         not isNaN(  -31.125 rem floatExpr(      NaN))           or
 6391                     -31.125 rem floatExpr(-Infinity) <> -31.125 or
 6392                     -31.125 rem floatExpr(   -13.25) <>  -4.625 or
 6393                     -31.125 rem floatExpr(    -1.0 ) <>  -0.125 or
 6394                     -31.125 rem floatExpr(    -0.75) <>  -0.375 or
 6395         not isNaN(  -31.125 rem floatExpr(    -0.0 ))           or
 6396         not isNaN(  -31.125 rem floatExpr(     0.0 ))           or
 6397                     -31.125 rem floatExpr(     0.75) <>  -0.375 or
 6398                     -31.125 rem floatExpr(     1.0 ) <>  -0.125 or
 6399                     -31.125 rem floatExpr(    13.25) <>  -4.625 or
 6400                     -31.125 rem floatExpr( Infinity) <> -31.125 or
 6401         not isNaN(   -1.0   rem floatExpr(      NaN))           or
 6402                      -1.0   rem floatExpr(-Infinity) <>  -1.0   or
 6403                      -1.0   rem floatExpr(   -13.25) <>  -1.0   or
 6404                      -1.0   rem floatExpr(    -1.0 ) <>   0.0   or
 6405                      -1.0   rem floatExpr(    -0.75) <>  -0.25  or
 6406         not isNaN(   -1.0   rem floatExpr(    -0.0 ))           or
 6407         not isNaN(   -1.0   rem floatExpr(     0.0 ))           or
 6408                      -1.0   rem floatExpr(     0.75) <>  -0.25  or
 6409                      -1.0   rem floatExpr(     1.0 ) <>   0.0   or
 6410                      -1.0   rem floatExpr(    13.25) <>  -1.0   or
 6411                      -1.0   rem floatExpr( Infinity) <>  -1.0   or
 6412         not isNaN(   -0.0   rem floatExpr(      NaN))           or
 6413                      -0.0   rem floatExpr(-Infinity) <>   0.0   or
 6414                      -0.0   rem floatExpr(   -13.25) <>   0.0   or
 6415                      -0.0   rem floatExpr(    -1.0 ) <>   0.0   or
 6416                      -0.0   rem floatExpr(    -0.75) <>   0.0   or
 6417         not isNaN(   -0.0   rem floatExpr(    -0.0 ))           or
 6418         not isNaN(   -0.0   rem floatExpr(     0.0 ))           or
 6419                      -0.0   rem floatExpr(     0.75) <>   0.0   or
 6420                      -0.0   rem floatExpr(     1.0 ) <>   0.0   or
 6421                      -0.0   rem floatExpr(    13.25) <>   0.0   or
 6422                      -0.0   rem floatExpr( Infinity) <>   0.0   or
 6423         not isNaN(    0.0   rem floatExpr(      NaN))           or
 6424                       0.0   rem floatExpr(-Infinity) <>   0.0   or
 6425                       0.0   rem floatExpr(   -13.25) <>   0.0   or
 6426                       0.0   rem floatExpr(    -1.0 ) <>   0.0   or
 6427                       0.0   rem floatExpr(    -0.75) <>   0.0   or
 6428         not isNaN(    0.0   rem floatExpr(    -0.0 ))           or
 6429         not isNaN(    0.0   rem floatExpr(     0.0 ))           or
 6430                       0.0   rem floatExpr(     0.75) <>   0.0   or
 6431                       0.0   rem floatExpr(     1.0 ) <>   0.0   or
 6432                       0.0   rem floatExpr(    13.25) <>   0.0   or
 6433                       0.0   rem floatExpr( Infinity) <>   0.0   or
 6434         not isNaN(    1.0   rem floatExpr(      NaN))           or
 6435                       1.0   rem floatExpr(-Infinity) <>   1.0   or
 6436                       1.0   rem floatExpr(   -13.25) <>   1.0   or
 6437                       1.0   rem floatExpr(    -1.0 ) <>   0.0   or
 6438                       1.0   rem floatExpr(    -0.75) <>   0.25  or
 6439         not isNaN(    1.0   rem floatExpr(    -0.0 ))           or
 6440         not isNaN(    1.0   rem floatExpr(     0.0 ))           or
 6441                       1.0   rem floatExpr(     0.75) <>   0.25  or
 6442                       1.0   rem floatExpr(     1.0 ) <>   0.0   or
 6443                       1.0   rem floatExpr(    13.25) <>   1.0   or
 6444                       1.0   rem floatExpr( Infinity) <>   1.0   or
 6445         not isNaN(   31.125 rem floatExpr(      NaN))           or
 6446                      31.125 rem floatExpr(-Infinity) <>  31.125 or
 6447                      31.125 rem floatExpr(   -13.25) <>   4.625 or
 6448                      31.125 rem floatExpr(    -1.0 ) <>   0.125 or
 6449                      31.125 rem floatExpr(    -0.75) <>   0.375 or
 6450         not isNaN(   31.125 rem floatExpr(    -0.0 ))           or
 6451         not isNaN(   31.125 rem floatExpr(     0.0 ))           or
 6452                      31.125 rem floatExpr(     0.75) <>   0.375 or
 6453                      31.125 rem floatExpr(     1.0 ) <>   0.125 or
 6454                      31.125 rem floatExpr(    13.25) <>   4.625 or
 6455                      31.125 rem floatExpr( Infinity) <>  31.125 or
 6456         not isNaN( Infinity rem floatExpr(      NaN))           or
 6457         not isNaN( Infinity rem floatExpr(-Infinity))           or
 6458         not isNaN( Infinity rem floatExpr(   -13.25))           or
 6459         not isNaN( Infinity rem floatExpr(    -1.0 ))           or
 6460         not isNaN( Infinity rem floatExpr(    -0.75))           or
 6461         not isNaN( Infinity rem floatExpr(    -0.0 ))           or
 6462         not isNaN( Infinity rem floatExpr(     0.0 ))           or
 6463         not isNaN( Infinity rem floatExpr(     0.75))           or
 6464         not isNaN( Infinity rem floatExpr(     1.0 ))           or
 6465         not isNaN( Infinity rem floatExpr(    13.25))           or
 6466         not isNaN( Infinity rem floatExpr( Infinity))           then
 6467       writeln(" ***** Remainder does not work correct. (3)");
 6468       okay := FALSE;
 6469     end if;
 6470 
 6471     if  not isNaN(floatExpr(      NaN) rem floatExpr(      NaN))           or
 6472         not isNaN(floatExpr(      NaN) rem floatExpr(-Infinity))           or
 6473         not isNaN(floatExpr(      NaN) rem floatExpr(   -13.25))           or
 6474         not isNaN(floatExpr(      NaN) rem floatExpr(    -1.0 ))           or
 6475         not isNaN(floatExpr(      NaN) rem floatExpr(    -0.75))           or
 6476         not isNaN(floatExpr(      NaN) rem floatExpr(    -0.0 ))           or
 6477         not isNaN(floatExpr(      NaN) rem floatExpr(     0.0 ))           or
 6478         not isNaN(floatExpr(      NaN) rem floatExpr(     0.75))           or
 6479         not isNaN(floatExpr(      NaN) rem floatExpr(     1.0 ))           or
 6480         not isNaN(floatExpr(      NaN) rem floatExpr(    13.25))           or
 6481         not isNaN(floatExpr(      NaN) rem floatExpr( Infinity))           or
 6482         not isNaN(floatExpr(-Infinity) rem floatExpr(      NaN))           or
 6483         not isNaN(floatExpr(-Infinity) rem floatExpr(-Infinity))           or
 6484         not isNaN(floatExpr(-Infinity) rem floatExpr(   -13.25))           or
 6485         not isNaN(floatExpr(-Infinity) rem floatExpr(    -1.0 ))           or
 6486         not isNaN(floatExpr(-Infinity) rem floatExpr(    -0.75))           or
 6487         not isNaN(floatExpr(-Infinity) rem floatExpr(    -0.0 ))           or
 6488         not isNaN(floatExpr(-Infinity) rem floatExpr(     0.0 ))           or
 6489         not isNaN(floatExpr(-Infinity) rem floatExpr(     0.75))           or
 6490         not isNaN(floatExpr(-Infinity) rem floatExpr(     1.0 ))           or
 6491         not isNaN(floatExpr(-Infinity) rem floatExpr(    13.25))           or
 6492         not isNaN(floatExpr(-Infinity) rem floatExpr( Infinity))           or
 6493         not isNaN(floatExpr(  -31.125) rem floatExpr(      NaN))           or
 6494                   floatExpr(  -31.125) rem floatExpr(-Infinity) <> -31.125 or
 6495                   floatExpr(  -31.125) rem floatExpr(   -13.25) <>  -4.625 or
 6496                   floatExpr(  -31.125) rem floatExpr(    -1.0 ) <>  -0.125 or
 6497                   floatExpr(  -31.125) rem floatExpr(    -0.75) <>  -0.375 or
 6498         not isNaN(floatExpr(  -31.125) rem floatExpr(    -0.0 ))           or
 6499         not isNaN(floatExpr(  -31.125) rem floatExpr(     0.0 ))           or
 6500                   floatExpr(  -31.125) rem floatExpr(     0.75) <>  -0.375 or
 6501                   floatExpr(  -31.125) rem floatExpr(     1.0 ) <>  -0.125 or
 6502                   floatExpr(  -31.125) rem floatExpr(    13.25) <>  -4.625 or
 6503                   floatExpr(  -31.125) rem floatExpr( Infinity) <> -31.125 or
 6504         not isNaN(floatExpr(   -1.0  ) rem floatExpr(      NaN))           or
 6505                   floatExpr(   -1.0  ) rem floatExpr(-Infinity) <>  -1.0   or
 6506                   floatExpr(   -1.0  ) rem floatExpr(   -13.25) <>  -1.0   or
 6507                   floatExpr(   -1.0  ) rem floatExpr(    -1.0 ) <>   0.0   or
 6508                   floatExpr(   -1.0  ) rem floatExpr(    -0.75) <>  -0.25  or
 6509         not isNaN(floatExpr(   -1.0  ) rem floatExpr(    -0.0 ))           or
 6510         not isNaN(floatExpr(   -1.0  ) rem floatExpr(     0.0 ))           or
 6511                   floatExpr(   -1.0  ) rem floatExpr(     0.75) <>  -0.25  or
 6512                   floatExpr(   -1.0  ) rem floatExpr(     1.0 ) <>   0.0   or
 6513                   floatExpr(   -1.0  ) rem floatExpr(    13.25) <>  -1.0   or
 6514                   floatExpr(   -1.0  ) rem floatExpr( Infinity) <>  -1.0   or
 6515         not isNaN(floatExpr(   -0.0  ) rem floatExpr(      NaN))           or
 6516                   floatExpr(   -0.0  ) rem floatExpr(-Infinity) <>   0.0   or
 6517                   floatExpr(   -0.0  ) rem floatExpr(   -13.25) <>   0.0   or
 6518                   floatExpr(   -0.0  ) rem floatExpr(    -1.0 ) <>   0.0   or
 6519                   floatExpr(   -0.0  ) rem floatExpr(    -0.75) <>   0.0   or
 6520         not isNaN(floatExpr(   -0.0  ) rem floatExpr(    -0.0 ))           or
 6521         not isNaN(floatExpr(   -0.0  ) rem floatExpr(     0.0 ))           or
 6522                   floatExpr(   -0.0  ) rem floatExpr(     0.75) <>   0.0   or
 6523                   floatExpr(   -0.0  ) rem floatExpr(     1.0 ) <>   0.0   or
 6524                   floatExpr(   -0.0  ) rem floatExpr(    13.25) <>   0.0   or
 6525                   floatExpr(   -0.0  ) rem floatExpr( Infinity) <>   0.0   or
 6526         not isNaN(floatExpr(    0.0  ) rem floatExpr(      NaN))           or
 6527                   floatExpr(    0.0  ) rem floatExpr(-Infinity) <>   0.0   or
 6528                   floatExpr(    0.0  ) rem floatExpr(   -13.25) <>   0.0   or
 6529                   floatExpr(    0.0  ) rem floatExpr(    -1.0 ) <>   0.0   or
 6530                   floatExpr(    0.0  ) rem floatExpr(    -0.75) <>   0.0   or
 6531         not isNaN(floatExpr(    0.0  ) rem floatExpr(    -0.0 ))           or
 6532         not isNaN(floatExpr(    0.0  ) rem floatExpr(     0.0 ))           or
 6533                   floatExpr(    0.0  ) rem floatExpr(     0.75) <>   0.0   or
 6534                   floatExpr(    0.0  ) rem floatExpr(     1.0 ) <>   0.0   or
 6535                   floatExpr(    0.0  ) rem floatExpr(    13.25) <>   0.0   or
 6536                   floatExpr(    0.0  ) rem floatExpr( Infinity) <>   0.0   or
 6537         not isNaN(floatExpr(    1.0  ) rem floatExpr(      NaN))           or
 6538                   floatExpr(    1.0  ) rem floatExpr(-Infinity) <>   1.0   or
 6539                   floatExpr(    1.0  ) rem floatExpr(   -13.25) <>   1.0   or
 6540                   floatExpr(    1.0  ) rem floatExpr(    -1.0 ) <>   0.0   or
 6541                   floatExpr(    1.0  ) rem floatExpr(    -0.75) <>   0.25  or
 6542         not isNaN(floatExpr(    1.0  ) rem floatExpr(    -0.0 ))           or
 6543         not isNaN(floatExpr(    1.0  ) rem floatExpr(     0.0 ))           or
 6544                   floatExpr(    1.0  ) rem floatExpr(     0.75) <>   0.25  or
 6545                   floatExpr(    1.0  ) rem floatExpr(     1.0 ) <>   0.0   or
 6546                   floatExpr(    1.0  ) rem floatExpr(    13.25) <>   1.0   or
 6547                   floatExpr(    1.0  ) rem floatExpr( Infinity) <>   1.0   or
 6548         not isNaN(floatExpr(   31.125) rem floatExpr(      NaN))           or
 6549                   floatExpr(   31.125) rem floatExpr(-Infinity) <>  31.125 or
 6550                   floatExpr(   31.125) rem floatExpr(   -13.25) <>   4.625 or
 6551                   floatExpr(   31.125) rem floatExpr(    -1.0 ) <>   0.125 or
 6552                   floatExpr(   31.125) rem floatExpr(    -0.75) <>   0.375 or
 6553         not isNaN(floatExpr(   31.125) rem floatExpr(    -0.0 ))           or
 6554         not isNaN(floatExpr(   31.125) rem floatExpr(     0.0 ))           or
 6555                   floatExpr(   31.125) rem floatExpr(     0.75) <>   0.375 or
 6556                   floatExpr(   31.125) rem floatExpr(     1.0 ) <>   0.125 or
 6557                   floatExpr(   31.125) rem floatExpr(    13.25) <>   4.625 or
 6558                   floatExpr(   31.125) rem floatExpr( Infinity) <>  31.125 or
 6559         not isNaN(floatExpr( Infinity) rem floatExpr(      NaN))           or
 6560         not isNaN(floatExpr( Infinity) rem floatExpr(-Infinity))           or
 6561         not isNaN(floatExpr( Infinity) rem floatExpr(   -13.25))           or
 6562         not isNaN(floatExpr( Infinity) rem floatExpr(    -1.0 ))           or
 6563         not isNaN(floatExpr( Infinity) rem floatExpr(    -0.75))           or
 6564         not isNaN(floatExpr( Infinity) rem floatExpr(    -0.0 ))           or
 6565         not isNaN(floatExpr( Infinity) rem floatExpr(     0.0 ))           or
 6566         not isNaN(floatExpr( Infinity) rem floatExpr(     0.75))           or
 6567         not isNaN(floatExpr( Infinity) rem floatExpr(     1.0 ))           or
 6568         not isNaN(floatExpr( Infinity) rem floatExpr(    13.25))           or
 6569         not isNaN(floatExpr( Infinity) rem floatExpr( Infinity))           then
 6570       writeln(" ***** Remainder does not work correct. (4)");
 6571       okay := FALSE;
 6572     end if;
 6573 
 6574     if okay then
 6575       writeln("Remainder works correct for selected values.");
 6576     else
 6577       writeln(" ***** Remainder does not work correct.");
 6578     end if;
 6579   end func;
 6580 
 6581 
 6582 const proc: check_modulo is func
 6583   local
 6584     var boolean: okay is TRUE;
 6585   begin
 6586     if  not isNaN(      NaN mod       NaN)             or
 6587         not isNaN(      NaN mod -Infinity)             or
 6588         not isNaN(      NaN mod    -13.25)             or
 6589         not isNaN(      NaN mod     -1.0 )             or
 6590         not isNaN(      NaN mod     -0.75)             or
 6591         not isNaN(      NaN mod     -0.0 )             or
 6592         not isNaN(      NaN mod      0.0 )             or
 6593         not isNaN(      NaN mod      0.75)             or
 6594         not isNaN(      NaN mod      1.0 )             or
 6595         not isNaN(      NaN mod     13.25)             or
 6596         not isNaN(      NaN mod  Infinity)             or
 6597         not isNaN(-Infinity mod       NaN)             or
 6598         not isNaN(-Infinity mod -Infinity)             or
 6599         not isNaN(-Infinity mod    -13.25)             or
 6600         not isNaN(-Infinity mod     -1.0 )             or
 6601         not isNaN(-Infinity mod     -0.75)             or
 6602         not isNaN(-Infinity mod     -0.0 )             or
 6603         not isNaN(-Infinity mod      0.0 )             or
 6604         not isNaN(-Infinity mod      0.75)             or
 6605         not isNaN(-Infinity mod      1.0 )             or
 6606         not isNaN(-Infinity mod     13.25)             or
 6607         not isNaN(-Infinity mod  Infinity)             or
 6608         not isNaN(  -31.125 mod       NaN)             or
 6609                     -31.125 mod -Infinity <>   -31.125 or
 6610                     -31.125 mod    -13.25 <>    -4.625 or
 6611                     -31.125 mod     -1.0  <>    -0.125 or
 6612                     -31.125 mod     -0.75 <>    -0.375 or
 6613         not isNaN(  -31.125 mod     -0.0 )             or
 6614         not isNaN(  -31.125 mod      0.0 )             or
 6615                     -31.125 mod      0.75 <>     0.375 or
 6616                     -31.125 mod      1.0  <>     0.875 or
 6617                     -31.125 mod     13.25 <>     8.625 or
 6618                     -31.125 mod  Infinity <>  Infinity or
 6619         not isNaN(   -1.0   mod       NaN)             or
 6620                      -1.0   mod -Infinity <>    -1.0   or
 6621                      -1.0   mod    -13.25 <>    -1.0   or
 6622                      -1.0   mod     -1.0  <>     0.0   or
 6623                      -1.0   mod     -0.75 <>    -0.25  or
 6624         not isNaN(   -1.0   mod     -0.0 )             or
 6625         not isNaN(   -1.0   mod      0.0 )             or
 6626                      -1.0   mod      0.75 <>     0.5   or
 6627                      -1.0   mod      1.0  <>     0.0   or
 6628                      -1.0   mod     13.25 <>    12.25  or
 6629                      -1.0   mod  Infinity <>  Infinity or
 6630         not isNaN(   -0.0   mod       NaN)             or
 6631                      -0.0   mod -Infinity <>     0.0   or
 6632                      -0.0   mod    -13.25 <>     0.0   or
 6633                      -0.0   mod     -1.0  <>     0.0   or
 6634                      -0.0   mod     -0.75 <>     0.0   or
 6635         not isNaN(   -0.0   mod     -0.0 )             or
 6636         not isNaN(   -0.0   mod      0.0 )             or
 6637                      -0.0   mod      0.75 <>     0.0   or
 6638                      -0.0   mod      1.0  <>     0.0   or
 6639                      -0.0   mod     13.25 <>     0.0   or
 6640                      -0.0   mod  Infinity <>     0.0   or
 6641         not isNaN(    0.0   mod       NaN)             or
 6642                       0.0   mod -Infinity <>     0.0   or
 6643                       0.0   mod    -13.25 <>     0.0   or
 6644                       0.0   mod     -1.0  <>     0.0   or
 6645                       0.0   mod     -0.75 <>     0.0   or
 6646         not isNaN(    0.0   mod     -0.0 )             or
 6647         not isNaN(    0.0   mod      0.0 )             or
 6648                       0.0   mod      0.75 <>     0.0   or
 6649                       0.0   mod      1.0  <>     0.0   or
 6650                       0.0   mod     13.25 <>     0.0   or
 6651                       0.0   mod  Infinity <>     0.0   or
 6652         not isNaN(    1.0   mod       NaN)             or
 6653                       1.0   mod -Infinity <> -Infinity or
 6654                       1.0   mod    -13.25 <>   -12.25  or
 6655                       1.0   mod     -1.0  <>     0.0   or
 6656                       1.0   mod     -0.75 <>    -0.5   or
 6657         not isNaN(    1.0   mod     -0.0 )             or
 6658         not isNaN(    1.0   mod      0.0 )             or
 6659                       1.0   mod      0.75 <>     0.25  or
 6660                       1.0   mod      1.0  <>     0.0   or
 6661                       1.0   mod     13.25 <>     1.0   or
 6662                       1.0   mod  Infinity <>     1.0   or
 6663         not isNaN(   31.125 mod       NaN)             or
 6664                      31.125 mod -Infinity <> -Infinity or
 6665                      31.125 mod    -13.25 <>    -8.625 or
 6666                      31.125 mod     -1.0  <>    -0.875 or
 6667                      31.125 mod     -0.75 <>    -0.375 or
 6668         not isNaN(   31.125 mod     -0.0 )             or
 6669         not isNaN(   31.125 mod      0.0 )             or
 6670                      31.125 mod      0.75 <>     0.375 or
 6671                      31.125 mod      1.0  <>     0.125 or
 6672                      31.125 mod     13.25 <>     4.625 or
 6673                      31.125 mod  Infinity <>    31.125 or
 6674         not isNaN( Infinity mod       NaN)             or
 6675         not isNaN( Infinity mod -Infinity)             or
 6676         not isNaN( Infinity mod    -13.25)             or
 6677         not isNaN( Infinity mod     -1.0 )             or
 6678         not isNaN( Infinity mod     -0.75)             or
 6679         not isNaN( Infinity mod     -0.0 )             or
 6680         not isNaN( Infinity mod      0.0 )             or
 6681         not isNaN( Infinity mod      0.75)             or
 6682         not isNaN( Infinity mod      1.0 )             or
 6683         not isNaN( Infinity mod     13.25)             or
 6684         not isNaN( Infinity mod  Infinity)             then
 6685       writeln(" ***** Modulo does not work correct. (1)");
 6686       okay := FALSE;
 6687     end if;
 6688 
 6689     if  not isNaN(floatExpr(      NaN) mod       NaN)             or
 6690         not isNaN(floatExpr(      NaN) mod -Infinity)             or
 6691         not isNaN(floatExpr(      NaN) mod    -13.25)             or
 6692         not isNaN(floatExpr(      NaN) mod     -1.0 )             or
 6693         not isNaN(floatExpr(      NaN) mod     -0.75)             or
 6694         not isNaN(floatExpr(      NaN) mod     -0.0 )             or
 6695         not isNaN(floatExpr(      NaN) mod      0.0 )             or
 6696         not isNaN(floatExpr(      NaN) mod      0.75)             or
 6697         not isNaN(floatExpr(      NaN) mod      1.0 )             or
 6698         not isNaN(floatExpr(      NaN) mod     13.25)             or
 6699         not isNaN(floatExpr(      NaN) mod  Infinity)             or
 6700         not isNaN(floatExpr(-Infinity) mod       NaN)             or
 6701         not isNaN(floatExpr(-Infinity) mod -Infinity)             or
 6702         not isNaN(floatExpr(-Infinity) mod    -13.25)             or
 6703         not isNaN(floatExpr(-Infinity) mod     -1.0 )             or
 6704         not isNaN(floatExpr(-Infinity) mod     -0.75)             or
 6705         not isNaN(floatExpr(-Infinity) mod     -0.0 )             or
 6706         not isNaN(floatExpr(-Infinity) mod      0.0 )             or
 6707         not isNaN(floatExpr(-Infinity) mod      0.75)             or
 6708         not isNaN(floatExpr(-Infinity) mod      1.0 )             or
 6709         not isNaN(floatExpr(-Infinity) mod     13.25)             or
 6710         not isNaN(floatExpr(-Infinity) mod  Infinity)             or
 6711         not isNaN(floatExpr(  -31.125) mod       NaN)             or
 6712                   floatExpr(  -31.125) mod -Infinity <>   -31.125 or
 6713                   floatExpr(  -31.125) mod    -13.25 <>    -4.625 or
 6714                   floatExpr(  -31.125) mod     -1.0  <>    -0.125 or
 6715                   floatExpr(  -31.125) mod     -0.75 <>    -0.375 or
 6716         not isNaN(floatExpr(  -31.125) mod     -0.0 )             or
 6717         not isNaN(floatExpr(  -31.125) mod      0.0 )             or
 6718                   floatExpr(  -31.125) mod      0.75 <>     0.375 or
 6719                   floatExpr(  -31.125) mod      1.0  <>     0.875 or
 6720                   floatExpr(  -31.125) mod     13.25 <>     8.625 or
 6721                   floatExpr(  -31.125) mod  Infinity <>  Infinity or
 6722         not isNaN(floatExpr(   -1.0  ) mod       NaN)             or
 6723                   floatExpr(   -1.0  ) mod -Infinity <>    -1.0   or
 6724                   floatExpr(   -1.0  ) mod    -13.25 <>    -1.0   or
 6725                   floatExpr(   -1.0  ) mod     -1.0  <>     0.0   or
 6726                   floatExpr(   -1.0  ) mod     -0.75 <>    -0.25  or
 6727         not isNaN(floatExpr(   -1.0  ) mod     -0.0 )             or
 6728         not isNaN(floatExpr(   -1.0  ) mod      0.0 )             or
 6729                   floatExpr(   -1.0  ) mod      0.75 <>     0.5   or
 6730                   floatExpr(   -1.0  ) mod      1.0  <>     0.0   or
 6731                   floatExpr(   -1.0  ) mod     13.25 <>    12.25  or
 6732                   floatExpr(   -1.0  ) mod  Infinity <>  Infinity or
 6733         not isNaN(floatExpr(   -0.0  ) mod       NaN)             or
 6734                   floatExpr(   -0.0  ) mod -Infinity <>     0.0   or
 6735                   floatExpr(   -0.0  ) mod    -13.25 <>     0.0   or
 6736                   floatExpr(   -0.0  ) mod     -1.0  <>     0.0   or
 6737                   floatExpr(   -0.0  ) mod     -0.75 <>     0.0   or
 6738         not isNaN(floatExpr(   -0.0  ) mod     -0.0 )             or
 6739         not isNaN(floatExpr(   -0.0  ) mod      0.0 )             or
 6740                   floatExpr(   -0.0  ) mod      0.75 <>     0.0   or
 6741                   floatExpr(   -0.0  ) mod      1.0  <>     0.0   or
 6742                   floatExpr(   -0.0  ) mod     13.25 <>     0.0   or
 6743                   floatExpr(   -0.0  ) mod  Infinity <>     0.0   or
 6744         not isNaN(floatExpr(    0.0  ) mod       NaN)             or
 6745                   floatExpr(    0.0  ) mod -Infinity <>     0.0   or
 6746                   floatExpr(    0.0  ) mod    -13.25 <>     0.0   or
 6747                   floatExpr(    0.0  ) mod     -1.0  <>     0.0   or
 6748                   floatExpr(    0.0  ) mod     -0.75 <>     0.0   or
 6749         not isNaN(floatExpr(    0.0  ) mod     -0.0 )             or
 6750         not isNaN(floatExpr(    0.0  ) mod      0.0 )             or
 6751                   floatExpr(    0.0  ) mod      0.75 <>     0.0   or
 6752                   floatExpr(    0.0  ) mod      1.0  <>     0.0   or
 6753                   floatExpr(    0.0  ) mod     13.25 <>     0.0   or
 6754                   floatExpr(    0.0  ) mod  Infinity <>     0.0   or
 6755         not isNaN(floatExpr(    1.0  ) mod       NaN)             or
 6756                   floatExpr(    1.0  ) mod -Infinity <> -Infinity or
 6757                   floatExpr(    1.0  ) mod    -13.25 <>   -12.25  or
 6758                   floatExpr(    1.0  ) mod     -1.0  <>     0.0   or
 6759                   floatExpr(    1.0  ) mod     -0.75 <>    -0.5   or
 6760         not isNaN(floatExpr(    1.0  ) mod     -0.0 )             or
 6761         not isNaN(floatExpr(    1.0  ) mod      0.0 )             or
 6762                   floatExpr(    1.0  ) mod      0.75 <>     0.25  or
 6763                   floatExpr(    1.0  ) mod      1.0  <>     0.0   or
 6764                   floatExpr(    1.0  ) mod     13.25 <>     1.0   or
 6765                   floatExpr(    1.0  ) mod  Infinity <>     1.0   or
 6766         not isNaN(floatExpr(   31.125) mod       NaN)             or
 6767                   floatExpr(   31.125) mod -Infinity <> -Infinity or
 6768                   floatExpr(   31.125) mod    -13.25 <>    -8.625 or
 6769                   floatExpr(   31.125) mod     -1.0  <>    -0.875 or
 6770                   floatExpr(   31.125) mod     -0.75 <>    -0.375 or
 6771         not isNaN(floatExpr(   31.125) mod     -0.0 )             or
 6772         not isNaN(floatExpr(   31.125) mod      0.0 )             or
 6773                   floatExpr(   31.125) mod      0.75 <>     0.375 or
 6774                   floatExpr(   31.125) mod      1.0  <>     0.125 or
 6775                   floatExpr(   31.125) mod     13.25 <>     4.625 or
 6776                   floatExpr(   31.125) mod  Infinity <>    31.125 or
 6777         not isNaN(floatExpr( Infinity) mod       NaN)             or
 6778         not isNaN(floatExpr( Infinity) mod -Infinity)             or
 6779         not isNaN(floatExpr( Infinity) mod    -13.25)             or
 6780         not isNaN(floatExpr( Infinity) mod     -1.0 )             or
 6781         not isNaN(floatExpr( Infinity) mod     -0.75)             or
 6782         not isNaN(floatExpr( Infinity) mod     -0.0 )             or
 6783         not isNaN(floatExpr( Infinity) mod      0.0 )             or
 6784         not isNaN(floatExpr( Infinity) mod      0.75)             or
 6785         not isNaN(floatExpr( Infinity) mod      1.0 )             or
 6786         not isNaN(floatExpr( Infinity) mod     13.25)             or
 6787         not isNaN(floatExpr( Infinity) mod  Infinity)             then
 6788       writeln(" ***** Modulo does not work correct. (2)");
 6789       okay := FALSE;
 6790     end if;
 6791 
 6792     if  not isNaN(      NaN mod floatExpr(      NaN))             or
 6793         not isNaN(      NaN mod floatExpr(-Infinity))             or
 6794         not isNaN(      NaN mod floatExpr(   -13.25))             or
 6795         not isNaN(      NaN mod floatExpr(    -1.0 ))             or
 6796         not isNaN(      NaN mod floatExpr(    -0.75))             or
 6797         not isNaN(      NaN mod floatExpr(    -0.0 ))             or
 6798         not isNaN(      NaN mod floatExpr(     0.0 ))             or
 6799         not isNaN(      NaN mod floatExpr(     0.75))             or
 6800         not isNaN(      NaN mod floatExpr(     1.0 ))             or
 6801         not isNaN(      NaN mod floatExpr(    13.25))             or
 6802         not isNaN(      NaN mod floatExpr( Infinity))             or
 6803         not isNaN(-Infinity mod floatExpr(      NaN))             or
 6804         not isNaN(-Infinity mod floatExpr(-Infinity))             or
 6805         not isNaN(-Infinity mod floatExpr(   -13.25))             or
 6806         not isNaN(-Infinity mod floatExpr(    -1.0 ))             or
 6807         not isNaN(-Infinity mod floatExpr(    -0.75))             or
 6808         not isNaN(-Infinity mod floatExpr(    -0.0 ))             or
 6809         not isNaN(-Infinity mod floatExpr(     0.0 ))             or
 6810         not isNaN(-Infinity mod floatExpr(     0.75))             or
 6811         not isNaN(-Infinity mod floatExpr(     1.0 ))             or
 6812         not isNaN(-Infinity mod floatExpr(    13.25))             or
 6813         not isNaN(-Infinity mod floatExpr( Infinity))             or
 6814         not isNaN(  -31.125 mod floatExpr(      NaN))             or
 6815                     -31.125 mod floatExpr(-Infinity) <>   -31.125 or
 6816                     -31.125 mod floatExpr(   -13.25) <>    -4.625 or
 6817                     -31.125 mod floatExpr(    -1.0 ) <>    -0.125 or
 6818                     -31.125 mod floatExpr(    -0.75) <>    -0.375 or
 6819         not isNaN(  -31.125 mod floatExpr(    -0.0 ))             or
 6820         not isNaN(  -31.125 mod floatExpr(     0.0 ))             or
 6821                     -31.125 mod floatExpr(     0.75) <>     0.375 or
 6822                     -31.125 mod floatExpr(     1.0 ) <>     0.875 or
 6823                     -31.125 mod floatExpr(    13.25) <>     8.625 or
 6824                     -31.125 mod floatExpr( Infinity) <>  Infinity or
 6825         not isNaN(   -1.0   mod floatExpr(      NaN))             or
 6826                      -1.0   mod floatExpr(-Infinity) <>    -1.0   or
 6827                      -1.0   mod floatExpr(   -13.25) <>    -1.0   or
 6828                      -1.0   mod floatExpr(    -1.0 ) <>     0.0   or
 6829                      -1.0   mod floatExpr(    -0.75) <>    -0.25  or
 6830         not isNaN(   -1.0   mod floatExpr(    -0.0 ))             or
 6831         not isNaN(   -1.0   mod floatExpr(     0.0 ))             or
 6832                      -1.0   mod floatExpr(     0.75) <>     0.5   or
 6833                      -1.0   mod floatExpr(     1.0 ) <>     0.0   or
 6834                      -1.0   mod floatExpr(    13.25) <>    12.25  or
 6835                      -1.0   mod floatExpr( Infinity) <>  Infinity or
 6836         not isNaN(   -0.0   mod floatExpr(      NaN))             or
 6837                      -0.0   mod floatExpr(-Infinity) <>     0.0   or
 6838                      -0.0   mod floatExpr(   -13.25) <>     0.0   or
 6839                      -0.0   mod floatExpr(    -1.0 ) <>     0.0   or
 6840                      -0.0   mod floatExpr(    -0.75) <>     0.0   or
 6841         not isNaN(   -0.0   mod floatExpr(    -0.0 ))             or
 6842         not isNaN(   -0.0   mod floatExpr(     0.0 ))             or
 6843                      -0.0   mod floatExpr(     0.75) <>     0.0   or
 6844                      -0.0   mod floatExpr(     1.0 ) <>     0.0   or
 6845                      -0.0   mod floatExpr(    13.25) <>     0.0   or
 6846                      -0.0   mod floatExpr( Infinity) <>     0.0   or
 6847         not isNaN(    0.0   mod floatExpr(      NaN))             or
 6848                       0.0   mod floatExpr(-Infinity) <>     0.0   or
 6849                       0.0   mod floatExpr(   -13.25) <>     0.0   or
 6850                       0.0   mod floatExpr(    -1.0 ) <>     0.0   or
 6851                       0.0   mod floatExpr(    -0.75) <>     0.0   or
 6852         not isNaN(    0.0   mod floatExpr(    -0.0 ))             or
 6853         not isNaN(    0.0   mod floatExpr(     0.0 ))             or
 6854                       0.0   mod floatExpr(     0.75) <>     0.0   or
 6855                       0.0   mod floatExpr(     1.0 ) <>     0.0   or
 6856                       0.0   mod floatExpr(    13.25) <>     0.0   or
 6857                       0.0   mod floatExpr( Infinity) <>     0.0   or
 6858         not isNaN(    1.0   mod floatExpr(      NaN))             or
 6859                       1.0   mod floatExpr(-Infinity) <> -Infinity or
 6860                       1.0   mod floatExpr(   -13.25) <>   -12.25  or
 6861                       1.0   mod floatExpr(    -1.0 ) <>     0.0   or
 6862                       1.0   mod floatExpr(    -0.75) <>    -0.5   or
 6863         not isNaN(    1.0   mod floatExpr(    -0.0 ))             or
 6864         not isNaN(    1.0   mod floatExpr(     0.0 ))             or
 6865                       1.0   mod floatExpr(     0.75) <>     0.25  or
 6866                       1.0   mod floatExpr(     1.0 ) <>     0.0   or
 6867                       1.0   mod floatExpr(    13.25) <>     1.0   or
 6868                       1.0   mod floatExpr( Infinity) <>     1.0   or
 6869         not isNaN(   31.125 mod floatExpr(      NaN))             or
 6870                      31.125 mod floatExpr(-Infinity) <> -Infinity or
 6871                      31.125 mod floatExpr(   -13.25) <>    -8.625 or
 6872                      31.125 mod floatExpr(    -1.0 ) <>    -0.875 or
 6873                      31.125 mod floatExpr(    -0.75) <>    -0.375 or
 6874         not isNaN(   31.125 mod floatExpr(    -0.0 ))             or
 6875         not isNaN(   31.125 mod floatExpr(     0.0 ))             or
 6876                      31.125 mod floatExpr(     0.75) <>     0.375 or
 6877                      31.125 mod floatExpr(     1.0 ) <>     0.125 or
 6878                      31.125 mod floatExpr(    13.25) <>     4.625 or
 6879                      31.125 mod floatExpr( Infinity) <>    31.125 or
 6880         not isNaN( Infinity mod floatExpr(      NaN))             or
 6881         not isNaN( Infinity mod floatExpr(-Infinity))             or
 6882         not isNaN( Infinity mod floatExpr(   -13.25))             or
 6883         not isNaN( Infinity mod floatExpr(    -1.0 ))             or
 6884         not isNaN( Infinity mod floatExpr(    -0.75))             or
 6885         not isNaN( Infinity mod floatExpr(    -0.0 ))             or
 6886         not isNaN( Infinity mod floatExpr(     0.0 ))             or
 6887         not isNaN( Infinity mod floatExpr(     0.75))             or
 6888         not isNaN( Infinity mod floatExpr(     1.0 ))             or
 6889         not isNaN( Infinity mod floatExpr(    13.25))             or
 6890         not isNaN( Infinity mod floatExpr( Infinity))             then
 6891       writeln(" ***** Modulo does not work correct. (3)");
 6892       okay := FALSE;
 6893     end if;
 6894 
 6895     if  not isNaN(floatExpr(      NaN) mod floatExpr(      NaN))             or
 6896         not isNaN(floatExpr(      NaN) mod floatExpr(-Infinity))             or
 6897         not isNaN(floatExpr(      NaN) mod floatExpr(   -13.25))             or
 6898         not isNaN(floatExpr(      NaN) mod floatExpr(    -1.0 ))             or
 6899         not isNaN(floatExpr(      NaN) mod floatExpr(    -0.75))             or
 6900         not isNaN(floatExpr(      NaN) mod floatExpr(    -0.0 ))             or
 6901         not isNaN(floatExpr(      NaN) mod floatExpr(     0.0 ))             or
 6902         not isNaN(floatExpr(      NaN) mod floatExpr(     0.75))             or
 6903         not isNaN(floatExpr(      NaN) mod floatExpr(     1.0 ))             or
 6904         not isNaN(floatExpr(      NaN) mod floatExpr(    13.25))             or
 6905         not isNaN(floatExpr(      NaN) mod floatExpr( Infinity))             or
 6906         not isNaN(floatExpr(-Infinity) mod floatExpr(      NaN))             or
 6907         not isNaN(floatExpr(-Infinity) mod floatExpr(-Infinity))             or
 6908         not isNaN(floatExpr(-Infinity) mod floatExpr(   -13.25))             or
 6909         not isNaN(floatExpr(-Infinity) mod floatExpr(    -1.0 ))             or
 6910         not isNaN(floatExpr(-Infinity) mod floatExpr(    -0.75))             or
 6911         not isNaN(floatExpr(-Infinity) mod floatExpr(    -0.0 ))             or
 6912         not isNaN(floatExpr(-Infinity) mod floatExpr(     0.0 ))             or
 6913         not isNaN(floatExpr(-Infinity) mod floatExpr(     0.75))             or
 6914         not isNaN(floatExpr(-Infinity) mod floatExpr(     1.0 ))             or
 6915         not isNaN(floatExpr(-Infinity) mod floatExpr(    13.25))             or
 6916         not isNaN(floatExpr(-Infinity) mod floatExpr( Infinity))             or
 6917         not isNaN(floatExpr(  -31.125) mod floatExpr(      NaN))             or
 6918                   floatExpr(  -31.125) mod floatExpr(-Infinity) <>   -31.125 or
 6919                   floatExpr(  -31.125) mod floatExpr(   -13.25) <>    -4.625 or
 6920                   floatExpr(  -31.125) mod floatExpr(    -1.0 ) <>    -0.125 or
 6921                   floatExpr(  -31.125) mod floatExpr(    -0.75) <>    -0.375 or
 6922         not isNaN(floatExpr(  -31.125) mod floatExpr(    -0.0 ))             or
 6923         not isNaN(floatExpr(  -31.125) mod floatExpr(     0.0 ))             or
 6924                   floatExpr(  -31.125) mod floatExpr(     0.75) <>     0.375 or
 6925                   floatExpr(  -31.125) mod floatExpr(     1.0 ) <>     0.875 or
 6926                   floatExpr(  -31.125) mod floatExpr(    13.25) <>     8.625 or
 6927                   floatExpr(  -31.125) mod floatExpr( Infinity) <>  Infinity or
 6928         not isNaN(floatExpr(   -1.0  ) mod floatExpr(      NaN))             or
 6929                   floatExpr(   -1.0  ) mod floatExpr(-Infinity) <>    -1.0   or
 6930                   floatExpr(   -1.0  ) mod floatExpr(   -13.25) <>    -1.0   or
 6931                   floatExpr(   -1.0  ) mod floatExpr(    -1.0 ) <>     0.0   or
 6932                   floatExpr(   -1.0  ) mod floatExpr(    -0.75) <>    -0.25  or
 6933         not isNaN(floatExpr(   -1.0  ) mod floatExpr(    -0.0 ))             or
 6934         not isNaN(floatExpr(   -1.0  ) mod floatExpr(     0.0 ))             or
 6935                   floatExpr(   -1.0  ) mod floatExpr(     0.75) <>     0.5   or
 6936                   floatExpr(   -1.0  ) mod floatExpr(     1.0 ) <>     0.0   or
 6937                   floatExpr(   -1.0  ) mod floatExpr(    13.25) <>    12.25  or
 6938                   floatExpr(   -1.0  ) mod floatExpr( Infinity) <>  Infinity or
 6939         not isNaN(floatExpr(   -0.0  ) mod floatExpr(      NaN))             or
 6940                   floatExpr(   -0.0  ) mod floatExpr(-Infinity) <>     0.0   or
 6941                   floatExpr(   -0.0  ) mod floatExpr(   -13.25) <>     0.0   or
 6942                   floatExpr(   -0.0  ) mod floatExpr(    -1.0 ) <>     0.0   or
 6943                   floatExpr(   -0.0  ) mod floatExpr(    -0.75) <>     0.0   or
 6944         not isNaN(floatExpr(   -0.0  ) mod floatExpr(    -0.0 ))             or
 6945         not isNaN(floatExpr(   -0.0  ) mod floatExpr(     0.0 ))             or
 6946                   floatExpr(   -0.0  ) mod floatExpr(     0.75) <>     0.0   or
 6947                   floatExpr(   -0.0  ) mod floatExpr(     1.0 ) <>     0.0   or
 6948                   floatExpr(   -0.0  ) mod floatExpr(    13.25) <>     0.0   or
 6949                   floatExpr(   -0.0  ) mod floatExpr( Infinity) <>     0.0   or
 6950         not isNaN(floatExpr(    0.0  ) mod floatExpr(      NaN))             or
 6951                   floatExpr(    0.0  ) mod floatExpr(-Infinity) <>     0.0   or
 6952                   floatExpr(    0.0  ) mod floatExpr(   -13.25) <>     0.0   or
 6953                   floatExpr(    0.0  ) mod floatExpr(    -1.0 ) <>     0.0   or
 6954                   floatExpr(    0.0  ) mod floatExpr(    -0.75) <>     0.0   or
 6955         not isNaN(floatExpr(    0.0  ) mod floatExpr(    -0.0 ))             or
 6956         not isNaN(floatExpr(    0.0  ) mod floatExpr(     0.0 ))             or
 6957                   floatExpr(    0.0  ) mod floatExpr(     0.75) <>     0.0   or
 6958                   floatExpr(    0.0  ) mod floatExpr(     1.0 ) <>     0.0   or
 6959                   floatExpr(    0.0  ) mod floatExpr(    13.25) <>     0.0   or
 6960                   floatExpr(    0.0  ) mod floatExpr( Infinity) <>     0.0   or
 6961         not isNaN(floatExpr(    1.0  ) mod floatExpr(      NaN))             or
 6962                   floatExpr(    1.0  ) mod floatExpr(-Infinity) <> -Infinity or
 6963                   floatExpr(    1.0  ) mod floatExpr(   -13.25) <>   -12.25  or
 6964                   floatExpr(    1.0  ) mod floatExpr(    -1.0 ) <>     0.0   or
 6965                   floatExpr(    1.0  ) mod floatExpr(    -0.75) <>    -0.5   or
 6966         not isNaN(floatExpr(    1.0  ) mod floatExpr(    -0.0 ))             or
 6967         not isNaN(floatExpr(    1.0  ) mod floatExpr(     0.0 ))             or
 6968                   floatExpr(    1.0  ) mod floatExpr(     0.75) <>     0.25  or
 6969                   floatExpr(    1.0  ) mod floatExpr(     1.0 ) <>     0.0   or
 6970                   floatExpr(    1.0  ) mod floatExpr(    13.25) <>     1.0   or
 6971                   floatExpr(    1.0  ) mod floatExpr( Infinity) <>     1.0   or
 6972         not isNaN(floatExpr(   31.125) mod floatExpr(      NaN))             or
 6973                   floatExpr(   31.125) mod floatExpr(-Infinity) <> -Infinity or
 6974                   floatExpr(   31.125) mod floatExpr(   -13.25) <>    -8.625 or
 6975                   floatExpr(   31.125) mod floatExpr(    -1.0 ) <>    -0.875 or
 6976                   floatExpr(   31.125) mod floatExpr(    -0.75) <>    -0.375 or
 6977         not isNaN(floatExpr(   31.125) mod floatExpr(    -0.0 ))             or
 6978         not isNaN(floatExpr(   31.125) mod floatExpr(     0.0 ))             or
 6979                   floatExpr(   31.125) mod floatExpr(     0.75) <>     0.375 or
 6980                   floatExpr(   31.125) mod floatExpr(     1.0 ) <>     0.125 or
 6981                   floatExpr(   31.125) mod floatExpr(    13.25) <>     4.625 or
 6982                   floatExpr(   31.125) mod floatExpr( Infinity) <>    31.125 or
 6983         not isNaN(floatExpr( Infinity) mod floatExpr(      NaN))             or
 6984         not isNaN(floatExpr( Infinity) mod floatExpr(-Infinity))             or
 6985         not isNaN(floatExpr( Infinity) mod floatExpr(   -13.25))             or
 6986         not isNaN(floatExpr( Infinity) mod floatExpr(    -1.0 ))             or
 6987         not isNaN(floatExpr( Infinity) mod floatExpr(    -0.75))             or
 6988         not isNaN(floatExpr( Infinity) mod floatExpr(    -0.0 ))             or
 6989         not isNaN(floatExpr( Infinity) mod floatExpr(     0.0 ))             or
 6990         not isNaN(floatExpr( Infinity) mod floatExpr(     0.75))             or
 6991         not isNaN(floatExpr( Infinity) mod floatExpr(     1.0 ))             or
 6992         not isNaN(floatExpr( Infinity) mod floatExpr(    13.25))             or
 6993         not isNaN(floatExpr( Infinity) mod floatExpr( Infinity))             then
 6994       writeln(" ***** Modulo does not work correct. (4)");
 6995       okay := FALSE;
 6996     end if;
 6997 
 6998     if okay then
 6999       writeln("Modulo works correct for selected values.");
 7000     else
 7001       writeln(" ***** Modulo does not work correct.");
 7002     end if;
 7003   end func;
 7004 
 7005 
 7006 const proc: check_power is func
 7007   local
 7008     const float: minusZero is -0.0;
 7009     const float: minusOne is -1.0;
 7010     const float: minusTwo is -2.0;
 7011     const float: minusThree is -3.0;
 7012     var boolean: okay is TRUE;
 7013   begin
 7014     if            (-2.0) ** (-2.0) <>  0.25 or
 7015         not isNaN((-2.0) ** (-1.5))         or
 7016                   (-2.0) ** (-1.0) <> -0.5  or
 7017         not isNaN((-2.0) ** (-0.5))         or
 7018                   (-2.0) **   0.0  <>  1.0  or
 7019         not isNaN((-2.0) **   0.5 )         or
 7020                   (-2.0) **   1.0  <> -2.0  or
 7021         not isNaN((-2.0) **   1.5 )         or
 7022                   (-2.0) **   2.0  <>  4.0  or
 7023         #         (-1.5) ** (-2.0) <>  0.444444 or
 7024         not isNaN((-1.5) ** (-1.5))         or
 7025         #         (-1.5) ** (-1.0) <> -0.666667 or
 7026         not isNaN((-1.5) ** (-0.5))         or
 7027                   (-1.5) **   0.0  <>  1.0  or
 7028         not isNaN((-1.5) **   0.5 )         or
 7029                   (-1.5) **   1.0  <> -1.5  or
 7030         not isNaN((-1.5) **   1.5 )         or
 7031                   (-1.5) **   2.0  <>  2.25 or
 7032                   (-1.0) ** (-2.0) <>  1.0  or
 7033         not isNaN((-1.0) ** (-1.5))         or
 7034                   (-1.0) ** (-1.0) <> -1.0  or
 7035         not isNaN((-1.0) ** (-0.5))         or
 7036                   (-1.0) **   0.0  <>  1.0  or
 7037         not isNaN((-1.0) **   0.5 )         or
 7038                   (-1.0) **   1.0  <> -1.0  or
 7039         not isNaN((-1.0) **   1.5 )         or
 7040                   (-1.0) **   2.0  <>  1.0  or
 7041                   (-0.5) ** (-2.0) <>  4.0  or
 7042         not isNaN((-0.5) ** (-1.5))         or
 7043                   (-0.5) ** (-1.0) <> -2.0  or
 7044         not isNaN((-0.5) ** (-0.5))         or
 7045                   (-0.5) **   0.0  <>  1.0  or
 7046         not isNaN((-0.5) **   0.5 )         or
 7047                   (-0.5) **   1.0  <> -0.5  or
 7048         not isNaN((-0.5) **   1.5 )         or
 7049                   (-0.5) **   2.0  <> 0.25  or
 7050                   (-0.0) ** (-2.5) <> Infinity or
 7051                   (-0.0) ** (-1.5) <> Infinity or
 7052                   (-0.0) ** (-0.5) <> Infinity or
 7053                   (-0.0) **   0.5  <> 0.0 or
 7054                   (-0.0) **   1.5  <> 0.0 or
 7055                   (-0.0) **   2.5  <> 0.0 or
 7056                     0.0  ** (-2.5) <> Infinity or
 7057                     0.0  ** (-1.5) <> Infinity or
 7058                     0.0  ** (-0.5) <> Infinity or
 7059                     0.0  **   0.5  <> 0.0 or
 7060                     0.0  **   1.5  <> 0.0 or
 7061                     0.0  **   2.5  <> 0.0 or
 7062                     0.5  ** (-2.0) <> 4.0 or
 7063         #           0.5  ** (-1.5) <> 2.828427 or
 7064                     0.5  ** (-1.0) <> 2.0 or
 7065         #           0.5  ** (-0.5) <> 1.414214 or
 7066                     0.5  **   0.0  <> 1.0 or
 7067         #           0.5  **   0.5  <> 0.707107 or
 7068                     0.5  **   1.0  <> 0.5 or
 7069         #           0.5  **   1.5  <> 0.353553 or
 7070                     0.5  **   2.0  <> 0.25 or
 7071                     1.0  ** (-2.0) <> 1.0 or
 7072                     1.0  ** (-1.5) <> 1.0 or
 7073                     1.0  ** (-1.0) <> 1.0 or
 7074                     1.0  ** (-0.5) <> 1.0 or
 7075                     1.0  **   0.0  <> 1.0 or
 7076                     1.0  **   0.5  <> 1.0 or
 7077                     1.0  **   1.0  <> 1.0 or
 7078                     1.0  **   1.5  <> 1.0 or
 7079                     1.0  **   2.0  <> 1.0 or
 7080         #           1.5  ** (-2.0) <> 0.444444 or
 7081         #           1.5  ** (-1.5) <> 0.544331 or
 7082         #           1.5  ** (-1.0) <> 0.666667 or
 7083         #           1.5  ** (-0.5) <> 0.816497 or
 7084                     1.5  **   0.0  <> 1.0 or
 7085         #           1.5  **   0.5  <> 1.224745 or
 7086                     1.5  **   1.0  <> 1.5 or
 7087         #           1.5  **   1.5  <> 1.837117 or
 7088                     1.5  **   2.0  <> 2.25 then
 7089       writeln(" ***** A ** B does not work correct for selected values.");
 7090       okay := FALSE;
 7091     end if;
 7092 
 7093     if  (-0.0) **           (-Infinity) <>  Infinity or
 7094         (-0.0) ** (-9007199254740994.0) <>  Infinity or # Not exactly represented
 7095         (-0.0) ** (-9007199254740993.0) <>  Infinity or # Not exactly represented
 7096         (-0.0) ** (-9007199254740992.0) <>  Infinity or
 7097         (-0.0) ** (-9007199254740991.0) <> -Infinity or
 7098         (-0.0) **       (-4294967297.0) <> -Infinity or
 7099         (-0.0) **       (-4294967296.0) <>  Infinity or
 7100         (-0.0) **       (-4294967295.0) <> -Infinity or
 7101         (-0.0) **       (-2147483649.0) <> -Infinity or
 7102         (-0.0) **       (-2147483648.0) <>  Infinity or
 7103         (-0.0) **       (-2147483647.0) <> -Infinity or
 7104         (-0.0) **               (-30.0) <>  Infinity or
 7105         (-0.0) **               (-29.0) <> -Infinity or
 7106         (-0.0) **               (-28.0) <>  Infinity or
 7107         (-0.0) **               (-27.0) <> -Infinity or
 7108         (-0.0) **               (-26.0) <>  Infinity or
 7109         (-0.0) **               (-25.0) <> -Infinity or
 7110         (-0.0) **               (-24.0) <>  Infinity or
 7111         (-0.0) **               (-23.0) <> -Infinity or
 7112         (-0.0) **               (-22.0) <>  Infinity or
 7113         (-0.0) **               (-21.0) <> -Infinity or
 7114         (-0.0) **               (-20.0) <>  Infinity or
 7115         (-0.0) **               (-19.0) <> -Infinity or
 7116         (-0.0) **               (-18.0) <>  Infinity or
 7117         (-0.0) **               (-17.0) <> -Infinity or
 7118         (-0.0) **               (-16.0) <>  Infinity or
 7119         (-0.0) **               (-15.0) <> -Infinity or
 7120         (-0.0) **               (-14.0) <>  Infinity or
 7121         (-0.0) **               (-13.0) <> -Infinity or
 7122         (-0.0) **               (-12.0) <>  Infinity or
 7123         (-0.0) **               (-11.0) <> -Infinity or
 7124         (-0.0) **               (-10.0) <>  Infinity or
 7125         (-0.0) **                (-9.0) <> -Infinity or
 7126         (-0.0) **                (-8.0) <>  Infinity or
 7127         (-0.0) **                (-7.0) <> -Infinity or
 7128         (-0.0) **                (-6.0) <>  Infinity or
 7129         (-0.0) **                (-5.0) <> -Infinity or
 7130         (-0.0) **                (-4.0) <>  Infinity or
 7131         (-0.0) **                (-3.0) <> -Infinity or
 7132         (-0.0) **                (-2.0) <>  Infinity or
 7133         (-0.0) **                (-1.0) <> -Infinity or
 7134         floatExpr(-0.0) **           (-Infinity) <>  Infinity or
 7135         floatExpr(-0.0) ** (-9007199254740994.0) <>  Infinity or # Not exactly represented
 7136         floatExpr(-0.0) ** (-9007199254740993.0) <>  Infinity or # Not exactly represented
 7137         floatExpr(-0.0) ** (-9007199254740992.0) <>  Infinity or
 7138         floatExpr(-0.0) ** (-9007199254740991.0) <> -Infinity or
 7139         floatExpr(-0.0) **       (-4294967297.0) <> -Infinity or
 7140         floatExpr(-0.0) **       (-4294967296.0) <>  Infinity or
 7141         floatExpr(-0.0) **       (-4294967295.0) <> -Infinity or
 7142         floatExpr(-0.0) **       (-2147483649.0) <> -Infinity or
 7143         floatExpr(-0.0) **       (-2147483648.0) <>  Infinity or
 7144         floatExpr(-0.0) **       (-2147483647.0) <> -Infinity or
 7145         floatExpr(-0.0) **               (-30.0) <>  Infinity or
 7146         floatExpr(-0.0) **               (-29.0) <> -Infinity or
 7147         floatExpr(-0.0) **               (-28.0) <>  Infinity or
 7148         floatExpr(-0.0) **               (-27.0) <> -Infinity or
 7149         floatExpr(-0.0) **               (-26.0) <>  Infinity or
 7150         floatExpr(-0.0) **               (-25.0) <> -Infinity or
 7151         floatExpr(-0.0) **               (-24.0) <>  Infinity or
 7152         floatExpr(-0.0) **               (-23.0) <> -Infinity or
 7153         floatExpr(-0.0) **               (-22.0) <>  Infinity or
 7154         floatExpr(-0.0) **               (-21.0) <> -Infinity or
 7155         floatExpr(-0.0) **               (-20.0) <>  Infinity or
 7156         floatExpr(-0.0) **               (-19.0) <> -Infinity or
 7157         floatExpr(-0.0) **               (-18.0) <>  Infinity or
 7158         floatExpr(-0.0) **               (-17.0) <> -Infinity or
 7159         floatExpr(-0.0) **               (-16.0) <>  Infinity or
 7160         floatExpr(-0.0) **               (-15.0) <> -Infinity or
 7161         floatExpr(-0.0) **               (-14.0) <>  Infinity or
 7162         floatExpr(-0.0) **               (-13.0) <> -Infinity or
 7163         floatExpr(-0.0) **               (-12.0) <>  Infinity or
 7164         floatExpr(-0.0) **               (-11.0) <> -Infinity or
 7165         floatExpr(-0.0) **               (-10.0) <>  Infinity or
 7166         floatExpr(-0.0) **                (-9.0) <> -Infinity or
 7167         floatExpr(-0.0) **                (-8.0) <>  Infinity or
 7168         floatExpr(-0.0) **                (-7.0) <> -Infinity or
 7169         floatExpr(-0.0) **                (-6.0) <>  Infinity or
 7170         floatExpr(-0.0) **                (-5.0) <> -Infinity or
 7171         floatExpr(-0.0) **                (-4.0) <>  Infinity or
 7172         floatExpr(-0.0) **                (-3.0) <> -Infinity or
 7173         floatExpr(-0.0) **                (-2.0) <>  Infinity or
 7174         floatExpr(-0.0) **                (-1.0) <> -Infinity or
 7175         (-0.0) ** floatExpr(          -Infinity) <>  Infinity or
 7176         (-0.0) ** floatExpr(-9007199254740994.0) <>  Infinity or # Not exactly represented
 7177         (-0.0) ** floatExpr(-9007199254740993.0) <>  Infinity or # Not exactly represented
 7178         (-0.0) ** floatExpr(-9007199254740992.0) <>  Infinity or
 7179         (-0.0) ** floatExpr(-9007199254740991.0) <> -Infinity or
 7180         (-0.0) ** floatExpr(      -4294967297.0) <> -Infinity or
 7181         (-0.0) ** floatExpr(      -4294967296.0) <>  Infinity or
 7182         (-0.0) ** floatExpr(      -4294967295.0) <> -Infinity or
 7183         (-0.0) ** floatExpr(      -2147483649.0) <> -Infinity or
 7184         (-0.0) ** floatExpr(      -2147483648.0) <>  Infinity or
 7185         (-0.0) ** floatExpr(      -2147483647.0) <> -Infinity or
 7186         (-0.0) ** floatExpr(              -30.0) <>  Infinity or
 7187         (-0.0) ** floatExpr(              -29.0) <> -Infinity or
 7188         (-0.0) ** floatExpr(              -28.0) <>  Infinity or
 7189         (-0.0) ** floatExpr(              -27.0) <> -Infinity or
 7190         (-0.0) ** floatExpr(              -26.0) <>  Infinity or
 7191         (-0.0) ** floatExpr(              -25.0) <> -Infinity or
 7192         (-0.0) ** floatExpr(              -24.0) <>  Infinity or
 7193         (-0.0) ** floatExpr(              -23.0) <> -Infinity or
 7194         (-0.0) ** floatExpr(              -22.0) <>  Infinity or
 7195         (-0.0) ** floatExpr(              -21.0) <> -Infinity or
 7196         (-0.0) ** floatExpr(              -20.0) <>  Infinity or
 7197         (-0.0) ** floatExpr(              -19.0) <> -Infinity or
 7198         (-0.0) ** floatExpr(              -18.0) <>  Infinity or
 7199         (-0.0) ** floatExpr(              -17.0) <> -Infinity or
 7200         (-0.0) ** floatExpr(              -16.0) <>  Infinity or
 7201         (-0.0) ** floatExpr(              -15.0) <> -Infinity or
 7202         (-0.0) ** floatExpr(              -14.0) <>  Infinity or
 7203         (-0.0) ** floatExpr(              -13.0) <> -Infinity or
 7204         (-0.0) ** floatExpr(              -12.0) <>  Infinity or
 7205         (-0.0) ** floatExpr(              -11.0) <> -Infinity or
 7206         (-0.0) ** floatExpr(              -10.0) <>  Infinity or
 7207         (-0.0) ** floatExpr(               -9.0) <> -Infinity or
 7208         (-0.0) ** floatExpr(               -8.0) <>  Infinity or
 7209         (-0.0) ** floatExpr(               -7.0) <> -Infinity or
 7210         (-0.0) ** floatExpr(               -6.0) <>  Infinity or
 7211         (-0.0) ** floatExpr(               -5.0) <> -Infinity or
 7212         (-0.0) ** floatExpr(               -4.0) <>  Infinity or
 7213         (-0.0) ** floatExpr(               -3.0) <> -Infinity or
 7214         (-0.0) ** floatExpr(               -2.0) <>  Infinity or
 7215         (-0.0) ** floatExpr(               -1.0) <> -Infinity or
 7216         floatExpr(-0.0) ** floatExpr(          -Infinity) <>  Infinity or
 7217         floatExpr(-0.0) ** floatExpr(-9007199254740994.0) <>  Infinity or # Not exactly represented
 7218         floatExpr(-0.0) ** floatExpr(-9007199254740993.0) <>  Infinity or # Not exactly represented
 7219         floatExpr(-0.0) ** floatExpr(-9007199254740992.0) <>  Infinity or
 7220         floatExpr(-0.0) ** floatExpr(-9007199254740991.0) <> -Infinity or
 7221         floatExpr(-0.0) ** floatExpr(      -4294967297.0) <> -Infinity or
 7222         floatExpr(-0.0) ** floatExpr(      -4294967296.0) <>  Infinity or
 7223         floatExpr(-0.0) ** floatExpr(      -4294967295.0) <> -Infinity or
 7224         floatExpr(-0.0) ** floatExpr(      -2147483649.0) <> -Infinity or
 7225         floatExpr(-0.0) ** floatExpr(      -2147483648.0) <>  Infinity or
 7226         floatExpr(-0.0) ** floatExpr(      -2147483647.0) <> -Infinity or
 7227         floatExpr(-0.0) ** floatExpr(              -30.0) <>  Infinity or
 7228         floatExpr(-0.0) ** floatExpr(              -29.0) <> -Infinity or
 7229         floatExpr(-0.0) ** floatExpr(              -28.0) <>  Infinity or
 7230         floatExpr(-0.0) ** floatExpr(              -27.0) <> -Infinity or
 7231         floatExpr(-0.0) ** floatExpr(              -26.0) <>  Infinity or
 7232         floatExpr(-0.0) ** floatExpr(              -25.0) <> -Infinity or
 7233         floatExpr(-0.0) ** floatExpr(              -24.0) <>  Infinity or
 7234         floatExpr(-0.0) ** floatExpr(              -23.0) <> -Infinity or
 7235         floatExpr(-0.0) ** floatExpr(              -22.0) <>  Infinity or
 7236         floatExpr(-0.0) ** floatExpr(              -21.0) <> -Infinity or
 7237         floatExpr(-0.0) ** floatExpr(              -20.0) <>  Infinity or
 7238         floatExpr(-0.0) ** floatExpr(              -19.0) <> -Infinity or
 7239         floatExpr(-0.0) ** floatExpr(              -18.0) <>  Infinity or
 7240         floatExpr(-0.0) ** floatExpr(              -17.0) <> -Infinity or
 7241         floatExpr(-0.0) ** floatExpr(              -16.0) <>  Infinity or
 7242         floatExpr(-0.0) ** floatExpr(              -15.0) <> -Infinity or
 7243         floatExpr(-0.0) ** floatExpr(              -14.0) <>  Infinity or
 7244         floatExpr(-0.0) ** floatExpr(              -13.0) <> -Infinity or
 7245         floatExpr(-0.0) ** floatExpr(              -12.0) <>  Infinity or
 7246         floatExpr(-0.0) ** floatExpr(              -11.0) <> -Infinity or
 7247         floatExpr(-0.0) ** floatExpr(              -10.0) <>  Infinity or
 7248         floatExpr(-0.0) ** floatExpr(               -9.0) <> -Infinity or
 7249         floatExpr(-0.0) ** floatExpr(               -8.0) <>  Infinity or
 7250         floatExpr(-0.0) ** floatExpr(               -7.0) <> -Infinity or
 7251         floatExpr(-0.0) ** floatExpr(               -6.0) <>  Infinity or
 7252         floatExpr(-0.0) ** floatExpr(               -5.0) <> -Infinity or
 7253         floatExpr(-0.0) ** floatExpr(               -4.0) <>  Infinity or
 7254         floatExpr(-0.0) ** floatExpr(               -3.0) <> -Infinity or
 7255         floatExpr(-0.0) ** floatExpr(               -2.0) <>  Infinity or
 7256         floatExpr(-0.0) ** floatExpr(               -1.0) <> -Infinity then
 7257       writeln(" ***** (-0.0) ** B with negative B does not return Infinity respectively -Infinity.");
 7258       okay := FALSE;
 7259     end if;
 7260 
 7261    if                      (-0.0) **                0.0 <> 1.0 or
 7262         not isNegativeZero((-0.0) **                1.0) or
 7263         not isPositiveZero((-0.0) **                2.0) or
 7264         not isNegativeZero((-0.0) **                3.0) or
 7265         not isPositiveZero((-0.0) **                4.0) or
 7266         not isNegativeZero((-0.0) **                5.0) or
 7267         not isPositiveZero((-0.0) **                6.0) or
 7268         not isNegativeZero((-0.0) **                7.0) or
 7269         not isPositiveZero((-0.0) **                8.0) or
 7270         not isNegativeZero((-0.0) **                9.0) or
 7271         not isPositiveZero((-0.0) **               10.0) or
 7272         not isNegativeZero((-0.0) **               11.0) or
 7273         not isPositiveZero((-0.0) **               12.0) or
 7274         not isNegativeZero((-0.0) **               13.0) or
 7275         not isPositiveZero((-0.0) **               14.0) or
 7276         not isNegativeZero((-0.0) **               15.0) or
 7277         not isPositiveZero((-0.0) **               16.0) or
 7278         not isNegativeZero((-0.0) **               17.0) or
 7279         not isPositiveZero((-0.0) **               18.0) or
 7280         not isNegativeZero((-0.0) **               19.0) or
 7281         not isPositiveZero((-0.0) **               20.0) or
 7282         not isNegativeZero((-0.0) **               21.0) or
 7283         not isPositiveZero((-0.0) **               22.0) or
 7284         not isNegativeZero((-0.0) **               23.0) or
 7285         not isPositiveZero((-0.0) **               24.0) or
 7286         not isNegativeZero((-0.0) **               25.0) or
 7287         not isPositiveZero((-0.0) **               26.0) or
 7288         not isNegativeZero((-0.0) **               27.0) or
 7289         not isPositiveZero((-0.0) **               28.0) or
 7290         not isNegativeZero((-0.0) **               29.0) or
 7291         not isPositiveZero((-0.0) **               30.0) or
 7292         not isNegativeZero((-0.0) **       2147483647.0) or
 7293         not isPositiveZero((-0.0) **       2147483648.0) or
 7294         not isNegativeZero((-0.0) **       2147483649.0) or
 7295         not isNegativeZero((-0.0) **       4294967295.0) or
 7296         not isPositiveZero((-0.0) **       4294967296.0) or
 7297         not isNegativeZero((-0.0) **       4294967297.0) or
 7298         not isNegativeZero((-0.0) ** 9007199254740991.0) or
 7299         not isPositiveZero((-0.0) ** 9007199254740992.0) or
 7300         not isPositiveZero((-0.0) ** 9007199254740993.0) or # Not exactly represented
 7301         not isPositiveZero((-0.0) ** 9007199254740994.0) or # Not exactly represented
 7302         not isPositiveZero((-0.0) **           Infinity) or
 7303                            floatExpr(-0.0) **                0.0 <> 1.0 or
 7304         not isNegativeZero(floatExpr(-0.0) **                1.0) or
 7305         not isPositiveZero(floatExpr(-0.0) **                2.0) or
 7306         not isNegativeZero(floatExpr(-0.0) **                3.0) or
 7307         not isPositiveZero(floatExpr(-0.0) **                4.0) or
 7308         not isNegativeZero(floatExpr(-0.0) **                5.0) or
 7309         not isPositiveZero(floatExpr(-0.0) **                6.0) or
 7310         not isNegativeZero(floatExpr(-0.0) **                7.0) or
 7311         not isPositiveZero(floatExpr(-0.0) **                8.0) or
 7312         not isNegativeZero(floatExpr(-0.0) **                9.0) or
 7313         not isPositiveZero(floatExpr(-0.0) **               10.0) or
 7314         not isNegativeZero(floatExpr(-0.0) **               11.0) or
 7315         not isPositiveZero(floatExpr(-0.0) **               12.0) or
 7316         not isNegativeZero(floatExpr(-0.0) **               13.0) or
 7317         not isPositiveZero(floatExpr(-0.0) **               14.0) or
 7318         not isNegativeZero(floatExpr(-0.0) **               15.0) or
 7319         not isPositiveZero(floatExpr(-0.0) **               16.0) or
 7320         not isNegativeZero(floatExpr(-0.0) **               17.0) or
 7321         not isPositiveZero(floatExpr(-0.0) **               18.0) or
 7322         not isNegativeZero(floatExpr(-0.0) **               19.0) or
 7323         not isPositiveZero(floatExpr(-0.0) **               20.0) or
 7324         not isNegativeZero(floatExpr(-0.0) **               21.0) or
 7325         not isPositiveZero(floatExpr(-0.0) **               22.0) or
 7326         not isNegativeZero(floatExpr(-0.0) **               23.0) or
 7327         not isPositiveZero(floatExpr(-0.0) **               24.0) or
 7328         not isNegativeZero(floatExpr(-0.0) **               25.0) or
 7329         not isPositiveZero(floatExpr(-0.0) **               26.0) or
 7330         not isNegativeZero(floatExpr(-0.0) **               27.0) or
 7331         not isPositiveZero(floatExpr(-0.0) **               28.0) or
 7332         not isNegativeZero(floatExpr(-0.0) **               29.0) or
 7333         not isPositiveZero(floatExpr(-0.0) **               30.0) or
 7334         not isNegativeZero(floatExpr(-0.0) **       2147483647.0) or
 7335         not isPositiveZero(floatExpr(-0.0) **       2147483648.0) or
 7336         not isNegativeZero(floatExpr(-0.0) **       2147483649.0) or
 7337         not isNegativeZero(floatExpr(-0.0) **       4294967295.0) or
 7338         not isPositiveZero(floatExpr(-0.0) **       4294967296.0) or
 7339         not isNegativeZero(floatExpr(-0.0) **       4294967297.0) or
 7340         not isNegativeZero(floatExpr(-0.0) ** 9007199254740991.0) or
 7341         not isPositiveZero(floatExpr(-0.0) ** 9007199254740992.0) or
 7342         not isPositiveZero(floatExpr(-0.0) ** 9007199254740993.0) or # Not exactly represented
 7343         not isPositiveZero(floatExpr(-0.0) ** 9007199254740994.0) or # Not exactly represented
 7344         not isPositiveZero(floatExpr(-0.0) **           Infinity) or
 7345                            (-0.0) ** floatExpr(               0.0) <> 1.0 or
 7346         not isNegativeZero((-0.0) ** floatExpr(               1.0)) or
 7347         not isPositiveZero((-0.0) ** floatExpr(               2.0)) or
 7348         not isNegativeZero((-0.0) ** floatExpr(               3.0)) or
 7349         not isPositiveZero((-0.0) ** floatExpr(               4.0)) or
 7350         not isNegativeZero((-0.0) ** floatExpr(               5.0)) or
 7351         not isPositiveZero((-0.0) ** floatExpr(               6.0)) or
 7352         not isNegativeZero((-0.0) ** floatExpr(               7.0)) or
 7353         not isPositiveZero((-0.0) ** floatExpr(               8.0)) or
 7354         not isNegativeZero((-0.0) ** floatExpr(               9.0)) or
 7355         not isPositiveZero((-0.0) ** floatExpr(              10.0)) or
 7356         not isNegativeZero((-0.0) ** floatExpr(              11.0)) or
 7357         not isPositiveZero((-0.0) ** floatExpr(              12.0)) or
 7358         not isNegativeZero((-0.0) ** floatExpr(              13.0)) or
 7359         not isPositiveZero((-0.0) ** floatExpr(              14.0)) or
 7360         not isNegativeZero((-0.0) ** floatExpr(              15.0)) or
 7361         not isPositiveZero((-0.0) ** floatExpr(              16.0)) or
 7362         not isNegativeZero((-0.0) ** floatExpr(              17.0)) or
 7363         not isPositiveZero((-0.0) ** floatExpr(              18.0)) or
 7364         not isNegativeZero((-0.0) ** floatExpr(              19.0)) or
 7365         not isPositiveZero((-0.0) ** floatExpr(              20.0)) or
 7366         not isNegativeZero((-0.0) ** floatExpr(              21.0)) or
 7367         not isPositiveZero((-0.0) ** floatExpr(              22.0)) or
 7368         not isNegativeZero((-0.0) ** floatExpr(              23.0)) or
 7369         not isPositiveZero((-0.0) ** floatExpr(              24.0)) or
 7370         not isNegativeZero((-0.0) ** floatExpr(              25.0)) or
 7371         not isPositiveZero((-0.0) ** floatExpr(              26.0)) or
 7372         not isNegativeZero((-0.0) ** floatExpr(              27.0)) or
 7373         not isPositiveZero((-0.0) ** floatExpr(              28.0)) or
 7374         not isNegativeZero((-0.0) ** floatExpr(              29.0)) or
 7375         not isPositiveZero((-0.0) ** floatExpr(              30.0)) or
 7376         not isNegativeZero((-0.0) ** floatExpr(      2147483647.0)) or
 7377         not isPositiveZero((-0.0) ** floatExpr(      2147483648.0)) or
 7378         not isNegativeZero((-0.0) ** floatExpr(      2147483649.0)) or
 7379         not isNegativeZero((-0.0) ** floatExpr(      4294967295.0)) or
 7380         not isPositiveZero((-0.0) ** floatExpr(      4294967296.0)) or
 7381         not isNegativeZero((-0.0) ** floatExpr(      4294967297.0)) or
 7382         not isNegativeZero((-0.0) ** floatExpr(9007199254740991.0)) or
 7383         not isPositiveZero((-0.0) ** floatExpr(9007199254740992.0)) or
 7384         not isPositiveZero((-0.0) ** floatExpr(9007199254740993.0)) or # Not exactly represented
 7385         not isPositiveZero((-0.0) ** floatExpr(9007199254740994.0)) or # Not exactly represented
 7386         not isPositiveZero((-0.0) ** floatExpr(          Infinity)) or
 7387                            floatExpr(-0.0) ** floatExpr(               0.0) <> 1.0 or
 7388         not isNegativeZero(floatExpr(-0.0) ** floatExpr(               1.0)) or
 7389         not isPositiveZero(floatExpr(-0.0) ** floatExpr(               2.0)) or
 7390         not isNegativeZero(floatExpr(-0.0) ** floatExpr(               3.0)) or
 7391         not isPositiveZero(floatExpr(-0.0) ** floatExpr(               4.0)) or
 7392         not isNegativeZero(floatExpr(-0.0) ** floatExpr(               5.0)) or
 7393         not isPositiveZero(floatExpr(-0.0) ** floatExpr(               6.0)) or
 7394         not isNegativeZero(floatExpr(-0.0) ** floatExpr(               7.0)) or
 7395         not isPositiveZero(floatExpr(-0.0) ** floatExpr(               8.0)) or
 7396         not isNegativeZero(floatExpr(-0.0) ** floatExpr(               9.0)) or
 7397         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              10.0)) or
 7398         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              11.0)) or
 7399         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              12.0)) or
 7400         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              13.0)) or
 7401         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              14.0)) or
 7402         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              15.0)) or
 7403         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              16.0)) or
 7404         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              17.0)) or
 7405         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              18.0)) or
 7406         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              19.0)) or
 7407         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              20.0)) or
 7408         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              21.0)) or
 7409         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              22.0)) or
 7410         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              23.0)) or
 7411         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              24.0)) or
 7412         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              25.0)) or
 7413         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              26.0)) or
 7414         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              27.0)) or
 7415         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              28.0)) or
 7416         not isNegativeZero(floatExpr(-0.0) ** floatExpr(              29.0)) or
 7417         not isPositiveZero(floatExpr(-0.0) ** floatExpr(              30.0)) or
 7418         not isNegativeZero(floatExpr(-0.0) ** floatExpr(      2147483647.0)) or
 7419         not isPositiveZero(floatExpr(-0.0) ** floatExpr(      2147483648.0)) or
 7420         not isNegativeZero(floatExpr(-0.0) ** floatExpr(      2147483649.0)) or
 7421         not isNegativeZero(floatExpr(-0.0) ** floatExpr(      4294967295.0)) or
 7422         not isPositiveZero(floatExpr(-0.0) ** floatExpr(      4294967296.0)) or
 7423         not isNegativeZero(floatExpr(-0.0) ** floatExpr(      4294967297.0)) or
 7424         not isNegativeZero(floatExpr(-0.0) ** floatExpr(9007199254740991.0)) or
 7425         not isPositiveZero(floatExpr(-0.0) ** floatExpr(9007199254740992.0)) or
 7426         not isPositiveZero(floatExpr(-0.0) ** floatExpr(9007199254740993.0)) or # Not exactly represented
 7427         not isPositiveZero(floatExpr(-0.0) ** floatExpr(9007199254740994.0)) or # Not exactly represented
 7428         not isPositiveZero(floatExpr(-0.0) ** floatExpr(          Infinity)) then
 7429       writeln(" ***** (-0.0) ** B with positive B does not return 0.0 respectively -0.0.");
 7430       okay := FALSE;
 7431     end if;
 7432 
 7433     if  0.0 **           (-Infinity) <> Infinity or
 7434         0.0 ** (-9007199254740994.0) <> Infinity or # Not exactly represented
 7435         0.0 ** (-9007199254740993.0) <> Infinity or # Not exactly represented
 7436         0.0 ** (-9007199254740992.0) <> Infinity or
 7437         0.0 ** (-9007199254740991.0) <> Infinity or
 7438         0.0 **       (-4294967297.0) <> Infinity or
 7439         0.0 **       (-4294967296.0) <> Infinity or
 7440         0.0 **       (-4294967295.0) <> Infinity or
 7441         0.0 **       (-2147483649.0) <> Infinity or
 7442         0.0 **       (-2147483648.0) <> Infinity or
 7443         0.0 **       (-2147483647.0) <> Infinity or
 7444         0.0 **               (-30.0) <> Infinity or
 7445         0.0 **               (-29.0) <> Infinity or
 7446         0.0 **               (-28.0) <> Infinity or
 7447         0.0 **               (-27.0) <> Infinity or
 7448         0.0 **               (-26.0) <> Infinity or
 7449         0.0 **               (-25.0) <> Infinity or
 7450         0.0 **               (-24.0) <> Infinity or
 7451         0.0 **               (-23.0) <> Infinity or
 7452         0.0 **               (-22.0) <> Infinity or
 7453         0.0 **               (-21.0) <> Infinity or
 7454         0.0 **               (-20.0) <> Infinity or
 7455         0.0 **               (-19.0) <> Infinity or
 7456         0.0 **               (-18.0) <> Infinity or
 7457         0.0 **               (-17.0) <> Infinity or
 7458         0.0 **               (-16.0) <> Infinity or
 7459         0.0 **               (-15.0) <> Infinity or
 7460         0.0 **               (-14.0) <> Infinity or
 7461         0.0 **               (-13.0) <> Infinity or
 7462         0.0 **               (-12.0) <> Infinity or
 7463         0.0 **               (-11.0) <> Infinity or
 7464         0.0 **               (-10.0) <> Infinity or
 7465         0.0 **                (-9.0) <> Infinity or
 7466         0.0 **                (-8.0) <> Infinity or
 7467         0.0 **                (-7.0) <> Infinity or
 7468         0.0 **                (-6.0) <> Infinity or
 7469         0.0 **                (-5.0) <> Infinity or
 7470         0.0 **                (-4.0) <> Infinity or
 7471         0.0 **                (-3.0) <> Infinity or
 7472         0.0 **                (-2.0) <> Infinity or
 7473         0.0 **                (-1.0) <> Infinity or
 7474         floatExpr(0.0) **           (-Infinity) <> Infinity or
 7475         floatExpr(0.0) ** (-9007199254740994.0) <> Infinity or # Not exactly represented
 7476         floatExpr(0.0) ** (-9007199254740993.0) <> Infinity or # Not exactly represented
 7477         floatExpr(0.0) ** (-9007199254740992.0) <> Infinity or
 7478         floatExpr(0.0) ** (-9007199254740991.0) <> Infinity or
 7479         floatExpr(0.0) **       (-4294967297.0) <> Infinity or
 7480         floatExpr(0.0) **       (-4294967296.0) <> Infinity or
 7481         floatExpr(0.0) **       (-4294967295.0) <> Infinity or
 7482         floatExpr(0.0) **       (-2147483649.0) <> Infinity or
 7483         floatExpr(0.0) **       (-2147483648.0) <> Infinity or
 7484         floatExpr(0.0) **       (-2147483647.0) <> Infinity or
 7485         floatExpr(0.0) **               (-30.0) <> Infinity or
 7486         floatExpr(0.0) **               (-29.0) <> Infinity or
 7487         floatExpr(0.0) **               (-28.0) <> Infinity or
 7488         floatExpr(0.0) **               (-27.0) <> Infinity or
 7489         floatExpr(0.0) **               (-26.0) <> Infinity or
 7490         floatExpr(0.0) **               (-25.0) <> Infinity or
 7491         floatExpr(0.0) **               (-24.0) <> Infinity or
 7492         floatExpr(0.0) **               (-23.0) <> Infinity or
 7493         floatExpr(0.0) **               (-22.0) <> Infinity or
 7494         floatExpr(0.0) **               (-21.0) <> Infinity or
 7495         floatExpr(0.0) **               (-20.0) <> Infinity or
 7496         floatExpr(0.0) **               (-19.0) <> Infinity or
 7497         floatExpr(0.0) **               (-18.0) <> Infinity or
 7498         floatExpr(0.0) **               (-17.0) <> Infinity or
 7499         floatExpr(0.0) **               (-16.0) <> Infinity or
 7500         floatExpr(0.0) **               (-15.0) <> Infinity or
 7501         floatExpr(0.0) **               (-14.0) <> Infinity or
 7502         floatExpr(0.0) **               (-13.0) <> Infinity or
 7503         floatExpr(0.0) **               (-12.0) <> Infinity or
 7504         floatExpr(0.0) **               (-11.0) <> Infinity or
 7505         floatExpr(0.0) **               (-10.0) <> Infinity or
 7506         floatExpr(0.0) **                (-9.0) <> Infinity or
 7507         floatExpr(0.0) **                (-8.0) <> Infinity or
 7508         floatExpr(0.0) **                (-7.0) <> Infinity or
 7509         floatExpr(0.0) **                (-6.0) <> Infinity or
 7510         floatExpr(0.0) **                (-5.0) <> Infinity or
 7511         floatExpr(0.0) **                (-4.0) <> Infinity or
 7512         floatExpr(0.0) **                (-3.0) <> Infinity or
 7513         floatExpr(0.0) **                (-2.0) <> Infinity or
 7514         floatExpr(0.0) **                (-1.0) <> Infinity or
 7515         0.0 ** floatExpr(          -Infinity) <> Infinity or
 7516         0.0 ** floatExpr(-9007199254740994.0) <> Infinity or # Not exactly represented
 7517         0.0 ** floatExpr(-9007199254740993.0) <> Infinity or # Not exactly represented
 7518         0.0 ** floatExpr(-9007199254740992.0) <> Infinity or
 7519         0.0 ** floatExpr(-9007199254740991.0) <> Infinity or
 7520         0.0 ** floatExpr(      -4294967297.0) <> Infinity or
 7521         0.0 ** floatExpr(      -4294967296.0) <> Infinity or
 7522         0.0 ** floatExpr(      -4294967295.0) <> Infinity or
 7523         0.0 ** floatExpr(      -2147483649.0) <> Infinity or
 7524         0.0 ** floatExpr(      -2147483648.0) <> Infinity or
 7525         0.0 ** floatExpr(      -2147483647.0) <> Infinity or
 7526         0.0 ** floatExpr(              -30.0) <> Infinity or
 7527         0.0 ** floatExpr(              -29.0) <> Infinity or
 7528         0.0 ** floatExpr(              -28.0) <> Infinity or
 7529         0.0 ** floatExpr(              -27.0) <> Infinity or
 7530         0.0 ** floatExpr(              -26.0) <> Infinity or
 7531         0.0 ** floatExpr(              -25.0) <> Infinity or
 7532         0.0 ** floatExpr(              -24.0) <> Infinity or
 7533         0.0 ** floatExpr(              -23.0) <> Infinity or
 7534         0.0 ** floatExpr(              -22.0) <> Infinity or
 7535         0.0 ** floatExpr(              -21.0) <> Infinity or
 7536         0.0 ** floatExpr(              -20.0) <> Infinity or
 7537         0.0 ** floatExpr(              -19.0) <> Infinity or
 7538         0.0 ** floatExpr(              -18.0) <> Infinity or
 7539         0.0 ** floatExpr(              -17.0) <> Infinity or
 7540         0.0 ** floatExpr(              -16.0) <> Infinity or
 7541         0.0 ** floatExpr(              -15.0) <> Infinity or
 7542         0.0 ** floatExpr(              -14.0) <> Infinity or
 7543         0.0 ** floatExpr(              -13.0) <> Infinity or
 7544         0.0 ** floatExpr(              -12.0) <> Infinity or
 7545         0.0 ** floatExpr(              -11.0) <> Infinity or
 7546         0.0 ** floatExpr(              -10.0) <> Infinity or
 7547         0.0 ** floatExpr(               -9.0) <> Infinity or
 7548         0.0 ** floatExpr(               -8.0) <> Infinity or
 7549         0.0 ** floatExpr(               -7.0) <> Infinity or
 7550         0.0 ** floatExpr(               -6.0) <> Infinity or
 7551         0.0 ** floatExpr(               -5.0) <> Infinity or
 7552         0.0 ** floatExpr(               -4.0) <> Infinity or
 7553         0.0 ** floatExpr(               -3.0) <> Infinity or
 7554         0.0 ** floatExpr(               -2.0) <> Infinity or
 7555         0.0 ** floatExpr(               -1.0) <> Infinity or
 7556         floatExpr(0.0) ** floatExpr(          -Infinity) <> Infinity or
 7557         floatExpr(0.0) ** floatExpr(-9007199254740994.0) <> Infinity or # Not exactly represented
 7558         floatExpr(0.0) ** floatExpr(-9007199254740993.0) <> Infinity or # Not exactly represented
 7559         floatExpr(0.0) ** floatExpr(-9007199254740992.0) <> Infinity or
 7560         floatExpr(0.0) ** floatExpr(-9007199254740991.0) <> Infinity or
 7561         floatExpr(0.0) ** floatExpr(      -4294967297.0) <> Infinity or
 7562         floatExpr(0.0) ** floatExpr(      -4294967296.0) <> Infinity or
 7563         floatExpr(0.0) ** floatExpr(      -4294967295.0) <> Infinity or
 7564         floatExpr(0.0) ** floatExpr(      -2147483649.0) <> Infinity or
 7565         floatExpr(0.0) ** floatExpr(      -2147483648.0) <> Infinity or
 7566         floatExpr(0.0) ** floatExpr(      -2147483647.0) <> Infinity or
 7567         floatExpr(0.0) ** floatExpr(              -30.0) <> Infinity or
 7568         floatExpr(0.0) ** floatExpr(              -29.0) <> Infinity or
 7569         floatExpr(0.0) ** floatExpr(              -28.0) <> Infinity or
 7570         floatExpr(0.0) ** floatExpr(              -27.0) <> Infinity or
 7571         floatExpr(0.0) ** floatExpr(              -26.0) <> Infinity or
 7572         floatExpr(0.0) ** floatExpr(              -25.0) <> Infinity or
 7573         floatExpr(0.0) ** floatExpr(              -24.0) <> Infinity or
 7574         floatExpr(0.0) ** floatExpr(              -23.0) <> Infinity or
 7575         floatExpr(0.0) ** floatExpr(              -22.0) <> Infinity or
 7576         floatExpr(0.0) ** floatExpr(              -21.0) <> Infinity or
 7577         floatExpr(0.0) ** floatExpr(              -20.0) <> Infinity or
 7578         floatExpr(0.0) ** floatExpr(              -19.0) <> Infinity or
 7579         floatExpr(0.0) ** floatExpr(              -18.0) <> Infinity or
 7580         floatExpr(0.0) ** floatExpr(              -17.0) <> Infinity or
 7581         floatExpr(0.0) ** floatExpr(              -16.0) <> Infinity or
 7582         floatExpr(0.0) ** floatExpr(              -15.0) <> Infinity or
 7583         floatExpr(0.0) ** floatExpr(              -14.0) <> Infinity or
 7584         floatExpr(0.0) ** floatExpr(              -13.0) <> Infinity or
 7585         floatExpr(0.0) ** floatExpr(              -12.0) <> Infinity or
 7586         floatExpr(0.0) ** floatExpr(              -11.0) <> Infinity or
 7587         floatExpr(0.0) ** floatExpr(              -10.0) <> Infinity or
 7588         floatExpr(0.0) ** floatExpr(               -9.0) <> Infinity or
 7589         floatExpr(0.0) ** floatExpr(               -8.0) <> Infinity or
 7590         floatExpr(0.0) ** floatExpr(               -7.0) <> Infinity or
 7591         floatExpr(0.0) ** floatExpr(               -6.0) <> Infinity or
 7592         floatExpr(0.0) ** floatExpr(               -5.0) <> Infinity or
 7593         floatExpr(0.0) ** floatExpr(               -4.0) <> Infinity or
 7594         floatExpr(0.0) ** floatExpr(               -3.0) <> Infinity or
 7595         floatExpr(0.0) ** floatExpr(               -2.0) <> Infinity or
 7596         floatExpr(0.0) ** floatExpr(               -1.0) <> Infinity then
 7597       writeln(" ***** 0.0 ** B with negative B does not return Infinity.");
 7598       okay := FALSE;
 7599     end if;
 7600 
 7601    if                      0.0 **                0.0 <> 1.0 or
 7602         not isPositiveZero(0.0 **                1.0) or
 7603         not isPositiveZero(0.0 **                2.0) or
 7604         not isPositiveZero(0.0 **                3.0) or
 7605         not isPositiveZero(0.0 **                4.0) or
 7606         not isPositiveZero(0.0 **                5.0) or
 7607         not isPositiveZero(0.0 **                6.0) or
 7608         not isPositiveZero(0.0 **                7.0) or
 7609         not isPositiveZero(0.0 **                8.0) or
 7610         not isPositiveZero(0.0 **                9.0) or
 7611         not isPositiveZero(0.0 **               10.0) or
 7612         not isPositiveZero(0.0 **               11.0) or
 7613         not isPositiveZero(0.0 **               12.0) or
 7614         not isPositiveZero(0.0 **               13.0) or
 7615         not isPositiveZero(0.0 **               14.0) or
 7616         not isPositiveZero(0.0 **               15.0) or
 7617         not isPositiveZero(0.0 **               16.0) or
 7618         not isPositiveZero(0.0 **               17.0) or
 7619         not isPositiveZero(0.0 **               18.0) or
 7620         not isPositiveZero(0.0 **               19.0) or
 7621         not isPositiveZero(0.0 **               20.0) or
 7622         not isPositiveZero(0.0 **               21.0) or
 7623         not isPositiveZero(0.0 **               22.0) or
 7624         not isPositiveZero(0.0 **               23.0) or
 7625         not isPositiveZero(0.0 **               24.0) or
 7626         not isPositiveZero(0.0 **               25.0) or
 7627         not isPositiveZero(0.0 **               26.0) or
 7628         not isPositiveZero(0.0 **               27.0) or
 7629         not isPositiveZero(0.0 **               28.0) or
 7630         not isPositiveZero(0.0 **               29.0) or
 7631         not isPositiveZero(0.0 **               30.0) or
 7632         not isPositiveZero(0.0 **       2147483647.0) or
 7633         not isPositiveZero(0.0 **       2147483648.0) or
 7634         not isPositiveZero(0.0 **       2147483649.0) or
 7635         not isPositiveZero(0.0 **       4294967295.0) or
 7636         not isPositiveZero(0.0 **       4294967296.0) or
 7637         not isPositiveZero(0.0 **       4294967297.0) or
 7638         not isPositiveZero(0.0 ** 9007199254740991.0) or
 7639         not isPositiveZero(0.0 ** 9007199254740992.0) or
 7640         not isPositiveZero(0.0 ** 9007199254740993.0) or # Not exactly represented
 7641         not isPositiveZero(0.0 ** 9007199254740994.0) or # Not exactly represented
 7642         not isPositiveZero(0.0 **           Infinity) or
 7643                            floatExpr(0.0) **                0.0 <> 1.0 or
 7644         not isPositiveZero(floatExpr(0.0) **                1.0) or
 7645         not isPositiveZero(floatExpr(0.0) **                2.0) or
 7646         not isPositiveZero(floatExpr(0.0) **                3.0) or
 7647         not isPositiveZero(floatExpr(0.0) **                4.0) or
 7648         not isPositiveZero(floatExpr(0.0) **                5.0) or
 7649         not isPositiveZero(floatExpr(0.0) **                6.0) or
 7650         not isPositiveZero(floatExpr(0.0) **                7.0) or
 7651         not isPositiveZero(floatExpr(0.0) **                8.0) or
 7652         not isPositiveZero(floatExpr(0.0) **                9.0) or
 7653         not isPositiveZero(floatExpr(0.0) **               10.0) or
 7654         not isPositiveZero(floatExpr(0.0) **               11.0) or
 7655         not isPositiveZero(floatExpr(0.0) **               12.0) or
 7656         not isPositiveZero(floatExpr(0.0) **               13.0) or
 7657         not isPositiveZero(floatExpr(0.0) **               14.0) or
 7658         not isPositiveZero(floatExpr(0.0) **               15.0) or
 7659         not isPositiveZero(floatExpr(0.0) **               16.0) or
 7660         not isPositiveZero(floatExpr(0.0) **               17.0) or
 7661         not isPositiveZero(floatExpr(0.0) **               18.0) or
 7662         not isPositiveZero(floatExpr(0.0) **               19.0) or
 7663         not isPositiveZero(floatExpr(0.0) **               20.0) or
 7664         not isPositiveZero(floatExpr(0.0) **               21.0) or
 7665         not isPositiveZero(floatExpr(0.0) **               22.0) or
 7666         not isPositiveZero(floatExpr(0.0) **               23.0) or
 7667         not isPositiveZero(floatExpr(0.0) **               24.0) or
 7668         not isPositiveZero(floatExpr(0.0) **               25.0) or
 7669         not isPositiveZero(floatExpr(0.0) **               26.0) or
 7670         not isPositiveZero(floatExpr(0.0) **               27.0) or
 7671         not isPositiveZero(floatExpr(0.0) **               28.0) or
 7672         not isPositiveZero(floatExpr(0.0) **               29.0) or
 7673         not isPositiveZero(floatExpr(0.0) **               30.0) or
 7674         not isPositiveZero(floatExpr(0.0) **       2147483647.0) or
 7675         not isPositiveZero(floatExpr(0.0) **       2147483648.0) or
 7676         not isPositiveZero(floatExpr(0.0) **       2147483649.0) or
 7677         not isPositiveZero(floatExpr(0.0) **       4294967295.0) or
 7678         not isPositiveZero(floatExpr(0.0) **       4294967296.0) or
 7679         not isPositiveZero(floatExpr(0.0) **       4294967297.0) or
 7680         not isPositiveZero(floatExpr(0.0) ** 9007199254740991.0) or
 7681         not isPositiveZero(floatExpr(0.0) ** 9007199254740992.0) or
 7682         not isPositiveZero(floatExpr(0.0) ** 9007199254740993.0) or # Not exactly represented
 7683         not isPositiveZero(floatExpr(0.0) ** 9007199254740994.0) or # Not exactly represented
 7684         not isPositiveZero(floatExpr(0.0) **           Infinity) or
 7685                            0.0 ** floatExpr(               0.0) <> 1.0 or
 7686         not isPositiveZero(0.0 ** floatExpr(               1.0)) or
 7687         not isPositiveZero(0.0 ** floatExpr(               2.0)) or
 7688         not isPositiveZero(0.0 ** floatExpr(               3.0)) or
 7689         not isPositiveZero(0.0 ** floatExpr(               4.0)) or
 7690         not isPositiveZero(0.0 ** floatExpr(               5.0)) or
 7691         not isPositiveZero(0.0 ** floatExpr(               6.0)) or
 7692         not isPositiveZero(0.0 ** floatExpr(               7.0)) or
 7693         not isPositiveZero(0.0 ** floatExpr(               8.0)) or
 7694         not isPositiveZero(0.0 ** floatExpr(               9.0)) or
 7695         not isPositiveZero(0.0 ** floatExpr(              10.0)) or
 7696         not isPositiveZero(0.0 ** floatExpr(              11.0)) or
 7697         not isPositiveZero(0.0 ** floatExpr(              12.0)) or
 7698         not isPositiveZero(0.0 ** floatExpr(              13.0)) or
 7699         not isPositiveZero(0.0 ** floatExpr(              14.0)) or
 7700         not isPositiveZero(0.0 ** floatExpr(              15.0)) or
 7701         not isPositiveZero(0.0 ** floatExpr(              16.0)) or
 7702         not isPositiveZero(0.0 ** floatExpr(              17.0)) or
 7703         not isPositiveZero(0.0 ** floatExpr(              18.0)) or
 7704         not isPositiveZero(0.0 ** floatExpr(              19.0)) or
 7705         not isPositiveZero(0.0 ** floatExpr(              20.0)) or
 7706         not isPositiveZero(0.0 ** floatExpr(              21.0)) or
 7707         not isPositiveZero(0.0 ** floatExpr(              22.0)) or
 7708         not isPositiveZero(0.0 ** floatExpr(              23.0)) or
 7709         not isPositiveZero(0.0 ** floatExpr(              24.0)) or
 7710         not isPositiveZero(0.0 ** floatExpr(              25.0)) or
 7711         not isPositiveZero(0.0 ** floatExpr(              26.0)) or
 7712         not isPositiveZero(0.0 ** floatExpr(              27.0)) or
 7713         not isPositiveZero(0.0 ** floatExpr(              28.0)) or
 7714         not isPositiveZero(0.0 ** floatExpr(              29.0)) or
 7715         not isPositiveZero(0.0 ** floatExpr(              30.0)) or
 7716         not isPositiveZero(0.0 ** floatExpr(      2147483647.0)) or
 7717         not isPositiveZero(0.0 ** floatExpr(      2147483648.0)) or
 7718         not isPositiveZero(0.0 ** floatExpr(      2147483649.0)) or
 7719         not isPositiveZero(0.0 ** floatExpr(      4294967295.0)) or
 7720         not isPositiveZero(0.0 ** floatExpr(      4294967296.0)) or
 7721         not isPositiveZero(0.0 ** floatExpr(      4294967297.0)) or
 7722         not isPositiveZero(0.0 ** floatExpr(9007199254740991.0)) or
 7723         not isPositiveZero(0.0 ** floatExpr(9007199254740992.0)) or
 7724         not isPositiveZero(0.0 ** floatExpr(9007199254740993.0)) or # Not exactly represented
 7725         not isPositiveZero(0.0 ** floatExpr(9007199254740994.0)) or # Not exactly represented
 7726         not isPositiveZero(0.0 ** floatExpr(          Infinity)) or
 7727                            floatExpr(0.0) ** floatExpr(               0.0) <> 1.0 or
 7728         not isPositiveZero(floatExpr(0.0) ** floatExpr(               1.0)) or
 7729         not isPositiveZero(floatExpr(0.0) ** floatExpr(               2.0)) or
 7730         not isPositiveZero(floatExpr(0.0) ** floatExpr(               3.0)) or
 7731         not isPositiveZero(floatExpr(0.0) ** floatExpr(               4.0)) or
 7732         not isPositiveZero(floatExpr(0.0) ** floatExpr(               5.0)) or
 7733         not isPositiveZero(floatExpr(0.0) ** floatExpr(               6.0)) or
 7734         not isPositiveZero(floatExpr(0.0) ** floatExpr(               7.0)) or
 7735         not isPositiveZero(floatExpr(0.0) ** floatExpr(               8.0)) or
 7736         not isPositiveZero(floatExpr(0.0) ** floatExpr(               9.0)) or
 7737         not isPositiveZero(floatExpr(0.0) ** floatExpr(              10.0)) or
 7738         not isPositiveZero(floatExpr(0.0) ** floatExpr(              11.0)) or
 7739         not isPositiveZero(floatExpr(0.0) ** floatExpr(              12.0)) or
 7740         not isPositiveZero(floatExpr(0.0) ** floatExpr(              13.0)) or
 7741         not isPositiveZero(floatExpr(0.0) ** floatExpr(              14.0)) or
 7742         not isPositiveZero(floatExpr(0.0) ** floatExpr(              15.0)) or
 7743         not isPositiveZero(floatExpr(0.0) ** floatExpr(              16.0)) or
 7744         not isPositiveZero(floatExpr(0.0) ** floatExpr(              17.0)) or
 7745         not isPositiveZero(floatExpr(0.0) ** floatExpr(              18.0)) or
 7746         not isPositiveZero(floatExpr(0.0) ** floatExpr(              19.0)) or
 7747         not isPositiveZero(floatExpr(0.0) ** floatExpr(              20.0)) or
 7748         not isPositiveZero(floatExpr(0.0) ** floatExpr(              21.0)) or
 7749         not isPositiveZero(floatExpr(0.0) ** floatExpr(              22.0)) or
 7750         not isPositiveZero(floatExpr(0.0) ** floatExpr(              23.0)) or
 7751         not isPositiveZero(floatExpr(0.0) ** floatExpr(              24.0)) or
 7752         not isPositiveZero(floatExpr(0.0) ** floatExpr(              25.0)) or
 7753         not isPositiveZero(floatExpr(0.0) ** floatExpr(              26.0)) or
 7754         not isPositiveZero(floatExpr(0.0) ** floatExpr(              27.0)) or
 7755         not isPositiveZero(floatExpr(0.0) ** floatExpr(              28.0)) or
 7756         not isPositiveZero(floatExpr(0.0) ** floatExpr(              29.0)) or
 7757         not isPositiveZero(floatExpr(0.0) ** floatExpr(              30.0)) or
 7758         not isPositiveZero(floatExpr(0.0) ** floatExpr(      2147483647.0)) or
 7759         not isPositiveZero(floatExpr(0.0) ** floatExpr(      2147483648.0)) or
 7760         not isPositiveZero(floatExpr(0.0) ** floatExpr(      2147483649.0)) or
 7761         not isPositiveZero(floatExpr(0.0) ** floatExpr(      4294967295.0)) or
 7762         not isPositiveZero(floatExpr(0.0) ** floatExpr(      4294967296.0)) or
 7763         not isPositiveZero(floatExpr(0.0) ** floatExpr(      4294967297.0)) or
 7764         not isPositiveZero(floatExpr(0.0) ** floatExpr(9007199254740991.0)) or
 7765         not isPositiveZero(floatExpr(0.0) ** floatExpr(9007199254740992.0)) or
 7766         not isPositiveZero(floatExpr(0.0) ** floatExpr(9007199254740993.0)) or # Not exactly represented
 7767         not isPositiveZero(floatExpr(0.0) ** floatExpr(9007199254740994.0)) or # Not exactly represented
 7768         not isPositiveZero(floatExpr(0.0) ** floatExpr(          Infinity)) then
 7769       writeln(" ***** 0.0 ** B with positive B does not return 0.0.");
 7770       okay := FALSE;
 7771     end if;
 7772 
 7773     if                (-0.0) **                (-3.0) <> -Infinity or
 7774                       (-0.0) **           minusThree  <> -Infinity or
 7775                       (-0.0) **                (-2.5) <>  Infinity or
 7776                       (-0.0) **                (-2.0) <>  Infinity or
 7777                       (-0.0) **             minusTwo  <>  Infinity or
 7778                       (-0.0) **                (-1.5) <>  Infinity or
 7779                       (-0.0) **                (-1.0) <> -Infinity or
 7780                       (-0.0) **             minusOne  <> -Infinity or
 7781                       (-0.0) **                (-0.5) <>  Infinity or
 7782                   minusZero  **                (-3.0) <> -Infinity or
 7783                   minusZero  **           minusThree  <> -Infinity or
 7784                   minusZero  **                (-2.5) <>  Infinity or
 7785                   minusZero  **                (-2.0) <>  Infinity or
 7786                   minusZero  **             minusTwo  <>  Infinity or
 7787                   minusZero  **                (-1.5) <>  Infinity or
 7788                   minusZero  **                (-1.0) <> -Infinity or
 7789                   minusZero  **             minusOne  <> -Infinity or
 7790                   minusZero  **                (-0.5) <>  Infinity or
 7791                         0.0  **                (-3.0) <>  Infinity or
 7792                         0.0  **           minusThree  <>  Infinity or
 7793                         0.0  **                (-2.5) <>  Infinity or
 7794                         0.0  **                (-2.0) <>  Infinity or
 7795                         0.0  **             minusTwo  <>  Infinity or
 7796                         0.0  **                (-1.5) <>  Infinity or
 7797                         0.0  **                (-1.0) <>  Infinity or
 7798                         0.0  **             minusOne  <>  Infinity or
 7799                         0.0  **                (-0.5) <>  Infinity or
 7800         floatExpr(     -0.0) **                (-3.0) <> -Infinity or
 7801         floatExpr(     -0.0) **           minusThree  <> -Infinity or
 7802         floatExpr(     -0.0) **                (-2.5) <>  Infinity or
 7803         floatExpr(     -0.0) **                (-2.0) <>  Infinity or
 7804         floatExpr(     -0.0) **             minusTwo  <>  Infinity or
 7805         floatExpr(     -0.0) **                (-1.5) <>  Infinity or
 7806         floatExpr(     -0.0) **                (-1.0) <> -Infinity or
 7807         floatExpr(     -0.0) **             minusOne  <> -Infinity or
 7808         floatExpr(     -0.0) **                (-0.5) <>  Infinity or
 7809         floatExpr(minusZero) **                (-3.0) <> -Infinity or
 7810         floatExpr(minusZero) **           minusThree  <> -Infinity or
 7811         floatExpr(minusZero) **                (-2.5) <>  Infinity or
 7812         floatExpr(minusZero) **                (-2.0) <>  Infinity or
 7813         floatExpr(minusZero) **             minusTwo  <>  Infinity or
 7814         floatExpr(minusZero) **                (-1.5) <>  Infinity or
 7815         floatExpr(minusZero) **                (-1.0) <> -Infinity or
 7816         floatExpr(minusZero) **             minusOne  <> -Infinity or
 7817         floatExpr(minusZero) **                (-0.5) <>  Infinity or
 7818         floatExpr(      0.0) **                (-3.0) <>  Infinity or
 7819         floatExpr(      0.0) **           minusThree  <>  Infinity or
 7820         floatExpr(      0.0) **                (-2.5) <>  Infinity or
 7821         floatExpr(      0.0) **                (-2.0) <>  Infinity or
 7822         floatExpr(      0.0) **             minusTwo  <>  Infinity or
 7823         floatExpr(      0.0) **                (-1.5) <>  Infinity or
 7824         floatExpr(      0.0) **                (-1.0) <>  Infinity or
 7825         floatExpr(      0.0) **             minusOne  <>  Infinity or
 7826         floatExpr(      0.0) **                (-0.5) <>  Infinity or
 7827                       (-0.0) ** floatExpr(      -3.0) <> -Infinity or
 7828                       (-0.0) ** floatExpr(minusThree)  <> -Infinity or
 7829                       (-0.0) ** floatExpr(      -2.5) <>  Infinity or
 7830                       (-0.0) ** floatExpr(      -2.0) <>  Infinity or
 7831                       (-0.0) ** floatExpr(  minusTwo) <>  Infinity or
 7832                       (-0.0) ** floatExpr(      -1.5) <>  Infinity or
 7833                       (-0.0) ** floatExpr(      -1.0) <> -Infinity or
 7834                       (-0.0) ** floatExpr(  minusOne) <> -Infinity or
 7835                       (-0.0) ** floatExpr(      -0.5) <>  Infinity or
 7836                   minusZero  ** floatExpr(      -3.0) <> -Infinity or
 7837                   minusZero  ** floatExpr(minusThree) <> -Infinity or
 7838                   minusZero  ** floatExpr(      -2.5) <>  Infinity or
 7839                   minusZero  ** floatExpr(      -2.0) <>  Infinity or
 7840                   minusZero  ** floatExpr(  minusTwo) <>  Infinity or
 7841                   minusZero  ** floatExpr(      -1.5) <>  Infinity or
 7842                   minusZero  ** floatExpr(      -1.0) <> -Infinity or
 7843                   minusZero  ** floatExpr(  minusOne) <> -Infinity or
 7844                   minusZero  ** floatExpr(      -0.5) <>  Infinity or
 7845                         0.0  ** floatExpr(      -3.0) <>  Infinity or
 7846                         0.0  ** floatExpr(minusThree) <>  Infinity or
 7847                         0.0  ** floatExpr(      -2.5) <>  Infinity or
 7848                         0.0  ** floatExpr(      -2.0) <>  Infinity or
 7849                         0.0  ** floatExpr(  minusTwo) <>  Infinity or
 7850                         0.0  ** floatExpr(      -1.5) <>  Infinity or
 7851                         0.0  ** floatExpr(      -1.0) <>  Infinity or
 7852                         0.0  ** floatExpr(  minusOne) <>  Infinity or
 7853                         0.0  ** floatExpr(      -0.5) <>  Infinity or
 7854         floatExpr(     -0.0) ** floatExpr(      -3.0) <> -Infinity or
 7855         floatExpr(     -0.0) ** floatExpr(minusThree) <> -Infinity or
 7856         floatExpr(     -0.0) ** floatExpr(      -2.5) <>  Infinity or
 7857         floatExpr(     -0.0) ** floatExpr(      -2.0) <>  Infinity or
 7858         floatExpr(     -0.0) ** floatExpr(  minusTwo) <>  Infinity or
 7859         floatExpr(     -0.0) ** floatExpr(      -1.5) <>  Infinity or
 7860         floatExpr(     -0.0) ** floatExpr(      -1.0) <> -Infinity or
 7861         floatExpr(     -0.0) ** floatExpr(  minusOne) <> -Infinity or
 7862         floatExpr(     -0.0) ** floatExpr(      -0.5) <>  Infinity or
 7863         floatExpr(minusZero) ** floatExpr(      -3.0) <> -Infinity or
 7864         floatExpr(minusZero) ** floatExpr(minusThree) <> -Infinity or
 7865         floatExpr(minusZero) ** floatExpr(      -2.5) <>  Infinity or
 7866         floatExpr(minusZero) ** floatExpr(      -2.0) <>  Infinity or
 7867         floatExpr(minusZero) ** floatExpr(  minusTwo) <>  Infinity or
 7868         floatExpr(minusZero) ** floatExpr(      -1.5) <>  Infinity or
 7869         floatExpr(minusZero) ** floatExpr(      -1.0) <> -Infinity or
 7870         floatExpr(minusZero) ** floatExpr(  minusOne) <> -Infinity or
 7871         floatExpr(minusZero) ** floatExpr(      -0.5) <>  Infinity or
 7872         floatExpr(      0.0) ** floatExpr(      -3.0) <>  Infinity or
 7873         floatExpr(      0.0) ** floatExpr(minusThree) <>  Infinity or
 7874         floatExpr(      0.0) ** floatExpr(      -2.5) <>  Infinity or
 7875         floatExpr(      0.0) ** floatExpr(      -2.0) <>  Infinity or
 7876         floatExpr(      0.0) ** floatExpr(  minusTwo) <>  Infinity or
 7877         floatExpr(      0.0) ** floatExpr(      -1.5) <>  Infinity or
 7878         floatExpr(      0.0) ** floatExpr(      -1.0) <>  Infinity or
 7879         floatExpr(      0.0) ** floatExpr(  minusOne) <>  Infinity or
 7880         floatExpr(      0.0) ** floatExpr(      -0.5) <>  Infinity then
 7881       writeln(" ***** Power of 0.0 with selected negative exponents does not return Infinity.");
 7882       okay := FALSE;
 7883     end if;
 7884 
 7885     if    0.0    ** 0.5 <>  0.0  or
 7886           0.0625 ** 0.5 <>  0.25 or
 7887           0.25   ** 0.5 <>  0.5  or
 7888           1.0    ** 0.5 <>  1.0  or
 7889           4.0    ** 0.5 <>  2.0  or
 7890           9.0    ** 0.5 <>  3.0  or
 7891          16.0    ** 0.5 <>  4.0  or
 7892         100.0    ** 0.5 <> 10.0  or
 7893         floatExpr(  0.0   ) ** 0.5 <>  0.0  or
 7894         floatExpr(  0.0625) ** 0.5 <>  0.25 or
 7895         floatExpr(  0.25  ) ** 0.5 <>  0.5  or
 7896         floatExpr(  1.0   ) ** 0.5 <>  1.0  or
 7897         floatExpr(  4.0   ) ** 0.5 <>  2.0  or
 7898         floatExpr(  9.0   ) ** 0.5 <>  3.0  or
 7899         floatExpr( 16.0   ) ** 0.5 <>  4.0  or
 7900         floatExpr(100.0   ) ** 0.5 <> 10.0  or
 7901           0.0    ** floatExpr(0.5) <>  0.0  or
 7902           0.0625 ** floatExpr(0.5) <>  0.25 or
 7903           0.25   ** floatExpr(0.5) <>  0.5  or
 7904           1.0    ** floatExpr(0.5) <>  1.0  or
 7905           4.0    ** floatExpr(0.5) <>  2.0  or
 7906           9.0    ** floatExpr(0.5) <>  3.0  or
 7907          16.0    ** floatExpr(0.5) <>  4.0  or
 7908         100.0    ** floatExpr(0.5) <> 10.0  or
 7909         floatExpr(  0.0   ) ** floatExpr(0.5) <>  0.0  or
 7910         floatExpr(  0.0625) ** floatExpr(0.5) <>  0.25 or
 7911         floatExpr(  0.25  ) ** floatExpr(0.5) <>  0.5  or
 7912         floatExpr(  1.0   ) ** floatExpr(0.5) <>  1.0  or
 7913         floatExpr(  4.0   ) ** floatExpr(0.5) <>  2.0  or
 7914         floatExpr(  9.0   ) ** floatExpr(0.5) <>  3.0  or
 7915         floatExpr( 16.0   ) ** floatExpr(0.5) <>  4.0  or
 7916         floatExpr(100.0   ) ** floatExpr(0.5) <> 10.0  then
 7917       writeln(" ***** A ** 0.5 does not work correct.");
 7918       okay := FALSE;
 7919     end if;
 7920 
 7921     if  1.0 **           (-Infinity) <> 1.0 or
 7922         1.0 ** (-9007199254740994.0) <> 1.0 or
 7923         1.0 ** (-9007199254740993.0) <> 1.0 or
 7924         1.0 ** (-9007199254740992.0) <> 1.0 or
 7925         1.0 ** (-9007199254740991.0) <> 1.0 or
 7926         1.0 **       (-2147483649.0) <> 1.0 or
 7927         1.0 **       (-2147483648.0) <> 1.0 or
 7928         1.0 **                (-2.0) <> 1.0 or
 7929         1.0 **                (-1.0) <> 1.0 or
 7930         1.0 **                  0.0  <> 1.0 or
 7931         1.0 **                  1.0  <> 1.0 or
 7932         1.0 **                  2.0  <> 1.0 or
 7933         1.0 **         2147483647.0  <> 1.0 or
 7934         1.0 **         2147483648.0  <> 1.0 or
 7935         1.0 **   9007199254740991.0  <> 1.0 or
 7936         1.0 **   9007199254740992.0  <> 1.0 or
 7937         1.0 **   9007199254740993.0  <> 1.0 or
 7938         1.0 **   9007199254740994.0  <> 1.0 or
 7939         1.0 **             Infinity  <> 1.0 or
 7940         floatExpr(1.0) **           (-Infinity) <> 1.0 or
 7941         floatExpr(1.0) ** (-9007199254740994.0) <> 1.0 or
 7942         floatExpr(1.0) ** (-9007199254740993.0) <> 1.0 or
 7943         floatExpr(1.0) ** (-9007199254740992.0) <> 1.0 or
 7944         floatExpr(1.0) ** (-9007199254740991.0) <> 1.0 or
 7945         floatExpr(1.0) **       (-2147483649.0) <> 1.0 or
 7946         floatExpr(1.0) **       (-2147483648.0) <> 1.0 or
 7947         floatExpr(1.0) **                (-2.0) <> 1.0 or
 7948         floatExpr(1.0) **                (-1.0) <> 1.0 or
 7949         floatExpr(1.0) **                  0.0  <> 1.0 or
 7950         floatExpr(1.0) **                  1.0  <> 1.0 or
 7951         floatExpr(1.0) **                  2.0  <> 1.0 or
 7952         floatExpr(1.0) **         2147483647.0  <> 1.0 or
 7953         floatExpr(1.0) **         2147483648.0  <> 1.0 or
 7954         floatExpr(1.0) **   9007199254740991.0  <> 1.0 or
 7955         floatExpr(1.0) **   9007199254740992.0  <> 1.0 or
 7956         floatExpr(1.0) **   9007199254740993.0  <> 1.0 or
 7957         floatExpr(1.0) **   9007199254740994.0  <> 1.0 or
 7958         floatExpr(1.0) **             Infinity  <> 1.0 or
 7959         1.0 ** floatExpr(          -Infinity) <> 1.0 or
 7960         1.0 ** floatExpr(-9007199254740994.0) <> 1.0 or
 7961         1.0 ** floatExpr(-9007199254740993.0) <> 1.0 or
 7962         1.0 ** floatExpr(-9007199254740992.0) <> 1.0 or
 7963         1.0 ** floatExpr(-9007199254740991.0) <> 1.0 or
 7964         1.0 ** floatExpr(      -2147483649.0) <> 1.0 or
 7965         1.0 ** floatExpr(      -2147483648.0) <> 1.0 or
 7966         1.0 ** floatExpr(               -2.0) <> 1.0 or
 7967         1.0 ** floatExpr(               -1.0) <> 1.0 or
 7968         1.0 ** floatExpr(                0.0) <> 1.0 or
 7969         1.0 ** floatExpr(                1.0) <> 1.0 or
 7970         1.0 ** floatExpr(                2.0) <> 1.0 or
 7971         1.0 ** floatExpr(       2147483647.0) <> 1.0 or
 7972         1.0 ** floatExpr(       2147483648.0) <> 1.0 or
 7973         1.0 ** floatExpr( 9007199254740991.0) <> 1.0 or
 7974         1.0 ** floatExpr( 9007199254740992.0) <> 1.0 or
 7975         1.0 ** floatExpr( 9007199254740993.0) <> 1.0 or
 7976         1.0 ** floatExpr( 9007199254740994.0) <> 1.0 or
 7977         1.0 ** floatExpr(           Infinity) <> 1.0 or
 7978         floatExpr(1.0) ** floatExpr(          -Infinity) <> 1.0 or
 7979         floatExpr(1.0) ** floatExpr(-9007199254740994.0) <> 1.0 or
 7980         floatExpr(1.0) ** floatExpr(-9007199254740993.0) <> 1.0 or
 7981         floatExpr(1.0) ** floatExpr(-9007199254740992.0) <> 1.0 or
 7982         floatExpr(1.0) ** floatExpr(-9007199254740991.0) <> 1.0 or
 7983         floatExpr(1.0) ** floatExpr(      -2147483649.0) <> 1.0 or
 7984         floatExpr(1.0) ** floatExpr(      -2147483648.0) <> 1.0 or
 7985         floatExpr(1.0) ** floatExpr(               -2.0) <> 1.0 or
 7986         floatExpr(1.0) ** floatExpr(               -1.0) <> 1.0 or
 7987         floatExpr(1.0) ** floatExpr(                0.0) <> 1.0 or
 7988         floatExpr(1.0) ** floatExpr(                1.0) <> 1.0 or
 7989         floatExpr(1.0) ** floatExpr(                2.0) <> 1.0 or
 7990         floatExpr(1.0) ** floatExpr(       2147483647.0) <> 1.0 or
 7991         floatExpr(1.0) ** floatExpr(       2147483648.0) <> 1.0 or
 7992         floatExpr(1.0) ** floatExpr( 9007199254740991.0) <> 1.0 or
 7993         floatExpr(1.0) ** floatExpr( 9007199254740992.0) <> 1.0 or
 7994         floatExpr(1.0) ** floatExpr( 9007199254740993.0) <> 1.0 or
 7995         floatExpr(1.0) ** floatExpr( 9007199254740994.0) <> 1.0 or
 7996         floatExpr(1.0) ** floatExpr(           Infinity) <> 1.0 then
 7997       writeln(" ***** 1.0 ** B does not return 1.0.");
 7998       okay := FALSE;
 7999     end if;
 8000 
 8001     if  2.0 **           (-Infinity) <> 0.0 or
 8002         2.0 ** (-9007199254740994.0) <> 0.0 or
 8003         2.0 ** (-9007199254740993.0) <> 0.0 or
 8004         2.0 ** (-9007199254740992.0) <> 0.0 or
 8005         2.0 ** (-9007199254740991.0) <> 0.0 or
 8006         2.0 **       (-2147483649.0) <> 0.0 or
 8007         2.0 **       (-2147483648.0) <> 0.0 or
 8008         2.0 ** (-1000.0) <> 9.33263618503218878990089544723817169617091446371708024621714339795966910975775634454440327097881102359594989930324242624215487521354032394841520817203930756234410666138325150273995075985901831511100490796265113118240512514795933790805178271125415103810698378854426481119469814228660959222017662910442798456169448887147466528006328368452647429261829862165202793195289493607117850663668741065439805530718136320599844826041954101213229629869502194514609904214608668361244792952034826864617657926916047420065936389041737895822118365078045556628444273925387517127854796781556346403714877681766899855392069265439424008711973674701749862626690747296762535803929376233833981046927874558605253696441650390625e-302 or
 8009         2.0 ** ( -500.0) <> 3.0549363634996046820519793932136176997894027405723266638936139092812916265247204577018572351080152282568751526935904671553178534278042839697351331142009178896307244205337728522220355888195318837008165086679301794879136633899370525163649789227021200352450820912190874482021196014946372110934030798550767828365183620409339937395998276770114898681640625e-151 or
 8010         2.0 ** ( -200.0) <> 6.2230152778611417071440640537801242405902521687211671331011166147896988340353834411839448231257136169569665895551224821247160434722900390625e-61 or
 8011         2.0 ** ( -100.0) <> 7.888609052210118054117285652827862296732064351090230047702789306640625e-31 or
 8012         2.0 ** (  -50.0) <> 8.8817841970012523233890533447265625e-16 or
 8013         2.0 ** (  -20.0) <> 9.5367431640625e-7 or
 8014         2.0 ** (  -10.0) <> 9.765625e-4 or
 8015         2.0 ** (   -5.0) <> 3.125e-2 or
 8016         2.0 ** (   -2.0) <> 0.25 or
 8017         2.0 ** (   -1.0) <> 0.5 or
 8018         2.0 **      0.0  <> 1.0 or
 8019         2.0 **      1.0  <> 2.0 or
 8020         2.0 **      2.0  <> 4.0 or
 8021         2.0 **      5.0  <> 3.2e1 or
 8022         2.0 **     10.0  <> 1.024e3 or
 8023         2.0 **     20.0  <> 1.048576e6 or
 8024         2.0 **     50.0  <> 1.125899906842624e15 or
 8025         2.0 **    100.0  <> 1.267650600228229401496703205376e30 or
 8026         2.0 **    200.0  <> 1.606938044258990275541962092341162602522202993782792835301376e60 or
 8027         2.0 **    500.0  <> 3.273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376e150 or
 8028         2.0 **   1000.0  <> 1.0715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376e301 or
 8029         2.0 **       2147483647.0 <> Infinity or
 8030         2.0 **       2147483648.0 <> Infinity or
 8031         2.0 ** 9007199254740991.0 <> Infinity or
 8032         2.0 ** 9007199254740992.0 <> Infinity or
 8033         2.0 ** 9007199254740993.0 <> Infinity or
 8034         2.0 ** 9007199254740994.0 <> Infinity or
 8035         2.0 **           Infinity <> Infinity or
 8036         floatExpr(2.0) **           (-Infinity) <> 0.0 or
 8037         floatExpr(2.0) ** (-9007199254740994.0) <> 0.0 or
 8038         floatExpr(2.0) ** (-9007199254740993.0) <> 0.0 or
 8039         floatExpr(2.0) ** (-9007199254740992.0) <> 0.0 or
 8040         floatExpr(2.0) ** (-9007199254740991.0) <> 0.0 or
 8041         floatExpr(2.0) **       (-2147483649.0) <> 0.0 or
 8042         floatExpr(2.0) **       (-2147483648.0) <> 0.0 or
 8043         floatExpr(2.0) ** (-1000.0) <> 9.33263618503218878990089544723817169617091446371708024621714339795966910975775634454440327097881102359594989930324242624215487521354032394841520817203930756234410666138325150273995075985901831511100490796265113118240512514795933790805178271125415103810698378854426481119469814228660959222017662910442798456169448887147466528006328368452647429261829862165202793195289493607117850663668741065439805530718136320599844826041954101213229629869502194514609904214608668361244792952034826864617657926916047420065936389041737895822118365078045556628444273925387517127854796781556346403714877681766899855392069265439424008711973674701749862626690747296762535803929376233833981046927874558605253696441650390625e-302 or
 8044         floatExpr(2.0) ** ( -500.0) <> 3.0549363634996046820519793932136176997894027405723266638936139092812916265247204577018572351080152282568751526935904671553178534278042839697351331142009178896307244205337728522220355888195318837008165086679301794879136633899370525163649789227021200352450820912190874482021196014946372110934030798550767828365183620409339937395998276770114898681640625e-151 or
 8045         floatExpr(2.0) ** ( -200.0) <> 6.2230152778611417071440640537801242405902521687211671331011166147896988340353834411839448231257136169569665895551224821247160434722900390625e-61 or
 8046         floatExpr(2.0) ** ( -100.0) <> 7.888609052210118054117285652827862296732064351090230047702789306640625e-31 or
 8047         floatExpr(2.0) ** (  -50.0) <> 8.8817841970012523233890533447265625e-16 or
 8048         floatExpr(2.0) ** (  -20.0) <> 9.5367431640625e-7 or
 8049         floatExpr(2.0) ** (  -10.0) <> 9.765625e-4 or
 8050         floatExpr(2.0) ** (   -5.0) <> 3.125e-2 or
 8051         floatExpr(2.0) ** (   -2.0) <> 0.25 or
 8052         floatExpr(2.0) ** (   -1.0) <> 0.5 or
 8053         floatExpr(2.0) **      0.0  <> 1.0 or
 8054         floatExpr(2.0) **      1.0  <> 2.0 or
 8055         floatExpr(2.0) **      2.0  <> 4.0 or
 8056         floatExpr(2.0) **      5.0  <> 3.2e1 or
 8057         floatExpr(2.0) **     10.0  <> 1.024e3 or
 8058         floatExpr(2.0) **     20.0  <> 1.048576e6 or
 8059         floatExpr(2.0) **     50.0  <> 1.125899906842624e15 or
 8060         floatExpr(2.0) **    100.0  <> 1.267650600228229401496703205376e30 or
 8061         floatExpr(2.0) **    200.0  <> 1.606938044258990275541962092341162602522202993782792835301376e60 or
 8062         floatExpr(2.0) **    500.0  <> 3.273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376e150 or
 8063         floatExpr(2.0) **   1000.0  <> 1.0715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376e301 or
 8064         floatExpr(2.0) **       2147483647.0 <> Infinity or
 8065         floatExpr(2.0) **       2147483648.0 <> Infinity or
 8066         floatExpr(2.0) ** 9007199254740991.0 <> Infinity or
 8067         floatExpr(2.0) ** 9007199254740992.0 <> Infinity or
 8068         floatExpr(2.0) ** 9007199254740993.0 <> Infinity or
 8069         floatExpr(2.0) ** 9007199254740994.0 <> Infinity or
 8070         floatExpr(2.0) **           Infinity <> Infinity or
 8071         2.0 ** floatExpr(          -Infinity) <> 0.0 or
 8072         2.0 ** floatExpr(-9007199254740994.0) <> 0.0 or
 8073         2.0 ** floatExpr(-9007199254740993.0) <> 0.0 or
 8074         2.0 ** floatExpr(-9007199254740992.0) <> 0.0 or
 8075         2.0 ** floatExpr(-9007199254740991.0) <> 0.0 or
 8076         2.0 ** floatExpr(      -2147483649.0) <> 0.0 or
 8077         2.0 ** floatExpr(      -2147483648.0) <> 0.0 or
 8078         2.0 ** floatExpr(-1000.0) <> 9.33263618503218878990089544723817169617091446371708024621714339795966910975775634454440327097881102359594989930324242624215487521354032394841520817203930756234410666138325150273995075985901831511100490796265113118240512514795933790805178271125415103810698378854426481119469814228660959222017662910442798456169448887147466528006328368452647429261829862165202793195289493607117850663668741065439805530718136320599844826041954101213229629869502194514609904214608668361244792952034826864617657926916047420065936389041737895822118365078045556628444273925387517127854796781556346403714877681766899855392069265439424008711973674701749862626690747296762535803929376233833981046927874558605253696441650390625e-302 or
 8079         2.0 ** floatExpr( -500.0) <> 3.0549363634996046820519793932136176997894027405723266638936139092812916265247204577018572351080152282568751526935904671553178534278042839697351331142009178896307244205337728522220355888195318837008165086679301794879136633899370525163649789227021200352450820912190874482021196014946372110934030798550767828365183620409339937395998276770114898681640625e-151 or
 8080         2.0 ** floatExpr( -200.0) <> 6.2230152778611417071440640537801242405902521687211671331011166147896988340353834411839448231257136169569665895551224821247160434722900390625e-61 or
 8081         2.0 ** floatExpr( -100.0) <> 7.888609052210118054117285652827862296732064351090230047702789306640625e-31 or
 8082         2.0 ** floatExpr(  -50.0) <> 8.8817841970012523233890533447265625e-16 or
 8083         2.0 ** floatExpr(  -20.0) <> 9.5367431640625e-7 or
 8084         2.0 ** floatExpr(  -10.0) <> 9.765625e-4 or
 8085         2.0 ** floatExpr(   -5.0) <> 3.125e-2 or
 8086         2.0 ** floatExpr(   -2.0) <> 0.25 or
 8087         2.0 ** floatExpr(   -1.0) <> 0.5 or
 8088         2.0 ** floatExpr(    0.0) <> 1.0 or
 8089         2.0 ** floatExpr(    1.0) <> 2.0 or
 8090         2.0 ** floatExpr(    2.0) <> 4.0 or
 8091         2.0 ** floatExpr(    5.0) <> 3.2e1 or
 8092         2.0 ** floatExpr(   10.0) <> 1.024e3 or
 8093         2.0 ** floatExpr(   20.0) <> 1.048576e6 or
 8094         2.0 ** floatExpr(   50.0) <> 1.125899906842624e15 or
 8095         2.0 ** floatExpr(  100.0) <> 1.267650600228229401496703205376e30 or
 8096         2.0 ** floatExpr(  200.0) <> 1.606938044258990275541962092341162602522202993782792835301376e60 or
 8097         2.0 ** floatExpr(  500.0) <> 3.273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376e150 or
 8098         2.0 ** floatExpr( 1000.0) <> 1.0715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376e301 or
 8099         2.0 ** floatExpr(       2147483647.0) <> Infinity or
 8100         2.0 ** floatExpr(       2147483648.0) <> Infinity or
 8101         2.0 ** floatExpr( 9007199254740991.0) <> Infinity or
 8102         2.0 ** floatExpr( 9007199254740992.0) <> Infinity or
 8103         2.0 ** floatExpr( 9007199254740993.0) <> Infinity or
 8104         2.0 ** floatExpr( 9007199254740994.0) <> Infinity or
 8105         2.0 ** floatExpr(           Infinity) <> Infinity or
 8106         floatExpr(2.0) ** floatExpr(          -Infinity) <> 0.0 or
 8107         floatExpr(2.0) ** floatExpr(-9007199254740994.0) <> 0.0 or
 8108         floatExpr(2.0) ** floatExpr(-9007199254740993.0) <> 0.0 or
 8109         floatExpr(2.0) ** floatExpr(-9007199254740992.0) <> 0.0 or
 8110         floatExpr(2.0) ** floatExpr(-9007199254740991.0) <> 0.0 or
 8111         floatExpr(2.0) ** floatExpr(      -2147483649.0) <> 0.0 or
 8112         floatExpr(2.0) ** floatExpr(      -2147483648.0) <> 0.0 or
 8113         floatExpr(2.0) ** floatExpr(-1000.0) <> 9.33263618503218878990089544723817169617091446371708024621714339795966910975775634454440327097881102359594989930324242624215487521354032394841520817203930756234410666138325150273995075985901831511100490796265113118240512514795933790805178271125415103810698378854426481119469814228660959222017662910442798456169448887147466528006328368452647429261829862165202793195289493607117850663668741065439805530718136320599844826041954101213229629869502194514609904214608668361244792952034826864617657926916047420065936389041737895822118365078045556628444273925387517127854796781556346403714877681766899855392069265439424008711973674701749862626690747296762535803929376233833981046927874558605253696441650390625e-302 or
 8114         floatExpr(2.0) ** floatExpr( -500.0) <> 3.0549363634996046820519793932136176997894027405723266638936139092812916265247204577018572351080152282568751526935904671553178534278042839697351331142009178896307244205337728522220355888195318837008165086679301794879136633899370525163649789227021200352450820912190874482021196014946372110934030798550767828365183620409339937395998276770114898681640625e-151 or
 8115         floatExpr(2.0) ** floatExpr( -200.0) <> 6.2230152778611417071440640537801242405902521687211671331011166147896988340353834411839448231257136169569665895551224821247160434722900390625e-61 or
 8116         floatExpr(2.0) ** floatExpr( -100.0) <> 7.888609052210118054117285652827862296732064351090230047702789306640625e-31 or
 8117         floatExpr(2.0) ** floatExpr(  -50.0) <> 8.8817841970012523233890533447265625e-16 or
 8118         floatExpr(2.0) ** floatExpr(  -20.0) <> 9.5367431640625e-7 or
 8119         floatExpr(2.0) ** floatExpr(  -10.0) <> 9.765625e-4 or
 8120         floatExpr(2.0) ** floatExpr(   -5.0) <> 3.125e-2 or
 8121         floatExpr(2.0) ** floatExpr(   -2.0) <> 0.25 or
 8122         floatExpr(2.0) ** floatExpr(   -1.0) <> 0.5 or
 8123         floatExpr(2.0) ** floatExpr(    0.0) <> 1.0 or
 8124         floatExpr(2.0) ** floatExpr(    1.0) <> 2.0 or
 8125         floatExpr(2.0) ** floatExpr(    2.0) <> 4.0 or
 8126         floatExpr(2.0) ** floatExpr(    5.0) <> 3.2e1 or
 8127         floatExpr(2.0) ** floatExpr(   10.0) <> 1.024e3 or
 8128         floatExpr(2.0) ** floatExpr(   20.0) <> 1.048576e6 or
 8129         floatExpr(2.0) ** floatExpr(   50.0) <> 1.125899906842624e15 or
 8130         floatExpr(2.0) ** floatExpr(  100.0) <> 1.267650600228229401496703205376e30 or
 8131         floatExpr(2.0) ** floatExpr(  200.0) <> 1.606938044258990275541962092341162602522202993782792835301376e60 or
 8132         floatExpr(2.0) ** floatExpr(  500.0) <> 3.273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376e150 or
 8133         floatExpr(2.0) ** floatExpr( 1000.0) <> 1.0715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376e301 or
 8134         floatExpr(2.0) ** floatExpr(      2147483647.0) <> Infinity or
 8135         floatExpr(2.0) ** floatExpr(      2147483648.0) <> Infinity or
 8136         floatExpr(2.0) ** floatExpr(9007199254740991.0) <> Infinity or
 8137         floatExpr(2.0) ** floatExpr(9007199254740992.0) <> Infinity or
 8138         floatExpr(2.0) ** floatExpr(9007199254740993.0) <> Infinity or
 8139         floatExpr(2.0) ** floatExpr(9007199254740994.0) <> Infinity or
 8140         floatExpr(2.0) ** floatExpr(          Infinity) <> Infinity then
 8141       writeln(" ***** 2.0 ** B does not work correct.");
 8142       okay := FALSE;
 8143     end if;
 8144 
 8145     if            E  **          (-Infinity) <>      0.0 or
 8146                   E  **                 0.0  <>      1.0 or
 8147                   E  **            Infinity  <> Infinity or
 8148         floatExpr(E) **          (-Infinity) <>      0.0 or
 8149         floatExpr(E) **                 0.0  <>      1.0 or
 8150         floatExpr(E) **            Infinity  <> Infinity or
 8151                   E  ** floatExpr(-Infinity) <>      0.0 or
 8152                   E  ** floatExpr(      0.0) <>      1.0 or
 8153                   E  ** floatExpr( Infinity) <> Infinity or
 8154         floatExpr(E) ** floatExpr(-Infinity) <>      0.0 or
 8155         floatExpr(E) ** floatExpr(      0.0) <>      1.0 or
 8156         floatExpr(E) ** floatExpr( Infinity) <> Infinity then
 8157       writeln(" ***** E ** B does not work correct.");
 8158       okay := FALSE;
 8159     end if;
 8160 
 8161     if            10.0  **          (-Infinity) <>      0.0 or
 8162                   10.0  **                 0.0  <>      1.0 or
 8163                   10.0  **            Infinity  <> Infinity or
 8164         floatExpr(10.0) **          (-Infinity) <>      0.0 or
 8165         floatExpr(10.0) **                 0.0  <>      1.0 or
 8166         floatExpr(10.0) **            Infinity  <> Infinity or
 8167                   10.0  ** floatExpr(-Infinity) <>      0.0 or
 8168                   10.0  ** floatExpr(      0.0) <>      1.0 or
 8169                   10.0  ** floatExpr( Infinity) <> Infinity or
 8170         floatExpr(10.0) ** floatExpr(-Infinity) <>      0.0 or
 8171         floatExpr(10.0) ** floatExpr(      0.0) <>      1.0 or
 8172         floatExpr(10.0) ** floatExpr( Infinity) <> Infinity then
 8173       writeln(" ***** 10.0 ** B does not work correct.");
 8174       okay := FALSE;
 8175     end if;
 8176 
 8177     if  not isNaN(NaN ** (          -Infinity)) or
 8178         not isNaN(NaN ** (-9007199254740994.0)) or # Not exactly represented
 8179         not isNaN(NaN ** (-9007199254740993.0)) or # Not exactly represented
 8180         not isNaN(NaN ** (-9007199254740992.0)) or
 8181         not isNaN(NaN ** (-9007199254740991.0)) or
 8182         not isNaN(NaN **       (-4294967297.0)) or
 8183         not isNaN(NaN **       (-4294967296.0)) or
 8184         not isNaN(NaN **       (-4294967295.0)) or
 8185         not isNaN(NaN **       (-2147483649.0)) or
 8186         not isNaN(NaN **       (-2147483648.0)) or
 8187         not isNaN(NaN **       (-2147483647.0)) or
 8188         not isNaN(NaN **                (-3.0)) or
 8189         not isNaN(NaN **                (-2.5)) or
 8190         not isNaN(NaN **                (-2.0)) or
 8191         not isNaN(NaN **                (-1.5)) or
 8192         not isNaN(NaN **                (-1.0)) or
 8193         not isNaN(NaN **                (-0.5)) or
 8194         not isNaN(NaN **                  0.5 ) or
 8195         not isNaN(NaN **                  1.0 ) or
 8196         not isNaN(NaN **                  1.5 ) or
 8197         not isNaN(NaN **                  2.0 ) or
 8198         not isNaN(NaN **                  2.5 ) or
 8199         not isNaN(NaN **                  3.0 ) or
 8200         not isNaN(NaN **         2147483647.0 ) or
 8201         not isNaN(NaN **         2147483648.0 ) or
 8202         not isNaN(NaN **         2147483649.0 ) or
 8203         not isNaN(NaN **         4294967295.0 ) or
 8204         not isNaN(NaN **         4294967296.0 ) or
 8205         not isNaN(NaN **         4294967297.0 ) or
 8206         not isNaN(NaN **   9007199254740991.0 ) or
 8207         not isNaN(NaN **   9007199254740992.0 ) or
 8208         not isNaN(NaN **   9007199254740993.0 ) or # Not exactly represented
 8209         not isNaN(NaN **   9007199254740994.0 ) or # Not exactly represented
 8210         not isNaN(NaN **             Infinity ) or
 8211         not isNaN(floatExpr(NaN) ** (          -Infinity)) or
 8212         not isNaN(floatExpr(NaN) ** (-9007199254740994.0)) or # Not exactly represented
 8213         not isNaN(floatExpr(NaN) ** (-9007199254740993.0)) or # Not exactly represented
 8214         not isNaN(floatExpr(NaN) ** (-9007199254740992.0)) or
 8215         not isNaN(floatExpr(NaN) ** (-9007199254740991.0)) or
 8216         not isNaN(floatExpr(NaN) **       (-4294967297.0)) or
 8217         not isNaN(floatExpr(NaN) **       (-4294967296.0)) or
 8218         not isNaN(floatExpr(NaN) **       (-4294967295.0)) or
 8219         not isNaN(floatExpr(NaN) **       (-2147483649.0)) or
 8220         not isNaN(floatExpr(NaN) **       (-2147483648.0)) or
 8221         not isNaN(floatExpr(NaN) **       (-2147483647.0)) or
 8222         not isNaN(floatExpr(NaN) **                (-3.0)) or
 8223         not isNaN(floatExpr(NaN) **                (-2.5)) or
 8224         not isNaN(floatExpr(NaN) **                (-2.0)) or
 8225         not isNaN(floatExpr(NaN) **                (-1.5)) or
 8226         not isNaN(floatExpr(NaN) **                (-1.0)) or
 8227         not isNaN(floatExpr(NaN) **                (-0.5)) or
 8228         not isNaN(floatExpr(NaN) **                  0.5 ) or
 8229         not isNaN(floatExpr(NaN) **                  1.0 ) or
 8230         not isNaN(floatExpr(NaN) **                  1.5 ) or
 8231         not isNaN(floatExpr(NaN) **                  2.0 ) or
 8232         not isNaN(floatExpr(NaN) **                  2.5 ) or
 8233         not isNaN(floatExpr(NaN) **                  3.0 ) or
 8234         not isNaN(floatExpr(NaN) **         2147483647.0 ) or
 8235         not isNaN(floatExpr(NaN) **         2147483648.0 ) or
 8236         not isNaN(floatExpr(NaN) **         2147483649.0 ) or
 8237         not isNaN(floatExpr(NaN) **         4294967295.0 ) or
 8238         not isNaN(floatExpr(NaN) **         4294967296.0 ) or
 8239         not isNaN(floatExpr(NaN) **         4294967297.0 ) or
 8240         not isNaN(floatExpr(NaN) **   9007199254740991.0 ) or
 8241         not isNaN(floatExpr(NaN) **   9007199254740992.0 ) or
 8242         not isNaN(floatExpr(NaN) **   9007199254740993.0 ) or # Not exactly represented
 8243         not isNaN(floatExpr(NaN) **   9007199254740994.0 ) or # Not exactly represented
 8244         not isNaN(floatExpr(NaN) **             Infinity ) or
 8245         not isNaN(NaN ** floatExpr(          -Infinity)) or
 8246         not isNaN(NaN ** floatExpr(-9007199254740994.0)) or # Not exactly represented
 8247         not isNaN(NaN ** floatExpr(-9007199254740993.0)) or # Not exactly represented
 8248         not isNaN(NaN ** floatExpr(-9007199254740992.0)) or
 8249         not isNaN(NaN ** floatExpr(-9007199254740991.0)) or
 8250         not isNaN(NaN ** floatExpr(      -4294967297.0)) or
 8251         not isNaN(NaN ** floatExpr(      -4294967296.0)) or
 8252         not isNaN(NaN ** floatExpr(      -4294967295.0)) or
 8253         not isNaN(NaN ** floatExpr(      -2147483649.0)) or
 8254         not isNaN(NaN ** floatExpr(      -2147483648.0)) or
 8255         not isNaN(NaN ** floatExpr(      -2147483647.0)) or
 8256         not isNaN(NaN ** floatExpr(               -3.0)) or
 8257         not isNaN(NaN ** floatExpr(               -2.5)) or
 8258         not isNaN(NaN ** floatExpr(               -2.0)) or
 8259         not isNaN(NaN ** floatExpr(               -1.5)) or
 8260         not isNaN(NaN ** floatExpr(               -1.0)) or
 8261         not isNaN(NaN ** floatExpr(               -0.5)) or
 8262         not isNaN(NaN ** floatExpr(                0.5)) or
 8263         not isNaN(NaN ** floatExpr(                1.0)) or
 8264         not isNaN(NaN ** floatExpr(                1.5)) or
 8265         not isNaN(NaN ** floatExpr(                2.0)) or
 8266         not isNaN(NaN ** floatExpr(                2.5)) or
 8267         not isNaN(NaN ** floatExpr(                3.0)) or
 8268         not isNaN(NaN ** floatExpr(       2147483647.0)) or
 8269         not isNaN(NaN ** floatExpr(       2147483648.0)) or
 8270         not isNaN(NaN ** floatExpr(       2147483649.0)) or
 8271         not isNaN(NaN ** floatExpr(       4294967295.0)) or
 8272         not isNaN(NaN ** floatExpr(       4294967296.0)) or
 8273         not isNaN(NaN ** floatExpr(       4294967297.0)) or
 8274         not isNaN(NaN ** floatExpr( 9007199254740991.0)) or
 8275         not isNaN(NaN ** floatExpr( 9007199254740992.0)) or
 8276         not isNaN(NaN ** floatExpr( 9007199254740993.0)) or # Not exactly represented
 8277         not isNaN(NaN ** floatExpr( 9007199254740994.0)) or # Not exactly represented
 8278         not isNaN(NaN ** floatExpr(           Infinity)) or
 8279         not isNaN(floatExpr(NaN) ** floatExpr(          -Infinity)) or
 8280         not isNaN(floatExpr(NaN) ** floatExpr(-9007199254740994.0)) or # Not exactly represented
 8281         not isNaN(floatExpr(NaN) ** floatExpr(-9007199254740993.0)) or # Not exactly represented
 8282         not isNaN(floatExpr(NaN) ** floatExpr(-9007199254740992.0)) or
 8283         not isNaN(floatExpr(NaN) ** floatExpr(-9007199254740991.0)) or
 8284         not isNaN(floatExpr(NaN) ** floatExpr(      -4294967297.0)) or
 8285         not isNaN(floatExpr(NaN) ** floatExpr(      -4294967296.0)) or
 8286         not isNaN(floatExpr(NaN) ** floatExpr(      -4294967295.0)) or
 8287         not isNaN(floatExpr(NaN) ** floatExpr(      -2147483649.0)) or
 8288         not isNaN(floatExpr(NaN) ** floatExpr(      -2147483648.0)) or
 8289         not isNaN(floatExpr(NaN) ** floatExpr(      -2147483647.0)) or
 8290         not isNaN(floatExpr(NaN) ** floatExpr(               -3.0)) or
 8291         not isNaN(floatExpr(NaN) ** floatExpr(               -2.5)) or
 8292         not isNaN(floatExpr(NaN) ** floatExpr(               -2.0)) or
 8293         not isNaN(floatExpr(NaN) ** floatExpr(               -1.5)) or
 8294         not isNaN(floatExpr(NaN) ** floatExpr(               -1.0)) or
 8295         not isNaN(floatExpr(NaN) ** floatExpr(               -0.5)) or
 8296         not isNaN(floatExpr(NaN) ** floatExpr(                0.5)) or
 8297         not isNaN(floatExpr(NaN) ** floatExpr(                1.0)) or
 8298         not isNaN(floatExpr(NaN) ** floatExpr(                1.5)) or
 8299         not isNaN(floatExpr(NaN) ** floatExpr(                2.0)) or
 8300         not isNaN(floatExpr(NaN) ** floatExpr(                2.5)) or
 8301         not isNaN(floatExpr(NaN) ** floatExpr(                3.0)) or
 8302         not isNaN(floatExpr(NaN) ** floatExpr(       2147483647.0)) or
 8303         not isNaN(floatExpr(NaN) ** floatExpr(       2147483648.0)) or
 8304         not isNaN(floatExpr(NaN) ** floatExpr(       2147483649.0)) or
 8305         not isNaN(floatExpr(NaN) ** floatExpr(       4294967295.0)) or
 8306         not isNaN(floatExpr(NaN) ** floatExpr(       4294967296.0)) or
 8307         not isNaN(floatExpr(NaN) ** floatExpr(       4294967297.0)) or
 8308         not isNaN(floatExpr(NaN) ** floatExpr( 9007199254740991.0)) or
 8309         not isNaN(floatExpr(NaN) ** floatExpr( 9007199254740992.0)) or
 8310         not isNaN(floatExpr(NaN) ** floatExpr( 9007199254740993.0)) or # Not exactly represented
 8311         not isNaN(floatExpr(NaN) ** floatExpr( 9007199254740994.0)) or # Not exactly represented
 8312         not isNaN(floatExpr(NaN) ** floatExpr(           Infinity)) then
 8313       writeln(" ***** NaN ** B for B <> 0.0 does not return NaN.");
 8314       okay := FALSE;
 8315     end if;
 8316 
 8317     if  not isNaN((-Infinity) ** NaN) or
 8318         not isNaN(     (-2.0) ** NaN) or
 8319         not isNaN(     (-1.0) ** NaN) or
 8320         not isNaN(       0.0  ** NaN) or
 8321         not isNaN(       2.0  ** NaN) or
 8322         not isNaN(      10.0  ** NaN) or
 8323         not isNaN(         E  ** NaN) or
 8324         not isNaN(  Infinity  ** NaN) or
 8325         not isNaN(       NaN  ** NaN) or
 8326         not isNaN(floatExpr(-Infinity) ** NaN) or
 8327         not isNaN(floatExpr(     -2.0) ** NaN) or
 8328         not isNaN(floatExpr(     -1.0) ** NaN) or
 8329         not isNaN(floatExpr(      0.0) ** NaN) or
 8330         not isNaN(floatExpr(      2.0) ** NaN) or
 8331         not isNaN(floatExpr(     10.0) ** NaN) or
 8332         not isNaN(floatExpr(        E) ** NaN) or
 8333         not isNaN(floatExpr( Infinity) ** NaN) or
 8334         not isNaN(floatExpr(      NaN) ** NaN) or
 8335         not isNaN((-Infinity) ** floatExpr(NaN)) or
 8336         not isNaN(     (-2.0) ** floatExpr(NaN)) or
 8337         not isNaN(     (-1.0) ** floatExpr(NaN)) or
 8338         not isNaN(       0.0  ** floatExpr(NaN)) or
 8339         not isNaN(       2.0  ** floatExpr(NaN)) or
 8340         not isNaN(      10.0  ** floatExpr(NaN)) or
 8341         not isNaN(         E  ** floatExpr(NaN)) or
 8342         not isNaN(  Infinity  ** floatExpr(NaN)) or
 8343         not isNaN(       NaN  ** floatExpr(NaN)) or
 8344         not isNaN(floatExpr(-Infinity) ** floatExpr(NaN)) or
 8345         not isNaN(floatExpr(     -2.0) ** floatExpr(NaN)) or
 8346         not isNaN(floatExpr(     -1.0) ** floatExpr(NaN)) or
 8347         not isNaN(floatExpr(      0.0) ** floatExpr(NaN)) or
 8348         not isNaN(floatExpr(      2.0) ** floatExpr(NaN)) or
 8349         not isNaN(floatExpr(     10.0) ** floatExpr(NaN)) or
 8350         not isNaN(floatExpr(        E) ** floatExpr(NaN)) or
 8351         not isNaN(floatExpr( Infinity) ** floatExpr(NaN)) or
 8352         not isNaN(floatExpr(      NaN) ** floatExpr(NaN)) then
 8353       writeln(" ***** A ** NaN for A <> 1.0 does not return NaN.");
 8354       okay := FALSE;
 8355     end if;
 8356 
 8357     if            NaN  **          (-0.0) <> 1.0 or
 8358                   NaN  **            0.0  <> 1.0 or
 8359         floatExpr(NaN) **          (-0.0) <> 1.0 or
 8360         floatExpr(NaN) **            0.0  <> 1.0 or
 8361                   NaN  ** floatExpr(-0.0) <> 1.0 or
 8362                   NaN  ** floatExpr( 0.0) <> 1.0 or
 8363         floatExpr(NaN) ** floatExpr(-0.0) <> 1.0 or
 8364         floatExpr(NaN) ** floatExpr( 0.0) <> 1.0 then
 8365       writeln(" ***** NaN ** 0.0 does not return 1.0.");
 8366       okay := FALSE;
 8367     end if;
 8368 
 8369     if            1.0  **           NaN  <> 1.0 or
 8370         floatExpr(1.0) **           NaN  <> 1.0 or
 8371                   1.0  ** floatExpr(NaN) <> 1.0 or
 8372         floatExpr(1.0) ** floatExpr(NaN) <> 1.0 then
 8373       writeln(" ***** 1.0 ** NaN does not return 1.0.");
 8374       okay := FALSE;
 8375     end if;
 8376 
 8377     if okay then
 8378       writeln("A ** B works correct for selected values.");
 8379     else
 8380       writeln(" ***** A ** B does not work correct.");
 8381     end if;
 8382   end func;
 8383 
 8384 
 8385 const proc: check_ipower is func
 8386   local
 8387     var boolean: okay is TRUE;
 8388   begin
 8389     if  (-2.0) ** (-2) <>  0.25 or
 8390         (-2.0) ** (-1) <> -0.5  or
 8391         (-2.0) **   0  <>  1.0  or
 8392         (-2.0) **   1  <> -2.0  or
 8393         (-2.0) **   2  <>  4.0  or
 8394         #(-1.5) ** (-2) <> 0.444444 or
 8395         #(-1.5) ** (-1) <> -0.666667 or
 8396         (-1.5) **   0  <>  1.0  or
 8397         (-1.5) **   1  <> -1.5  or
 8398         (-1.5) **   2  <>  2.25 or
 8399         (-0.5) ** (-2) <>  4.0  or
 8400         (-0.5) ** (-1) <> -2.0  or
 8401         (-0.5) **   0  <>  1.0  or
 8402         (-0.5) **   1  <> -0.5  or
 8403         (-0.5) **   2  <>  0.25 or
 8404           0.5  ** (-2) <>  4.0  or
 8405           0.5  ** (-1) <>  2.0  or
 8406           0.5  **   0  <>  1.0  or
 8407           0.5  **   1  <>  0.5  or
 8408           0.5  **   2  <>  0.25 or
 8409          #1.5  ** (-2) <>  0.444444 or
 8410          #1.5  ** (-1) <>  0.666667 or
 8411           1.5  **   0  <>  1.0  or
 8412           1.5  **   1  <>  1.5  or
 8413           1.5  **   2  <>  2.25 or
 8414         (-1.1) ** integer.first <> 0.0 or
 8415         (-0.9) ** integer.first <> Infinity or
 8416           0.9  ** integer.first <> Infinity or
 8417           1.1  ** integer.first <> 0.0 or
 8418         floatExpr(-2.0) ** (-2) <>  0.25 or
 8419         floatExpr(-2.0) ** (-1) <> -0.5  or
 8420         floatExpr(-2.0) **   0  <>  1.0  or
 8421         floatExpr(-2.0) **   1  <> -2.0  or
 8422         floatExpr(-2.0) **   2  <>  4.0  or
 8423         #floatExpr(-1.5) ** (-2) <> 0.444444 or
 8424         #floatExpr(-1.5) ** (-1) <> -0.666667 or
 8425         floatExpr(-1.5) **   0  <>  1.0  or
 8426         floatExpr(-1.5) **   1  <> -1.5  or
 8427         floatExpr(-1.5) **   2  <>  2.25 or
 8428         floatExpr(-0.5) ** (-2) <>  4.0  or
 8429         floatExpr(-0.5) ** (-1) <> -2.0  or
 8430         floatExpr(-0.5) **   0  <>  1.0  or
 8431         floatExpr(-0.5) **   1  <> -0.5  or
 8432         floatExpr(-0.5) **   2  <>  0.25 or
 8433         floatExpr( 0.5) ** (-2) <>  4.0  or
 8434         floatExpr( 0.5) ** (-1) <>  2.0  or
 8435         floatExpr( 0.5) **   0  <>  1.0  or
 8436         floatExpr( 0.5) **   1  <>  0.5  or
 8437         floatExpr( 0.5) **   2  <>  0.25 or
 8438         #floatExpr( 1.5) ** (-2) <>  0.444444 or
 8439         #floatExpr( 1.5) ** (-1) <>  0.666667 or
 8440         floatExpr( 1.5) **   0  <>  1.0  or
 8441         floatExpr( 1.5) **   1  <>  1.5  or
 8442         floatExpr( 1.5) **   2  <>  2.25 or
 8443         floatExpr(-1.1) ** integer.first <> 0.0 or
 8444         floatExpr(-0.9) ** integer.first <> Infinity or
 8445         floatExpr( 0.9) ** integer.first <> Infinity or
 8446         floatExpr( 1.1) ** integer.first <> 0.0 or
 8447         (-2.0) ** intExpr(-2) <>  0.25 or
 8448         (-2.0) ** intExpr(-1) <> -0.5  or
 8449         (-2.0) ** intExpr( 0) <>  1.0  or
 8450         (-2.0) ** intExpr( 1) <> -2.0  or
 8451         (-2.0) ** intExpr( 2) <>  4.0  or
 8452         #(-1.5) ** intExpr(-2) <> 0.444444 or
 8453         #(-1.5) ** intExpr(-1) <> -0.666667 or
 8454         (-1.5) ** intExpr( 0) <>  1.0  or
 8455         (-1.5) ** intExpr( 1) <> -1.5  or
 8456         (-1.5) ** intExpr( 2) <>  2.25 or
 8457         (-0.5) ** intExpr(-2) <>  4.0  or
 8458         (-0.5) ** intExpr(-1) <> -2.0  or
 8459         (-0.5) ** intExpr( 0) <>  1.0  or
 8460         (-0.5) ** intExpr( 1) <> -0.5  or
 8461         (-0.5) ** intExpr( 2) <>  0.25 or
 8462           0.5  ** intExpr(-2) <>  4.0  or
 8463           0.5  ** intExpr(-1) <>  2.0  or
 8464           0.5  ** intExpr( 0) <>  1.0  or
 8465           0.5  ** intExpr( 1) <>  0.5  or
 8466           0.5  ** intExpr( 2) <>  0.25 or
 8467          #1.5  ** intExpr(-2) <>  0.444444 or
 8468          #1.5  ** intExpr(-1) <>  0.666667 or
 8469           1.5  ** intExpr( 0) <>  1.0  or
 8470           1.5  ** intExpr( 1) <>  1.5  or
 8471           1.5  ** intExpr( 2) <>  2.25 or
 8472         (-1.1) ** intExpr(integer.first) <> 0.0 or
 8473         (-0.9) ** intExpr(integer.first) <> Infinity or
 8474           0.9  ** intExpr(integer.first) <> Infinity or
 8475           1.1  ** intExpr(integer.first) <> 0.0 or
 8476         floatExpr(-2.0) ** intExpr(-2) <>  0.25 or
 8477         floatExpr(-2.0) ** intExpr(-1) <> -0.5  or
 8478         floatExpr(-2.0) ** intExpr( 0) <>  1.0  or
 8479         floatExpr(-2.0) ** intExpr( 1) <> -2.0  or
 8480         floatExpr(-2.0) ** intExpr( 2) <>  4.0  or
 8481         #floatExpr(-1.5) ** intExpr(-2) <> 0.444444 or
 8482         #floatExpr(-1.5) ** intExpr(-1) <> -0.666667 or
 8483         floatExpr(-1.5) ** intExpr( 0) <>  1.0  or
 8484         floatExpr(-1.5) ** intExpr( 1) <> -1.5  or
 8485         floatExpr(-1.5) ** intExpr( 2) <>  2.25 or
 8486         floatExpr(-0.5) ** intExpr(-2) <>  4.0  or
 8487         floatExpr(-0.5) ** intExpr(-1) <> -2.0  or
 8488         floatExpr(-0.5) ** intExpr( 0) <>  1.0  or
 8489         floatExpr(-0.5) ** intExpr( 1) <> -0.5  or
 8490         floatExpr(-0.5) ** intExpr( 2) <>  0.25 or
 8491         floatExpr( 0.5) ** intExpr(-2) <>  4.0  or
 8492         floatExpr( 0.5) ** intExpr(-1) <>  2.0  or
 8493         floatExpr( 0.5) ** intExpr( 0) <>  1.0  or
 8494         floatExpr( 0.5) ** intExpr( 1) <>  0.5  or
 8495         floatExpr( 0.5) ** intExpr( 2) <>  0.25 or
 8496         #floatExpr( 1.5) ** intExpr(-2) <>  0.444444 or
 8497         #floatExpr( 1.5) ** intExpr(-1) <>  0.666667 or
 8498         floatExpr( 1.5) ** intExpr( 0) <>  1.0  or
 8499         floatExpr( 1.5) ** intExpr( 1) <>  1.5  or
 8500         floatExpr( 1.5) ** intExpr( 2) <>  2.25 or
 8501         floatExpr(-1.1) ** intExpr(integer.first) <> 0.0 or
 8502         floatExpr(-0.9) ** intExpr(integer.first) <> Infinity or
 8503         floatExpr( 0.9) ** intExpr(integer.first) <> Infinity or
 8504         floatExpr( 1.1) ** intExpr(integer.first) <> 0.0 then
 8505       writeln(" ***** A ** B with integer B does not work correct for selected values.");
 8506       okay := FALSE;
 8507     end if;
 8508 
 8509     if  (-2.0) **      integer.first  <> 0.0 or
 8510         (-2.0) ** (-9007199254740993) <> 0.0 or
 8511         (-2.0) ** (-9007199254740992) <> 0.0 or
 8512         (-2.0) **       (-2147483649) <> 0.0 or
 8513         (-2.0) **       (-2147483648) <> 0.0 or
 8514         (-2.0) ** (-1000) <>  9.33263618503218878990089544723817169617091446371708024621714339795966910975775634454440327097881102359594989930324242624215487521354032394841520817203930756234410666138325150273995075985901831511100490796265113118240512514795933790805178271125415103810698378854426481119469814228660959222017662910442798456169448887147466528006328368452647429261829862165202793195289493607117850663668741065439805530718136320599844826041954101213229629869502194514609904214608668361244792952034826864617657926916047420065936389041737895822118365078045556628444273925387517127854796781556346403714877681766899855392069265439424008711973674701749862626690747296762535803929376233833981046927874558605253696441650390625e-302 or
 8515         (-2.0) ** ( -777) <> -1.2580368690619400992630930670642290049228151004764953780943507245961510227088530391346965409619581274622438598009470989592763178178106372216104950371976994872158846753107043068125962477943865430246765239659515132500679733253773573442968156387862374544517729158500345225740840261937808914008531993591772366677435357882365926301734357710322786821188184892761835546430141790729736468138408856571932694214448299272577968593520269378135768742338158247517956391472854386669993697244754908216006714126797830970508340620028775447281077504158020019531250000000e-234 or
 8516         (-2.0) ** ( -500) <>  3.0549363634996046820519793932136176997894027405723266638936139092812916265247204577018572351080152282568751526935904671553178534278042839697351331142009178896307244205337728522220355888195318837008165086679301794879136633899370525163649789227021200352450820912190874482021196014946372110934030798550767828365183620409339937395998276770114898681640625e-151 or
 8517         (-2.0) ** ( -333) <> -5.714936956411374911078917741526704797259549974113993306075629216138163179533690978377240109300860148245915271766870141161102706811419593755630211467050206209827570086880426305042279198514760130828138429137652565259486436843872070312500000000e-101 or
 8518         (-2.0) ** ( -150) <>  7.00649232162408535461864791644958065640130970938257885878534141944895541342930300743319094181060791015625e-46 or
 8519         (-2.0) ** ( -100) <>  7.888609052210118054117285652827862296732064351090230047702789306640625e-31 or
 8520         (-2.0) ** (  -50) <>  8.8817841970012523233890533447265625e-16 or
 8521         (-2.0) ** (  -25) <> -2.98023223876953125e-8 or
 8522         (-2.0) ** (  -10) <>  9.765625e-4 or
 8523         (-2.0) ** (   -5) <> -3.125e-2 or
 8524         (-2.0) ** (   -2) <>  0.25 or
 8525         (-2.0) ** (   -1) <> -0.5 or
 8526         (-2.0) **      0  <>  1.0 or
 8527         (-2.0) **      1  <> -2.0 or
 8528         (-2.0) **      2  <>  4.0 or
 8529         (-2.0) **      5  <> -3.2e1 or
 8530         (-2.0) **     10  <>  1.024e3 or
 8531         (-2.0) **     25  <> -3.3554432e+7 or
 8532         (-2.0) **     50  <>  1.125899906842624e15 or
 8533         (-2.0) **    100  <>  1.267650600228229401496703205376e30 or
 8534         (-2.0) **    150  <>  1.427247692705959881058285969449495136382746624e+45 or
 8535         (-2.0) **    333  <> -1.74980057982640953949800178169409709228253554471456994914061648512796239935950073857881054161844305920000000000e+100 or
 8536         (-2.0) **    500  <>  3.273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376e150 or
 8537         (-2.0) **    777  <> -7.948892632579629747962774980928013082915256407637486649031946434693380877754249658014097453202669967106497181169311094815598489825867849684194750848210847432726809477226751516417358262433784037505346555871828320004571375891538216222720000000e+233 or
 8538         (-2.0) **   1000  <>  1.0715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376e301 or
 8539         (-2.0) **       2147483647 <> -Infinity or
 8540         (-2.0) **       2147483648 <>  Infinity or
 8541         (-2.0) ** 9007199254740992 <>  Infinity or
 8542         (-2.0) ** 9007199254740993 <> -Infinity or
 8543         (-2.0) **     integer.last <> -Infinity or
 8544         floatExpr(-2.0) **      integer.first  <> 0.0 or
 8545         floatExpr(-2.0) ** (-9007199254740993) <> 0.0 or
 8546         floatExpr(-2.0) ** (-9007199254740992) <> 0.0 or
 8547         floatExpr(-2.0) **       (-2147483649) <> 0.0 or
 8548         floatExpr(-2.0) **       (-2147483648) <> 0.0 or
 8549         floatExpr(-2.0) ** (-1000) <>  9.33263618503218878990089544723817169617091446371708024621714339795966910975775634454440327097881102359594989930324242624215487521354032394841520817203930756234410666138325150273995075985901831511100490796265113118240512514795933790805178271125415103810698378854426481119469814228660959222017662910442798456169448887147466528006328368452647429261829862165202793195289493607117850663668741065439805530718136320599844826041954101213229629869502194514609904214608668361244792952034826864617657926916047420065936389041737895822118365078045556628444273925387517127854796781556346403714877681766899855392069265439424008711973674701749862626690747296762535803929376233833981046927874558605253696441650390625e-302 or
 8550         floatExpr(-2.0) ** ( -777) <> -1.2580368690619400992630930670642290049228151004764953780943507245961510227088530391346965409619581274622438598009470989592763178178106372216104950371976994872158846753107043068125962477943865430246765239659515132500679733253773573442968156387862374544517729158500345225740840261937808914008531993591772366677435357882365926301734357710322786821188184892761835546430141790729736468138408856571932694214448299272577968593520269378135768742338158247517956391472854386669993697244754908216006714126797830970508340620028775447281077504158020019531250000000e-234 or
 8551         floatExpr(-2.0) ** ( -500) <>  3.0549363634996046820519793932136176997894027405723266638936139092812916265247204577018572351080152282568751526935904671553178534278042839697351331142009178896307244205337728522220355888195318837008165086679301794879136633899370525163649789227021200352450820912190874482021196014946372110934030798550767828365183620409339937395998276770114898681640625e-151 or
 8552         floatExpr(-2.0) ** ( -333) <> -5.714936956411374911078917741526704797259549974113993306075629216138163179533690978377240109300860148245915271766870141161102706811419593755630211467050206209827570086880426305042279198514760130828138429137652565259486436843872070312500000000e-101 or
 8553         floatExpr(-2.0) ** ( -150) <>  7.00649232162408535461864791644958065640130970938257885878534141944895541342930300743319094181060791015625e-46 or
 8554         floatExpr(-2.0) ** ( -100) <>  7.888609052210118054117285652827862296732064351090230047702789306640625e-31 or
 8555         floatExpr(-2.0) ** (  -50) <>  8.8817841970012523233890533447265625e-16 or
 8556         floatExpr(-2.0) ** (  -25) <> -2.98023223876953125e-8 or
 8557         floatExpr(-2.0) ** (  -10) <>  9.765625e-4 or
 8558         floatExpr(-2.0) ** (   -5) <> -3.125e-2 or
 8559         floatExpr(-2.0) ** (   -2) <>  0.25 or
 8560         floatExpr(-2.0) ** (   -1) <> -0.5 or
 8561         floatExpr(-2.0) **      0  <>  1.0 or
 8562         floatExpr(-2.0) **      1  <> -2.0 or
 8563         floatExpr(-2.0) **      2  <>  4.0 or
 8564         floatExpr(-2.0) **      5  <> -3.2e1 or
 8565         floatExpr(-2.0) **     10  <>  1.024e3 or
 8566         floatExpr(-2.0) **     25  <> -3.3554432e+7 or
 8567         floatExpr(-2.0) **     50  <>  1.125899906842624e15 or
 8568         floatExpr(-2.0) **    100  <>  1.267650600228229401496703205376e30 or
 8569         floatExpr(-2.0) **    150  <>  1.427247692705959881058285969449495136382746624e+45 or
 8570         floatExpr(-2.0) **    333  <> -1.74980057982640953949800178169409709228253554471456994914061648512796239935950073857881054161844305920000000000e+100 or
 8571         floatExpr(-2.0) **    500  <>  3.273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376e150 or
 8572         floatExpr(-2.0) **    777  <> -7.948892632579629747962774980928013082915256407637486649031946434693380877754249658014097453202669967106497181169311094815598489825867849684194750848210847432726809477226751516417358262433784037505346555871828320004571375891538216222720000000e+233 or
 8573         floatExpr(-2.0) **   1000  <>  1.0715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376e301 or
 8574         floatExpr(-2.0) **       2147483647 <> -Infinity or
 8575         floatExpr(-2.0) **       2147483648 <>  Infinity or
 8576         floatExpr(-2.0) ** 9007199254740992 <>  Infinity or
 8577         floatExpr(-2.0) ** 9007199254740993 <> -Infinity or
 8578         floatExpr(-2.0) **     integer.last <> -Infinity or
 8579         (-2.0) ** intExpr(    integer.first) <> 0.0 or
 8580         (-2.0) ** intExpr(-9007199254740993) <> 0.0 or
 8581         (-2.0) ** intExpr(-9007199254740992) <> 0.0 or
 8582         (-2.0) ** intExpr(      -2147483649) <> 0.0 or
 8583         (-2.0) ** intExpr(      -2147483648) <> 0.0 or
 8584         (-2.0) ** intExpr(-1000) <>  9.33263618503218878990089544723817169617091446371708024621714339795966910975775634454440327097881102359594989930324242624215487521354032394841520817203930756234410666138325150273995075985901831511100490796265113118240512514795933790805178271125415103810698378854426481119469814228660959222017662910442798456169448887147466528006328368452647429261829862165202793195289493607117850663668741065439805530718136320599844826041954101213229629869502194514609904214608668361244792952034826864617657926916047420065936389041737895822118365078045556628444273925387517127854796781556346403714877681766899855392069265439424008711973674701749862626690747296762535803929376233833981046927874558605253696441650390625e-302 or
 8585         (-2.0) ** intExpr( -777) <> -1.2580368690619400992630930670642290049228151004764953780943507245961510227088530391346965409619581274622438598009470989592763178178106372216104950371976994872158846753107043068125962477943865430246765239659515132500679733253773573442968156387862374544517729158500345225740840261937808914008531993591772366677435357882365926301734357710322786821188184892761835546430141790729736468138408856571932694214448299272577968593520269378135768742338158247517956391472854386669993697244754908216006714126797830970508340620028775447281077504158020019531250000000e-234 or
 8586         (-2.0) ** intExpr( -500) <>  3.0549363634996046820519793932136176997894027405723266638936139092812916265247204577018572351080152282568751526935904671553178534278042839697351331142009178896307244205337728522220355888195318837008165086679301794879136633899370525163649789227021200352450820912190874482021196014946372110934030798550767828365183620409339937395998276770114898681640625e-151 or
 8587         (-2.0) ** intExpr( -333) <> -5.714936956411374911078917741526704797259549974113993306075629216138163179533690978377240109300860148245915271766870141161102706811419593755630211467050206209827570086880426305042279198514760130828138429137652565259486436843872070312500000000e-101 or
 8588         (-2.0) ** intExpr( -150) <>  7.00649232162408535461864791644958065640130970938257885878534141944895541342930300743319094181060791015625e-46 or
 8589         (-2.0) ** intExpr( -100) <>  7.888609052210118054117285652827862296732064351090230047702789306640625e-31 or
 8590         (-2.0) ** intExpr(  -50) <>  8.8817841970012523233890533447265625e-16 or
 8591         (-2.0) ** intExpr(  -25) <> -2.98023223876953125e-8 or
 8592         (-2.0) ** intExpr(  -10) <>  9.765625e-4 or
 8593         (-2.0) ** intExpr(   -5) <> -3.125e-2 or
 8594         (-2.0) ** intExpr(   -2) <>  0.25 or
 8595         (-2.0) ** intExpr(   -1) <> -0.5 or
 8596         (-2.0) ** intExpr(    0) <>  1.0 or
 8597         (-2.0) ** intExpr(    1) <> -2.0 or
 8598         (-2.0) ** intExpr(    2) <>  4.0 or
 8599         (-2.0) ** intExpr(    5) <> -3.2e1 or
 8600         (-2.0) ** intExpr(   10) <>  1.024e3 or
 8601         (-2.0) ** intExpr(   25) <> -3.3554432e+7 or
 8602         (-2.0) ** intExpr(   50) <>  1.125899906842624e15 or
 8603         (-2.0) ** intExpr(  100) <>  1.267650600228229401496703205376e30 or
 8604         (-2.0) ** intExpr(  150) <>  1.427247692705959881058285969449495136382746624e+45 or
 8605         (-2.0) ** intExpr(  333) <> -1.74980057982640953949800178169409709228253554471456994914061648512796239935950073857881054161844305920000000000e+100 or
 8606         (-2.0) ** intExpr(  500) <>  3.273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376e150 or
 8607         (-2.0) ** intExpr(  777) <> -7.948892632579629747962774980928013082915256407637486649031946434693380877754249658014097453202669967106497181169311094815598489825867849684194750848210847432726809477226751516417358262433784037505346555871828320004571375891538216222720000000e+233 or
 8608         (-2.0) ** intExpr( 1000) <>  1.0715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376e301 or
 8609         (-2.0) ** intExpr(       2147483647) <> -Infinity or
 8610         (-2.0) ** intExpr(       2147483648) <>  Infinity or
 8611         (-2.0) ** intExpr( 9007199254740992) <>  Infinity or
 8612         (-2.0) ** intExpr( 9007199254740993) <> -Infinity or
 8613         (-2.0) ** intExpr(     integer.last) <> -Infinity or
 8614         floatExpr(-2.0) ** intExpr(    integer.first) <> 0.0 or
 8615         floatExpr(-2.0) ** intExpr(-9007199254740993) <> 0.0 or
 8616         floatExpr(-2.0) ** intExpr(-9007199254740992) <> 0.0 or
 8617         floatExpr(-2.0) ** intExpr(      -2147483649) <> 0.0 or
 8618         floatExpr(-2.0) ** intExpr(      -2147483648) <> 0.0 or
 8619         floatExpr(-2.0) ** intExpr(-1000) <>  9.33263618503218878990089544723817169617091446371708024621714339795966910975775634454440327097881102359594989930324242624215487521354032394841520817203930756234410666138325150273995075985901831511100490796265113118240512514795933790805178271125415103810698378854426481119469814228660959222017662910442798456169448887147466528006328368452647429261829862165202793195289493607117850663668741065439805530718136320599844826041954101213229629869502194514609904214608668361244792952034826864617657926916047420065936389041737895822118365078045556628444273925387517127854796781556346403714877681766899855392069265439424008711973674701749862626690747296762535803929376233833981046927874558605253696441650390625e-302 or
 8620         floatExpr(-2.0) ** intExpr( -777) <> -1.2580368690619400992630930670642290049228151004764953780943507245961510227088530391346965409619581274622438598009470989592763178178106372216104950371976994872158846753107043068125962477943865430246765239659515132500679733253773573442968156387862374544517729158500345225740840261937808914008531993591772366677435357882365926301734357710322786821188184892761835546430141790729736468138408856571932694214448299272577968593520269378135768742338158247517956391472854386669993697244754908216006714126797830970508340620028775447281077504158020019531250000000e-234 or
 8621         floatExpr(-2.0) ** intExpr( -500) <>  3.0549363634996046820519793932136176997894027405723266638936139092812916265247204577018572351080152282568751526935904671553178534278042839697351331142009178896307244205337728522220355888195318837008165086679301794879136633899370525163649789227021200352450820912190874482021196014946372110934030798550767828365183620409339937395998276770114898681640625e-151 or
 8622         floatExpr(-2.0) ** intExpr( -333) <> -5.714936956411374911078917741526704797259549974113993306075629216138163179533690978377240109300860148245915271766870141161102706811419593755630211467050206209827570086880426305042279198514760130828138429137652565259486436843872070312500000000e-101 or
 8623         floatExpr(-2.0) ** intExpr( -150) <>  7.00649232162408535461864791644958065640130970938257885878534141944895541342930300743319094181060791015625e-46 or
 8624         floatExpr(-2.0) ** intExpr( -100) <>  7.888609052210118054117285652827862296732064351090230047702789306640625e-31 or
 8625         floatExpr(-2.0) ** intExpr(  -50) <>  8.8817841970012523233890533447265625e-16 or
 8626         floatExpr(-2.0) ** intExpr(  -25) <> -2.98023223876953125e-8 or
 8627         floatExpr(-2.0) ** intExpr(  -10) <>  9.765625e-4 or
 8628         floatExpr(-2.0) ** intExpr(   -5) <> -3.125e-2 or
 8629         floatExpr(-2.0) ** intExpr(   -2) <>  0.25 or
 8630         floatExpr(-2.0) ** intExpr(   -1) <> -0.5 or
 8631         floatExpr(-2.0) ** intExpr(    0) <>  1.0 or
 8632         floatExpr(-2.0) ** intExpr(    1) <> -2.0 or
 8633         floatExpr(-2.0) ** intExpr(    2) <>  4.0 or
 8634         floatExpr(-2.0) ** intExpr(    5) <> -3.2e1 or
 8635         floatExpr(-2.0) ** intExpr(   10) <>  1.024e3 or
 8636         floatExpr(-2.0) ** intExpr(   25) <> -3.3554432e+7 or
 8637         floatExpr(-2.0) ** intExpr(   50) <>  1.125899906842624e15 or
 8638         floatExpr(-2.0) ** intExpr(  100) <>  1.267650600228229401496703205376e30 or
 8639         floatExpr(-2.0) ** intExpr(  150) <>  1.427247692705959881058285969449495136382746624e+45 or
 8640         floatExpr(-2.0) ** intExpr(  333) <> -1.74980057982640953949800178169409709228253554471456994914061648512796239935950073857881054161844305920000000000e+100 or
 8641         floatExpr(-2.0) ** intExpr(  500) <>  3.273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376e150 or
 8642         floatExpr(-2.0) ** intExpr(  777) <> -7.948892632579629747962774980928013082915256407637486649031946434693380877754249658014097453202669967106497181169311094815598489825867849684194750848210847432726809477226751516417358262433784037505346555871828320004571375891538216222720000000e+233 or
 8643         floatExpr(-2.0) ** intExpr( 1000) <>  1.0715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376e301 or
 8644         floatExpr(-2.0) ** intExpr(       2147483647) <> -Infinity or
 8645         floatExpr(-2.0) ** intExpr(       2147483648) <>  Infinity or
 8646         floatExpr(-2.0) ** intExpr( 9007199254740992) <>  Infinity or
 8647         floatExpr(-2.0) ** intExpr( 9007199254740993) <> -Infinity or
 8648         floatExpr(-2.0) ** intExpr(     integer.last) <> -Infinity then
 8649       writeln(" ***** (-2.0) ** B with integer B does not work correct.");
 8650       okay := FALSE;
 8651     end if;
 8652 
 8653     if  (-1.0) **      integer.first  <>  1.0 or
 8654         (-1.0) ** (-9007199254740993) <> -1.0 or
 8655         (-1.0) ** (-9007199254740992) <>  1.0 or
 8656         (-1.0) **       (-2147483649) <> -1.0 or
 8657         (-1.0) **       (-2147483648) <>  1.0 or
 8658         (-1.0) **                (-2) <>  1.0 or
 8659         (-1.0) **                (-1) <> -1.0 or
 8660         (-1.0) **                  0  <>  1.0 or
 8661         (-1.0) **                  1  <> -1.0 or
 8662         (-1.0) **                  2  <>  1.0 or
 8663         (-1.0) **         2147483647  <> -1.0 or
 8664         (-1.0) **         2147483648  <>  1.0 or
 8665         (-1.0) **   9007199254740992  <>  1.0 or
 8666         (-1.0) **   9007199254740993  <> -1.0 or
 8667         (-1.0) **       integer.last  <> -1.0 or
 8668         floatExpr(-1.0) **      integer.first  <>  1.0 or
 8669         floatExpr(-1.0) ** (-9007199254740993) <> -1.0 or
 8670         floatExpr(-1.0) ** (-9007199254740992) <>  1.0 or
 8671         floatExpr(-1.0) **       (-2147483649) <> -1.0 or
 8672         floatExpr(-1.0) **       (-2147483648) <>  1.0 or
 8673         floatExpr(-1.0) **                (-2) <>  1.0 or
 8674         floatExpr(-1.0) **                (-1) <> -1.0 or
 8675         floatExpr(-1.0) **                  0  <>  1.0 or
 8676         floatExpr(-1.0) **                  1  <> -1.0 or
 8677         floatExpr(-1.0) **                  2  <>  1.0 or
 8678         floatExpr(-1.0) **         2147483647  <> -1.0 or
 8679         floatExpr(-1.0) **         2147483648  <>  1.0 or
 8680         floatExpr(-1.0) **   9007199254740992  <>  1.0 or
 8681         floatExpr(-1.0) **   9007199254740993  <> -1.0 or
 8682         floatExpr(-1.0) **       integer.last  <> -1.0 or
 8683         (-1.0) ** intExpr(    integer.first) <>  1.0 or
 8684         (-1.0) ** intExpr(-9007199254740993) <> -1.0 or
 8685         (-1.0) ** intExpr(-9007199254740992) <>  1.0 or
 8686         (-1.0) ** intExpr(      -2147483649) <> -1.0 or
 8687         (-1.0) ** intExpr(      -2147483648) <>  1.0 or
 8688         (-1.0) ** intExpr(               -2) <>  1.0 or
 8689         (-1.0) ** intExpr(               -1) <> -1.0 or
 8690         (-1.0) ** intExpr(                0) <>  1.0 or
 8691         (-1.0) ** intExpr(                1) <> -1.0 or
 8692         (-1.0) ** intExpr(                2) <>  1.0 or
 8693         (-1.0) ** intExpr(       2147483647) <> -1.0 or
 8694         (-1.0) ** intExpr(       2147483648) <>  1.0 or
 8695         (-1.0) ** intExpr( 9007199254740992) <>  1.0 or
 8696         (-1.0) ** intExpr( 9007199254740993) <> -1.0 or
 8697         (-1.0) ** intExpr(     integer.last) <> -1.0 or
 8698         floatExpr(-1.0) ** intExpr(    integer.first) <>  1.0 or
 8699         floatExpr(-1.0) ** intExpr(-9007199254740993) <> -1.0 or
 8700         floatExpr(-1.0) ** intExpr(-9007199254740992) <>  1.0 or
 8701         floatExpr(-1.0) ** intExpr(      -2147483649) <> -1.0 or
 8702         floatExpr(-1.0) ** intExpr(      -2147483648) <>  1.0 or
 8703         floatExpr(-1.0) ** intExpr(               -2) <>  1.0 or
 8704         floatExpr(-1.0) ** intExpr(               -1) <> -1.0 or
 8705         floatExpr(-1.0) ** intExpr(                0) <>  1.0 or
 8706         floatExpr(-1.0) ** intExpr(                1) <> -1.0 or
 8707         floatExpr(-1.0) ** intExpr(                2) <>  1.0 or
 8708         floatExpr(-1.0) ** intExpr(       2147483647) <> -1.0 or
 8709         floatExpr(-1.0) ** intExpr(       2147483648) <>  1.0 or
 8710         floatExpr(-1.0) ** intExpr( 9007199254740992) <>  1.0 or
 8711         floatExpr(-1.0) ** intExpr( 9007199254740993) <> -1.0 or
 8712         floatExpr(-1.0) ** intExpr(     integer.last) <> -1.0 then
 8713       writeln(" ***** (-1.0) ** B with integer B does not return 1.0 respectively -1.0.");
 8714       okay := FALSE;
 8715     end if;
 8716 
 8717     if  (-0.0) **      integer.first  <>  Infinity or
 8718         (-0.0) ** (-9007199254740993) <> -Infinity or
 8719         (-0.0) ** (-9007199254740992) <>  Infinity or
 8720         (-0.0) **       (-4294967297) <> -Infinity or
 8721         (-0.0) **       (-4294967296) <>  Infinity or
 8722         (-0.0) **       (-4294967295) <> -Infinity or
 8723         (-0.0) **       (-2147483649) <> -Infinity or
 8724         (-0.0) **       (-2147483648) <>  Infinity or
 8725         (-0.0) **       (-2147483647) <> -Infinity or
 8726         (-0.0) **               (-30) <>  Infinity or
 8727         (-0.0) **               (-29) <> -Infinity or
 8728         (-0.0) **               (-28) <>  Infinity or
 8729         (-0.0) **               (-27) <> -Infinity or
 8730         (-0.0) **               (-26) <>  Infinity or
 8731         (-0.0) **               (-25) <> -Infinity or
 8732         (-0.0) **               (-24) <>  Infinity or
 8733         (-0.0) **               (-23) <> -Infinity or
 8734         (-0.0) **               (-22) <>  Infinity or
 8735         (-0.0) **               (-21) <> -Infinity or
 8736         (-0.0) **               (-20) <>  Infinity or
 8737         (-0.0) **               (-19) <> -Infinity or
 8738         (-0.0) **               (-18) <>  Infinity or
 8739         (-0.0) **               (-17) <> -Infinity or
 8740         (-0.0) **               (-16) <>  Infinity or
 8741         (-0.0) **               (-15) <> -Infinity or
 8742         (-0.0) **               (-14) <>  Infinity or
 8743         (-0.0) **               (-13) <> -Infinity or
 8744         (-0.0) **               (-12) <>  Infinity or
 8745         (-0.0) **               (-11) <> -Infinity or
 8746         (-0.0) **               (-10) <>  Infinity or
 8747         (-0.0) **                (-9) <> -Infinity or
 8748         (-0.0) **                (-8) <>  Infinity or
 8749         (-0.0) **                (-7) <> -Infinity or
 8750         (-0.0) **                (-6) <>  Infinity or
 8751         (-0.0) **                (-5) <> -Infinity or
 8752         (-0.0) **                (-4) <>  Infinity or
 8753         (-0.0) **                (-3) <> -Infinity or
 8754         (-0.0) **                (-2) <>  Infinity or
 8755         (-0.0) **                (-1) <> -Infinity or
 8756         floatExpr(-0.0) **      integer.first  <>  Infinity or
 8757         floatExpr(-0.0) ** (-9007199254740993) <> -Infinity or
 8758         floatExpr(-0.0) ** (-9007199254740992) <>  Infinity or
 8759         floatExpr(-0.0) **       (-4294967297) <> -Infinity or
 8760         floatExpr(-0.0) **       (-4294967296) <>  Infinity or
 8761         floatExpr(-0.0) **       (-4294967295) <> -Infinity or
 8762         floatExpr(-0.0) **       (-2147483649) <> -Infinity or
 8763         floatExpr(-0.0) **       (-2147483648) <>  Infinity or
 8764         floatExpr(-0.0) **       (-2147483647) <> -Infinity or
 8765         floatExpr(-0.0) **               (-30) <>  Infinity or
 8766         floatExpr(-0.0) **               (-29) <> -Infinity or
 8767         floatExpr(-0.0) **               (-28) <>  Infinity or
 8768         floatExpr(-0.0) **               (-27) <> -Infinity or
 8769         floatExpr(-0.0) **               (-26) <>  Infinity or
 8770         floatExpr(-0.0) **               (-25) <> -Infinity or
 8771         floatExpr(-0.0) **               (-24) <>  Infinity or
 8772         floatExpr(-0.0) **               (-23) <> -Infinity or
 8773         floatExpr(-0.0) **               (-22) <>  Infinity or
 8774         floatExpr(-0.0) **               (-21) <> -Infinity or
 8775         floatExpr(-0.0) **               (-20) <>  Infinity or
 8776         floatExpr(-0.0) **               (-19) <> -Infinity or
 8777         floatExpr(-0.0) **               (-18) <>  Infinity or
 8778         floatExpr(-0.0) **               (-17) <> -Infinity or
 8779         floatExpr(-0.0) **               (-16) <>  Infinity or
 8780         floatExpr(-0.0) **               (-15) <> -Infinity or
 8781         floatExpr(-0.0) **               (-14) <>  Infinity or
 8782         floatExpr(-0.0) **               (-13) <> -Infinity or
 8783         floatExpr(-0.0) **               (-12) <>  Infinity or
 8784         floatExpr(-0.0) **               (-11) <> -Infinity or
 8785         floatExpr(-0.0) **               (-10) <>  Infinity or
 8786         floatExpr(-0.0) **                (-9) <> -Infinity or
 8787         floatExpr(-0.0) **                (-8) <>  Infinity or
 8788         floatExpr(-0.0) **                (-7) <> -Infinity or
 8789         floatExpr(-0.0) **                (-6) <>  Infinity or
 8790         floatExpr(-0.0) **                (-5) <> -Infinity or
 8791         floatExpr(-0.0) **                (-4) <>  Infinity or
 8792         floatExpr(-0.0) **                (-3) <> -Infinity or
 8793         floatExpr(-0.0) **                (-2) <>  Infinity or
 8794         floatExpr(-0.0) **                (-1) <> -Infinity or
 8795         (-0.0) ** intExpr(    integer.first) <>  Infinity or
 8796         (-0.0) ** intExpr(-9007199254740993) <> -Infinity or
 8797         (-0.0) ** intExpr(-9007199254740992) <>  Infinity or
 8798         (-0.0) ** intExpr(      -4294967297) <> -Infinity or
 8799         (-0.0) ** intExpr(      -4294967296) <>  Infinity or
 8800         (-0.0) ** intExpr(      -4294967295) <> -Infinity or
 8801         (-0.0) ** intExpr(      -2147483649) <> -Infinity or
 8802         (-0.0) ** intExpr(      -2147483648) <>  Infinity or
 8803         (-0.0) ** intExpr(      -2147483647) <> -Infinity or
 8804         (-0.0) ** intExpr(              -30) <>  Infinity or
 8805         (-0.0) ** intExpr(              -29) <> -Infinity or
 8806         (-0.0) ** intExpr(              -28) <>  Infinity or
 8807         (-0.0) ** intExpr(              -27) <> -Infinity or
 8808         (-0.0) ** intExpr(              -26) <>  Infinity or
 8809         (-0.0) ** intExpr(              -25) <> -Infinity or
 8810         (-0.0) ** intExpr(              -24) <>  Infinity or
 8811         (-0.0) ** intExpr(              -23) <> -Infinity or
 8812         (-0.0) ** intExpr(              -22) <>  Infinity or
 8813         (-0.0) ** intExpr(              -21) <> -Infinity or
 8814         (-0.0) ** intExpr(              -20) <>  Infinity or
 8815         (-0.0) ** intExpr(              -19) <> -Infinity or
 8816         (-0.0) ** intExpr(              -18) <>  Infinity or
 8817         (-0.0) ** intExpr(              -17) <> -Infinity or
 8818         (-0.0) ** intExpr(              -16) <>  Infinity or
 8819         (-0.0) ** intExpr(              -15) <> -Infinity or
 8820         (-0.0) ** intExpr(              -14) <>  Infinity or
 8821         (-0.0) ** intExpr(              -13) <> -Infinity or
 8822         (-0.0) ** intExpr(              -12) <>  Infinity or
 8823         (-0.0) ** intExpr(              -11) <> -Infinity or
 8824         (-0.0) ** intExpr(              -10) <>  Infinity or
 8825         (-0.0) ** intExpr(               -9) <> -Infinity or
 8826         (-0.0) ** intExpr(               -8) <>  Infinity or
 8827         (-0.0) ** intExpr(               -7) <> -Infinity or
 8828         (-0.0) ** intExpr(               -6) <>  Infinity or
 8829         (-0.0) ** intExpr(               -5) <> -Infinity or
 8830         (-0.0) ** intExpr(               -4) <>  Infinity or
 8831         (-0.0) ** intExpr(               -3) <> -Infinity or
 8832         (-0.0) ** intExpr(               -2) <>  Infinity or
 8833         (-0.0) ** intExpr(               -1) <> -Infinity or
 8834         floatExpr(-0.0) ** intExpr(    integer.first) <>  Infinity or
 8835         floatExpr(-0.0) ** intExpr(-9007199254740993) <> -Infinity or
 8836         floatExpr(-0.0) ** intExpr(-9007199254740992) <>  Infinity or
 8837         floatExpr(-0.0) ** intExpr(      -4294967297) <> -Infinity or
 8838         floatExpr(-0.0) ** intExpr(      -4294967296) <>  Infinity or
 8839         floatExpr(-0.0) ** intExpr(      -4294967295) <> -Infinity or
 8840         floatExpr(-0.0) ** intExpr(      -2147483649) <> -Infinity or
 8841         floatExpr(-0.0) ** intExpr(      -2147483648) <>  Infinity or
 8842         floatExpr(-0.0) ** intExpr(      -2147483647) <> -Infinity or
 8843         floatExpr(-0.0) ** intExpr(              -30) <>  Infinity or
 8844         floatExpr(-0.0) ** intExpr(              -29) <> -Infinity or
 8845         floatExpr(-0.0) ** intExpr(              -28) <>  Infinity or
 8846         floatExpr(-0.0) ** intExpr(              -27) <> -Infinity or
 8847         floatExpr(-0.0) ** intExpr(              -26) <>  Infinity or
 8848         floatExpr(-0.0) ** intExpr(              -25) <> -Infinity or
 8849         floatExpr(-0.0) ** intExpr(              -24) <>  Infinity or
 8850         floatExpr(-0.0) ** intExpr(              -23) <> -Infinity or
 8851         floatExpr(-0.0) ** intExpr(              -22) <>  Infinity or
 8852         floatExpr(-0.0) ** intExpr(              -21) <> -Infinity or
 8853         floatExpr(-0.0) ** intExpr(              -20) <>  Infinity or
 8854         floatExpr(-0.0) ** intExpr(              -19) <> -Infinity or
 8855         floatExpr(-0.0) ** intExpr(              -18) <>  Infinity or
 8856         floatExpr(-0.0) ** intExpr(              -17) <> -Infinity or
 8857         floatExpr(-0.0) ** intExpr(              -16) <>  Infinity or
 8858         floatExpr(-0.0) ** intExpr(              -15) <> -Infinity or
 8859         floatExpr(-0.0) ** intExpr(              -14) <>  Infinity or
 8860         floatExpr(-0.0) ** intExpr(              -13) <> -Infinity or
 8861         floatExpr(-0.0) ** intExpr(              -12) <>  Infi