up previous next
NewRingTwinFloat --
create a new twin-float ring
|
NewRingTwinFloat(Prec: INT): RING |
Create a new twin-float ring with bit precision
Prec.
NOTE: calling twice
NewRingTwinFloat will produce two different
rings, even with identical arguments, since the equality test for
rings is performed on the pointers: see manual entry for
RingID
.
For more information see the article:
John Abbott, "Twin-float arithmetic",
Journal of Symbolic Computation, Volume 47 (2012), 536--551.
/**/ RR32 := NewRingTwinFloat(32);
/**/ use RR32[x];
/**/ (3*x-1)/3;
x -0.3333333333333333333
/**/ RR64 := NewRingTwinFloat(64);
/**/ use RR64[x];
/**/ (3*x-1)/3;
x -0.333333333333333333333333333333333333333
|