I ran across an anomaly in CLN that occurs when an integer zero value is combined with an extended precision floating point number. Consider the following cl_R a,b,r; Now assign a cl_I variable whose value is zero to a, and a high precision cl_LF value to b. Then perform any of the following operations. r = a * b; r = b * a; r = a / b; In every case, the precision degrades to the default value. However, if the integer value in a is anything other than zero, the result has the precision of b. Since this only occurs for multiply and divide, I suspect it may be due to some shortcut that is taken when one of the operands is zero. The same anomaly occurs if the variables are declared cl_N and operand b is a high precision floating point complex number. The simplest way to demonstrate this behavior is to use the clnum Python module. The following session is on a 64-bit platform with version 1.1.9 of CLN.
from clnum import mpf x=mpf(1,50) x mpf('1.0',55) 0*x # Results in default precision mpf('0.0',36) 1*x # Preserves the precision mpf('1.0',55)
Ray Buvel P.S. Is there another way to report anomalies other than posting to the list?