Rules for Arithmetic Assignment and NAT1305

Hello all!

Here’s a sample code:

define data local
1 #f8 (F8)
1 #p20_5 (p20.5) init <100000>
1 #two_p (P20.5) init <2>
1 #two_f (f8)    init <2>
end-define
*
reset #f8
#f8 := #f8 + #p20_5 ** 2         /* NAT1305
*
reset #f8
#f8 := #f8 + #p20_5 ** #two_p    /* NAT1305
*
reset #f8
#f8 := #f8 + #p20_5 ** #two_f    /* OK
*
reset #f8
#f8 := #f8 + #p20_5 * #p20_5     /* OK
*
#f8 := #p20_5 ** 2               /* OK
*
end

Since I read Natural’s documentation about “Precision of Results for Arithmetic Operations” (see http://techcommunity.softwareag.com/ecosystem/documentation/natural/nat634win/pg/pg_furth_arithm.htm#AO_Prec_Results ), I understand the NAT1305 of the first two COMPUTE-Statements. But then, I don’t unterstand why the last two COMPUTE-Statements are OK. Any Ideas?

Thanks,

Matthias