=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/pexpr.c,v retrieving revision 1.43 retrieving revision 1.46 diff -u -p -r1.43 -r1.46 --- OpenXM_contrib2/asir2000/io/pexpr.c 2018/03/29 01:32:53 1.43 +++ OpenXM_contrib2/asir2000/io/pexpr.c 2019/12/24 10:26:38 1.46 @@ -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/pexpr.c,v 1.42 2017/08/31 02:36:21 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/pexpr.c,v 1.45 2019/11/12 10:52:04 kondoh Exp $ */ #include "ca.h" #include "al.h" @@ -122,6 +122,10 @@ int printmode = PRINTF_G; #define PRINTFNODENODE printfnodenode #define PRINTFARGS printfargs +#if defined(INTERVAL) +#define PRINTBF4ITV printbf4itv +#endif + #include "pexpr_body.c" /* spetial functions for file output */ @@ -157,9 +161,29 @@ void printbf(BF a) char *s; dprec = (a->body->_mpfr_prec)*0.30103; if ( !dprec ) dprec = 1; - sprintf(fbuf,"%%.%dR%c",dprec,double_output?'f':'g'); + 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); } + +#if defined(INTERVAL) +void printbf4itv(BF a) +{ + int dprec; + char fbuf[BUFSIZ]; + char *s; + if ( !a ) { + TAIL PUTS("0"); + } else { + dprec = (a->body->_mpfr_prec)*0.30103; + if ( !dprec ) dprec = 1; + 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