Hi, take these as mild suggestions...
1)
I feel like if the current system of Float numbers as it is is quite
user-unsafe (!) because it allows operations f(x,y) combining FloatS x,y with
different number of digits resulting in the *highest* one (ie something like
coerce a Float to higher precision). This is a convention that gives false
sense of security to a user that plays with the global variable digits().
Example:
(1) -> x:Float:=%pi
(1) 3.1415926535_897932385
Type: Float
-- all digits after 20-th will be set below to (?) zero but this is an
arbitrary convention
-- so they are "rubbish". Analog statement if the implementation is binary.
(2) -> digits(50)
(2) 20
Type: PositiveInteger
(3) -> x
(3) 3.1415926535_897932385
Type: Float
(4) -> y:Float:=%pi
(4) 3.1415926535_8979323846_2643383279_5028841971_693993751
Type: Float
(5) -> (y-x)/y
(5) 0.1287414678_9751207735_7225992816_9904172693_1308680622 E -20
Type: Float
--- the 50 digits shown above are "rubbish", just convention dependent
So my point is that ideally one should have domains no coercitions to higher
precisions, maybe to lower ones, or user conversions. Say, domains
Float(d:PositiveIntegers). I'm willingly not distinguishing here among absolute
or relative precision, the problem being more general.
Of course in the present state if a user does not mix precisions (the best
choice which should be recommended) or knows that the error is influenced by
the lowest precision number (s)he entered, everything will be fine.
2)
Given that the precision of a Float x at runtime depends on its history and may be
unrelated to the current value of digits(), it would be useful to have functions
digits, precision of signature Float -> PositiveIntegers that estimate the
corresponding quantities for a given x.
Best
ric
--
You received this message because you are subscribed to the Google Groups "FriCAS -
computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.