[back] [prev] [next] [index] [root]
OrderPrec
Sets or returns the internal precision for calculations in orders.
Syntax:
P := OrderPrec(p);
P := OrderPrec();
L := OrderPrec(o,p);
L := OrderPrec(o,p,u);
L := OrderPrec(o);
small integer |
P |
|
small integer |
p |
|
order |
o |
|
small integer |
u |
|
list |
L |
precisions of both real rings belonging to o |
See also: Prec
Description:
To every order in KASH internally there belong two "real rings". One of these rings is used for computations with (real)
approximations to the elements of o, the other
ring is used for computations in which units and their
logarithms are involved. When a new order is
created, both rings obtain the same precision which is taken
from an internal KANT constant named
Real_Std_Prec.\smallskip
Note however, that all precisions are automatically enlarged to a
multiple of 4. \bigskip
OrderPrec(p)
Sets the internal KANT constant Real_Std_Prec
and returns the new value of this constant. Already existing
orders are not affected. \medskip
OrderPrec()
Returns the current value of Real_Std_Prec.\medskip
OrderPrec(o,p)
The precisions of both "real rings" in the order {o} are
set to p. A list L containing the
precisions of both "real rings" of {o} is returned. \medskip
OrderPrec(o,p,u)
The precision for the first "real ring" of the order
{o} is set to p and the precision of the second is
set to u. A list L containing the precisions of both
"real rings" of {o} is returned. \medskip
OrderPrec(o)
Returns a list L containing the precisions of both
"real rings" of {o}.
Example:
We compute the regulator of the maximal order {O} in
{Q}(\sqrt[4]{2}). First, we use the default
precision of 50 digits. Then we increase the precision of
the order and print the regulator again. Remark that we must
use the Prec function to increase the precision in order to print all 60 digits.
kash> OrderPrec();
50
kash> O := OrderMaximal(Order(Z,4,2));
Generating polynomial: x^4 - 2
Discriminant: -2048
kash> OrderPrec(O);
[ 52, 52 ]
kash> OrderUnitsFund(O);
[ [1, 0, 1, 0], [1, -1, 0, 0] ]
kash> OrderReg(O);
2.15800131645680564826065544584339217422724449652
kash> OrderPrec(O,60);
[ 60, 60 ]
kash> OrderReg(O);
2.158001316456805648260655445843392174227244496522
kash> Prec(60);
60
kash> OrderReg(O);
2.15800131645680564826065544584339217422724449652236075411
<- back[back] [prev] [next] [index] [root]