| Karim Belabas on Fri, 05 Oct 2007 14:56:58 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: two (stupid) questions |
* Alessandro Languasco [2007-10-05 11:39]:
> Dear all,
>
> I'm writing a pari/gp script and I have two problems that,
> for sure, are described and solved in the User's Guide.... but I wasn't
> able to find a solution there.... so I'm asking for your help.
> Thanks in advance !
>
> 1) I would like to save the results of the gp-script on a file but
> using just
> a part of the avalible decimal digits; i.e. I'm computing the results
> with 100 decimal digits but I would like that just the first
> 25 are saved on the file in TeX format. I think that
> some suffix has to be added to the writetex(namefile, result)
> istruction, but which one ?
Two possibilities:
1) Round the input to smaller accuracy, then print using the default
precision
writetex(namefile, precision(result,28))
No way to obtain exactly 25 digits in this way [ either 28 or 19 ]
2) Use an ugly hack:
oldprec = default(realprecision);
default(realprecision,25);
writetex(namefile, result)
default(realprecision, oldprec);
N.B in most cases, you can keep the realprecision very low from some
point on and don't need to constantly change / restore as above: gp only
uses the realprecision for printing and to convert exact inputs to
inexact ones; the precision of the inputs is used otherwise.
3) The last one is so ugly I'd never recommend it, so it doesn't count towards
the two possibilities :-)
writetex(namefile,
Strchr( vecextract(Vec(Vecsmall(Str(result))), Str("..26")) )
)
> 2) In my script I have two parts: a precomputation and
> a final part. I would like to be able to know the computation time for
> both of them but it is not clear to me
> how to use the timer in a script.
gettime(); \\ initialize
...precompute...
print("Precomputation: ", gettime());
...compute...
print("Computation: ", gettime());
Cheers,
K.B.
--
Karim Belabas Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation http://www.math.u-bordeaux.fr/~belabas/
F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]