rlar
4fc33eb656
ifparm, #6/16, missing IF_NONSENSE for some aliases, introduce IOPXR
2017-04-09 15:29:35 +02:00
rlar
b56c2a2504
ifparm, #5/16, missing IF_AC for some aliases, introduce IOPAR
2017-04-09 15:29:34 +02:00
rlar
eac26d741c
ifparm, #4/16, missing IF_REDUNDANT for some aliases, introduce IOPAPR
2017-04-09 15:29:33 +02:00
rlar
445860f79a
ifparm, #3/16, missing IF_REDUNDANT for some aliases, use IOPR
2017-04-09 15:29:32 +02:00
dwarning
115b52a899
ifparm, #2/16, missing IF_REDUNDANT, duplicates and descriptions
2017-04-09 15:29:30 +02:00
dwarning
e0fcdc7457
ifparm, #1/16, missing IF_REDUNDANT for vth0/vtho in bsim models
2017-04-09 15:23:15 +02:00
rlar
1e6b809af8
introduce command "check_ifparm" to check consistency of the device IFparm sets
...
For developing purpose only, and bound to HAVE_TSEARCH, HAVE_TDESTROY
IFparm descriptors must obey certain contracts,
1) aliases must be grouped together with their associated main descriptor,
and all must have flag IF_REDUNDANT set
2) there shall be no duplicated .id fields except for aliases.
3) aliased entries shall have consistent .dataType fields
check_ifparm will traverse all IFparm sets and report violations
2017-04-09 14:40:51 +02:00
h_vogt
cf9dbff890
inpcom.c, cleanup, use strchr()
2017-04-09 14:14:45 +02:00
rlar
2df8f433f8
inp.c, inp_parse_temper(), rewrite, using search_idenifier and find_assignment
...
try to make it more robust with regard to
'!=' '<=' '==' don't misinterpret as '='
"atemperaticvariable" don't misinterpret as 'temper'
multiple temper in one expression
2017-04-09 14:14:36 +02:00
rlar
511389ad10
inpcom.c, introduce find_back_assignment()
2017-04-09 14:14:06 +02:00
rlar
5238f0b1cb
inpcom.c, find_assignment(), const'ify and declare extern
2017-04-09 14:12:22 +02:00
rlar
4c44027cd2
inp.c, inp_parse_temper(), cleanup
2017-04-09 14:12:13 +02:00
rlar
2809ccaa13
shrink scope of expr_w_temper
2017-04-09 14:06:27 +02:00
rlar
872ceeedc7
inp_temper_compat(), return expr_w_temper
2017-04-09 14:06:15 +02:00
rlar
2c35eebb0b
invoke in_parse_temper_trees() and inp_evaluate_temper() unconditionally
2017-04-09 14:06:02 +02:00
rlar
e35429a222
inpcom.c, introduce rem_tlist()
2017-04-09 14:03:11 +02:00
rlar
c600312d01
deploy devtlist/modtlist in struct circ
2017-04-09 13:59:53 +02:00
rlar
2a50316304
inp_parse_temper(), add modtlist_p/devtlist_p arguments
2017-04-09 13:59:46 +02:00
rlar
f78d8e21f0
inp_parse_temper_trees(), add struct circ argument
2017-04-09 13:59:38 +02:00
rlar
f2f2b3b09a
inp_evaluate_temper(), add struct circ argument
2017-04-09 13:49:43 +02:00
rlar
fa13e422cd
inpcom.c, bug fix, always reset expr_w_temper
2017-04-09 13:49:32 +02:00
rlar
5513d8bdf3
inpcom.c, bug fix, expr_w_temper missing reset
2017-04-09 13:49:22 +02:00
rlar
c920946c73
inp.c, bug fix, need to reset modtlist/devtlist unconditionally
2017-04-09 13:49:13 +02:00
rlar
12de713ff5
inp.c, bug fix, commit "allow 'temper' keyword in .param, .model and device instance lines ..."
...
don't overwrite struct pt_temper.expression,
to allow free'ing this string.
2017-04-09 13:49:05 +02:00
h_vogt
648de2a001
cktdojob.c, add missing evaluation of TEMPER after new temperature is set
...
This is relevant for model and device parameters containing TEMPER.
2017-04-09 13:48:55 +02:00
h_vogt
67e06bb4ac
winmain.c, bug fix, #315 ngspice under windows 10 shows exception on quit
...
https://sourceforge.net/p/ngspice/bugs/315/
longjmp() creates segfault under Windows 10 (VS and MINGW)
somewhere when MainWindowProc() is processing the WM_CLOSE message.
Instead of raising SIGINT, directly call cp_doquit().
return 0 if "askquit" is set and the user declines to "quit".
This continues the simulation, if still active.
2017-04-09 12:46:38 +02:00
dwarning
33c7740884
bsim4 model update according berkeley release - disclaimer change
2017-03-31 15:01:30 +02:00
dwarning
3f0096fd46
bsim4 model update according berkeley release - code change
2017-03-31 14:48:14 +02:00
rlar
ab409ad62e
protect vec_free() and free_pnode() macro for use in non braced blocks
...
if ()
vec_free()
2017-03-25 19:54:40 +01:00
rlar
c7811a76df
ngspice/fteext.h, whitespace and spelling
2017-03-25 19:41:32 +01:00
rlar
cc15853b4f
ngspice/ftedefs.h, whitespace and spelling
2017-03-25 19:11:33 +01:00
h_vogt
d84387d449
CIDER, use controlled_exit(1) instead of exit(1)
2017-03-25 18:44:00 +01:00
rlar
2142cfdcce
subckt.c, cleanup
2017-03-25 18:17:08 +01:00
rlar
9b01dbae95
subckt.c, numnodes(), #4/4, drop 'buf'
2017-03-25 18:17:07 +01:00
rlar
66b8b3de54
subckt.c, numnodes(), #3/4, rename argument 'name' --> 'line'
2017-03-25 18:17:04 +01:00
rlar
7b6070e6b9
subckt.c, numnodes(), #2/4, cleanup
2017-03-25 18:00:43 +01:00
rlar
b18c06c441
subckt.c, numnodes(), #1/4, cleanup
2017-03-25 18:00:41 +01:00
rlar
33788f7052
remove excessive inp_evaluate_temper() prototypes
2017-03-22 21:47:43 +01:00
rlar
0fb21eaf4a
subckt.c, translate(), #8/8 whitespace and comments
2017-03-22 21:25:46 +01:00
rlar
f19a6c6390
subckt.c, translate(), #7/8 cleanup
2017-03-22 21:25:46 +01:00
rlar
49947e0279
subckt.c, translate(), #6/8 cleanup
2017-03-22 21:25:46 +01:00
rlar
2a4c34c401
subckt.c, translate(), #5/8 trailing 's' is never used
2017-03-22 21:25:46 +01:00
rlar
7169ad4bfa
subckt.c, translate(), #4/8 don't append trailing whitespace
2017-03-22 21:25:46 +01:00
rlar
1f31f73295
subckt.c, translate(), #3/8 simplify
2017-03-22 21:25:45 +01:00
rlar
e40485b8a3
subckt.c, translate(), #2/8 cleanup
2017-03-22 21:25:45 +01:00
rlar
476c41f436
subckt.c, translate(), #1/8 cleanup
2017-03-22 21:25:45 +01:00
rlar
405c6f6f02
subckt.c, introduce translate_mod_name()
2017-03-22 21:25:45 +01:00
rlar
db213fd8d2
subckt.c, devmodtranslate(), dupplicate code from above
...
and drop a redundant piece
2017-03-22 21:25:45 +01:00
rlar
c653161666
subckt.c, introduce translate_inst_name()
...
to abstract the instance name translation during netlist flattening
2017-03-22 21:25:45 +01:00
rlar
a54a535dd5
subckt.c, introduce translate_node_name()
2017-03-22 21:25:45 +01:00
rlar
bab59844ff
subckt.c, emphasize instance_name translation
...
When translating an instance_name in a subcircuit instance 'xfoo'
undconditionally express the exception for 'x' instances, which is:
x42 --> xsub.x42
but for all others the first char (the devtype) is prepended
r42 --> r.xsub.r42
2017-03-22 21:25:45 +01:00
rlar
e3b3cc502a
subckt.c, translate(), emphasize instance_name translation
2017-03-22 21:25:45 +01:00
rlar
a03a57c9f9
subckt.c, emphasize token separator insertion
2017-03-22 21:25:44 +01:00
rlar
6b78ed4367
subckt.c, devmodtranslate(), rewrite using bxx_ facility
2017-03-22 21:25:44 +01:00
rlar
4d69002144
subckt.c, translate(), rewrite using bxx facility
2017-03-22 21:25:39 +01:00
rlar
13b6daae2f
subckt.c, translate(), cleanup while() loop
2017-03-22 20:53:22 +01:00
rlar
a5dd826d19
subckt.c, finishLine(), #9/9, unconditionally transform instance name in i() expressions
2017-03-22 20:53:14 +01:00
rlar
dc092c4ebc
subckt.c, finishLine(), #8/9, fuse two if's with the same conditional expr
2017-03-22 20:52:10 +01:00
rlar
99d788cd12
subckt.c, finishLine(), #7/9, drop condition which is always true
2017-03-22 20:50:59 +01:00
rlar
253cf5b75a
subckt.c, finishLine(), #6/9, drop condition which is always false
2017-03-22 20:50:38 +01:00
rlar
ff4805c023
subckt.c, finishLine(), #5/9, move/duplicate code behind if/else into the if/else
2017-03-22 20:49:53 +01:00
rlar
735e7700ce
subckt.c, finishline(), #4/9, reorder
2017-03-21 20:27:20 +01:00
rlar
8ab28df4ec
subckt.c, finishline(), #3/9, here *src === '('
2017-03-21 20:27:19 +01:00
rlar
5d3896c388
subckt.c, finishline(), #2/9, rewrite
2017-03-21 20:27:18 +01:00
rlar
0502e83fba
subckt.c, finishline(), #1/9, trivial cleanup
2017-03-21 20:27:17 +01:00
rlar
f12ff5464e
inpptree.c, PTdifferentiate(), cleanup, use a #define
...
to express the expressions arguments more readable
2017-03-19 21:06:49 +01:00
rlar
d696aa8781
niconv.c, NIconvTest(), NaN in CKTrhs denotes non-convergence
...
emit a warning message, but only if ft_ngdebug is set
2017-03-19 20:38:41 +01:00
rlar
dc6e1cb064
use strchr() instead of strstr()
2017-03-19 20:24:49 +01:00
rlar
bd50814677
drop 'depreciated_skip..()'
2017-03-19 20:13:11 +01:00
rlar
7a42510cc0
const'ify some 'skip'ing functions
2017-03-19 20:12:25 +01:00
rlar
45ad60b738
rename gettok_nc() --> nexttok(), and functionalize it
2017-03-19 20:11:01 +01:00
rlar
f338dfe27e
subckt.c, undo a bogous hunk from commit "beautify code", Dec 16 2011
2017-03-19 20:07:34 +01:00
rlar
f9019a5576
devices/*/*ld.c, bug fix, missing assignment to 'model'
2017-03-19 19:47:25 +01:00
mhx
efb8214945
fix spelling, "too much" versus "too many"
2017-03-18 20:49:28 +01:00
rlar
889aaebfd7
inp2m.c, #7/7, whitepace cleanup
2017-03-18 20:44:21 +01:00
rlar
576e522d38
inp2m.c, #6/7, reorder code
2017-03-18 20:44:13 +01:00
rlar
73e76fd88a
inp2m.c, #5/7, drop nname[]
2017-03-18 20:44:04 +01:00
rlar
74145c53a6
inp2m.c, #4/7, move code up into the for loop
2017-03-18 20:43:55 +01:00
rlar
5a95487ad7
inp2m.c, #3/7, simpify, move code down into the for loop
2017-03-18 20:43:46 +01:00
rlar
788c8f7067
inp2m.c, #2/7, simplify, move code down into for loop
2017-03-18 20:43:38 +01:00
rlar
bef3fd1dd5
inp2m.c, #1/7, insist on a valid model, don't default to something
...
Emit an error message when unable to identify a valid modelname token.
If a default model is needed, then create one explicitly:
m1 1 2 3 4 mosdefault
.model mosdefault mos1()
2017-03-18 20:43:19 +01:00
rlar
80ef8b308d
inp2m.c, do not restrict binning to four nodes
...
until now, for unknown reasons,
the search for binned modelnames was restricted to
instances with less than five nodes.
2017-03-18 20:18:11 +01:00
rlar
50c0424225
inp2q.c, inp2m.c, plug a memory leak
2017-03-18 20:15:39 +01:00
Francesco Lannutti
43f24d6f22
rewrite cktsens.c in terms of the 'SMP' matrix interface
2017-03-17 18:22:36 +01:00
rlar
fb4f462388
SMPnewMatrix(), add 'size' to the function arguments
2017-03-17 18:12:48 +01:00
rlar
07d89b5fcd
devices/**, unify structure member variables, ptr -> Ptr
2017-03-17 17:42:58 +01:00
rlar
a6cb9d0d88
cplsetup.c, polish VECTOR_ALLOC and MATRIX_ALLOC
...
explicitly express the object type to be allocated
2017-03-17 17:37:24 +01:00
rlar
8c09761e6b
adms, polish autogen.sh and configure.ac
...
Allow to override the admsXml executable when invoking
autogen.sh and configure.ac
ADMSXML=/foo/bar/baz/admsXml ./autogen.sh --adms
ADMSXML=/foo/bar/baz/admsXml ./configure --enable-adms
alternatively (and more advertised)
./configure ADMSXML=/foo/bar/baz/admsXml --enable-adms
The generated Makefiles remember the given path.
A relative path doesn't make sense of course.
2017-03-12 19:34:37 +01:00
rlar
3ea412e7cd
bug fix for commit "inp2q.c, #17/23, rewrite, using a 'for' loop"
2017-03-12 17:57:27 +01:00
rlar
c3a92e2bb3
xspice, cleanup, move typedef over to the other ones
2017-03-12 12:18:09 +01:00
rlar
987952e57e
adms/admst/ngspiceMODULEsetup.c.xml, adms, implement DEVunsetup()
...
Which is needed to release the allocated circuit nodes in
the corresponding adms generated DEVsetup() routine.
This is required when invoking CKTsetup() more than once
without an intervening "reset".
2017-03-12 10:43:32 +01:00
rlar
6ccccbe7c4
adms/admst/ngspiceMODULE.c.xml, fix the port name table
...
which will be exported from the model code to "spice" via
struct IFdevice.terms
struct IFdevice.numNames
struct IFdevice.termNames
2017-03-12 10:41:52 +01:00
rlar
ba6955a1aa
inp2q.c, sanitise optional ports processing
...
Tie ports 4 and up to ground, iff not connected.
Actually, I think the model's DEVsetup routine should do this business,
we should pass -1 to denote the fact of being unconnected
2017-03-11 21:11:32 +01:00
rlar
3ce3424a9c
inp2q.c, #23/23, whitespace
2017-03-11 20:27:48 +01:00
rlar
9ad1a3033b
inp2q.c, #22/23, drop #ifdef, model_numnodes() does care about this
2017-03-11 20:27:48 +01:00
rlar
ac77e5b020
inp2q.c, #21/23, drop nname[] and model, use local 'token' instead
2017-03-11 20:27:47 +01:00
rlar
25fa9a4454
inp2q.c, #20/23, insist on a valid model, don't default to something
...
If a default model is needed, then create one explicitly:
q1 1 2 3 npndefault
.model npndefault npn()
Note:
This code was buggy anyway because the last token,
which turned out not to be a valid model name,
was silently swallowed.
Thus PARSECALL() didn't parse the whole thing.
2017-03-11 20:27:47 +01:00
rlar
b85a07c62c
inp2q.c, #19/23, rewrite, move code into the 'for' loop
2017-03-11 20:27:47 +01:00
rlar
b1ccdd2184
inp2q.c, #18/23, rewrite, combine two 'for' loop's
2017-03-11 20:27:47 +01:00
rlar
807115c145
inp2q.c, #17/23, rewrite, using a 'for' loop
2017-03-11 20:27:47 +01:00
rlar
03d3e2ea12
inp2q.c, #16/23, emit a message and give up, if we couldn't find the modelname token
...
Thats a functional change of ngspice.
So far we did cook up a "default" model when we didn't find a model token.
But this was buggy anyway, because in such cases we silently dropped
a token from beeing processed by PARSECALL()
Now, we emit a message, and skip this line alltogether.
2017-03-11 20:27:47 +01:00
rlar
83fb9353ef
inp2q.c, #15/23, rewrite, fall into an empty 'else' body when !ADMS
2017-03-11 20:27:47 +01:00
rlar
0bf0021a63
inp2q.c, #14/23, rewrite, assign model a bit later when recognised
2017-03-11 20:27:47 +01:00
rlar
ef37e92338
inp2q.c, #13/23, move code down
2017-03-11 20:27:47 +01:00
rlar
d2d9bffed0
inp2q.c, #12/23, move code down
...
Note; here i==4 and nodeflag still was 4
2017-03-11 20:27:46 +01:00
rlar
c8b1d18289
inp2q.c, #11/23, move code down
...
Note: here i==3 and nodeflag==4
2017-03-11 20:27:46 +01:00
rlar
c5ce68728f
inp2q.c, #10/23, use i to prepare for a loop
2017-03-11 20:27:46 +01:00
rlar
a21a2fd1b0
inp2q.c, #9/23, drop some TRACE code
2017-03-11 20:27:46 +01:00
rlar
16c00730e4
inp2q.c, #8/23, use a 'for' loop
...
Note: the range of nodeflag still is {4,5}
2017-03-11 20:27:46 +01:00
rlar
ffc943dfff
inp2q.c, #7/23, use an array
2017-03-11 20:27:46 +01:00
rlar
c82a9dd87e
inp2q.c, #6/23, transform boolean expression
...
Note: both values range over {4,5}
Thus, this is a functional invariant transformation
2017-03-11 20:27:46 +01:00
rlar
27d93293f9
inp2q.c, #5/23, rewrite using a new function model_numnodes()
2017-03-11 20:27:46 +01:00
rlar
b0fe181f12
inp2q.c, #4/23, transform boolean expression
2017-03-11 20:27:45 +01:00
rlar
042916ae88
inp2q.c, #3/23, renumber 'nodeflag'
...
range over {4,5} instead of {0,1}
2017-03-11 20:27:45 +01:00
rlar
9abcaa88ae
inp2q.c, #2/23, parenthesises and linewrap
2017-03-11 20:27:42 +01:00
rlar
c37ce079eb
inp2q.c, #1/23, rewrite, early 'exit' and 'return'
2017-03-11 19:58:58 +01:00
rlar
40ca7d6db3
inp2m.c, #9/9c, cleanup
2017-03-07 21:54:42 +01:00
rlar
eecd940af8
inp2m.c, #8/9c, drop valid_numnodes()
2017-03-07 21:54:33 +01:00
rlar
6edd684020
inp2m.c, #7/9c, rewrite valid_numnodes() using model_numnodes()
2017-03-07 21:54:23 +01:00
rlar
09fbc0ee97
inp2m.c, #6/9c, now fix model_numnodes()
...
to prevent instance struct storage beeing overwritten.
2017-03-07 21:54:13 +01:00
rlar
54f6bd8d56
inp2m.c, #5/9c, rewrite
2017-03-07 21:54:00 +01:00
rlar
01b75e08ab
inp2m.c, #4/9c, rewrite using model_numnodes()
2017-03-07 21:53:50 +01:00
rlar
396441e1ea
inp2m.c, #3/9c, abstraction, introduce model_numnodes()
...
Note:
This commit does not change behaviour in any way,
yet one can instantly see some sickness now.
Some of the models definitely do not have 7 nodes,
Actually we would like to fetch the number of terminals from
struct IFdevice, slot terms or slot numNames
But it turns out several models publish bogus values.
For example "B4SOI", which has 7 nodes, but claims to have 8
2017-03-07 21:53:37 +01:00
rlar
3bb68fbd7a
inp2m.c, #2/9c, rewrite using GENnode[]
2017-03-07 21:53:26 +01:00
rlar
81b5278674
inp2m.c, #1/9c, rename 'nodeflag'
2017-03-07 21:53:16 +01:00
rlar
c89e7c8818
inp2m.c, #15/15b, collapse remaining code into a for loop
2017-03-05 17:23:20 +01:00
rlar
85236c08e6
inp2m.c, #14/15b, cleanup, drop empty blocks
2017-03-05 17:23:12 +01:00
rlar
8fa3afa4ae
inp2m.c, #13/15b, rewrite, move common code to the end
2017-03-05 17:23:07 +01:00
rlar
3d6a2e2422
inp2m.c, #12/15b, unify, add code which won't be executed at all
...
actually, this most certainly unveils a bug in the original code,
lacking invocation of INPgetModBin() when optional extra nodes come
into play.
2017-03-05 17:23:03 +01:00
rlar
99136a16e7
inp2m.c, #11/15b, rewrite, use array expressions
2017-03-05 17:22:57 +01:00
rlar
7eb6006461
inp2m.c, #10/15b, use 'nodeflag' instead of literal values
2017-03-05 17:22:51 +01:00
rlar
7ab64775b8
inp2m.c, #9/15b, rewrite, use arrays for 'node' and 'mname'
2017-03-05 17:22:40 +01:00
rlar
395939d2f4
inp2m.c, #8/15b, unify, add two invocations without any effect
2017-03-05 17:22:02 +01:00
rlar
55c9c3a73b
inp2m.c, #7/15b, cleanup some braces
2017-03-05 17:22:01 +01:00
rlar
7a1b65f045
inp2m.c, #6/15b, abstraction, introduce valid_numnodes()
2017-03-05 17:21:59 +01:00
rlar
cff00524c2
inp2m.c, #5/15b, express some facts in comments for the following commits
2017-03-05 16:47:51 +01:00
rlar
0a95935e46
inp2m.c, #4/15b, unify code slightly
2017-03-05 16:47:14 +01:00
rlar
f7b3f40c70
inp2m.c, #3/15b, set 'save' a little sooner
2017-03-05 16:46:39 +01:00
rlar
40c632f8a7
inp2m.c, #2/15b, drop TRACE code
2017-03-05 16:45:40 +01:00
rlar
f9213e3fe4
inp2m.c, #1/15b, drop comments
2017-03-05 16:45:23 +01:00
rlar
6fde9353ea
inp2m.c, #7/7, whitespace
2017-03-04 22:09:15 +01:00
rlar
11572fe9d0
inp2m.c, #6/7, polish comments
2017-03-04 19:16:11 +01:00
rlar
f66d37463f
inp2m.c, #5/7, renumber `nodeflag'
2017-03-04 19:16:11 +01:00
rlar
6a275a6bd9
inp2m.c, #4/7, rewrite
2017-03-04 19:16:11 +01:00
rlar
08b798c485
inp2m.c, #3/7, line wraps
2017-03-04 19:16:11 +01:00
rlar
f23876e30c
inp2m.c, #2/7, cleanup braces
2017-03-04 19:16:10 +01:00
rlar
80f58e98a8
inp2m.c, #1/7, cleanup comparisons
2017-03-04 19:16:10 +01:00
rlar
a2347a28d6
inp2*.c, cleanup, drop redundant initialisation
...
which can be dropped to the recently fixed INPgetMod(), see
inpgmod.c, INPgetMod(), bug fix, missing 'model' assignment
Note:
there have been INPgetMod() invocations without initialisation,
causing access to non-initialised memory with the unfixed INPgetMod()
2017-03-04 19:15:55 +01:00
rlar
56b2342df3
inpgmod.c, #15/15, whitespace
2017-03-04 18:47:19 +01:00
rlar
fccdea429c
inpgmod.c, #14/15, cleanup
2017-03-04 18:45:27 +01:00
rlar
0245f304ff
inpgmod.c, #13/15, shortcut #if CIDER
2017-03-04 18:45:26 +01:00
rlar
a8ffd52c42
inpgmod.c, #12/15, cleanup braces
2017-03-04 18:45:24 +01:00
rlar
627ed98464
inpgmod.c, #11/15, reduce scope and rewrite
2017-03-04 18:11:20 +01:00
rlar
66976d492e
inpgmod.c, #10/15, reorder 'extern's
2017-03-04 18:11:14 +01:00
rlar
19e36dd4cb
inpgmod.c, #9/15, drop trailing whitespace in messages
2017-03-04 18:11:13 +01:00
rlar
370420d00e
inpgmod.c, #8/15, commute boolean expressions
2017-03-04 18:11:11 +01:00
rlar
4842cd39a7
inpgmod.c, #7/15, reduce scope and rewrite
2017-03-04 18:11:06 +01:00
rlar
3212b18115
inpgmod.c, #6/15, simplify return of boolean expressions
2017-03-04 18:11:05 +01:00
rlar
6ee483ed1d
inpgmod.c, #5/15, simplify tprintf usage
2017-03-04 18:11:03 +01:00
rlar
b329fd56fc
inpgmod.c, #4/15, unify 'return' statements
2017-03-04 18:11:02 +01:00
rlar
cdc8fbd192
inpgmod.c, #3/15, line wraps
2017-03-04 18:11:00 +01:00
rlar
b0537a7e96
inpgmod.c, #2/15, polish comments
2017-03-04 18:10:57 +01:00
rlar
6cdd306fea
inpgmod.c, #1/15, cleanup comparisons
2017-03-04 18:10:50 +01:00
rlar
5905ed26fa
inpgmod.c, INPgetMod(), bug fix, missing 'model' assignment
...
'model' is a return value, and must always be assigned to.
NULL denotes the error case.
2017-03-04 17:16:03 +01:00
rlar
c3275241a5
ckti2nod.c, cktbindnode.c, minor cleanup
2017-03-04 16:05:08 +01:00
rlar
239780ebef
cleanup, use an array for struct GENinstance.GENnode
2017-03-04 16:04:32 +01:00
h_vogt
4eb32ab566
com_sysinfo.c, add recent Windows versions to info printout
2017-02-22 19:36:38 +01:00
h_vogt
7c06cb2d12
don't mess with WINVER
...
not necessairy for current Windows versions
2017-02-22 19:36:37 +01:00
h_vogt
78ea2e1523
winmain.c, remove of fcn 'read' in Windows
2017-02-22 19:36:34 +01:00
h_vogt
31dca54eba
input.c, don't use read() in __MINGW32__
2017-02-22 19:28:22 +01:00
rlar
d9e7ab2759
input.c, simplify #ifdef for the broken visual studio _read()
...
If we have _MSC_VER so we have either CONSOLE HAS_WINGUI or SHARED_MODULE
If we have SHARED_MODULE, then we most certainly don't need
the unbuffered read(), which isn't unbuffered on _MSC_VER anyway.
Thus _MSC_VER is sufficient.
2017-02-22 19:26:48 +01:00
rlar
1475df2aa4
input.c, try to work around microsofts broken _read()
...
concerning the visual sudio variant of the "console" build.
Their _read() returns 0 when a linfeed is read.
Ironically the linefeed seems to be stored into the buffer nontheless.
Because the filehandle is in linebuffered mode anyway,
(the read won't return up until the terminating newline is entered)
we can just as well use getc(), which doesn't seem to suffer
from the same problem in their implementation.
2017-02-22 19:25:01 +01:00
rlar
2bafe98f17
winmain.c, etc, cleanup
2017-02-22 18:50:40 +01:00
rlar
90a205d36d
winmain.c, etc, whitespace cleanup
2017-02-22 18:50:03 +01:00
rlar
3a9ace82bb
winmain.c, etc, cleanup, rewrite obfuscated symbols
...
substitute in the whole source code:
"__stream" --> "stream"
"__pos" --> "pos"
"__s" --> "s"
"__n" --> "n"
"__c" --> "c"
"__format" --> "format"
"__ptr" --> "ptr"
"__size" --> "size"
"__path" --> "path"
"__mode" --> "mode"
"__offset" --> "offset"
"__whence" --> "whence"
"__arglist" --> "arglist"
"__buf" --> "buf"
"__fp" --> "fp"
"f_c_l_o_s_e" --> "win_x_fclose"
"f_e_o_f" --> "win_x_feof"
"f_e_r_r_o_r" --> "win_x_ferror"
"f_f_l_u_s_h" --> "win_x_fflush"
"fg_e_t_c" --> "win_x_fgetc"
"f_g_e_t_p_o_s" --> "win_x_fgetpos"
"fg_e_t_s" --> "win_x_fgets"
"fp_r_i_n_t_f" --> "win_x_fprintf"
"fp_u_t_c" --> "win_x_fputc"
"fp_u_t_char" --> "win_x_fputchar"
"fp_u_t_s" --> "win_x_fputs"
"f_r_e_a_d" --> "win_x_fread"
"f_r_e_o_p_e_n" --> "win_x_freopen"
"fs_c_a_n_f" --> "win_x_fscanf"
"f_s_e_e_k" --> "win_x_fseek"
"f_s_e_t_p_o_s" --> "win_x_fsetpos"
"f_t_e_l_l" --> "win_x_ftell"
"f_w_r_i_t_e" --> "win_x_fwrite"
"g_e_t_c" --> "win_x_getc"
"g_e_t_char" --> "win_x_getchar"
"g_e_t_s" --> "win_x_gets"
"p_e_r_r_o_r" --> "win_x_perror"
"p_r_i_n_t_f" --> "win_x_printf"
"p_u_t_c" --> "win_x_putc"
"p_u_t_char" --> "win_x_putchar"
"p_u_t_s" --> "win_x_puts"
"r_e_a_d" --> "win_x_read"
"s_c_a_n_f" --> "win_x_scanf"
"ung_e_t_c" --> "win_x_ungetc"
"vfp_r_i_n_t_f" --> "win_x_vfprintf"
"vfs_c_a_n_f" --> "win_x_vfscanf"
"vp_r_i_n_t_f" --> "win_x_vprintf"
"vs_c_a_n_f" --> "win_x_vscanf"
2017-02-10 19:50:42 +01:00
rlar
93d040703d
winmain.c, drop artefact "fgetchar", cleanup/emphasise disabled "freopen"
2017-02-10 18:44:44 +01:00
rlar
69537a7899
winmain.c, fs_c_a_n_f(), bug fix, and cleanup "minimise"
2017-02-09 22:06:07 +01:00
rlar
b5ccfca24b
implement option 'indverbosity' to control check of inductive systems
...
default is 2, maximum verbosity
option indverbosity=1
can be used to prevent check for
"incomplete set of couplings"
option indverbosity=0
can be used to avoid the check altogether
set indverbosity=INTEGER
or
.option indverbosity=INTEGER
works as well
2017-01-02 20:03:25 +01:00
rlar
05ee2e0182
check for missing and duplicate K instances
2017-01-02 20:03:17 +01:00
Francesco Lannutti
bf542f64d8
check for viable mutual inductor coefficients
2017-01-02 20:00:38 +01:00
rlar
fc32837b44
muttemp.c, allow negative inductance
2016-12-03 20:32:26 +01:00
rlar
681903492b
devices/ind/*, whitespace
2016-12-03 20:32:08 +01:00
rlar
24aee8bf2a
devices/ind/*, cleanup
2016-12-03 20:28:06 +01:00
Francesco Lannutti
0c5196e773
signal_handler.c, ft_sigintr(), exit after three SIGINT requests
2016-11-01 20:33:13 +01:00
rlar
4778b48592
inpcom.c, inp_fix_inst_calls_for_numparam(), drop redundant condition `num_subckt_params == 0'
...
found_mult_param() can already cope with that
2016-11-01 11:56:48 +01:00
dwarning
24dbbc393d
remove the ancient nobjthack option to fake 3-terminal bjt's
2016-11-01 11:56:48 +01:00
dwarning
6827495a75
correct the comment for 5-terminal bjt's in get_number_terminals
2016-11-01 11:56:48 +01:00
dwarning
1e880deff4
allow 5-terminal bjt's in subckt expansion
2016-11-01 11:56:48 +01:00
rlar
52a1a58e14
wlist.c, wl_find(), avoid crash when `string' argument is NULL
2016-11-01 11:56:47 +01:00
h_vogt
e4e24f74e6
breakp2.c, copynode(), prevent segfault if missing ')'
...
invoking 'save' with an erronous node, for example
save v(thing
This can happen unexpectedly for long 'save' lines,
which will silently be truncated.
2016-11-01 11:56:25 +01:00
rlar
7fc6609821
breakp2.c, settrace(), cleanup #2/2
2016-11-01 11:06:45 +01:00
rlar
004e49aabf
breakp2.c, settrace(), cleanup #1/2
...
"save" command,
reduce complexity from O(2) to O(1)
2016-11-01 11:05:59 +01:00
rlar
939555115d
variables, cp_vprint, fix a memory leak
2016-10-15 15:57:59 +02:00
rlar
bc325b17c5
variables, lift plot_cur->pl_env up to the invoker of cp_usrvars()
2016-10-15 15:57:54 +02:00
rlar
e0db4aa665
variables, cp_vprint(), reorder for similarity
2016-10-15 15:57:52 +02:00
rlar
a33876ff59
variables, variables, cp_getvar, rewrite
2016-10-15 15:57:50 +02:00
rlar
97c5e1567f
variables, cp_getvar(), beware of retval == NULL
2016-10-15 15:57:48 +02:00
rlar
20b666e2d5
variables, clean up
2016-10-15 15:57:45 +02:00
rlar
b2fb4e20bf
variables, drop 'found', use identity found == (*p != NULL)
2016-10-15 15:57:43 +02:00
rlar
0784f76e51
variables, cleanup the for loops
2016-10-15 15:57:40 +02:00
rlar
e39119c1c8
variables, use identity v == *p (and u == *p)
2016-10-15 15:57:38 +02:00
rlar
d14ee053d7
variables, use a pointer to the anchor of the variable instead of 'lv'
2016-10-15 15:57:35 +02:00
rlar
b13125ac84
variables, explicit processing of ft_curckt->ci_vars, drop uv2
2016-10-15 15:57:33 +02:00
rlar
7483ff9d8c
variables, cp_remvar(), cleanup
2016-10-15 15:57:30 +02:00
rlar
485fba7548
variables, add some comments, add explicit case US_NOSIMVAR
2016-10-15 15:57:28 +02:00
rlar
97cdaae19f
variables, cp_usrvars(), be more explicit
...
lift uv2 return value up to the invoker of cp_usrvars()
2016-10-15 15:57:26 +02:00
rlar
596599492e
variables, drop redundant tfree(v->va_name), rely on free_struct_variable()
2016-10-15 15:57:23 +02:00
h_vogt
fe24b3e6dd
variable.c, remove memory leaks
2016-10-15 15:57:19 +02:00
rlar
ac336c9920
options.c, cleanup inp_getoptsc()
2016-10-15 15:06:20 +02:00
h_vogt
6a0a6071a0
gettok_nc(&line): like gettok(), move pointer beyond next token in line, but without returning a string, without TMALLOC. Replaces constructs like tfree(gettok(&line)).
2016-10-15 15:06:20 +02:00
h_vogt
c198f878d3
inpcom.c, bug fix in inp_chk_for_multi_in_vcvs()
2016-10-15 15:06:20 +02:00
rlar
e89a5dd5b4
cktop.c, #14/14, cleanup
2016-10-15 15:06:20 +02:00
rlar
b3a0f15c09
cktop.c, #13/14, cleanup
2016-10-15 15:06:20 +02:00
rlar
65596ce76c
cktop.c, #12/14, cleanup
2016-10-15 15:06:20 +02:00
rlar
8d843ecec5
cktop.c, #11/14, cleanup
2016-10-15 15:06:19 +02:00
rlar
64fadb90cc
cktop.c, #10/14, whitespace
2016-10-15 15:06:19 +02:00
rlar
3041936663
cktop.c, #9/14, shortcut
2016-10-15 15:06:19 +02:00
rlar
a446d1e145
cktop.c, #8/14, early leave
2016-10-15 15:06:19 +02:00
rlar
0482f57bb7
cktop.c, #7/14, invert a trailing "if"
2016-10-15 15:06:19 +02:00
rlar
761e556ac2
cktop.c, #6/14, simplify loop termination
2016-10-15 15:06:19 +02:00
rlar
eea4d016ec
cktop.c, #5/14, simplify loop termination
2016-10-15 15:06:19 +02:00
rlar
e2f4c2ec9f
cktop.c, #4/14, shrink scope of some locals
2016-10-15 15:06:19 +02:00
rlar
eb1c8e92bc
cktop.c, #3/14, combine two `if' bodies
2016-10-15 15:06:19 +02:00
rlar
ec1e1114e8
cktop.c, #2/14, remove a redundant assignment
2016-10-15 15:06:18 +02:00
rlar
f0e3bc0025
cktop.c, #1/14, cleanup
2016-10-15 15:06:18 +02:00
rlar
b4119b94e3
xspice, cm.h, swallow warnings
2016-10-15 15:06:18 +02:00
rlar
99e864b6bc
graf.c, drop an excess cast
2016-10-15 15:06:18 +02:00
rlar
9c2733db48
macros.h, cleanup SGN() macro
2016-10-15 15:06:18 +02:00
rlar
034188cb43
dctrcurv.c, simplify
2016-10-15 15:06:18 +02:00
rlar
4c2e4d0c2f
drop SIGN(), SIGN(1.0,x) --> SGN(x)
2016-10-15 15:06:18 +02:00
rlar
ea5ad6b0e7
drop DC_ABS() and FTEcabs()
2016-10-15 15:06:18 +02:00
rlar
15f2c67968
use M_PI
2016-10-15 15:06:17 +02:00
rlar
9dcf62e1cd
drop home grown mathematical constants
2016-10-15 15:06:17 +02:00
rlar
cbf31c50c2
multi_line.h, drop some excess macros
2016-10-15 15:06:17 +02:00
rlar
8b98b9b350
use 'fabs()'
2016-10-15 15:06:17 +02:00
rlar
aca1b3a374
use 'abs()'
2016-10-15 15:06:17 +02:00
h_vogt
ae80067fef
cmath2.c, new function stddev to calculate the standard deviation of all elements of a vector
2016-10-15 15:06:17 +02:00
h_vogt
594db31ebc
cmath2.c, whitespace cleanup
2016-10-15 15:06:17 +02:00
rlar
b8b6677b85
cmath2.c, drop some excess NG_IGNORE()
2016-10-15 15:06:17 +02:00
h_vogt
2ab3b82696
cmath2.c, cleanup
2016-10-15 15:06:17 +02:00
rlar
2e35329678
cmath2.c, cleanup min/max operations
2016-10-15 15:06:16 +02:00
h_vogt
0d50547ac1
commands.c: allow 10000 tokens for 'echo' and 'wrdata'
2016-10-15 15:06:16 +02:00
rlar
0d1b4d54c0
**/Makefile.am, fix "make dist"
2016-10-15 15:06:16 +02:00
rlar
ceed247131
src/Makefile.am, bug #327 , "fix install path for include files"
...
install in $includedir/ngspice
which is by default $prefix/include/ngspice
Thanks to Maciej Suminski who reported the issue in
#327 Header files are installed in /usr/share/ngspice/include/ngspice
https://sourceforge.net/p/ngspice/bugs/327/
2016-10-15 15:06:16 +02:00
h_vogt
6f609abc27
x11.c, fix bug #330 , rename csh variable font -> xfont
...
reported by graahnul.grom in
#330 setting xfont in .spiceinit has no effect
https://sourceforge.net/p/ngspice/bugs/330/
2016-10-15 15:06:16 +02:00
rlar
30be67b960
analysis/sensaskq.c, fix ancient bug, setting instead of asking 'deftol'
...
This is of no consequence,
neither 'deftol' nor 'SENS_DEFTOL' is actually used somewhere.
2016-10-15 15:06:16 +02:00
rlar
d32968bdaa
variable.h, reduce visibility of auxiliary struct xxx to variable.c
2016-10-15 15:06:16 +02:00
rlar
b302dbe975
inp.c, cleanup using new function `line_nconc()'
2016-10-15 15:06:16 +02:00
h_vogt
c28c5d307a
inp.c, remove bug with handling of options: options stemming from a command file are kept, options from sourced circuit are removed with ckt
2016-10-15 15:06:03 +02:00
h_vogt
81e1e6fa32
inp.c, inpcom.c, treat files starting with '*ng_script' as command files
2016-10-15 12:59:16 +02:00
h_vogt
6535558f9e
inp.c, plug memory leak
2016-10-15 12:59:13 +02:00
rlar
ebbcc2d982
frontend/inpcom.c, inp_expand_macro_in_str(), shrink scope of some locals
2016-10-15 12:59:01 +02:00
rlar
6ee2088e67
frontend/inpcom.c, expand_section_ref(), rename local variables
2016-10-15 12:58:59 +02:00
rlar
00e571dc00
frontend/inpcom.c, declare search_identifier() non static
2016-10-15 12:58:56 +02:00
h_vogt
c0d5d054ab
gnuplot.c, ft_gnuplot(), suppress generating the .eps and .png file
...
when the given output file name starts with "np_"
2016-10-15 12:58:29 +02:00
h_vogt
42ac9a2859
gnuplot.c, ft_writesimple(), upgrade command 'wrdata'
...
- remove a bug to allow printing of vectors with differing scale lengths
- add option 'numdgt' to specify the width of the numbers printed
- add variable wr_singlescale
use 'set wr_singlescale' to print the scale vector only once
(vectors need to have equal scale lengths)
- add variable wr_vecnames
use 'set wr_vecnames' to print the vector names to the first row
2016-10-15 12:57:46 +02:00
h_vogt
fef2e1439d
gnuplot.c, ft_writesimple(), command 'wrdata', use the given filename literally
2016-10-15 12:43:19 +02:00
h_vogt
bbd7edad72
xspice, two new commands, edisplay and eprvcd
...
'edisplay' will show a list of all event nodes
'eprvcd' will print all event nodes in vcd format
usage: eprvcd a0 a1 a2 b0 b1 b2 clk > myvcd.vcd
2016-08-15 19:24:11 +02:00
h_vogt
71e02fd0a0
com_linarize(), support load'ed vectors
...
if there is no circuit loaded then command 'linearize'
will take time data from transient analysis vector.
(tstart, tstop, tstep)
2016-08-15 11:32:01 +02:00
h_vogt
9f62057973
introduce include file "ngspice/randnumb.h"
2016-08-15 11:30:26 +02:00
rlar
c4cd2270ed
com_history.c, static declaration for 'cp_hprint()'
2016-08-15 11:27:15 +02:00
rlar
6156ebd930
fteext.h, remove prototype for nonexistant 'zigset()'
2016-08-15 11:27:03 +02:00
rlar
78efbcbff8
dctran.c, remove unused variable 'del_before'
2016-08-15 11:27:00 +02:00
h_vogt
33b11f9598
comments improved
2016-08-15 11:26:55 +02:00
h_vogt
27053b877f
devices/asrc, remove memory leak
2016-07-30 21:14:29 +02:00
rlar
b92b25950e
devices/asrc, rewrite asrc_vals, asrc_derivs allocation
2016-07-30 21:10:36 +02:00
rlar
4d79617cf1
spicelib/devcies/*dest.c, rewrite DEVdestroy() functions
2016-07-30 21:10:32 +02:00
rlar
d9e0ae3504
parser/glob.c, bug fix, access to already freed memory
2016-07-30 21:04:11 +02:00
rlar
a5817192e1
ni/niiter.c, #5/5, whitespace
2016-07-30 21:03:55 +02:00
rlar
266e6da24b
ni/niiter.c, #4/5, cleanup
2016-07-30 21:03:49 +02:00
rlar
dda415a0e3
ni/niiter.c, #3/5, use `copy()'
2016-07-30 21:03:29 +02:00
rlar
86bb88b546
ni/niiter.c, #2/5, reduce scope
2016-07-30 21:03:19 +02:00
rlar
2978621931
ni/niiter.c, #1/5, cleanup
2016-07-30 21:03:00 +02:00
rlar
3715947529
dctrcurv.c, #7/7, cleanup
2016-07-30 21:02:35 +02:00
rlar
1cdd68f787
dctrcurv.c, #6/7, use the fact 'i' being 0
2016-07-30 21:02:31 +02:00
rlar
9b75fcb9ce
dctrcurv.c, #5/7, cleanup while loop
2016-07-30 21:02:26 +02:00
rlar
437bc36a8f
dctrcurv.c, #4/7, polish comments
2016-07-30 21:02:21 +02:00
rlar
f77485b081
dctrcurv.c, #3/7, express the value of 'i' more verbosely
2016-07-30 21:02:17 +02:00
rlar
b43a98e0c9
dctrcurv.c, #2/7, use 'j' here for simplicity
2016-07-30 21:02:12 +02:00
rlar
8baf4f435f
dctrcurv.c, #1/7, whitespace cleanup
2016-07-30 21:02:07 +02:00
rlar
5b42d09618
unify, use memcpy for CKTstate copy operations
2016-07-30 21:00:29 +02:00
rlar
d298d5cc2f
use memset() instead of deprecated bzero()
2016-07-30 20:58:33 +02:00
rlar
141ed61ec8
use memcpy() instead of deprecated bcopy()
2016-07-30 20:58:19 +02:00
h_vogt
9ab2960e87
frontend/measure.c, remove memory leak
2016-07-30 20:56:32 +02:00
h_vogt
4047a794e7
bsim3v3.24: add OMP support
...
model is still used by commercial (e.g. X-fab) libraries
2016-07-30 20:18:07 +02:00
h_vogt
151fed6084
bsim3v3.24: add model parameter lmlt (Channel length scaling)
2016-07-30 20:18:01 +02:00
h_vogt
af53cbb415
bsim4, bug fix (when USE_OMP), uninitialised variable `here->BSIM4_27'
2016-07-30 20:00:11 +02:00
h_vogt
f22e8dd970
b4v5dest.c, b4v6dest.c, remove memory leak
2016-07-30 12:19:15 +02:00
h_vogt
f997203c6d
add OMP support to BSIM4.5 model
2016-07-30 12:19:05 +02:00
h_vogt
c74ad9b3ee
control.c, remove memory leaks
2016-07-28 21:25:05 +02:00
rlar
c0513ed573
inp.c, rewrite inp_savecurrents()
2016-07-26 20:18:33 +02:00
h_vogt
893157b11f
inp.c, inp_savecurrents(), remove a memory leak
2016-07-20 20:02:21 +02:00
h_vogt
29cb659235
runcoms2.c, com_remcirc(), remove a memory leak
2016-07-20 20:02:18 +02:00
h_vogt
da92a2483e
inpcom.c, inp_expand_macro_in_str(), remove a memory leak
2016-07-20 20:02:16 +02:00
rlar
88ee1f9196
com_option.c, com_option(), cleanup, rename variables
2016-07-20 20:02:14 +02:00
h_vogt
fa9eb77c0a
com_option.c, com_option(), remove a memory leak
2016-07-20 20:02:12 +02:00
h_vogt
3c2c6e8cde
vectors.c, vec_get(), remove a memory leak
2016-07-20 20:02:10 +02:00
h_vogt
1ef05dc51b
inpcom.c, free_function(), remove a memory leak
2016-07-20 18:09:38 +02:00
h_vogt
fca8ab3146
cmath4.c, cx_deriv(), remove a memory leak
2016-07-20 18:09:18 +02:00
rlar
51fa006c63
INPparseNumMod(), #14/14, whitespace cleanup
2016-07-17 18:28:23 +02:00