Browse Source
Fixed line-endings (DOS to UNIX)
Fixed line-endings (DOS to UNIX)
and translated German to English in comments.pre-master-46
7 changed files with 476 additions and 482 deletions
-
7src/frontend/display.c
-
628src/frontend/hpgl.c
-
11src/frontend/rawfile.c
-
32src/frontend/wdisp/ftegraf.h
-
192src/include/wstdio.h
-
2src/spicelib/analysis/acan.c
-
86src/spicelib/analysis/cktncdump.c
@ -1,315 +1,313 @@ |
|||
/********** |
|||
Author: Jim Groves |
|||
**********/ |
|||
|
|||
/* |
|||
HPGL driver |
|||
*/ |
|||
|
|||
/* |
|||
1000 plotter units / inch - 1pu = 0.025mm 1pu = 1mil |
|||
|
|||
SP - select pen |
|||
PU - pen up (PU x,y) |
|||
PD - pen down (PD x,y) |
|||
LT - line type |
|||
0 dots only at plotted points |
|||
1 . . . . . |
|||
2 ___ ___ ___ ___ |
|||
3 ---- ---- ---- ---- |
|||
4 ----- . ----- . ----- . -----. |
|||
5 ---- - ---- - ---- - |
|||
6 --- - - --- - - --- - - --- - - |
|||
null - solid line |
|||
IN - initialize |
|||
DF - default values (PA, solid line, set 0) |
|||
PA - plot absolute |
|||
SI - absolute character size (SI width, height) in cm |
|||
|
|||
*/ |
|||
|
|||
|
|||
|
|||
#include "ngspice.h" |
|||
#include "cpdefs.h" |
|||
#include "graph.h" |
|||
#include "ftedbgra.h" |
|||
#include "ftedev.h" |
|||
#include "fteinput.h" |
|||
|
|||
#include "variable.h" |
|||
|
|||
#define RAD_TO_DEG (180.0 / M_PI) |
|||
#define DEVDEP(g) (*((GLdevdep *) (g)->devdep)) |
|||
#define MAX_GL_LINES 9999 |
|||
#define SOLID 0 |
|||
#define DOTTED 1 |
|||
|
|||
#define gtype graph->grid.gridtype |
|||
#define xoff dispdev->minx |
|||
#define yoff dispdev->miny |
|||
#define XOFF 25 /* printer left margin */ |
|||
#define YOFF 28 /* printer bottom margin */ |
|||
#define XTADJ 0 /* printer text adjustment x */ |
|||
#define YTADJ 0 /* printer text adjustment y */ |
|||
|
|||
#define DELXMAX 360 /* printer gridsize divisible by 10, [7-2] */ |
|||
#define DELYMAX 360 /* printer gridsize divisible by [10-8], [6-2] */ |
|||
|
|||
#define FONTWIDTH 6 /* printer default fontwidth */ |
|||
#define FONTHEIGHT 8 /* printer default fontheight */ |
|||
|
|||
typedef struct { |
|||
int lastlinestyle; /* initial invalid value */ |
|||
int lastx, lasty, linecount; |
|||
} GLdevdep; |
|||
|
|||
static char *linestyle[] = { |
|||
"", /* solid */ |
|||
"1", /* was 1 - dotted */ |
|||
"", /* longdashed */ |
|||
"3", /* shortdashed */ |
|||
"4", /* longdotdashed */ |
|||
"5", /* shortdotdashed */ |
|||
"1" |
|||
}; |
|||
|
|||
static FILE *plotfile; |
|||
char psfont[128], psfontsize[32], psscale[32]; |
|||
static int fontwidth = FONTWIDTH; |
|||
static int fontheight = FONTHEIGHT; |
|||
static int jgmult = 10; |
|||
static int screenflag = 0; |
|||
static double tocm = 0.0025; |
|||
static double scale; /* Used for fine tuning */ |
|||
static int hcopygraphid; |
|||
|
|||
extern int DestroyGraph (int id); |
|||
extern void internalerror (char *message); |
|||
|
|||
int GL_Init() |
|||
{ |
|||
if (!cp_getvar("hcopyscale", VT_STRING, psscale)) { |
|||
scale = 1.0; |
|||
} else { |
|||
sscanf(psscale, "%lf", &scale); |
|||
if ((scale <= 0) || (scale > 10)) |
|||
scale = 1.0; |
|||
} |
|||
|
|||
dispdev->numlinestyles = NUMELEMS(linestyle); |
|||
dispdev->numcolors = 6; |
|||
|
|||
dispdev->width = DELXMAX * scale; |
|||
dispdev->height = DELYMAX * scale; |
|||
|
|||
|
|||
screenflag = 0; |
|||
dispdev->minx = XOFF * 1.0; |
|||
dispdev->miny = YOFF * 1.0; |
|||
|
|||
return(0); |
|||
|
|||
} |
|||
|
|||
/* devdep initially contains name of output file */ |
|||
int GL_NewViewport(graph) |
|||
GRAPH *graph; |
|||
{ |
|||
/* double scaleps, scalex, scaley; */ |
|||
|
|||
hcopygraphid = graph->graphid; |
|||
|
|||
if (!(plotfile = fopen(graph->devdep, "w"))) { |
|||
perror(graph->devdep); |
|||
graph->devdep = (char *) NULL; |
|||
return(1); |
|||
} |
|||
|
|||
if (graph->absolute.width) { |
|||
/* hardcopying from the screen */ |
|||
|
|||
screenflag = 1; |
|||
|
|||
/* scale to fit on 8 1/2 square */ |
|||
|
|||
} |
|||
|
|||
/* reasonable values, used in gr_ for placement */ |
|||
graph->fontwidth = fontwidth * scale; /* was 12, p.w.h. */ |
|||
graph->fontheight = fontheight * scale; /* was 24, p.w.h. */ |
|||
|
|||
graph->absolute.width = dispdev->width; |
|||
graph->absolute.height = dispdev->height; |
|||
/* Also done in gr_init, if called . . . */ |
|||
graph->viewportxoff = 16 * fontwidth; |
|||
graph->viewportyoff = 8 * fontheight; |
|||
|
|||
xoff = XOFF; |
|||
yoff = YOFF; |
|||
|
|||
/* start file off with a % */ |
|||
fprintf(plotfile, "IN;DF;PA;"); |
|||
fprintf(plotfile, "SI %f,%f;", tocm*jgmult*fontwidth*scale,tocm*jgmult*fontheight*scale); |
|||
|
|||
#ifdef notdef |
|||
if (!screenflag) |
|||
#endif |
|||
|
|||
graph->devdep = tmalloc(sizeof(GLdevdep)); |
|||
DEVDEP(graph).lastlinestyle = -1; |
|||
DEVDEP(graph).lastx = -1; |
|||
DEVDEP(graph).lasty = -1; |
|||
DEVDEP(graph).linecount = 0; |
|||
graph->linestyle = -1; |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_Close() |
|||
{ |
|||
|
|||
/* in case GL_Close is called as part of an abort, |
|||
w/o having reached GL_NewViewport */ |
|||
if (plotfile) { |
|||
if (DEVDEP(currentgraph).lastlinestyle != -1) { |
|||
DEVDEP(currentgraph).linecount = 0; |
|||
} |
|||
fclose(plotfile); |
|||
plotfile = NULL; |
|||
} |
|||
/* In case of hardcopy command destroy the hardcopy graph |
|||
* and reset currentgraph to graphid 1, if possible |
|||
*/ |
|||
if (!screenflag) { |
|||
DestroyGraph(hcopygraphid); |
|||
currentgraph = FindGraph(1); |
|||
} |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_Clear() |
|||
{ |
|||
|
|||
/* do nothing */ |
|||
|
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_DrawLine(x1, y1, x2, y2) |
|||
int x1, y1, x2, y2; |
|||
{ |
|||
|
|||
/* note: this is not extendible to more than one graph |
|||
=> will have to give NewViewport a writeable graph XXX */ |
|||
|
|||
|
|||
if (DEVDEP(currentgraph).linecount == 0 |
|||
|| x1 != DEVDEP(currentgraph).lastx |
|||
|| y1 != DEVDEP(currentgraph).lasty) |
|||
{ |
|||
fprintf(plotfile, "PU;PA %d , %d ;", jgmult*(x1 + xoff), jgmult*(y1 + yoff)); |
|||
} |
|||
if (x1 != x2 || y1 != y2) { |
|||
fprintf(plotfile, "PD;PA %d , %d ;", jgmult*(x2 + xoff), jgmult*(y2 + yoff)); |
|||
DEVDEP(currentgraph).linecount += 1; |
|||
} |
|||
|
|||
DEVDEP(currentgraph).lastx = x2; |
|||
DEVDEP(currentgraph).lasty = y2; |
|||
DEVDEP(currentgraph).lastlinestyle = currentgraph->linestyle; |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
/* ARGSUSED */ |
|||
int GL_Arc(x0, y0, r, theta1, theta2) |
|||
int x0, y0, r; |
|||
double theta1, theta2; |
|||
{ |
|||
double x1, y1; |
|||
double angle1, angle2; |
|||
|
|||
while (theta1 >= theta2) |
|||
theta2 += 2 * M_PI; |
|||
|
|||
angle1 = (double) (RAD_TO_DEG * theta1); |
|||
angle2 = (double) (RAD_TO_DEG * theta2); |
|||
x1 = (double) x0 + r * cos(theta1); |
|||
y1 = (double) y0 + r * sin(theta1); |
|||
/* |
|||
fprintf(plotfile, "%lf %lf moveto ", x1+(double)xoff, y1+(double)yoff); |
|||
fprintf(plotfile, "%d %d %d %lf %lf arc\n", x0+xoff, y0+yoff, r, |
|||
angle1, angle2); |
|||
fprintf(plotfile, "stroke\n"); |
|||
*/ |
|||
DEVDEP(currentgraph).linecount = 0; |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_Text(text, x, y) |
|||
char *text; |
|||
int x, y; |
|||
{ |
|||
|
|||
/* int savedlstyle; */ |
|||
|
|||
|
|||
/* move to (x, y) */ |
|||
|
|||
fprintf(plotfile, "PU;PA %d , %d;", jgmult*(x+xoff+XTADJ), jgmult*(y+yoff+YTADJ)); |
|||
fprintf(plotfile, "LB %s \x03", text); |
|||
|
|||
DEVDEP(currentgraph).lastx = -1; |
|||
DEVDEP(currentgraph).lasty = -1; |
|||
|
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int |
|||
GL_SetLinestyle(linestyleid) |
|||
int linestyleid; |
|||
{ |
|||
|
|||
/* special case |
|||
get it when GL_Text restores a -1 linestyle */ |
|||
if (linestyleid == -1) { |
|||
currentgraph->linestyle = -1; |
|||
return 0; |
|||
} |
|||
|
|||
if (linestyleid < 0 || linestyleid > dispdev->numlinestyles) { |
|||
internalerror("bad linestyleid"); |
|||
return 0; |
|||
} |
|||
|
|||
if (currentgraph->linestyle != linestyleid) { |
|||
fprintf(plotfile, "LT %s ;", linestyle[linestyleid]); |
|||
currentgraph->linestyle = linestyleid; |
|||
} |
|||
return 0; |
|||
|
|||
} |
|||
|
|||
/* ARGSUSED */ |
|||
int GL_SetColor(colorid) |
|||
int colorid; |
|||
{ |
|||
/*va: unused: static int flag = 0;*/ /* A hack */ |
|||
|
|||
fprintf(plotfile, "SP %d;", colorid); |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_Update() |
|||
{ |
|||
|
|||
fflush(plotfile); |
|||
|
|||
return 0; |
|||
} |
|||
/********** |
|||
Author: Jim Groves |
|||
**********/ |
|||
|
|||
/* |
|||
HPGL driver |
|||
*/ |
|||
|
|||
/* |
|||
1000 plotter units / inch - 1pu = 0.025mm 1pu = 1mil |
|||
|
|||
SP - select pen |
|||
PU - pen up (PU x,y) |
|||
PD - pen down (PD x,y) |
|||
LT - line type |
|||
0 dots only at plotted points |
|||
1 . . . . . |
|||
2 ___ ___ ___ ___ |
|||
3 ---- ---- ---- ---- |
|||
4 ----- . ----- . ----- . -----. |
|||
5 ---- - ---- - ---- - |
|||
6 --- - - --- - - --- - - --- - - |
|||
null - solid line |
|||
IN - initialize |
|||
DF - default values (PA, solid line, set 0) |
|||
PA - plot absolute |
|||
SI - absolute character size (SI width, height) in cm |
|||
|
|||
*/ |
|||
|
|||
#include "ngspice.h" |
|||
#include "cpdefs.h" |
|||
#include "graph.h" |
|||
#include "ftedbgra.h" |
|||
#include "ftedev.h" |
|||
#include "fteinput.h" |
|||
|
|||
#include "variable.h" |
|||
|
|||
#define RAD_TO_DEG (180.0 / M_PI) |
|||
#define DEVDEP(g) (*((GLdevdep *) (g)->devdep)) |
|||
#define MAX_GL_LINES 9999 |
|||
#define SOLID 0 |
|||
#define DOTTED 1 |
|||
|
|||
#define gtype graph->grid.gridtype |
|||
#define xoff dispdev->minx |
|||
#define yoff dispdev->miny |
|||
#define XOFF 25 /* printer left margin */ |
|||
#define YOFF 28 /* printer bottom margin */ |
|||
#define XTADJ 0 /* printer text adjustment x */ |
|||
#define YTADJ 0 /* printer text adjustment y */ |
|||
|
|||
#define DELXMAX 360 /* printer gridsize divisible by 10, [7-2] */ |
|||
#define DELYMAX 360 /* printer gridsize divisible by [10-8], [6-2] */ |
|||
|
|||
#define FONTWIDTH 6 /* printer default fontwidth */ |
|||
#define FONTHEIGHT 8 /* printer default fontheight */ |
|||
|
|||
typedef struct { |
|||
int lastlinestyle; /* initial invalid value */ |
|||
int lastx, lasty, linecount; |
|||
} GLdevdep; |
|||
|
|||
static char *linestyle[] = { |
|||
"", /* solid */ |
|||
"1", /* was 1 - dotted */ |
|||
"", /* longdashed */ |
|||
"3", /* shortdashed */ |
|||
"4", /* longdotdashed */ |
|||
"5", /* shortdotdashed */ |
|||
"1" |
|||
}; |
|||
|
|||
static FILE *plotfile; |
|||
char psfont[128], psfontsize[32], psscale[32]; |
|||
static int fontwidth = FONTWIDTH; |
|||
static int fontheight = FONTHEIGHT; |
|||
static int jgmult = 10; |
|||
static int screenflag = 0; |
|||
static double tocm = 0.0025; |
|||
static double scale; /* Used for fine tuning */ |
|||
static int hcopygraphid; |
|||
|
|||
extern int DestroyGraph (int id); |
|||
extern void internalerror (char *message); |
|||
|
|||
int GL_Init() |
|||
{ |
|||
if (!cp_getvar("hcopyscale", VT_STRING, psscale)) { |
|||
scale = 1.0; |
|||
} else { |
|||
sscanf(psscale, "%lf", &scale); |
|||
if ((scale <= 0) || (scale > 10)) |
|||
scale = 1.0; |
|||
} |
|||
|
|||
dispdev->numlinestyles = NUMELEMS(linestyle); |
|||
dispdev->numcolors = 6; |
|||
|
|||
dispdev->width = DELXMAX * scale; |
|||
dispdev->height = DELYMAX * scale; |
|||
|
|||
|
|||
screenflag = 0; |
|||
dispdev->minx = XOFF * 1.0; |
|||
dispdev->miny = YOFF * 1.0; |
|||
|
|||
return(0); |
|||
|
|||
} |
|||
|
|||
/* devdep initially contains name of output file */ |
|||
int GL_NewViewport(graph) |
|||
GRAPH *graph; |
|||
{ |
|||
/* double scaleps, scalex, scaley; */ |
|||
|
|||
hcopygraphid = graph->graphid; |
|||
|
|||
if (!(plotfile = fopen(graph->devdep, "w"))) { |
|||
perror(graph->devdep); |
|||
graph->devdep = (char *) NULL; |
|||
return(1); |
|||
} |
|||
|
|||
if (graph->absolute.width) { |
|||
/* hardcopying from the screen */ |
|||
|
|||
screenflag = 1; |
|||
|
|||
/* scale to fit on 8 1/2 square */ |
|||
|
|||
} |
|||
|
|||
/* reasonable values, used in gr_ for placement */ |
|||
graph->fontwidth = fontwidth * scale; /* was 12, p.w.h. */ |
|||
graph->fontheight = fontheight * scale; /* was 24, p.w.h. */ |
|||
|
|||
graph->absolute.width = dispdev->width; |
|||
graph->absolute.height = dispdev->height; |
|||
/* Also done in gr_init, if called . . . */ |
|||
graph->viewportxoff = 16 * fontwidth; |
|||
graph->viewportyoff = 8 * fontheight; |
|||
|
|||
xoff = XOFF; |
|||
yoff = YOFF; |
|||
|
|||
/* start file off with a % */ |
|||
fprintf(plotfile, "IN;DF;PA;"); |
|||
fprintf(plotfile, "SI %f,%f;", tocm*jgmult*fontwidth*scale,tocm*jgmult*fontheight*scale); |
|||
|
|||
#ifdef notdef |
|||
if (!screenflag) |
|||
#endif |
|||
|
|||
graph->devdep = tmalloc(sizeof(GLdevdep)); |
|||
DEVDEP(graph).lastlinestyle = -1; |
|||
DEVDEP(graph).lastx = -1; |
|||
DEVDEP(graph).lasty = -1; |
|||
DEVDEP(graph).linecount = 0; |
|||
graph->linestyle = -1; |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_Close() |
|||
{ |
|||
|
|||
/* in case GL_Close is called as part of an abort, |
|||
w/o having reached GL_NewViewport */ |
|||
if (plotfile) { |
|||
if (DEVDEP(currentgraph).lastlinestyle != -1) { |
|||
DEVDEP(currentgraph).linecount = 0; |
|||
} |
|||
fclose(plotfile); |
|||
plotfile = NULL; |
|||
} |
|||
/* In case of hardcopy command destroy the hardcopy graph |
|||
* and reset currentgraph to graphid 1, if possible |
|||
*/ |
|||
if (!screenflag) { |
|||
DestroyGraph(hcopygraphid); |
|||
currentgraph = FindGraph(1); |
|||
} |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_Clear() |
|||
{ |
|||
|
|||
/* do nothing */ |
|||
|
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_DrawLine(x1, y1, x2, y2) |
|||
int x1, y1, x2, y2; |
|||
{ |
|||
|
|||
/* note: this is not extendible to more than one graph |
|||
=> will have to give NewViewport a writeable graph XXX */ |
|||
|
|||
|
|||
if (DEVDEP(currentgraph).linecount == 0 |
|||
|| x1 != DEVDEP(currentgraph).lastx |
|||
|| y1 != DEVDEP(currentgraph).lasty) |
|||
{ |
|||
fprintf(plotfile, "PU;PA %d , %d ;", jgmult*(x1 + xoff), jgmult*(y1 + yoff)); |
|||
} |
|||
if (x1 != x2 || y1 != y2) { |
|||
fprintf(plotfile, "PD;PA %d , %d ;", jgmult*(x2 + xoff), jgmult*(y2 + yoff)); |
|||
DEVDEP(currentgraph).linecount += 1; |
|||
} |
|||
|
|||
DEVDEP(currentgraph).lastx = x2; |
|||
DEVDEP(currentgraph).lasty = y2; |
|||
DEVDEP(currentgraph).lastlinestyle = currentgraph->linestyle; |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
/* ARGSUSED */ |
|||
int GL_Arc(x0, y0, r, theta1, theta2) |
|||
int x0, y0, r; |
|||
double theta1, theta2; |
|||
{ |
|||
double x1, y1; |
|||
double angle1, angle2; |
|||
|
|||
while (theta1 >= theta2) |
|||
theta2 += 2 * M_PI; |
|||
|
|||
angle1 = (double) (RAD_TO_DEG * theta1); |
|||
angle2 = (double) (RAD_TO_DEG * theta2); |
|||
x1 = (double) x0 + r * cos(theta1); |
|||
y1 = (double) y0 + r * sin(theta1); |
|||
/* |
|||
fprintf(plotfile, "%lf %lf moveto ", x1+(double)xoff, y1+(double)yoff); |
|||
fprintf(plotfile, "%d %d %d %lf %lf arc\n", x0+xoff, y0+yoff, r, |
|||
angle1, angle2); |
|||
fprintf(plotfile, "stroke\n"); |
|||
*/ |
|||
DEVDEP(currentgraph).linecount = 0; |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_Text(text, x, y) |
|||
char *text; |
|||
int x, y; |
|||
{ |
|||
|
|||
/* int savedlstyle; */ |
|||
|
|||
|
|||
/* move to (x, y) */ |
|||
|
|||
fprintf(plotfile, "PU;PA %d , %d;", jgmult*(x+xoff+XTADJ), jgmult*(y+yoff+YTADJ)); |
|||
fprintf(plotfile, "LB %s \x03", text); |
|||
|
|||
DEVDEP(currentgraph).lastx = -1; |
|||
DEVDEP(currentgraph).lasty = -1; |
|||
|
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int |
|||
GL_SetLinestyle(linestyleid) |
|||
int linestyleid; |
|||
{ |
|||
|
|||
/* special case |
|||
get it when GL_Text restores a -1 linestyle */ |
|||
if (linestyleid == -1) { |
|||
currentgraph->linestyle = -1; |
|||
return 0; |
|||
} |
|||
|
|||
if (linestyleid < 0 || linestyleid > dispdev->numlinestyles) { |
|||
internalerror("bad linestyleid"); |
|||
return 0; |
|||
} |
|||
|
|||
if (currentgraph->linestyle != linestyleid) { |
|||
fprintf(plotfile, "LT %s ;", linestyle[linestyleid]); |
|||
currentgraph->linestyle = linestyleid; |
|||
} |
|||
return 0; |
|||
|
|||
} |
|||
|
|||
/* ARGSUSED */ |
|||
int GL_SetColor(colorid) |
|||
int colorid; |
|||
{ |
|||
/*va: unused: static int flag = 0;*/ /* A hack */ |
|||
|
|||
fprintf(plotfile, "SP %d;", colorid); |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int GL_Update() |
|||
{ |
|||
|
|||
fflush(plotfile); |
|||
|
|||
return 0; |
|||
} |
|||
@ -1,16 +1,16 @@ |
|||
/********** |
|||
Copyright 1990 Regents of the University of California. All rights reserved. |
|||
Author: 1986 Wayne A. Christopher, U. C. Berkeley CAD Group |
|||
**********/ |
|||
|
|||
/* |
|||
* |
|||
* Definitions common to the various graphics modules. |
|||
*/ |
|||
|
|||
#define G_NONE 0 |
|||
#define G_HCOPY 1 |
|||
#define G_TERM 2 |
|||
#define G_MFB 3 |
|||
#define G_X 4 |
|||
|
|||
/********** |
|||
Copyright 1990 Regents of the University of California. All rights reserved. |
|||
Author: 1986 Wayne A. Christopher, U. C. Berkeley CAD Group |
|||
**********/ |
|||
|
|||
/* |
|||
* |
|||
* Definitions common to the various graphics modules. |
|||
*/ |
|||
|
|||
#define G_NONE 0 |
|||
#define G_HCOPY 1 |
|||
#define G_TERM 2 |
|||
#define G_MFB 3 |
|||
#define G_X 4 |
|||
|
|||
@ -1,97 +1,95 @@ |
|||
/* I/O Redirection für Spice 3F4 unter Win32s |
|||
Autor: Wolfgang Mües |
|||
Stand: 21.05.95 |
|||
*/ |
|||
|
|||
#ifndef W_STDIO_H |
|||
#define W_STDIO_H |
|||
#include <stdio.h> // originale Definitionen |
|||
#undef getc(f) // alte macros zurücknehmen |
|||
#undef putc(c,f) |
|||
#undef ungetc(c,f) |
|||
#undef getchar() |
|||
#undef putchar(c) |
|||
#undef feof(f) |
|||
#undef ferror(f) |
|||
|
|||
|
|||
// -------------------------------<forwards>----------------------------------- |
|||
|
|||
int f_c_l_o_s_e( FILE * __stream); |
|||
int f_f_l_u_s_h( FILE * __stream); |
|||
int fg_e_t_c( FILE * __stream); |
|||
int f_g_e_t_p_o_s( FILE * __stream, fpos_t * __pos); |
|||
char * fg_e_t_s(char * __s, int __n, FILE * __stream); |
|||
int fp_r_i_n_t_f(FILE * __stream, const char * __format, ...); |
|||
int fp_u_t_c(int __c, FILE * __stream); |
|||
int fp_u_t_s(const char * __s, FILE * __stream); |
|||
size_t f_r_e_a_d(void * __ptr, size_t __size, size_t __n, FILE * __stream); |
|||
FILE * f_r_e_o_p_e_n(const char * __path, const char * __mode, FILE * __stream); |
|||
int fs_c_a_n_f(FILE * __stream, const char * __format, ...); |
|||
int f_s_e_e_k(FILE * __stream, long __offset, int __whence); |
|||
int f_s_e_t_p_o_s(FILE * __stream, const fpos_t*__pos); |
|||
long f_t_e_l_l(FILE * __stream); |
|||
size_t f_w_r_i_t_e(const void * __ptr, size_t __size, size_t __n, FILE * __stream); |
|||
char * g_e_t_s(char * __s); |
|||
void p_e_r_r_o_r(const char * __s); |
|||
int p_r_i_n_t_f(const char * __format, ...); |
|||
int p_u_t_s(const char * __s); |
|||
int s_c_a_n_f(const char * __format, ...); |
|||
int ung_e_t_c(int __c, FILE * __stream); |
|||
int vfp_r_i_n_t_f(FILE * __stream, const char * __format, void * __arglist); |
|||
//int vfs_c_a_n_f(FILE * __stream, const char * __format, void * __arglist); |
|||
int vp_r_i_n_t_f(const char * __format, void * __arglist); |
|||
//int vs_c_a_n_f(const char * __format, void * __arglist); |
|||
int r_e_a_d(int fd, char * __buf, int __n); |
|||
int g_e_t_c(FILE * __fp); |
|||
int g_e_t_char(void); |
|||
int p_u_t_char(const int __c); |
|||
int p_u_t_c(const int __c, FILE * __fp); |
|||
int f_e_o_f(FILE * __fp); |
|||
int f_e_r_r_o_r(FILE * __fp); |
|||
int fg_e_t_char(void); |
|||
int fp_u_t_char(int __c); |
|||
|
|||
// ------------------------------<neue macros>--------------------------------- |
|||
|
|||
#define fclose f_c_l_o_s_e |
|||
#define fflush f_f_l_u_s_h |
|||
#define fgetc fg_e_t_c |
|||
#define fgetpos f_g_e_t_p_o_s |
|||
#define fgets fg_e_t_s |
|||
#define fprintf fp_r_i_n_t_f |
|||
#define fputc fp_u_t_c |
|||
#define fputs fp_u_t_s |
|||
#define fread f_r_e_a_d |
|||
#define afreopen f_r_e_o_p_e_n // hvogt 10.05.2000 |
|||
#define fscanf fs_c_a_n_f |
|||
#define fseek f_s_e_e_k |
|||
#define fsetpos f_s_e_t_p_o_s |
|||
#define ftell f_t_e_l_l |
|||
#define fwrite f_w_r_i_t_e |
|||
#define gets g_e_t_s |
|||
#define perror p_e_r_r_o_r |
|||
#define printf p_r_i_n_t_f |
|||
#define puts p_u_t_s |
|||
#define scanf s_c_a_n_f |
|||
#define ungetc ung_e_t_c |
|||
#define vfprintf vfp_r_i_n_t_f |
|||
//#define vfscanf vfs_c_a_n_f |
|||
#define vprintf vp_r_i_n_t_f |
|||
//#define vscanf vs_c_a_n_f |
|||
#define read r_e_a_d |
|||
#define getc g_e_t_c |
|||
#define getchar g_e_t_char |
|||
#define putchar p_u_t_char |
|||
#define putc p_u_t_c |
|||
#define feof f_e_o_f |
|||
#define ferror f_e_r_r_o_r |
|||
#define fgetchar fg_e_t_char |
|||
#define fputchar fp_u_t_char |
|||
|
|||
// ---------------------------------------------------------------------------- |
|||
|
|||
// #include "io_special.h" |
|||
|
|||
#endif /* W_STDIO_H */ |
|||
|
|||
/* I/O Redirection for Spice 3F4 under Win32s |
|||
Autor: Wolfgang Muees |
|||
Stand: 21.05.95 |
|||
*/ |
|||
|
|||
#ifndef WSTDIO_H |
|||
#define WSTDIO_H |
|||
#include <stdio.h> /* original definitions */ |
|||
|
|||
#undef getc /* old macros removed */ |
|||
#undef putc |
|||
#undef ungetc |
|||
#undef getchar |
|||
#undef putchar |
|||
#undef feof |
|||
#undef ferror |
|||
|
|||
/* -------------------------------<forwards>----------------------------------*/ |
|||
|
|||
int f_c_l_o_s_e( FILE * __stream); |
|||
int f_f_l_u_s_h( FILE * __stream); |
|||
int fg_e_t_c( FILE * __stream); |
|||
int f_g_e_t_p_o_s( FILE * __stream, fpos_t * __pos); |
|||
char * fg_e_t_s(char * __s, int __n, FILE * __stream); |
|||
int fp_r_i_n_t_f(FILE * __stream, const char * __format, ...); |
|||
int fp_u_t_c(int __c, FILE * __stream); |
|||
int fp_u_t_s(const char * __s, FILE * __stream); |
|||
size_t f_r_e_a_d(void * __ptr, size_t __size, size_t __n, FILE * __stream); |
|||
FILE * f_r_e_o_p_e_n(const char * __path, const char * __mode, FILE * __stream); |
|||
int fs_c_a_n_f(FILE * __stream, const char * __format, ...); |
|||
int f_s_e_e_k(FILE * __stream, long __offset, int __whence); |
|||
int f_s_e_t_p_o_s(FILE * __stream, const fpos_t*__pos); |
|||
long f_t_e_l_l(FILE * __stream); |
|||
size_t f_w_r_i_t_e(const void * __ptr, size_t __size, size_t __n, FILE * __stream); |
|||
char * g_e_t_s(char * __s); |
|||
void p_e_r_r_o_r(const char * __s); |
|||
int p_r_i_n_t_f(const char * __format, ...); |
|||
int p_u_t_s(const char * __s); |
|||
int s_c_a_n_f(const char * __format, ...); |
|||
int ung_e_t_c(int __c, FILE * __stream); |
|||
int vfp_r_i_n_t_f(FILE * __stream, const char * __format, void * __arglist); |
|||
/*int vfs_c_a_n_f(FILE * __stream, const char * __format, void * __arglist);*/ |
|||
int vp_r_i_n_t_f(const char * __format, void * __arglist); |
|||
/*int vs_c_a_n_f(const char * __format, void * __arglist); */ |
|||
int r_e_a_d(int fd, char * __buf, int __n); |
|||
int g_e_t_c(FILE * __fp); |
|||
int g_e_t_char(void); |
|||
int p_u_t_char(const int __c); |
|||
int p_u_t_c(const int __c, FILE * __fp); |
|||
int f_e_o_f(FILE * __fp); |
|||
int f_e_r_r_o_r(FILE * __fp); |
|||
int fg_e_t_char(void); |
|||
int fp_u_t_char(int __c); |
|||
|
|||
/* ------------------------------<New macros>---------------------------------*/ |
|||
|
|||
#define fclose f_c_l_o_s_e |
|||
#define fflush f_f_l_u_s_h |
|||
#define fgetc fg_e_t_c |
|||
#define fgetpos f_g_e_t_p_o_s |
|||
#define fgets fg_e_t_s |
|||
#define fprintf fp_r_i_n_t_f |
|||
#define fputc fp_u_t_c |
|||
#define fputs fp_u_t_s |
|||
#define fread f_r_e_a_d |
|||
#define afreopen f_r_e_o_p_e_n // hvogt 10.05.2000 |
|||
#define fscanf fs_c_a_n_f |
|||
#define fseek f_s_e_e_k |
|||
#define fsetpos f_s_e_t_p_o_s |
|||
#define ftell f_t_e_l_l |
|||
#define fwrite f_w_r_i_t_e |
|||
#define gets g_e_t_s |
|||
#define perror p_e_r_r_o_r |
|||
#define printf p_r_i_n_t_f |
|||
#define puts p_u_t_s |
|||
#define scanf s_c_a_n_f |
|||
#define ungetc ung_e_t_c |
|||
#define vfprintf vfp_r_i_n_t_f |
|||
/*#define vfscanf vfs_c_a_n_f*/ |
|||
#define vprintf vp_r_i_n_t_f |
|||
/*#define vscanf vs_c_a_n_f*/ |
|||
#define read r_e_a_d |
|||
#define getc g_e_t_c |
|||
#define getchar g_e_t_char |
|||
#define putchar p_u_t_char |
|||
#define putc p_u_t_c |
|||
#define feof f_e_o_f |
|||
#define ferror f_e_r_r_o_r |
|||
#define fgetchar fg_e_t_char |
|||
#define fputchar fp_u_t_char |
|||
|
|||
/*----------------------------------------------------------------------------*/ |
|||
|
|||
#endif /* WSTDIO_H */ |
|||
|
|||
@ -1,43 +1,43 @@ |
|||
/********** |
|||
Copyright 1999 AG inc. All rights reserved. |
|||
Author: 1999 Alan Gillespie |
|||
**********/ |
|||
|
|||
#include "ngspice.h" |
|||
#include "cktdefs.h" |
|||
#include "suffix.h" |
|||
|
|||
void |
|||
CKTncDump(ckt) |
|||
CKTcircuit *ckt; |
|||
{ |
|||
CKTnode *node; |
|||
double new, old, tol; |
|||
int i=1; |
|||
|
|||
fprintf(stdout,"\n"); |
|||
fprintf(stdout,"Last Node Voltages\n"); |
|||
fprintf(stdout,"------------------\n\n"); |
|||
fprintf(stdout,"%-30s %20s %20s\n", "Node", "Last Voltage", "Previous Iter"); |
|||
fprintf(stdout,"%-30s %20s %20s\n", "----", "------------", "-------------"); |
|||
for(node=ckt->CKTnodes->next;node;node=node->next) { |
|||
if (strstr(node->name, "#branch") || !strstr(node->name, "#")) { |
|||
new = *((ckt->CKTrhsOld) + i ) ; |
|||
old = *((ckt->CKTrhs) + i ) ; |
|||
fprintf(stdout,"%-30s %20g %20g", node->name, new, old); |
|||
if(node->type == 3) { |
|||
tol = ckt->CKTreltol * (MAX(fabs(old),fabs(new))) + |
|||
ckt->CKTvoltTol; |
|||
} else { |
|||
tol = ckt->CKTreltol * (MAX(fabs(old),fabs(new))) + |
|||
ckt->CKTabstol; |
|||
} |
|||
if (fabs(new-old) >tol ) { |
|||
fprintf(stdout," *"); |
|||
} |
|||
fprintf(stdout,"\n"); |
|||
}; |
|||
i++; |
|||
}; |
|||
fprintf(stdout,"\n"); |
|||
} |
|||
/********** |
|||
Copyright 1999 AG inc. All rights reserved. |
|||
Author: 1999 Alan Gillespie |
|||
**********/ |
|||
|
|||
#include "ngspice.h" |
|||
#include "cktdefs.h" |
|||
#include "suffix.h" |
|||
|
|||
void |
|||
CKTncDump(ckt) |
|||
CKTcircuit *ckt; |
|||
{ |
|||
CKTnode *node; |
|||
double new, old, tol; |
|||
int i=1; |
|||
|
|||
fprintf(stdout,"\n"); |
|||
fprintf(stdout,"Last Node Voltages\n"); |
|||
fprintf(stdout,"------------------\n\n"); |
|||
fprintf(stdout,"%-30s %20s %20s\n", "Node", "Last Voltage", "Previous Iter"); |
|||
fprintf(stdout,"%-30s %20s %20s\n", "----", "------------", "-------------"); |
|||
for(node=ckt->CKTnodes->next;node;node=node->next) { |
|||
if (strstr(node->name, "#branch") || !strstr(node->name, "#")) { |
|||
new = *((ckt->CKTrhsOld) + i ) ; |
|||
old = *((ckt->CKTrhs) + i ) ; |
|||
fprintf(stdout,"%-30s %20g %20g", node->name, new, old); |
|||
if(node->type == 3) { |
|||
tol = ckt->CKTreltol * (MAX(fabs(old),fabs(new))) + |
|||
ckt->CKTvoltTol; |
|||
} else { |
|||
tol = ckt->CKTreltol * (MAX(fabs(old),fabs(new))) + |
|||
ckt->CKTabstol; |
|||
} |
|||
if (fabs(new-old) >tol ) { |
|||
fprintf(stdout," *"); |
|||
} |
|||
fprintf(stdout,"\n"); |
|||
}; |
|||
i++; |
|||
}; |
|||
fprintf(stdout,"\n"); |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue