version 1.26, 2006/08/27 22:17:28 |
version 1.28, 2017/08/31 02:36:21 |
|
|
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* $OpenXM: OpenXM_contrib2/asir2000/io/cpexpr.c,v 1.25 2005/11/16 23:42:54 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/io/cpexpr.c,v 1.27 2015/08/04 06:20:45 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
#include "al.h" |
#include "al.h" |
#include "base.h" |
#include "base.h" |
#if PARI |
|
#include "genpari.h" |
|
#endif |
|
|
|
#ifndef CPRINT |
#ifndef CPRINT |
#define CPRINT |
#define CPRINT |
Line 80 static int total_length; |
|
Line 77 static int total_length; |
|
#define PRINTSTR length_str |
#define PRINTSTR length_str |
#define PRINTCOMP length_comp |
#define PRINTCOMP length_comp |
#define PRINTDP length_dp |
#define PRINTDP length_dp |
|
#define PRINTDPM length_dpm |
#define PRINTUI length_ui |
#define PRINTUI length_ui |
#define PRINTGF2MAT length_gf2mat |
#define PRINTGF2MAT length_gf2mat |
#define PRINTGFMMAT length_gfmmat |
#define PRINTGFMMAT length_gfmmat |
Line 117 int estimate_length(VL vl,pointer p) |
|
Line 115 int estimate_length(VL vl,pointer p) |
|
return total_length; |
return total_length; |
} |
} |
|
|
#if defined(PARI) |
|
void PRINTBF(BF a) |
void PRINTBF(BF a) |
{ |
{ |
char *str; |
char *str; |
char *GENtostr0(); |
int dprec; |
void myoutbrute(); |
char fbuf[BUFSIZ]; |
|
|
if ( double_output ) { |
dprec = a->body->_mpfr_prec*0.30103; |
str = GENtostr0(a->body,myoutbrute); |
sprintf(fbuf,"%%.%dR%c",dprec,double_output?'f':'g'); |
} else { |
mpfr_asprintf(&str,fbuf,a->body); |
str = GENtostr(a->body); |
|
} |
|
total_length += strlen(str); |
total_length += strlen(str); |
free(str); |
mpfr_free_str(str); |
} |
} |
#endif |
|
|
|
void PRINTNUM(Num q) |
void PRINTNUM(Num q) |
{ |
{ |
Line 162 void PRINTNUM(Num q) |
|
Line 156 void PRINTNUM(Num q) |
|
case N_A: |
case N_A: |
PUTS("("); PRINTR(ALG,(R)BDY((Alg)q)); PUTS(")"); |
PUTS("("); PRINTR(ALG,(R)BDY((Alg)q)); PUTS(")"); |
break; |
break; |
#if defined(PARI) |
|
case N_B: |
case N_B: |
PRINTBF((BF)q); break; |
PRINTBF((BF)q); break; |
#endif |
|
case N_C: |
case N_C: |
PRINTCPLX((C)q); break; |
PRINTCPLX((C)q); break; |
case N_M: |
case N_M: |
Line 303 void PRINTDP(VL vl,DP d) |
|
Line 295 void PRINTDP(VL vl,DP d) |
|
PUTS("+"); |
PUTS("+"); |
} |
} |
} |
} |
|
|
|
void PRINTDPM(VL vl,DPM d) |
|
{ |
|
int n,i; |
|
DMM m; |
|
DL dl; |
|
|
|
for ( n = d->nv, m = BDY(d); m; m = NEXT(m) ) { |
|
PUTS("("); PRINTEXPR(vl,(pointer)m->c); PUTS(")*<<"); |
|
for ( i = 0, dl = m->dl; i < n-1; i++ ) { |
|
total_length += 11; |
|
} |
|
total_length += 10; |
|
total_length += 11; /* for ':pos' */ |
|
PUTS(">>"); |
|
if ( NEXT(m) ) |
|
PUTS("+"); |
|
} |
|
} |
|
|
|
|
void PRINTUI(VL vl,USINT u) |
void PRINTUI(VL vl,USINT u) |
{ |
{ |