version 1.10, 2001/03/09 01:44:10 |
version 1.14, 2001/08/06 01:48:33 |
|
|
* 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/spexpr.c,v 1.9 2000/12/22 10:03:31 saito Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/io/spexpr.c,v 1.13 2001/04/20 02:34:23 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "al.h" |
#include "al.h" |
|
|
char DFORMAT[BUFSIZ]; |
char DFORMAT[BUFSIZ]; |
int hex_output; |
int hex_output; |
int fortran_output; |
int fortran_output; |
|
int double_output; |
|
int real_digit; |
|
int print_quote; |
|
|
#define TAIL |
#define TAIL |
#define PUTS(s) fputs(s,OUT) |
#define PUTS(s) fputs(s,OUT) |
Line 88 int fortran_output; |
|
Line 91 int fortran_output; |
|
#define PRINTGF2MAT printgf2mat |
#define PRINTGF2MAT printgf2mat |
#define PRINTGFMMAT printgfmmat |
#define PRINTGFMMAT printgfmmat |
#define PRINTBYTEARRAY printbytearray |
#define PRINTBYTEARRAY printbytearray |
|
#define PRINTQUOTE printquote |
#define PRINTERR printerr |
#define PRINTERR printerr |
#define PRINTLF printlf |
#define PRINTLF printlf |
#define PRINTLOP printlop |
#define PRINTLOP printlop |
Line 105 extern int hex_output; |
|
Line 109 extern int hex_output; |
|
extern int fortran_output; |
extern int fortran_output; |
extern int double_output; |
extern int double_output; |
extern int real_digit; |
extern int real_digit; |
|
extern int print_quote; |
|
|
#define TAIL while ( *OUT ) OUT++; |
#define TAIL while ( *OUT ) OUT++; |
#define PUTS(s) strcat(OUT,s) |
#define PUTS(s) strcat(OUT,s) |
Line 129 extern int real_digit; |
|
Line 134 extern int real_digit; |
|
#define PRINTGF2MAT sprintgf2mat |
#define PRINTGF2MAT sprintgf2mat |
#define PRINTGFMMAT sprintgfmmat |
#define PRINTGFMMAT sprintgfmmat |
#define PRINTBYTEARRAY sprintbytearray |
#define PRINTBYTEARRAY sprintbytearray |
|
#define PRINTQUOTE sprintquote |
#define PRINTERR sprinterr |
#define PRINTERR sprinterr |
#define PRINTLF sprintlf |
#define PRINTLF sprintlf |
#define PRINTLOP sprintlop |
#define PRINTLOP sprintlop |
|
|
void PRINTGF2MAT(); |
void PRINTGF2MAT(); |
void PRINTGFMMAT(); |
void PRINTGFMMAT(); |
void PRINTBYTEARRAY(); |
void PRINTBYTEARRAY(); |
|
void PRINTQUOTE(); |
void PRINTERR(); |
void PRINTERR(); |
void PRINTCPLX(); |
void PRINTCPLX(); |
void PRINTLM(); |
void PRINTLM(); |
|
|
{ |
{ |
if ( NUM(p) ) |
if ( NUM(p) ) |
#if defined(INTERVAL) |
#if defined(INTERVAL) |
if ( NID(p) != N_IP && compnum(CO,(Num)p,0) < 0 ) |
if ( NID(p) != N_IP && NID(p) != N_ID && NID(p) != N_IT && NID(p) != N_IF |
|
&& compnum(CO,(Num)p,0) < 0 ) |
#else |
#else |
if ( compnum(CO,(Num)p,0) < 0 ) |
if ( compnum(CO,(Num)p,0) < 0 ) |
#endif |
#endif |
|
|
PRINTGFMMAT(vl,(GFMMAT)p); break; |
PRINTGFMMAT(vl,(GFMMAT)p); break; |
case O_BYTEARRAY: |
case O_BYTEARRAY: |
PRINTBYTEARRAY(vl,(BYTEARRAY)p); break; |
PRINTBYTEARRAY(vl,(BYTEARRAY)p); break; |
|
case O_QUOTE: |
|
PRINTQUOTE(vl,(QUOTE)p); break; |
default: |
default: |
break; |
break; |
} |
} |
|
|
#if defined(INTERVAL) |
#if defined(INTERVAL) |
case MID_PRINTF_E: |
case MID_PRINTF_E: |
#endif |
#endif |
TAIL PRINTF(OUT,"%.15e",BDY((Real)q)); |
TAIL PRINTF(OUT,"%.16e",BDY((Real)q)); |
break; |
break; |
case PRINTF_G: |
case PRINTF_G: |
#if defined(INTERVAL) |
#if defined(INTERVAL) |
case MID_PRINTF_G: |
case MID_PRINTF_G: |
#endif |
#endif |
default: |
default: |
if ( real_digit ) { |
if ( real_digit ) { |
sprintf(real_format, |
sprintf(real_format, |
double_output?"%%.%df":"%%.%dg",real_digit); |
double_output?"%%.%df":"%%.%dg",real_digit); |
TAIL PRINTF(OUT,real_format,BDY((Real)q)); |
TAIL PRINTF(OUT,real_format,BDY((Real)q)); |
} else { |
} else { |
TAIL PRINTF(OUT,double_output?"%f":"%g",BDY((Real)q)); |
TAIL PRINTF(OUT,double_output?"%f":"%g",BDY((Real)q)); |
} |
} |
break; |
break; |
} |
} |
break; |
break; |
case N_A: |
case N_A: |
|
|
case N_GFPN: |
case N_GFPN: |
PRINTUP((UP)(((GFPN)q)->body)); |
PRINTUP((UP)(((GFPN)q)->body)); |
break; |
break; |
|
case N_GFS: |
|
TAIL PRINTF(OUT,"@_%d",CONT((GFS)q)); |
|
break; |
} |
} |
} |
} |
|
|
|
|
if ( a->r ) |
if ( a->r ) |
PRINTNUM(a->r); |
PRINTNUM(a->r); |
if ( a->i ) { |
if ( a->i ) { |
|
#if defined(INTERVAL) |
|
if ( a->r && ((compnum(0,a->i,0) > 0) |
|
|| NID(a->i) == N_IP || NID(a->i) == N_ID |
|
|| NID(a->i) == N_IT || NID(a->i) == N_IF) ) |
|
#else |
if ( a->r && (compnum(0,a->i,0) > 0) ) |
if ( a->r && (compnum(0,a->i,0) > 0) ) |
|
#endif |
PUTS("+"); |
PUTS("+"); |
PRINTNUM(a->i); PUTS("*@i"); |
PRINTNUM(a->i); PUTS("*@i"); |
} |
} |
Line 709 BYTEARRAY array; |
|
Line 728 BYTEARRAY array; |
|
} |
} |
TAIL PRINTF(OUT,"%02x",(unsigned int)b[i]); |
TAIL PRINTF(OUT,"%02x",(unsigned int)b[i]); |
PUTS("|"); |
PUTS("|"); |
|
} |
|
|
|
void PRINTQUOTE(vl,quote) |
|
VL vl; |
|
QUOTE quote; |
|
{ |
|
PUTS("<...quoted...>"); |
} |
} |
|
|
void PRINTERR(vl,e) |
void PRINTERR(vl,e) |