=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/spexpr.c,v retrieving revision 1.36 retrieving revision 1.44 diff -u -p -r1.36 -r1.44 --- OpenXM_contrib2/asir2000/io/spexpr.c 2005/11/16 23:42:54 1.36 +++ OpenXM_contrib2/asir2000/io/spexpr.c 2019/12/24 10:26:38 1.44 @@ -44,7 +44,7 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2000/io/spexpr.c,v 1.35 2004/12/18 16:50:10 saito Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/spexpr.c,v 1.43 2019/11/12 10:52:05 kondoh Exp $ */ #include "ca.h" #include "al.h" @@ -56,10 +56,6 @@ #define SPRINT #endif -#if defined(PARI) -#include "genpari.h" -#endif - extern int outputstyle; static char *buf; @@ -94,6 +90,7 @@ extern int hideargs; #define PRINTSTR sprintstr #define PRINTCOMP sprintcomp #define PRINTDP sprintdp +#define PRINTDPM sprintdpm #define PRINTUI sprintui #define PRINTGF2MAT sprintgf2mat #define PRINTGFMMAT sprintgfmmat @@ -118,6 +115,10 @@ extern int hideargs; #define PRINTFNODENODE sprintfnodenode #define PRINTFARGS sprintfargs +#if defined(INTERVAL) +#define PRINTBF4ITV sprintbf4itv +#endif + #include "pexpr_body.c" /* special functions for string output */ @@ -125,32 +126,37 @@ extern int hideargs; void soutput_init(s) char *s; { - s[0] = 0; buf = s; + s[0] = 0; buf = s; } -#if defined(PARI) -void myoutbrute(g) -GEN g; +void sprintbf(BF a) { -# if PARI_VERSION_CODE > 131588 - brute(g, 'f', -1); -# else - bruteall(g,'f',-1,1); -# endif + int dprec; + char fbuf[BUFSIZ]; + char *s; + dprec = a->body->_mpfr_prec*0.30103; + sprintf(fbuf,"%%.%dR%c",dprec,(double_output==1)?'f':(double_output==2)?'e':'g'); + mpfr_asprintf(&s,fbuf,a->body); + TAIL PUTS(s); + mpfr_free_str(s); } -void sprintbf(BF a) +#if defined(INTERVAL) +void sprintbf4itv(BF a) { - char *str; - char *GENtostr0(); + int dprec; + char fbuf[BUFSIZ]; + char *s; - if ( double_output ) { - str = GENtostr0(a->body,myoutbrute); - } else { - str = GENtostr(a->body); - } - TAIL PRINTF(OUT,"%s",str); - free(str); + if ( !a ) { + TAIL PUTS("0"); + } else { + dprec = a->body->_mpfr_prec*0.30103; + dprec += 1; + sprintf(fbuf,"%%.%dR%c",dprec,(double_output==1)?'f':(double_output==2)?'e':'g'); + mpfr_asprintf(&s,fbuf,a->body); + TAIL PUTS(s); + mpfr_free_str(s); + } } #endif -