[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]