1 /***************************************************************************
2 JSPICE3 adaptation of Spice3e2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California.  All rights reserved.
4 Authors: 1985 Thomas L. Quarles
5          1993 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 #include "spice.h"
9 #include <stdio.h>
10 #include "cktdefs.h"
11 #include "optdefs.h"
12 #include "const.h"
13 #include "iferrmsg.h"
14 
15 
16 /* ARGSUSED */
17 int
OPTaskQuest(cktp,anal,which,value)18 OPTaskQuest(cktp,anal,which,value)
19 
20 GENERIC *cktp;
21 GENERIC *anal;
22 int which;
23 IFvalue *value;
24 {
25     CKTcircuit *ckt = (CKTcircuit*)cktp;
26     STATistics *stat = (STATistics*)ckt->CKTstat;
27 
28     switch (which) {
29 
30         case OPT_EQNS:
31             value->iValue = ckt->CKTmaxEqNum;
32             break;
33         case OPT_ITERS:
34             value->iValue = stat->STATnumIter;
35             break;
36         case OPT_TRANIT:
37             value->iValue = stat->STATtranIter;
38             break;
39         case OPT_TRANCURITER:
40             value->iValue = stat->STATnumIter - stat->STAToldIter;
41             break;
42         case OPT_TRANPTS:
43             value->iValue = stat->STATtimePts;
44             break;
45         case OPT_TRANACCPT:
46             value->iValue = stat->STATaccepted;
47             break;
48         case OPT_TRANRJCT:
49             value->iValue = stat->STATrejected;
50             break;
51         case OPT_TOTANALTIME:
52             value->rValue = stat->STATtotAnalTime;
53             break;
54         case OPT_TRANTIME:
55             value->rValue = stat->STATtranTime;
56             break;
57         case OPT_LOADTIME:
58             value->rValue = stat->STATloadTime;
59             break;
60         case OPT_REORDTIME:
61             value->rValue = stat->STATreorderTime;
62             break;
63         case OPT_DECOMP:
64             value->rValue = stat->STATdecompTime;
65             break;
66         case OPT_SOLVE:
67             value->rValue = stat->STATsolveTime;
68             break;
69         case OPT_TRANDECOMP:
70             value->rValue = stat->STATtranDecompTime;
71             break;
72         case OPT_TRANSOLVE:
73             value->rValue = stat->STATtranSolveTime;
74             break;
75         case OPT_TEMP:
76             value->rValue = ckt->CKTtemp - CONSTCtoK;
77             break;
78         case OPT_TNOM:
79             value->rValue = ckt->CKTnomTemp - CONSTCtoK;
80             break;
81         case OPT_MATSIZ:
82             value->iValue = stat->STATmatSize;
83             break;
84         case OPT_NONZ:
85             value->iValue = stat->STATnonZero;
86             break;
87         case OPT_FILLIN:
88             value->iValue = stat->STATfillIn;
89             break;
90         default:
91             return (E_BADPARM);
92     }
93     return (OK);
94 }
95