dwarning
293f0afc2f
remove unused variables
2019-08-13 22:55:34 +02:00
dwarning
f90295f46a
remove last remainder of unused sensitivity analysis
2019-08-13 22:55:25 +02:00
dwarning
2b60d56606
remove ancient, unused and untested sensitivity code
2019-08-13 22:55:12 +02:00
dwarning
7966aa36ae
correct init for convergence test
2019-08-13 22:54:51 +02:00
Holger Vogt
3494e6b390
prevent crash
...
bug-395 reported by Bohdan Tkhir
2019-08-13 22:54:30 +02:00
Holger Vogt
7bb8049d2a
fix bug no. 394, reported by Yurii Demchyna
2019-08-13 22:54:10 +02:00
dwarning
a549776972
high current devices need lower limit of resistances - set to 10mOhm
2019-08-13 22:53:52 +02:00
Holger Vogt
31db4228f5
fix a typo, correct writing to files under Linux
2019-08-13 22:53:41 +02:00
Holger Vogt
52584312c3
delete the plt and data files after writing eps or png
...
(only if gnuplot_terminal is set to eps/quit of png/quit)
2019-08-13 22:53:32 +02:00
Holger Vogt
8efa08602a
no plotting, only saving to file
...
if gnuplot_terminal is eps/quit or png/quit
2019-08-13 22:53:24 +02:00
Holger Vogt
601dfbd781
sprintf -> snprintf: prevent buffer overflow
2019-08-13 22:53:13 +02:00
Holger Vogt
ec4625eda6
redo gnuplot_terminal: Do not save eps/png automatically
...
none 1: do not print an eps or png file (default)
png 2: print png file, keep command window open
png/quit 3: print png file, quit command window
eps 4: print eps file, keep command window open
eps/quit 5: print eps file, quit command window
2019-08-13 22:53:00 +02:00
Holger Vogt
2344e3d012
patch no. 30 by astx:
...
don't show command window if gnuplot_terminal is set to png/quit
2019-08-13 22:52:49 +02:00
Holger Vogt
e937adc372
remove bug 388: enable plot unit W for plotting @q1[p]
2019-08-13 22:52:41 +02:00
Holger Vogt
4f8fd19309
Allow " around netnames for .plot and .print commands.
...
This enables characters like - / + in netnames, e.g.
.print tran v("/jk-flip-flop-1/q")
2019-08-13 22:52:08 +02:00
Holger Vogt
5b21caae98
correct the command name to 'setcs'
2019-08-13 22:51:48 +02:00
h_vogt
a0d87048e6
command.c, inpcom.c, add command 'setcs': like command 'set',
...
but case sensitive, and thus keeping upper or lower case
of subsequently following variable name and other letters.
2019-08-13 22:51:36 +02:00
dwarning
d03df9d326
correct entry for vdmos bulk diode in acload
2019-08-13 22:49:39 +02:00
Holger Vogt
198fea0db4
-rm -> rm, re-enable 'make uninstall'
2019-03-21 20:24:18 +01:00
Holger Vogt
d4c3d9ceb2
relieve the step size limitation (formerly set to TSTEP in tran simulation).
...
However not all examples will do without, thus the variable 'stepsizelimit'
is set in spinit. Unset it in .spiceinit to get the new behavior.
Of course then you might add the limit by setting TMAX in the tran command.
2019-03-21 20:22:42 +01:00
Holger Vogt
b4559327de
do not use the current plot, but try to get the plot set in arg...
2019-03-21 20:20:56 +01:00
Holger Vogt
9ee359b1e9
beautify code with astyle
2019-03-21 20:20:37 +01:00
Holger Vogt
1fb2a04f79
use fcn plot_get
2019-03-21 20:20:28 +01:00
Holger Vogt
c1b54a5978
return vector located in plot type given by 'name',
...
not just from the current plot
2019-03-21 20:20:00 +01:00
Holger Vogt
40411197e0
add function get_plot(name) to return address of named plot
2019-03-21 20:17:21 +01:00
Holger Vogt
a89e5db571
creating a linearized cutout of the original vector
...
by defining the vectors lin-tstart, lin-tstop, and lin-tstep
before issuing the 'linearize' command
2019-03-21 20:13:27 +01:00
Holger Vogt
2d8b30aebe
enable node names containing '-' in .ic and .nodeset statements
2019-03-21 16:13:43 +01:00
Holger Vogt
0bd3bbd333
clarify estmation of memeory size for output vectors
2019-03-21 16:13:24 +01:00
Holger Vogt
b771ee9c60
don't print status output in dcpss.c, if norefvalue is set
2019-03-21 16:12:47 +01:00
Holger Vogt
9dd47e3029
Remove memory warning message in shared lib
...
False warning on some OSs, especially on Linux when loaded during runtime.
The caller then has to take care of memory available
2019-03-21 16:12:36 +01:00
Holger Vogt
be6eca1dbb
add 'option norefvalue' to suppress printing the reference value.
2019-03-21 16:07:12 +01:00
Holger Vogt
5cd23fae72
move adding 1 to meminit to the right place (needed only once)
2019-03-21 15:52:23 +01:00
Holger Vogt
764542e5b1
Set up all memory in a single step for vector list in a plot.
...
This is to avoid multiple calls to time consuming TREALLOC
2019-03-21 15:51:19 +01:00
Holger Vogt
4062d51f9b
prevent crash, instead issue an error message
...
if first coefficient cannot be parsed, e.g. of a line
V1 1 0 DC 0 trnoise(NoiseVoltage fs 0 0 0 0 0 )
(with missing {}).
Code truncates evaluating further coefficients,
if an error is detected. This now results in a warning
message, if ngdebug is set. The warning may be a
false positive though.
2019-03-21 15:50:05 +01:00
Holger Vogt
d6f5a32c93
Add a comment to the editline #ifdef
2018-12-31 12:03:19 +01:00
Holger Vogt
a3f2c38eb6
upstream editline development at
...
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libedit/readline/readline.h?sortby=date#rev1.42.2.1
have added two lines to readline.h:
typedef int rl_hook_func_t(void);
extern rl_hook_func_t *rl_event_hook;
ngspice rl_event_hook had originally been defined of type void. The patch
redefines the return type to be int.
2018-12-31 12:02:52 +01:00
dwarning
d2f9da64bc
bring current summation inline with rhs
2018-12-24 09:34:06 +01:00
dwarning
d9247cc322
white spaces
2018-12-24 09:30:55 +01:00
Holger Vogt
c35879d3cf
prepare ngspice-30
2018-12-23 13:55:45 +01:00
dwarning
25b13d9dde
Fix VDMOSmode dependency.
2018-12-22 22:43:37 +01:00
dwarning
3d72931125
spice like derivative style - more compact
2018-12-22 22:43:17 +01:00
dwarning
71524f6060
Implementing mobility mudulation (theta).Analytical derivatives for weak-inversion branch.
2018-12-22 22:43:05 +01:00
dwarning
8b424dd3d3
Introducing mobility reduction over Vgs. Model parameter: theta
2018-12-22 22:42:54 +01:00
dwarning
96a5ea0353
Allow 3 terminal vdmos in subckt.
2018-12-22 22:42:46 +01:00
dwarning
1363b7a6b2
Reduce vdmos to a native 3 terminal version.
2018-12-22 22:42:31 +01:00
Holger Vogt
f021424041
dev.c, add model size for XSPICE models, preventing heap corruption.
...
Ocurred with dll under Windows 10 only.
Detected with crtdbg.h, and _CrtSetDbgFlag(_CrtSetDbgFlag(0) || _CRTDBG_CHECK_ALWAYS_DF)
in ngSpiceInit() and {char *test = TMALLOC(char, 1);} as test vehicle.
2018-12-22 18:08:58 +01:00
Holger Vogt
2c7860361d
Prevent segfault if SendStat is NULL and HAVE_FTIME is undefined.
...
Patch no. 28 offered by Liang Chang
2018-12-17 23:07:41 +01:00
Holger Vogt
db13f66519
typo
2018-12-17 23:07:34 +01:00
Holger Vogt
ebc39c941e
fix typos
...
reported by Carsten Schoenert
2018-12-17 23:07:27 +01:00
Holger Vogt
3f816d7f1b
add comment
2018-12-17 23:07:19 +01:00
Holger Vogt
feaebe6bd9
spelling
...
reported by Carsten Schoenert
2018-12-17 23:07:10 +01:00
Holger Vogt
a98f6ac69b
proper initialization of OldAn, callback only
...
if output has changed
2018-12-17 23:07:00 +01:00
Holger Vogt
0f552fc4f8
sharedspice.c, prevent crash, if controlswait is set
...
and a next bg_run before controls are ready.
2018-12-17 23:06:49 +01:00
Holger Vogt
f9f28f7679
MS Windows: Use only POSIX compliant snprintf
2018-12-17 23:06:21 +01:00
Holger Vogt
98a5106015
simplify and re-enble MINGW
2018-12-17 23:05:55 +01:00
Holger Vogt
2a2a7c2d36
sharedspice.c, NS Windows, use only POSIX compliant snprintf
...
make OldAn a zero terminated string
2018-12-17 23:05:41 +01:00
Holger Vogt
0828a8e706
new command bg_ctrl initializing the .control executing thread
...
pthreads: using detached threads only
keep controls during 'reset', delete only upon 'quit'
2018-12-17 23:05:25 +01:00
Holger Vogt
c2db1d5547
Bug 385 enable variable numdgt for printout
2018-12-17 23:05:15 +01:00
Holger Vogt
f6b995b80e
remove unused fcn declaration
2018-12-17 23:05:05 +01:00
Holger Vogt
6f79db19d1
pthreads: suspend thread 3 (controls) with a condition variable
2018-12-17 23:04:57 +01:00
Holger Vogt
9d9f415226
inp.c, add variable 'controlswait'. If set, only then controls with
...
shared ngspice are executed after background thread has finished.
2018-12-17 23:04:43 +01:00
Holger Vogt
e4aabc82c7
shared ngspice: add a third thread to execute the .control commands
...
only after the background thread has been finished
2018-12-17 23:04:31 +01:00
Holger Vogt
7706889a0a
inpcom.c, fix bug no 384
...
do not quote fourth token in f, h lines
otherwise if dev name equals param name parsing fails
2018-12-17 23:04:13 +01:00
Holger Vogt
16978f8bf6
inpcom.c, add alternative noise flag 'noise=1'
2018-12-17 23:03:48 +01:00
Holger Vogt
9f40c2b584
add an icon to MS Windows VC exe
2018-12-17 23:03:27 +01:00
Holger Vogt
7f3f46ebea
license modified to be compatible to 3-clause BSD according to
...
https://github.com/freebsd/freebsd/blob/master/lib/libc/stdlib/getopt_long.c
2018-12-17 23:03:00 +01:00
Holger Vogt
d2d2178407
inpcom.c, remove compiler warnings about
...
potentially uninitialized local variables and
assignment within conditional expression
2018-12-17 23:02:48 +01:00
Holger Vogt
ee843a4c2c
remove memory leak in noise selection for behavioral r
2018-12-17 23:02:27 +01:00
Holger Vogt
6335c271b2
add a syntax check for the incoming netlist.
...
check if an .if statement is used, then skip
deleting unused models and subcircuits (may be
required when using commercial libraries) .
2018-12-17 23:02:03 +01:00
dwarning
49a3af54de
Handle leading plus sign in same kind as minus.
2018-12-17 23:01:45 +01:00
Holger Vogt
72110dc65d
noise caculation in behavioral resistors is switched on
...
by the instance flag 'noisy=1'. Default is a noiseless resistor.
2018-12-17 23:01:15 +01:00
dwarning
edb42b526d
Add comment for better understanding.
2018-12-17 23:00:54 +01:00
dwarning
390d0bddd9
Dereferencing of the null pointer 'p' might take place. Remove unused variable.
2018-12-17 22:58:30 +01:00
Holger Vogt
08a9d8462b
only treat B lines, .param lines have been processed already.
...
This is a very preliminary fix to a bug reported by Andy.
Has to be tested with various input conditions.
2018-12-17 22:58:07 +01:00
dwarning
9e663f45e4
remove some ugly warnings
2018-12-17 22:57:51 +01:00
Holger Vogt
9a1b9dc2e6
reduce the amount of reallocs by making the vector size generation
...
dependent on tstep and tstop for tran or pss simulation
2018-11-18 16:08:08 +01:00
Holger Vogt
9fb2aac952
inpcom.c, skip nois calculation of behavioral resistor
...
by adding instance parameter noisy=0
2018-11-18 16:07:58 +01:00
Holger Vogt
96f3b7b029
bug 380, fix removal of string vector after setting the model parameters
2018-11-18 16:07:26 +01:00
Holger Vogt
163f569eb2
Make the new nodes for current measurement i(xxx) unique
...
by adding a serial number.
2018-11-18 16:06:42 +01:00
Holger Vogt
f1fdb5b2a7
fix current measurement by i(xxx) in B sources: first step,
...
allow spaces before 'i(' token.
Current measurement for devices in series connection
is still not possible.
2018-11-18 16:06:33 +01:00
dwarning
7c94cc2e42
setting gmbs direct to 0
2018-11-18 16:05:52 +01:00
dwarning
92efc0bd6c
don't replicate model and instance temperature dependent parameter
2018-11-18 16:05:46 +01:00
Holger Vogt
34f0e98080
plug a memory leak, delete 'element', if tmalloced before
2018-11-18 16:05:32 +01:00
Holger Vogt
c98b472366
enable GetProcessMemoryInfo for shared ngspice made with MSVC
2018-11-18 16:05:06 +01:00
Holger Vogt
da75066302
update to resource.c:
...
proc/self/statm is up-scaled by page size
up and down scaling by 1024 removed
GetProcessMemoryInfo access simplified
pre-processor flags simplified
tiny format changes
2018-11-18 16:04:26 +01:00
Holger Vogt
cf6722af17
Enable function GetProcessMemoryInfo() to get reliable memory usage data
...
for MINGW and MSVC console, WinGui and MSVC shared ngspice.
MINGW shared ngspice does not link to psapi.dll, so cannot
apply GetProcessMemoryInfo(), but sticks to unreliable function
GlobalMemoryStatusEx().
2018-11-18 16:03:06 +01:00
Holger Vogt
df9efac808
inp2dot.c, beautify the code
2018-11-18 16:00:19 +01:00
Holger Vogt
321b1293e7
plug two small memory leaks
2018-11-18 16:00:12 +01:00
Holger Vogt
0d9d228c11
Put the copy for generating permanent next_token exactly at the places
...
where is is needed: INPtermInsert() and fast->conn...->neg_node_str
XSPICE memory leaks are gone!
2018-11-18 15:59:54 +01:00
Holger Vogt
2a6212f77e
Add a function gc_start to reset the garbage collector
2018-11-18 15:59:44 +01:00
Holger Vogt
4e6de9626e
** A local garbage collector **
...
Add the list of malloced addresses alltokens.
Add a function copy_gc to copy and enter the address.
Add a function gc_end to delete all entries in alltokens.
Beware of addresses deleted elsewhere and use anew by malloc.
Some tokens should not be deleted here, they get another copying.
2018-11-18 15:59:34 +01:00
Holger Vogt
fb1970e25a
add gc functions to replace MIFgettok and MIFget_token
2018-11-18 15:59:15 +01:00
Holger Vogt
ccb7fa410b
remove all instances of tfree.
...
Code is working, but full of memory leaks.
2018-11-18 15:59:05 +01:00
Holger Vogt
f9c956ff6b
mif_inp2.c, improve on memory leaks
...
Delete token before generating it anew, delete def_port_str
only if not already done before.
Still there are some tiny leaks left.
2018-11-18 15:58:26 +01:00
Holger Vogt
7b57800df6
bug 378 put tfree(def_port_type_str) to an appropriate place.
2018-11-18 15:57:35 +01:00
dwarning
d7089adcaf
Also in case of allocation error we have to free existing memory before return.
2018-11-18 15:56:37 +01:00
dwarning
a6fa3aaa11
The 'then' statement was equivalent to the 'else' statement.
...
Also moredimensional poly sources need only one closing bracket for input port.
2018-11-18 15:56:26 +01:00
Holger Vogt
0a50acbb66
inp.c, .if: enable multiple .elseif sections
2018-11-18 15:56:10 +01:00
Holger Vogt
639bfc6280
no lower case after redirection sign > for command 'asciiplot'
2018-11-18 15:55:43 +01:00
Holger Vogt
7a1218cc0e
fix ouput redirection for 'print' command
2018-11-18 15:55:29 +01:00
dwarning
9789956815
don't ask two times if the allocation has failed
2018-11-18 15:55:14 +01:00
dwarning
f7c36d66d4
As the comment said we have bypass only without selfheating
...
so the expression 'here->HSMHV2_coselfheat > 0' is always false
and all derivatives to temperature are 0.
2018-11-18 15:54:58 +01:00
Holger Vogt
54d9ec93cb
bug 375, select correct input line,
...
reported by Bohdan Tkhir
2018-11-18 15:54:43 +01:00
dwarning
68230648c6
white spaces
2018-11-18 15:54:32 +01:00
Holger Vogt
ebe4fd5332
control.c, bug 374, prevent crash if cend[stackp] is NULL
...
reported by PyroPeter
2018-11-18 15:54:21 +01:00
dwarning
9289f0f773
proper initialization of b magnitude coefficient in a special case
2018-11-18 15:54:08 +01:00
Holger Vogt
2a947a933e
bug 253: Do not delete the scale vector of the current plot
2018-11-18 15:53:50 +01:00
Holger Vogt
157aaee6f1
Bug #332 , reported by M. Hendriks
...
Add a warning if statements .control ... .endc are misplaced or missing
2018-11-18 15:53:30 +01:00
Holger Vogt
530cac53c5
bug 337: keep '-' as sign of number following tc1, tc2
2018-11-18 15:52:56 +01:00
Holger Vogt
8d89202161
keep sign together with number when preparing B source pwl (and others)
...
Seems to be optional, B Source handles numbers with offset sign
2018-11-18 15:52:47 +01:00
Holger Vogt
113060473e
bug 337: replace atof by INPevaluate to allow ngspice numbers
...
in tc1 or tc2 tokens.
2018-11-18 15:52:24 +01:00
dwarning
ddd3a11bff
variables are assigned values twice successively
2018-11-18 15:52:05 +01:00
dwarning
d7ee6bee50
bug #368 : x-axis description for nested dc sweeps should inline with first level sweep
2018-11-18 15:51:35 +01:00
Holger Vogt
65ee87e0a2
grid.c, windisp.c, vertical text for postscript and WINGUI
...
Arial as standard font for WINGUI
2018-11-18 15:51:09 +01:00
Holger Vogt
56701e3d10
add rotation angle to text output, currently used only by postscript,
...
ignored by all others
2018-11-18 15:50:56 +01:00
Holger Vogt
9e01d0b9f9
postsc.c, enable postscript output for extended ascii.
...
Currently only Western European latin-1 (ISO/IEC 8859-1) encoding
is supported.
2018-11-18 15:50:00 +01:00
h_vogt
87be5b9a41
Do not set Bit 8 in an ANSI char, when \ or ^ occured in a string. Thus the full ANSI set is now available in ngspice strings. The setting of Bit 8 was not exploitet anywhere, but did not allow using the characters from extended ANSI.
2018-11-18 15:49:31 +01:00
Holger Vogt
41fbc0bb1d
inpcom.c, command gnuplot: no lower case in xlabel, ylabel, title
2018-11-18 15:49:18 +01:00
Holger Vogt
66c468087d
noisean.c, beautify the code
2018-11-18 15:48:58 +01:00
h_vogt
f640ef68c3
noisean.c, ensure correct user input:
...
number of points always > 0
single frequ measurement if 1 point given
2018-11-18 15:48:41 +01:00
h_vogt
b0da1f2a0f
com_measure2.c, write a fft vector (sp plot) with complex data
...
and real frequency to file and load it again, frequency now has become
a complex number as well. This was not recognized, thus ngspice crashed
(see https://sourceforge.net/p/ngspice/discussion/127605/thread/8cccd69c/
by Michal Janik - 2014-11-04
2018-11-18 15:48:13 +01:00
Holger Vogt
9ab153ddc2
Exclude from model search all lines beginning
...
with a character contained in this list: *vibefghkt
2018-11-18 15:47:24 +01:00
Holger Vogt
277842f948
update to model search function
2018-11-18 15:47:04 +01:00
Holger Vogt
78ab9c477b
Update to the model name search function:
...
A model name is any token not being a true ngspice number,
except for tokens with some prohibited front characters
{*^@\\\' .
2018-11-18 15:46:26 +01:00
dwarning
de9755b1ad
backup to original state - but changing name of local struct t to tc
2018-11-18 15:45:55 +01:00
dwarning
e3c1b02892
remove compiler warning about double declaration of DEVices
2018-11-18 15:45:37 +01:00
dwarning
12498623c8
no use of string 't' - but struct 't' is still used
2018-11-18 15:45:23 +01:00
dwarning
cc4e4d9bad
verify pointer before utilization
2018-11-18 15:45:12 +01:00
dwarning
42d29ef49f
remove the entire file buffer modification which was never come in effect
...
Take over this task to the OS which will handle this properly.
2018-11-18 15:44:53 +01:00
dwarning
f0f19f87a3
In case the file open failed we have no need to set the IO buffer size.
...
And this should also not be done with a NULL pointer into setvbuf.
2018-11-18 15:44:40 +01:00
dwarning
5590406acf
The 'j' variable is assigned values twice successively.
...
Obviously the first assigment is waste because 'j' has the meaning of row count.
2018-11-18 15:44:32 +01:00
dwarning
a36366be1a
A call of the 'memset' function will lead to underflow of the buffer 'table'.
...
Table structure multiplied by N_GLOBAL_NODES will initialize the entire table with 0.
2018-11-18 15:44:25 +01:00
dwarning
a2c5cb4301
It is odd that pointer to 'char' type is compared with the '\0' value.
...
Correct compare with *eqword follows in a correct error message.
2018-11-18 15:44:15 +01:00
Holger Vogt
d504991177
new definition of cp_enqvar also in seldom used ngsconvert.c
2018-10-27 18:07:44 +02:00
Holger Vogt
19380903cc
add missing evtshared.h to the distribution
2018-10-27 16:37:33 +02:00
Holger Vogt
94fa272c9d
A hack to repair bug reported by Clyde R. Shappee
2018-10-27 12:28:01 +02:00
dwarning
6b99bc8f7a
prevent pass null pointer into setvbuf
2018-10-27 11:33:48 +02:00
dwarning
93f35afe69
s variable was assigned values twice successively
2018-10-27 11:33:00 +02:00
dwarning
360efabf36
no null pointer to fprintf
2018-10-27 11:24:22 +02:00
dwarning
ae698c208a
variable was assigned to itself
2018-10-27 11:21:06 +02:00
dwarning
5459404c47
prevent fallthrough by missing return
2018-10-27 11:20:29 +02:00
dwarning
740987382b
The 'then' statement was equivalent to the 'else' statement.
2018-10-27 11:19:57 +02:00
dwarning
cf24081507
prevent unused warning
2018-10-27 11:12:56 +02:00
dwarning
be79efbf7a
Remove recurring check
2018-10-27 11:09:49 +02:00
dwarning
ef61972910
Add missing break
2018-10-27 11:09:20 +02:00
dwarning
06430b7f14
rm extra text after end of preprocessing directive
2018-10-27 11:09:07 +02:00
dwarning
079b3bb7fd
add some missing prototypes
2018-10-27 11:08:17 +02:00
Holger Vogt
4738edeab5
symbol visibility=hidden only in release mode
...
for shared library and codemodels
2018-10-27 11:06:16 +02:00
Holger Vogt
75d1e45737
consider all PSPICE containing compatibility settings
...
for the evaluation of the pwr function
or allowing '-' in a subcircuit name
2018-10-20 23:54:02 +02:00
Holger Vogt
f31f044e30
set the search path for the code models relative to ngspice.exe
...
(for Windows GUI and console)
2018-10-18 21:39:33 +02:00
Holger Vogt
ff2304625f
allows to start ngspice WinGUI by double click on an input file, if
...
the file extension has been associated with ngspice.exe
2018-10-18 21:37:50 +02:00
Holger Vogt
45e269819e
fix a bug
2018-10-17 19:01:59 +02:00
dwarning
5c31aec164
prevent core dump to get the baseaddress
2018-10-16 14:13:17 +02:00
dwarning
56bc8af358
calloc needs stdlib.h
2018-10-15 22:36:01 +02:00
dwarning
67b38d7885
remove empty statement
2018-10-15 16:06:57 +02:00
Holger Vogt
25cdf95262
replace deprecated sys_errlist[errno] by call to strerror(errno)
2018-10-14 12:21:02 +02:00
Holger Vogt
7787268118
Enable psa, ltpsa compatibility mode
2018-10-13 22:41:55 +02:00
Holger Vogt
b0d79630a4
New variable no_auto_gnd
...
'set no_auto_gnd' in spinit or .spiceinit will preclude
ngspice to automatically replace 'gnd' by global '0'
2018-10-13 18:20:18 +02:00
Holger Vogt
b3db3c7fd9
Don't modify 'working' address, insert new item (functions etc)
...
only after ther first line.
2018-10-13 18:20:13 +02:00
Holger Vogt
3930e27501
New compatibility modes (set ngbehavior=??): PS LT LTPS PSA LTA LTPSA
...
PS: PSPICE comp. in .include files., LT: LTSPICE comp. in .include files.
LTPS: both, PSA: PSPICE comp. in complete input deck,
LTA and LTPSA: comp. in complete input deck for LT or both.
Add functions uplim, dnlim, uplim_tanh, dnlim_tanh.
Replace
D1 A K SDMOD
.MODEL SDMOD D (Roff=1000 Ron=0.7 Rrev=0.2 Vfwd=1 Vrev=10 Revepsilon=0.2 Epsilon=0.2 Ilimit=7 Revilimit=7)
by
ad1 a k asmod
.model asmod sidiode(Roff=1000 Ron=0.7 Rrev=0.2 Vfwd=1 Vrev=10 Revepsilon=0.2 Epsilon=0.2 Ilimit=7 Revilimit=7)
2018-10-13 18:19:58 +02:00
Holger Vogt
0b7c291f37
replace Id by Idd.
...
Use Revilimit instead of Ilimit.
Correct for current limits.
2018-10-13 18:19:53 +02:00
Holger Vogt
0675da008b
make the paramter param in @dev[param] lower case for
...
commands alter, altermod
2018-10-13 18:19:49 +02:00
dwarning
7bb9b866f6
fix junction capacitance calculation for bsim3 versions lower than 3.2.3
2018-10-13 18:19:43 +02:00
dwarning
2b3cfd7727
white spaces
2018-10-13 18:19:38 +02:00
Holger Vogt
d636f7899b
cp_enqvar() returns freshly malloced variables as well
...
as variables owned by somebody else, e.g. from ft_curckt->ci_vars.
The new function parameter tbfreed notifies the caller if the
variable is malloced here and may be freed safely.
2018-10-13 18:19:31 +02:00
Holger Vogt
6df684e22a
Evaluate .if ... .elsif ... .else ... .endif recursivly
2018-10-13 18:19:21 +02:00
Holger Vogt
a22017024b
add some info to file header
2018-10-13 18:19:09 +02:00
Holger Vogt
faa7ce003c
Add a new code model 'sidiode' with a simple diode:
...
Linear reverse, off, and on regions
Smooth parabolic transition between the regions
Maximum current settings possible with tanh transistion
Current versus voltage continuously differentiable
No diode capacitance
2018-10-13 18:18:59 +02:00
dwarning
76c43ab512
using the native tan and tanh math functions for real vector calculation
2018-10-13 18:18:47 +02:00
dwarning
3dd94ba15c
differentiate tan and tanh in safe way without cos and cosh
2018-10-13 18:18:37 +02:00
Holger Vogt
f33c3f0751
remove memory leak, when ft_getnames ... free_pnode couple
...
parses a vector like v(1,2)
2018-10-13 18:18:23 +02:00
Holger Vogt
ae89381bb6
Prevent a segfault if multiple circuits are freed upon 'quit'
...
by checking if a 'recent_deck' that is to be freed also exists
with same address in ci_mcdeck of another circuit. If yes, set
this to NULL before freeing.
2018-09-26 18:47:20 +02:00
Holger Vogt
a17de08b5c
free only value that have been TMALLOCed or TREALLOCed
2018-09-26 18:47:06 +02:00
Holger Vogt
2a3c88add6
Commit ad0f59657 ("fix a memory leak", 2018-08-13) made
...
the special device parameter notation @m1[vt0] unusable.
This fix frees only the tokens that are already overridden
in function INPinsertNofree(). The reason for using this
function instead of INPinsert() is not obvious.
2018-09-26 18:46:12 +02:00
Holger Vogt
5f0b2f344e
spurious crash: MIFgettok deliveres strings that cannot be freed:
...
MS Windows, VS or MSYS2/MINGW/GCC, shared ngspice, single character
token at end of line, compiled with optimization, not in debug mode.
Preliminary fix: TMALLOC another byte to token.
Origin of bug still unknown: Source code error? MS library error?
Re-write of MIFgettok does not show this error (so far...).
2018-09-26 18:45:46 +02:00
Holger Vogt
92b69cbc55
prepare ngspice-29
2018-09-26 18:45:35 +02:00
Holger Vogt
40e69ceaf4
plug a memory leak after (internal) call to altermod
2018-09-02 18:05:22 +02:00
Holger Vogt
12c864fb5a
destroy the tmalloced diag, if rshunt option was enabled
2018-09-02 18:05:01 +02:00
Holger Vogt
2e9c28c79a
Prevent segfault, if mutual inductor coupling
...
specifies non-existing inductors
2018-09-02 18:04:49 +02:00
Holger Vogt
b0e7962169
don't generate error message during transient analysis,
...
it will not be used
2018-09-02 18:04:42 +02:00
Holger Vogt
fc3ffb2e3c
free global string errMsg
2018-09-02 18:04:31 +02:00
Holger Vogt
0406546f7e
remove a small memoryleak in (nested) goto loops
2018-09-02 18:04:25 +02:00
Holger Vogt
70439e38fa
safety check if no circuit is loaded, prevent crash
2018-09-02 18:04:19 +02:00
Holger Vogt
8b02c31326
prevent reading beyond array boundaries
2018-09-02 18:04:00 +02:00
Holger Vogt
a8a6e0b2ff
During unsetup delete the InstanceArray (only for OpenMP)
2018-08-28 23:15:02 +02:00
Holger Vogt
800c9711f2
add a flag 'type of the union' to safely free model->param[i]->element,
...
if it contain a malloced string
2018-08-28 21:29:05 +02:00
Holger Vogt
f6cbaea604
data[i] is no longer written beyond its allocated length
2018-08-28 18:45:19 +02:00
Holger Vogt
2867678f99
For unsetup de-allocate the memory
...
that has been allocated locally in the code model during INIT
2018-08-28 17:11:51 +02:00
Holger Vogt
7d12b4897c
clean-up function com_quit
2018-08-28 16:24:43 +02:00
dwarning
06d0aaa827
whitespaces
2018-08-28 14:55:43 +02:00
dwarning
06fb917b82
plug a memory leak in bsim models
2018-08-28 14:42:29 +02:00
Holger Vogt
fa60f7d21d
avoid memory leak in X11
2018-08-27 21:20:19 +02:00
Holger Vogt
c4f8a02eb0
add a callback to de-allocate the static variable p->element
2018-08-27 17:00:10 +02:00
Holger Vogt
06df6ca8e7
avoid pre-matuire exit (byemessage not called)
2018-08-27 14:28:04 +02:00
Holger Vogt
80a767f6cd
add here->intgr to the de-allocated memory
2018-08-27 14:00:18 +02:00
Holger Vogt
21edfb2127
safety measure against here->conn[i]->port[j]->partial etc.
...
being NULL
2018-08-27 12:47:56 +02:00
Holger Vogt
a5179b1637
free memory allocated in MIFsetup and by cm_analog_alloc and cm_analog_converge
2018-08-27 12:19:24 +02:00
Holger Vogt
c87dd6161f
mifsetup.c: use astyle to beautify the code for better readability
2018-08-27 10:54:54 +02:00
Holger Vogt
e7bcc09bb0
remove memory leak: delete duplicate .param lines
2018-08-27 00:20:52 +02:00
Holger Vogt
9cd9bf345c
mif_inp2.c: remove a memory leak
2018-08-26 19:02:21 +02:00
Holger Vogt
3ee1f92d2e
plug a memory leak in b3temp.cir: no overwriting of size dependent
...
model parameters in pParam
FIXME: still to be done for other BSIM models!
2018-08-25 23:14:03 +02:00
Holger Vogt
b6b66c71bd
plug a small memory leak (switch-oszillators.cir)
2018-08-25 23:12:17 +02:00
Holger Vogt
9332801382
free the original wlist, made by getcommand(),
...
not a derived wlist that is just part of the original
2018-08-25 00:38:26 +02:00
Holger Vogt
c5cea6d6c1
remove ft_curckt->ci_meas upon removing the current circuit ft_curckt
2018-08-24 22:58:02 +02:00
Holger Vogt
5f1f6ccb29
add a small comment
2018-08-24 22:41:14 +02:00
Holger Vogt
0fbe920382
plug a small memory leak in switch-oscillators.cir
2018-08-24 21:56:29 +02:00
Holger Vogt
2b50ca7271
command 'print': preserve case for filenames after redirection '>'
2018-08-24 15:41:53 +02:00
dwarning
5380c3f4da
prevent a small memory leak
2018-08-23 15:44:00 +02:00
Holger Vogt
0e0b276a3e
ISRC: update to trnoise source, same as in VSRC
2018-08-23 10:56:50 +02:00
Holger Vogt
aedd9d92ee
upon alter the trnoise or trrandom states get re-written.
...
so delete the old state first.
2018-08-23 10:13:17 +02:00
Holger Vogt
b4c6a7d324
add function trnoise_state_free and use it
...
instead of its individual components
2018-08-23 10:12:24 +02:00
Holger Vogt
c88578e2c5
noise value is 0 for time == zero.
...
Only when time changes from time == 0 to time > 0,
the 1/f noise data are generated once per voltage instance
with 1/f noise requested.
2018-08-22 22:38:34 +02:00
Holger Vogt
d3b7619754
add a flag timezero to trnoise_state
...
falg is true as long as time = 0. Allows
to detect the change from time == 0 to time > 0
only then the 1/f data may be created anew (e.g.
due to multiple 'run' commands
2018-08-22 22:36:35 +02:00
dwarning
aa95da431a
adaptive format specifier for size_t printf
2018-08-22 14:19:12 +02:00
dwarning
aed5ba01c0
prevent a small memory leak
2018-08-22 13:05:19 +02:00
dwarning
7d78cba9ef
fix some prototype declarations
2018-08-21 13:40:13 +02:00
dwarning
561fdd805c
rm unused variables
2018-08-21 13:18:24 +02:00
dwarning
598b72be37
prevent a huge memory leak by calling fftw3 in a loop
2018-08-20 16:41:43 +02:00
Holger Vogt
1f7d84b270
trivial patch to avoid memory leaks during transient noise generation.
...
This has to be replaced by a rewrite of the noise generating code.
2018-08-20 00:25:21 +02:00
Holger Vogt
34fcdda1e2
plug a potentially huge memory leak
2018-08-19 21:03:15 +02:00
Holger Vogt
dafbf72f7f
fix a small memory leak
2018-08-19 17:30:53 +02:00
Holger Vogt
8c9b18ef7e
fix a small memory leak
2018-08-19 17:24:10 +02:00
Holger Vogt
7e4b68c708
update to the rusage command:
...
print total analysis time, total elapsed time, and
memory information (OS dependant) if rusage is given
without parameters
2018-08-19 15:00:46 +02:00
Holger Vogt
f07c73b6a5
Command 'cd' now switches to the home directory also for MS Windows.
...
A new command 'getcwd' just prints the current working directory
without changing it.
2018-08-18 21:22:59 +02:00
Holger Vogt
9cc690c55c
try to reload only when mc_deck is available
...
comment modified
2018-08-18 11:29:05 +02:00
Holger Vogt
2b071fec5a
add loading from recent deck (mc_deck) if circuit
...
file has been removed by remcirc.
2018-08-18 11:28:39 +02:00
Holger Vogt
2dfdf984d6
re-number the lines during copying,
...
required by nupa_copy()
2018-08-18 11:28:07 +02:00
Holger Vogt
f9eb75f55d
skip comment lines
2018-08-18 11:28:02 +02:00
Holger Vogt
ac0a70bb84
print deck after re-loading into debug-out-mc.txt,
...
if 'set ngdebug' is set in .spiceinit
2018-08-18 11:27:51 +02:00
Holger Vogt
cebb83eec1
give preference to mc_reload when reloading the circuit
2018-08-18 11:27:44 +02:00
Holger Vogt
ad0f596570
fix a memory leak
2018-08-18 11:27:31 +02:00
Holger Vogt
795f9ed6ad
remove unused rparen
2018-08-18 11:27:20 +02:00
Holger Vogt
b1f956f81c
fix a memory leak
2018-08-18 11:27:14 +02:00
Holger Vogt
73da17e367
just keep recent_deck, when it's already equal
...
to current ft_curckt->ci_mcdeck, thus avoid
freeing ft_curckt->ci_mcdeck
2018-08-18 11:27:02 +02:00
Holger Vogt
d1a8637a29
store deck for command mc_source for each circuit in ft_curckt->ci_mcdeck
...
remove this storage during remcirc
keep most recent deck in recent_deck
2018-08-18 11:26:42 +02:00
dwarning
9475daf9d2
MOS level 55-57 and 68 are available and not placeholder
2018-08-15 12:47:25 +02:00
dwarning
b113041faa
if bsim6 will come it would be va code and needs adms
2018-08-15 12:01:22 +02:00
Holger Vogt
d8352342a8
free more data allocated during INIT
2018-08-11 11:37:19 +02:00
Holger Vogt
c891c2f64f
Update to callback function:
...
delete memory also in the eno structure
do not close a file twice
2018-08-11 00:43:54 +02:00
Holger Vogt
7e611e7b57
remove the circuits upon quit
2018-08-10 23:48:00 +02:00
Holger Vogt
d26d1b96ec
add callback function to delete the memory
...
allocated in the code model
2018-08-10 23:35:33 +02:00
Holger Vogt
9d36a2e326
remove unused i
2018-08-10 23:34:27 +02:00
Holger Vogt
2ce4c1592b
a tiny memory leak
2018-08-10 22:03:02 +02:00
Holger Vogt
0bc1d8147c
plug a memory leak
2018-08-10 19:56:26 +02:00
Holger Vogt
a6f525f6c1
fix a memory leak
2018-08-09 23:23:18 +02:00
Holger Vogt
9db2bf3d69
fix a memory leak
2018-08-09 20:22:33 +02:00
Holger Vogt
6ed10583f2
plug small memory leaks
2018-08-08 23:31:52 +02:00
Holger Vogt
dc34632421
fix memory leaks when evaluating a variable
...
MC example file MC_ring_ts.sp is now free of memory leaks
2018-08-07 22:46:26 +02:00
Holger Vogt
934656f6e8
fix memory leak: before killing a plot, remove its hash table entry
2018-08-07 20:42:55 +02:00
Holger Vogt
cffc7d27ff
beautify code with astyle
2018-08-07 19:58:52 +02:00
Holger Vogt
c5b5190199
command 'setplot': add predefined 'previous' and 'next' parameters
...
to switch to the previous or next plot. A warning results if this
is not possible, then the currnt plot is not changed.
2018-08-07 19:58:41 +02:00
Holger Vogt
19596f0f42
add search in current directory
...
Patch provided by Uros Platise
https://sourceforge.net/p/ngspice/ngspice/merge-requests/4/
2018-08-07 19:58:08 +02:00
Holger Vogt
7c90004921
add Inp_Path to sourcepath variable
...
Patch provided by Uros Platise
https://sourceforge.net/p/ngspice/ngspice/merge-requests/4/
2018-08-07 19:57:58 +02:00
Holger Vogt
e18b848f7d
Allow '-' and '+' being part of the instance name.
...
Has already been available for B, E, F, G, and H sources
2018-08-07 19:57:38 +02:00
Holger Vogt
f354f36121
replace 'magic numbers' by defines, thus setting several char arrays
...
safeguard these arrays against overflow
set numbers of parameters to 10000
2018-08-07 19:57:28 +02:00
dwarning
88f1fa0092
allow version model parameter in exponential format for bsim3
2018-08-07 19:57:05 +02:00
Holger Vogt
8357564fee
fix missing tokens in cp_getvar
2018-07-30 00:42:46 +02:00
Holger Vogt
ef5747905f
fix bug no. 362, reported by Bohdan Tkhir
...
replace size_of by sizeof
2018-07-30 00:35:25 +02:00
Holger Vogt
eab5615fb3
examples moved to examples/xspice/original-examples
2018-07-28 13:47:23 +02:00
Holger Vogt
e3b2b395b9
fix an ancient bug in retrieving the data with the cursor
...
from a log y graph: use y-offset instead of x-offset
2018-07-26 20:55:21 +02:00
Holger Vogt
908339359a
clarify start time generation
...
clarify time and amplitude updates
don't read comment lines
2018-07-26 20:50:36 +02:00
Holger Vogt
0c94ab948b
treat ( ) , like spaces, that is ignore them during
...
switch parameter conversion
2018-07-26 18:21:34 +02:00
Holger Vogt
d1761f8d6e
read the complete input file at once during inizialization
...
instaed of reading the file line by line,
and instaed of re-reading from the beginning in case
of time stepping back. This saves a vast amount of
simulation time if the input file is large.
2018-07-24 22:30:40 +02:00
Holger Vogt
393c924886
improve finding tokens, considering nested parens
2018-07-22 17:33:19 +02:00
Holger Vogt
f2cfb9b359
add fourth parameter to cp_getvar()
2018-07-22 15:15:10 +02:00
Holger Vogt
fac5754b79
add variabale inputdir to store the last input file directory
2018-07-22 15:12:50 +02:00
Holger Vogt
2786fcb86e
New .option seed=[val|random]
2018-07-22 15:11:44 +02:00
Holger Vogt
107a4a808e
New .option seed=[val|random]
2018-07-22 15:09:25 +02:00
Holger Vogt
10c6c5c38b
Convert .param lines containing 'agauss' and others
...
into .func (xxx1() 'agauss()', replace all xxx1 entries
by function xxx1().
After subcircuit expansion, replace agauss and others
in B-Line by their suitable values.
2018-07-22 15:08:44 +02:00
Holger Vogt
7ca61b3c98
New command 'setseed' with function com_sseed
...
to set the random number generator
2018-07-22 15:06:19 +02:00
Holger Vogt
8fbcb16a57
add fourth parameter to cp_getvar(), in functions missing so far
2018-07-22 14:58:25 +02:00
Holger Vogt
af70c2e8f0
cp_getvar with CP_STRING: add size of string to function parameters
2018-07-22 14:58:06 +02:00
Holger Vogt
09c876550f
prevent string overflow by adding the string length
...
to the cp_getvar parameters. Used only with CP_STRING
2018-07-22 14:57:49 +02:00
dwarning
60a35725f5
few optimizations for diode recombination current calculation
2018-07-22 10:18:52 +02:00
Holger Vogt
8930690cd2
plug a small memory leak
2018-07-22 09:53:14 +02:00
Holger Vogt
824ac4fbc9
make functions static or add function prototypes
2018-07-21 23:56:14 +02:00
Holger Vogt
2dd293707b
initialize pn in ft_getpnames() parse.c
...
initialize dwLen in tesCreateSystemInfo() in com_sysinfo.c
Both were reported by MSVC Code Analysis
Crash of ngspice.dll in Eeschema is thus removed
(hopefully in general)
2018-07-21 23:55:00 +02:00
Holger Vogt
b07ae3123e
use only internal memory functions,
...
replace strdup by copy
2018-07-21 23:54:51 +02:00
Holger Vogt
a98d01e5f8
Use only internal memory functions, replace
...
free->tfree, malloc->tmalloc, realloc->trealloc
2018-07-21 23:54:43 +02:00
dwarning
376a37a5d6
introduce recombination current component
2018-07-19 15:44:06 +02:00
dwarning
3bae0e371c
fix a small inconsistency in temperature dependent charge calculation
2018-07-19 14:08:35 +02:00
Holger Vogt
a2b52b588e
a space is required between tokens that have got {}
2018-07-14 21:14:54 +02:00
Holger Vogt
d9d47bd823
fix a bug: missing
...
#ifdef XSPICE
prevents compiling of ngshared
without --enable-xspice in ./configure
2018-06-30 21:19:51 +02:00
Holger Vogt
417dbfef72
undo the previous commits dealing with snprintf,
...
use the C99 compliant function also with MS Visual Studio
2018-05-31 11:37:51 +02:00
Holger Vogt
92dd6e48d0
make up description comment for pspice_compat()
2018-05-31 10:59:20 +02:00
Holger Vogt
7153891293
raise buffer size by 1 to retain previous resolution
2018-05-31 10:58:52 +02:00
Holger Vogt
3b4640dee4
_snprintf in Windows 7 does not automatically put a '\0'
...
to the end of the buffer, only if there is space available.
That will change in the future if Snprintf is used.
2018-05-31 10:24:09 +02:00
Holger Vogt
1d9ab3eb5c
PSÜICE compatibility:
...
R n1 n2 val TC=xx1,xx2 --> R n1 n2 val TC1=xx1 TC2=xx2
2018-05-29 23:55:23 +02:00
Holger Vogt
22b7fa77b5
fix a bug with switches, when no subcircuit is involved
2018-05-28 23:59:55 +02:00
Holger Vogt
e5652cd745
safeguard fclose
2018-05-27 21:37:03 +02:00
Holger Vogt
2f56feea4a
do not lower-case command 'set sourcepath = XXX'
2018-05-27 07:56:40 +02:00
Holger Vogt
42a86d0ff2
patch provided by Uros Platise: timeunit selection
...
for printing vcd file is now based on tstep instead of tstop
2018-05-26 15:00:37 +02:00
Holger Vogt
2e0b8b3e34
plug a small memory leak
2018-05-23 23:08:44 +02:00
Holger Vogt
a40ba9ec4e
add a comment
2018-05-22 21:18:53 +02:00
Holger Vogt
ae81481229
white spaces
2018-05-22 20:34:44 +02:00
Holger Vogt
7b6cd86a62
re-write vswitch transformation code:
...
first scan: check for each .model with vswitch
second scan: check for switch instances
(s lines) using the models
2018-05-22 20:19:50 +02:00
Holger Vogt
f9b11cd619
update to function pspice_compat(), concerning the VSWITCH replacement
...
only one .model replacement even for several s instances
firstly search in subcircuit at same level, then in top level
2018-05-21 23:34:36 +02:00
Holger Vogt
f4f389dabb
internal help: it is only available when --enable-oldapps is given
...
ngnutmeg is only made when --enable-oldapps is given during ./configure
2018-05-21 01:09:21 +02:00
Holger Vogt
0cb71b21bb
move ngspice_compat_mode(void) to inpcom.c and make it static
2018-05-21 01:09:13 +02:00
Holger Vogt
fa3badf2bd
correct typo
2018-05-21 01:09:06 +02:00
Holger Vogt
d991bbc470
ngconfig.sh is no more available
2018-05-20 12:48:31 +02:00
Holger Vogt
3145716163
new --enable-oldapps: ngsconvert ngproc2mod ngmultidec ngmakeidx are made only per user request
2018-05-19 23:49:17 +02:00
Holger Vogt
8324b0f646
prepare ngspice-28
2018-05-19 22:15:41 +02:00
Holger Vogt
406f812db5
distribute only adms/admst, not the whole adms
2018-05-19 20:25:42 +02:00
Holger Vogt
697b9da074
prevent endless loop if factor finally equals 1
2018-05-19 18:24:40 +02:00
h_vogt
e47ab87385
inpcom.c, multiplier 'm' in subcircuits: exclude all devices not supporting multiplier 'm'
2018-05-19 18:20:27 +02:00
h_vogt
8762f6551d
main.c free argv after its use (Win GUI only)
2018-05-19 18:15:23 +02:00
h_vogt
d89eab99d5
add dicoS->linecount to safely delete dynrefptr[i],
...
linecount may change if circuits are changed or deleted.
2018-05-19 17:49:17 +02:00
h_vogt
1066bf0a7b
Store the numparam dicoS structure for each circuit in a list.
...
Functions to add, remove, retrive dicoS from the list
and to update dicoS, if the circuit has been changed.
Keeping dicoS is necessary because it may be used by measure.
This patch prevents (huge) memory leaks by overwriting
dicoS if multiple calls to the 'source' command are executed.
2018-05-19 17:45:45 +02:00
h_vogt
4a3f02e979
runcoms.c, add variable 'sim_status' to indicate if a simulation has been aborted
2018-05-19 17:40:03 +02:00
h_vogt
2ece845f59
inpcom.c, responding to bug report 275 by Dominique Michel: commands plot, hardcopy: no lower case letters in tokens following xlabel, ylabel, title
2018-05-19 17:38:26 +02:00
h_vogt
7198056a41
patch no. 16 by Thomy add a function cm_get_circuit to allow accessing the circuit structure ckt from within an XSPICE code model. This is a change to the interface and requires recopiling all code models!
2018-05-19 17:37:42 +02:00
Holger Vogt
7ee0b14431
better zero after deaalocation
2018-05-19 16:53:50 +02:00
Holger Vogt
8f41257d87
enable 'temper' evaluation, if circuit is reloaded
2018-05-19 16:53:38 +02:00
Holger Vogt
cbe4b31d4b
do not delete symbols that have not been created here
2018-05-19 16:53:04 +02:00
Holger Vogt
710e98a22c
Fcn ngGet_Vec_Info(): copy the vector pointer into a static pointer
...
infovec only if it is derived from event data (checked by a
scale vector with name "step"). Upon next call to fcn
ngGet_Vec_Info() first free the vector pointed to by infovec.
resolve merge conflict
2018-05-19 16:52:42 +02:00
Holger Vogt
8aff70036a
Put variable wantevtdata into the right place,
...
also available for standard executable, to be
modified in sharedspice.c only.
2018-05-19 16:52:08 +02:00
h_vogt
ce9f23f7af
outitf.c, restrict vector length to 1, the minimum needed
2018-05-19 16:51:57 +02:00
h_vogt
a393c47ec8
outitf.c, add flag 'save none' for shared ngspice. Output data will not be stored, but are available via callback function ng_data.
2018-05-19 16:51:42 +02:00
h_vogt
11bafd70ea
update to callback functions SendEvtData, SendInitEvtData
2018-05-19 16:46:16 +02:00
h_vogt
5b754cbb0e
dctran.c, exclude ipc_send_data_...
2018-05-19 16:45:09 +02:00
h_vogt
c890435383
clarify pointers to data structures for event nodes
2018-05-19 16:44:57 +02:00
h_vogt
b5f31ec2b1
version conflict rersolved in sharedspice.c
2018-05-19 16:44:46 +02:00
h_vogt
25a324ba6e
add parameter mode to EVTsharedsend_line()
...
last entry for the dictionary list is NULL
2018-05-19 16:44:27 +02:00
h_vogt
2a6f0658a8
EVTshareddump() modified to just sent the relevant event data
2018-05-19 16:44:14 +02:00
h_vogt
994d190de5
shared_send_dict(char* dictline) to sent the node list
2018-05-19 16:44:02 +02:00
h_vogt
e36b028cdb
add wantevtdata if event output should be sent to caller
2018-05-19 16:43:48 +02:00
h_vogt
3e52cdd8c1
evtdump.c, prepare data gathering for callbacks similar to sending data via the ancient ipc channel
2018-05-19 16:43:31 +02:00
h_vogt
b621875abf
sharedspice.h, .c, prepare adding callback functions: new ngSpice_Init_Evt() and function pointers
2018-05-19 16:43:19 +02:00
h_vogt
df4136a93d
evtprint.c, update to edisplay command now showing node name, node type and number of events per node
2018-05-19 16:43:09 +02:00
h_vogt
72fd154571
evtshared.c, add delete function, remove bug in creating struct
2018-05-19 16:42:29 +02:00
h_vogt
fc42cef878
New functions for XSPICE event node data exported from shared ngspice: ngGet_Evt_NodeInfo(char*) and ngSpice_AllEvtNodes(void)
2018-05-19 16:42:18 +02:00
h_vogt
20f6727e29
evtshared.c, prepare node data for transfer via shared ngspice interface
2018-05-19 16:42:01 +02:00
Holger Vogt
bea6fba788
prevent false reads in multi-threaded ngshared
2018-05-19 16:39:16 +02:00
Holger Vogt
74584c94ee
prevent false reading after copying an empty file
2018-05-19 15:40:30 +02:00
rlar
1a39d3f59d
spicelib/parser, support instance parameter defaults on .model lines
2018-05-19 15:40:20 +02:00
Holger Vogt
7363532d11
search for user's initialization files has been
...
optimized away because of an empty if clause.
A simple rewrite firstly asks for .spiceinit, then for spice.rc
2018-05-19 14:41:06 +02:00
Holger Vogt
d311fb10cf
add a new vector type "temperature"
2018-05-19 14:40:55 +02:00
Holger Vogt
5b18732af2
plug some memory leaks
2018-05-19 14:40:50 +02:00
Holger Vogt
a191697bd6
safeguard opening of file for debug output:
...
may be not allowed if caller is not started
in admin mode.
2018-05-19 14:40:41 +02:00
Holger Vogt
57156e16f6
remove tiny memory leaks in inp_compat()
2018-05-19 14:40:33 +02:00
Holger Vogt
5f5eacc48e
move skipping white spaces to fcn create_circbyline() now ' .end' is acknowledged
2018-05-19 14:40:23 +02:00
rlar
55b2a0218e
noise for behavioural resistor
2018-05-19 14:40:12 +02:00
Holger Vogt
1426f66967
use global variable inp_compat_mode
2018-05-18 18:39:15 +02:00
Holger Vogt
65181ff5c3
enable token 'table' to occur at any place in e source line
2018-05-18 18:37:24 +02:00
Holger Vogt
ffb3800e34
Bug fix: B source pwl lines don't get special handling,
...
but standard numparam handling of {} tokens
2018-05-18 18:36:26 +02:00
Holger Vogt
c879294a8b
add comment
2018-05-18 18:27:49 +02:00
Holger Vogt
7188605ef2
bugfix: re-enable loading deck from circarray, if intfile
2018-05-18 18:22:41 +02:00
Holger Vogt
04059e5426
enable '-' as valid character in a subcircuit name
2018-05-18 17:35:05 +02:00
h_vogt
c8cd763314
gnuplot.c, add 'noretraceplot' to prevent retracing of the graph if plotting against a vector which is not the original scale vector ('plot vec1 vs vec2')
2018-05-18 17:25:48 +02:00
h_vogt
d4adb027d2
avoid retrace in output graph by adding label 'noretraceplot'
...
to the plot command, that creates a lin plot trying to avoid retracing
2018-05-18 17:08:27 +02:00
rlar
611596c916
PTpower
2018-05-18 17:06:14 +02:00
rlar
6ef2a5f81b
fix code to fit the derivation
2018-05-18 17:05:44 +02:00
rlar
e36ded8122
fix derivations in comments
2018-05-18 17:05:08 +02:00
Holger Vogt
af351eab5f
add a non-zero fudge factor to zero function argument
2018-05-18 16:55:31 +02:00
Holger Vogt
c1a64d9f49
make inp_compat_mode glabal
2018-05-18 16:54:52 +02:00
Holger Vogt
bb162de1d8
Parameter names in .model lines may be preceeded
...
by spaces, but also by '('
2018-05-18 16:43:12 +02:00
Holger Vogt
ff00ec3aed
allow '+' or '-' characters in device name
...
for current and voltage sources.
Maybe exrtended to all devices.
2018-05-18 16:12:55 +02:00
Holger Vogt
314ece2526
allow '-' in XSPICE model names
2018-05-18 16:01:58 +02:00
Holger Vogt
181e8746a6
allow hyphens '-' in model names
2018-05-18 16:01:35 +02:00
Holger Vogt
09590047fe
Check if model is a PSPICE resistor 'res'
2018-05-18 15:55:04 +02:00
Holger Vogt
53bac06d11
.model replacement in ako (a kind of) model descriptions
...
in first level .subckt and top level only
2018-05-18 15:37:26 +02:00
Holger Vogt
d9dbde0593
replace the E source TABLE function by a B source pwl
...
(used by ST OpAmps and comparators)
2018-05-18 15:31:47 +02:00
Holger Vogt
10c69b8d05
replace S1 D S DG GND SWN by
...
a1 %v(DG) %gd(D S) swa
2018-05-18 15:25:19 +02:00
Holger Vogt
f25a307886
get the area factor for diodes and bipolar devices
2018-05-18 15:20:06 +02:00
Holger Vogt
9d8148edae
replace T_ABS by temp and T_REL_GLOBAL by dtemp in .model cards
2018-05-18 15:17:45 +02:00
Holger Vogt
13ca544d15
replace & with && and | with || and *# with * #
2018-05-18 15:15:38 +02:00
Holger Vogt
ae9cc17aff
add predefined parameters TEMP, VT after each subckt call
2018-05-18 15:12:22 +02:00
Holger Vogt
77814b8618
add predefined params TEMP, VT, GMIN to beginning of deck
...
add funcs limit, pwr, pwrs, stp, if, int
2018-05-18 15:10:15 +02:00
Holger Vogt
5ace7ff1fd
exclude simple e and h sources from getting a series voltage source
...
by undoing the name conversion
2018-05-16 08:16:22 +02:00
Holger Vogt
cfa473ad96
don't print NULL (deallocated lines)
2018-05-16 00:19:46 +02:00
Holger Vogt
9908b39d2b
make inp_compat_mode global
2018-05-16 00:15:29 +02:00
Holger Vogt
98fe623ba4
add function prototype pspice_compat
...
to deal with compatibility issues during loading
a PSPICE library
2018-05-16 00:14:31 +02:00
Holger Vogt
4aff986ee8
fix a bug, missing ;
2018-05-15 23:36:16 +02:00
Holger Vogt
429326e139
Add current measurement for device XYZ using I(XYZ)
2018-05-15 23:16:22 +02:00
h_vogt
7dd81327ec
new command 'alterparam', to be used in conjunction with 'mc_source'
...
add command 'alterparam paramname=pvalue'
to change a global .param
add command 'alterparam subcktname pname=vpval'
to change a parameter inside of a subcircuit
2018-05-15 22:46:06 +02:00
h_vogt
5c3a6a3829
new command 'mc_source' to internally reload circuit
...
We store a copy of the whole deck in 'mc_deck'.
'mc_source' can be used to re-read this copy.
2018-05-15 22:45:29 +02:00
h_vogt
464f855d1d
subckt.c, introduce new function inp_deckcopy_oc()
...
copy a deck
without li_actual,
without comment lines
without .control section
2018-05-15 22:45:10 +02:00
rlar
dc604c75d5
inpcom.c, whitespace
2018-05-15 22:43:43 +02:00
rlar
0f1b75a95b
inpcom.c, abstraction, introduce bogus_find_subckt()
...
extracted from inp_fix_inst_calls_for_numparam().
This code is and was evil, as it does not respect scoping rules.
2018-05-15 22:43:23 +02:00
Holger Vogt
73db0477c0
vdmosdist.c, white spaces
2018-05-04 20:35:16 +02:00
Holger Vogt
68fbc49216
vdmos.c, sort parameters
2018-05-04 20:35:14 +02:00
Holger Vogt
285de59446
enable alternative weak inversion model if parameter subslope is given
2018-05-04 20:35:11 +02:00
Holger Vogt
93e34540b8
introduce parameter ksubthres, compatible to LTSPICE
2018-05-04 20:35:10 +02:00
Holger Vogt
a0867ff1a3
bugfix: collapse the correct nodes if RB is zero or not given
2018-05-04 20:35:09 +02:00
Holger Vogt
2474c28a54
Alternative simple weak inversion model
...
according to https://www.anasoft.co.uk/MOS1Model.htm .
Fits existing LTSPICE models by adapting the slope parameter.
2018-05-04 20:35:08 +02:00
Holger Vogt
0ece0d0c1c
make breakdown voltage internally always positive
2018-05-04 20:35:07 +02:00
Holger Vogt
63be243f72
Add a simple quasi saturation model according to V. d'Alessandro e.a., 2001
2018-05-04 20:35:07 +02:00
Holger Vogt
72e03e7eab
replace parameter name subthres by subslope
2018-05-04 20:35:06 +02:00
Holger Vogt
5ba25a8716
change parameter to scalef when calculating n empirical compromise between smooth curve and reduction of Id slightly above threshold
2018-05-04 20:35:05 +02:00
Holger Vogt
3ee3ab39a9
Choose better interpolation and default parameters
2018-05-04 20:35:04 +02:00
Holger Vogt
729eac4e84
cweakinv, add model parameter model->VDMOSsubshift
2018-05-04 20:35:03 +02:00
Holger Vogt
f0d131fb8a
cweakinv, introduce sine scaling fucntion scalef()
2018-05-04 20:35:02 +02:00
Holger Vogt
284f68765d
frontend/vectors.c, readability of warning message
2018-05-04 20:35:01 +02:00
Holger Vogt
68125ea3cf
allow reading LTSPICE ascii raw files with 'load' command
...
by discarding 'Offset:'
2018-05-04 20:35:00 +02:00
Holger Vogt
43a6339071
rename VDMOS_CGS, VDMOS_CGD, VDMOS_CDS to VDMOS_CAPGS, VDMOS_CAPGD, VDMOS_CAPDS C: current, CAP: capacitance, V: voltage, G: conductance, Q: charge
2018-05-04 20:34:59 +02:00
Holger Vogt
b4b6e3ebf8
Add the bulk diode to the ac calculation
2018-05-04 20:34:58 +02:00
Holger Vogt
87e8b366ad
Add gate resistor to AC calculation 2
...
Add matrix entries for gate resistor
2018-05-04 20:34:56 +02:00
Holger Vogt
5d6e3348c9
Add gate resistor to AC calculation 1
...
Replace g (gate) by gp (gate prime) in existing matrix loading
2018-05-04 20:34:54 +02:00
Holger Vogt
570aacbf02
Remove VDMOS_CBS, VDMOS_CBD, VDMOS_CB
2018-05-04 20:34:52 +02:00
Holger Vogt
2b444a3423
remove unused parameters VDMOS_VBS/VBD and VDMOS_CAPBD/BS/GS/GD/GB
2018-05-04 20:34:51 +02:00
Holger Vogt
33a68b7321
return only half of the capacitance cgs and cgd
2018-05-04 20:34:50 +02:00
Holger Vogt
62297b2450
add weak inversion current capability
...
calibration of parameter subthres with LTSPICE is still missing.
2018-05-04 20:34:47 +02:00
rlar
ce2e704f56
up, where to ? fixme, there are more ...
2018-05-04 20:34:45 +02:00
rlar
ede0fb1caa
cleanup
2018-05-04 20:34:44 +02:00
Holger Vogt
4a3c707036
add parallel resistor rds (between outer drain and source nodes, parallel to bulk diode)
2018-05-04 20:34:42 +02:00
Holger Vogt
b7c6145f5e
rename the device multiplier m to mu, not to mix it up with the Body diode grading coefficient m
2018-05-04 20:34:41 +02:00
Holger Vogt
c5f47d3c1b
Error message and exit if a vdmos device instance
...
has different source and bulk node (have to be the same).
2018-05-04 20:34:40 +02:00
Holger Vogt
b13675ea44
remove unused code to calculate bulk-source and bulk-drain capacitors has been replaced already by capacitor from parallel bulk diode
2018-05-04 20:34:39 +02:00
Holger Vogt
f9b66af074
add the mtriode parameter scale the triode region independently from saturation current
2018-05-04 20:34:36 +02:00
Holger Vogt
40fe11db07
Body diode grading coefficient is m, not mj
2018-05-04 20:34:34 +02:00
Holger Vogt
2f719f7401
function 'inp_vdmos_model' to process vdmos model lines towards ngspice compatibility
2018-05-04 20:34:32 +02:00
Holger Vogt
f3478d7f13
re-format code
2018-05-04 20:34:31 +02:00
Holger Vogt
9d00a9e28d
re-format code (whitespace only)
2018-05-04 20:34:31 +02:00
Holger Vogt
45f52c859b
enable breakdown capability of parallel bulk diode
2018-05-04 20:34:30 +02:00
Holger Vogt
2bf70fa259
add matrix entries for bulk diode
2018-05-04 20:34:29 +02:00
Holger Vogt
bfec119e5b
Use better name for some parameters, cosmetics
2018-05-04 20:34:27 +02:00
Holger Vogt
4ac7a641ec
diode model for bulk diode added code taken from dio.c etc. capacitance calculation for vdmos bulk cap removed, is now completely with the diode. An internal node added for series diode resistance RB
...
matrix entries not yet done!
2018-05-04 20:34:26 +02:00
Holger Vogt
1ce7fef519
missing model parameters added
2018-05-04 20:34:25 +02:00
Holger Vogt
a4dc84ae35
missing model parameters added
2018-05-04 20:34:24 +02:00
Holger Vogt
0dc0aa06c4
re-introdeuce parameter phi Resulting temperature dependency of vto still not available
2018-05-04 20:34:24 +02:00
Holger Vogt
5b8c8072f3
mobility and substrate related parameters and equations removed
2018-05-04 20:34:22 +02:00
Holger Vogt
9df45731e9
depl cap calculation removed
2018-05-04 20:34:21 +02:00
Holger Vogt
0a213bea1a
more on removing the sidewall capacitance
2018-05-04 20:34:20 +02:00
Holger Vogt
ef547eb8ff
sidewall capacitance calculation removed
2018-05-04 20:34:19 +02:00
Holger Vogt
7df59a750e
useful parameter declarations moved to stay
2018-05-04 20:34:18 +02:00
Holger Vogt
0ebb7348ca
remove drain and source resistance contributions
2018-05-04 20:34:18 +02:00
Holger Vogt
84005efe8b
lateral diffusion and overlap capacitance removed
2018-05-04 20:34:17 +02:00
Holger Vogt
e0ddc38519
default transconductance parameter kp set to 1
2018-05-04 20:34:16 +02:00
Holger Vogt
e9e621de07
remove effective channel length, replace by l
2018-05-04 20:34:15 +02:00
Holger Vogt
47ef2bfaff
remove unused parameters VDMOS_MOD_VTO
2018-05-04 20:34:14 +02:00
Holger Vogt
d1497d8270
rename parameter "pb" --> "vj"
2018-05-04 20:34:13 +02:00
Holger Vogt
9c1b403f79
remove Gate.*OverlapCap
2018-05-04 20:34:12 +02:00
Holger Vogt
dee9dc370f
default m, W, L = 1
2018-05-04 20:34:11 +02:00
Holger Vogt
1aa3196ed9
another re-formatting for better readability (whitespace only)
2018-05-04 20:34:10 +02:00
Holger Vogt
d63123a269
gate resistance und gate conductance added, prime gate node added, not yet o.k. when rg is set, probably wrong signedness
2018-05-04 20:34:09 +02:00
Holger Vogt
40b9b18b01
gate conductance added
2018-05-04 20:34:09 +02:00
Holger Vogt
e0734a3ade
re-format for better readability
2018-05-04 20:34:08 +02:00
Holger Vogt
5abe8a759b
re-format for better readability, (whitespace only)
2018-05-04 20:34:07 +02:00
Holger Vogt
c0c3470dff
add the simple vdmos capacitance model instead of Meyer's model
2018-05-04 20:34:06 +02:00
Holger Vogt
389c888948
capacitance parameters cgdmin, cgdmax, a, cgs completely installed
2018-05-04 20:34:05 +02:00
Holger Vogt
eb1df52743
remove unused VDMOS_CAPZEROBIASBD/BDSW/BS/BSSW aka VDMOSCbd/bdsw/bs/bssw
2018-05-04 20:34:04 +02:00
Holger Vogt
f7b66ded9d
comment
2018-05-04 20:34:03 +02:00
Holger Vogt
f4853e85ca
add vdmos to the parameter list and search
2018-05-04 20:34:02 +02:00
rlar
b07661786f
move arround
2018-05-04 20:34:01 +02:00
Holger Vogt
8473c8e03c
remove empty VMOSdelete() function
2018-05-04 20:34:00 +02:00
Holger Vogt
b87f5c0563
remove never used sensitivity analysis code
2018-05-04 20:33:59 +02:00
Holger Vogt
b6a8613427
remove unused old sensitivity functions
2018-05-04 20:33:58 +02:00
Holger Vogt
1c4cb49478
CAPBYPASS removed
2018-05-04 20:33:57 +02:00
rlar
306e46359d
whitespace
2018-05-04 20:33:56 +02:00
rlar
5008d495ce
untabify
2018-05-04 20:33:55 +02:00
Holger Vogt
3e6a46826b
add src/spicelib/devices/vdmos to ngspice
2018-05-04 20:33:54 +02:00
Holger Vogt
d9bc4a5b41
add src/spicelib/devices/vdmos to ngspice
2018-05-04 20:33:53 +02:00
rlar
572bf10ebd
execute vdmos-1.el
2018-05-04 20:33:46 +02:00
rlar
45a70b3a53
rewrite, use enum instead of #define sequences
...
see branch "rewrite-defines2enum"
2018-04-30 19:23:18 +02:00
Francesco Lannutti
3a7e9411c3
drop #ifdef MUTUAL
2018-04-22 22:10:43 +02:00
rlar
bcf00ade06
cpl/cplsetup.c, cleanup VECTOR_ALLOC and MATRIX_ALLOC
...
swap first two arguments for readability
2018-04-22 22:04:45 +02:00
rlar
04dc62ef13
devices/*, move kind of `enum' defines out of struct definition
2018-04-15 15:05:02 +02:00
rlar
3b0e8cb8f1
vsrc/isrc, use an explicit #ifdef "PULSE_FUN_TYPES" guard
...
to avoid duplicate definition
2018-04-15 15:05:02 +02:00
rlar
a729c2860c
sensitivity, drop redundant #defines SENS_LIN/OCT/DEC/DEFPERT
...
use SENS_LINEAR/OCTAVE/DECADE/DEFPERTUB instead
2018-04-15 15:05:02 +02:00
rlar
a9439dc7dd
sensitivity, use numStates and numSenStates instead of hardcoded literals
2018-04-15 15:04:57 +02:00
rlar
d3f13edd4a
devices/vbic/vbicsetup.c, bug fix, incorrect states allocation
...
VBICnumSenStates is 10 not 8
2018-04-15 08:42:02 +02:00
rlar
d981fb331b
spicelib/devices/*, drop empty destroy functions
2018-04-15 07:13:06 +02:00
rlar
e725d728fc
res/restemp.c, avoid temporary NaN value, (simplify debugging)
...
RESupdate_conduct() may be called several times before all
parameters have been set via RESparam() invocations,
or finally being set to default values in RESsetup()
Especially RESscale might still be 0.0 as well as RESm
thus temporarily creating a NaN in RESupdate_conduct.
This would unnecessarily complicate debugging with enabled
floating point exceptions.
2018-03-17 18:36:12 +01:00
rlar
ead6dc4816
spicelib/devices/{sw,csw}, unify CKTstates[] access
...
do it the same way as the other devices do
access CKTstates[][slot] via device specific descriptive macros
access CKTstates[] via CKTstate0 CKTstate1 macros
this patch has been checked for object file in-variance with gcc
2018-03-08 19:40:53 +01:00
rlar
bcecc19e8b
spicelib/devices/{sw,csw}, cleanup for readability
...
This change is functional invariant, and has been checked
with gcc for object file in-variance.
For the details see the "rewrite-sw" branch
2018-03-08 18:24:49 +01:00
h_vogt
3dd2115291
frontend/subckt.c, do not put model names into numparam hash table
...
nobody seems to make use of these entries.
see nupa_type which shrinks to four enum's
2018-03-01 18:13:01 +01:00
rlar
b803b294b4
frontend/parser/lexical.c, cp_lexer(), allow # and * comment
...
Both, whether interactive or not.
Especially for command scripts.
2018-02-26 19:41:04 +01:00
rlar
6903584e99
asrc/asrcacld.c, bug fix, reciproc tc coefficient
2018-02-25 21:59:15 +01:00
Holger Vogt
b1aa6cfc87
xspice/enh/enhtrans.c, two2three_translate(), plug a memory leak
2018-02-25 20:05:15 +01:00
rlar
878c9645c7
frontend/outitf.c, drop /* ARGSUSED */ comments
2018-02-22 21:56:05 +01:00
Holger Vogt
edc690e26f
frontend/outitf.c, plug a memory leak when `.option interp'
2018-02-22 21:55:23 +01:00
rlar
cd1bbf2003
rewrite, use designated initializer for SPICEdev initialisation
2018-02-21 20:02:00 +01:00
rlar
95ef5e79d9
numparam/*, use `pscopy()'
2018-02-20 21:34:06 +01:00
rlar
9ad63cc2c0
numparam/*, plug memory leaks
2018-02-20 21:33:55 +01:00
rlar
ea1b83698f
numparam/*, drop case conversions
...
inpcom.c is supposed to convert everything to lower case.
Thus we can work case sensitive in numparam,
which is easier compared to a whole set of local case conversions.
2018-02-20 21:33:32 +01:00
rlar
0200d5c7e9
numparam/*, drop "old style" '&' syntax
...
Probably an artefact of the external preprocessor implementation
of numparam.
This syntax seems to have been a non spice macro expansion facility.
2018-02-20 21:30:52 +01:00
rlar
8022aa09a6
spicenum.c, cleanup dicoS usage
2018-02-20 21:30:41 +01:00
rlar
aa0dbd20ad
spicenum.c, drop putlogfile()
2018-02-20 21:30:15 +01:00
rlar
15c00a9d42
spicenum.c, drop dologfileS, logfileS and nblogS
...
which are never set
2018-02-20 21:29:50 +01:00
rlar
112f35cc96
nupa_copy(), use skip_back_ws()
2018-02-20 21:29:29 +01:00
rlar
9218b76583
nupa_copy(), cleanup
2018-02-20 21:28:56 +01:00
rlar
ec24c1ded7
nupa_copy(), fix lvalue
2018-02-20 21:28:03 +01:00
rlar
06708f1ed1
nupa_copy(), ls ==> s_end - (const) s
2018-02-20 21:27:38 +01:00
rlar
751d377d3e
pscopy(), pscopy_up(), use `char *stop' argument
...
instead of `int length' argument
2018-02-20 21:13:16 +01:00
rlar
e21d48a267
pscopy(), pscopy_up(), use _spice_dstring_setlength() return value
...
instead of invoking spice_dstring_value()
2018-02-20 21:13:05 +01:00
rlar
2ce91b0821
pscopy(), pscopy_up(), expand spice_dstring_reinit() macro
...
and inline the resulting spice_dstring_setlength() invocation
2018-02-20 21:12:56 +01:00
rlar
2cb579cd9f
pscopy(), pscopy_up(), drop `start' argument
...
which is always zero
2018-02-20 21:12:44 +01:00
rlar
3bd9c1c858
scopyd(), return void
2018-02-20 20:51:30 +01:00
rlar
5164c16a1b
numparam/mystring.c, drop unused nadd(), cins(), sins() and spos_()
2018-02-17 19:15:55 +01:00
rlar
468f7580ad
nupa_subcktcall(), cleanup using skip_ws()
2018-02-17 19:15:55 +01:00
rlar
a38b19bc0e
nupa_subcktcall(), reintroduce search for last occurence of the subckt name
2018-02-17 19:15:55 +01:00
rlar
c2f519c191
nupa_subcktcall(), drop `p_subname'
2018-02-17 19:15:55 +01:00
rlar
3f5ea23c71
nupa_subcktcall(), drop `ls_ptr'
...
valid because
neither `jp' nor `gp' will ever be incremented beyond end of string
2018-02-17 19:15:55 +01:00
rlar
437f92385a
nupa_subcktcall(), avoid `jp' pointing beyond end of string
...
The skip whitespace loop in the following line shall
safely swallow the delimiting space instead
2018-02-17 19:15:55 +01:00
rlar
bb9689139b
nupa_subcktcall(), drop `parsebuf' and `buf'
2018-02-17 19:15:55 +01:00
rlar
8b1e4fc32c
nupa_subcktcall(), introduce search_isolated_identifier()
...
the functionality is a bit different though,
because the previous code searched for the *last* occurence of the identifier
yet the new code searches for the first occurence.
2018-02-17 19:15:55 +01:00
rlar
6a57023ced
nupa_subcktcall(), drop `hp'
2018-02-17 19:15:55 +01:00
rlar
b16a61fb7c
nupa_subcktcall(), use skip_non_ws()
2018-02-17 19:15:55 +01:00
rlar
71ac5bccc2
nupa_subcktcall(), swap `hp' and `kp'
...
neither `hp' nor `kp' will be used any more behind this body
2018-02-17 19:15:55 +01:00
rlar
07112d62fb
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
e4a2106cfe
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
1298eacdb2
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
1157142dfd
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
6ca336af85
nupa_subcktcall(), pscopy transform
2018-02-17 19:15:55 +01:00
rlar
7d40920bd6
nupa_subcktcall(), cleanup
2018-02-17 19:15:55 +01:00
rlar
70cec5e9e3
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
ec9636e078
nupa_subcktcall(), ls ==> ls_ptr - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
701dcad9a4
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
a773601b84
nupa_subcktcall(), g ==> gp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
3267bf8d63
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
0a149819a5
nupa_subcktcall(), h ==> hp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
47f1e7b1fa
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
cc932725ac
nupa_subcktcall(), k ==> kp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
d991296b82
nupa_subcktcall(), split personality of `k'
2018-02-17 19:15:55 +01:00
rlar
b9750ee59f
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
84c22e656a
nupa_subcktcall(), j ==> jp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
0f53656412
nupa_subcktcall(), split personality of `j'
2018-02-17 19:15:55 +01:00
rlar
80701652fc
nupa_subcktcall(), cleanup getexpress() usage
...
# Conflicts:
# src/frontend/numparam/xpressn.c
2018-02-17 19:15:55 +01:00
rlar
742f34f596
nupa_subcktcall(), spice_dstring_value(&tstr) ==> t_p
...
t_p is const and tstr hasn't been modified either,
thus still the same value.
2018-02-17 19:15:55 +01:00
rlar
cb4dfa13d8
nupa_subcktcall(), reduce scope of some locals
2018-02-17 19:15:55 +01:00
rlar
9670af0d4e
nupa_subcktcall(), drop `i', use a pointer instead
2018-02-17 19:15:55 +01:00
rlar
6e5ef92fd2
nupa_subcktcall(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:55 +01:00
rlar
53adeee1d3
nupa_subcktcall(), drop j1 and t_p1, use a pointer instead
2018-02-17 19:15:55 +01:00
rlar
c133f21ef7
nupa_subcktcall(), split personality of `t_p'
2018-02-17 19:15:55 +01:00
rlar
f17521fa4c
nupa_subcktcall(), split personality of `ls'
2018-02-17 19:15:55 +01:00
rlar
81e02154be
nupa_subcktcall(), split personality of `j'
2018-02-17 19:15:55 +01:00
rlar
13d9ecd517
nupa_subcktcall(), some constness
2018-02-17 19:15:55 +01:00
rlar
06b71fe2d2
nupa_subcktcall(), use skip_non_ws()
2018-02-17 19:15:55 +01:00
rlar
fa1c710f68
nupa_subcktcall(), move code down to a better place
2018-02-17 19:15:55 +01:00
rlar
1987559e89
nupa_subcktcall(), drop redundant initialisation for `narg'
...
and delay its incrementation a bit
2018-02-17 19:15:55 +01:00
rlar
b8f4b3e27e
nupa_subcktcall(), fix excess length in pscopy argument
2018-02-17 19:15:55 +01:00
rlar
8190ba3fca
nupa_subcktcall(), fix, honour end of string
2018-02-17 19:15:55 +01:00
rlar
4859f7d8df
findsubname(), cleanup and use isspace_c()
2018-02-17 19:15:55 +01:00
rlar
784ad14d60
findsubname(), drop `ls_ptr'
2018-02-17 19:15:55 +01:00
rlar
d647a84e66
findsubname(), just truncate it
2018-02-17 19:15:55 +01:00
rlar
5e6fe75db6
findsubname(), collect decrement operations
2018-02-17 19:15:55 +01:00
rlar
31ad5ca970
findsubname(), decrement later
2018-02-17 19:15:55 +01:00
rlar
01eb593ca4
findsubname(), explicit break out of the loop
2018-02-17 19:15:55 +01:00
rlar
cbd38fdc9c
findsubname(), use skip_back_ws()
2018-02-17 19:15:55 +01:00
rlar
270e0b6154
findsubname(), cleanup
2018-02-17 19:15:55 +01:00
rlar
a5c743d48c
findsubname(), fix lvalues
2018-02-17 19:15:55 +01:00
rlar
21d3f04659
findsubname(), h ==> p_end - (const) s
2018-02-17 19:15:55 +01:00
rlar
8881aead44
findsubname(), cleanup
2018-02-17 19:15:55 +01:00
rlar
c8340f2b4c
findsubname(), fix lvalues
2018-02-17 19:15:55 +01:00
rlar
90bb7cc289
findsubname(), j ==> t - (const) s
2018-02-17 19:15:55 +01:00
rlar
1778b608d8
findsubname(), cleanup
2018-02-17 19:15:55 +01:00
rlar
8df5717017
findsubname(), fix lvalues
2018-02-17 19:15:55 +01:00
rlar
a7c2253c8a
findsubname(), k ==> p - (const) s - 1
2018-02-17 19:15:55 +01:00
rlar
623436c9f9
findsubname(), fix lvalues
2018-02-17 19:15:55 +01:00
rlar
521fee88a6
findsubname(), ls ==> ls_ptr - (const) s
2018-02-17 19:15:55 +01:00
rlar
4ca87d6b0b
findsubname(), reorder and add some constness
2018-02-17 19:15:55 +01:00
rlar
ab152c99fc
findsubname(), local scope for `nest' `j' and `h'
2018-02-17 19:15:55 +01:00
rlar
45f3749bb1
findsubname(), drop `found', which is constantly 0
...
because of the previous commit
2018-02-17 19:15:55 +01:00
rlar
f0cead24b8
findsubname(), duplicate function epilogue and return early
2018-02-17 19:15:55 +01:00
rlar
4986df1baf
findsubname(), signature, drop unused return value
2018-02-17 19:15:55 +01:00
rlar
af78917b98
stripbraces(), whitespace
2018-02-17 19:15:55 +01:00
rlar
11e024753a
stripbraces(), cleanup
2018-02-17 19:15:55 +01:00
rlar
13be771308
stripbraces(), s + i ==> p
2018-02-17 19:15:55 +01:00
rlar
ab15f0b7bb
stripbraces(), group `s + i'
2018-02-17 19:15:55 +01:00
rlar
0101db946b
stripbraces(), s0 ==> s
2018-02-17 19:15:55 +01:00
rlar
e4e408d656
stripbraces(), unuse local `s'
...
`s0' does not change in the area of interest and has the same value
2018-02-17 19:15:55 +01:00
rlar
cb859060e0
stripbraces(), drop `i_ptr'
2018-02-17 19:15:55 +01:00
rlar
951517250b
stripbraces(), fix lvalue and cleanup
2018-02-17 19:15:55 +01:00
rlar
d4dad0f10c
stripbraces(), i ==> i_ptr - (const) s
2018-02-17 19:15:55 +01:00
rlar
186352b7e5
stripbraces(), fix lvalue and cleanup
2018-02-17 19:15:55 +01:00
rlar
686329dcaf
stripbraces(), j ==> j_ptr - (const) s
2018-02-17 19:15:55 +01:00
rlar
fc45b3addf
stripbraces(), make `s' constant in the region of interest
2018-02-17 19:15:55 +01:00
rlar
170aa84f47
stripbraces(), drop `ls'
2018-02-17 19:15:55 +01:00
rlar
e2c2140a52
stripbraces(), drop `t_p', which points to a copy of `s'
2018-02-17 19:15:55 +01:00
rlar
8d0df0d024
stripbraces(), fix split personality of `i'
2018-02-17 19:15:55 +01:00
rlar
98ec9c2fa3
stripbraces(), use `strchr()'
2018-02-17 19:15:55 +01:00
rlar
26ff93abd9
stripbraces(), simplify
2018-02-17 19:15:55 +01:00
rlar
1721407359
transform(), use `strstr()' instead of `spos_()'
2018-02-17 19:15:55 +01:00
rlar
e28169d62c
transform(), reduce scope of `tstr'
2018-02-17 19:15:55 +01:00
rlar
f776a24ea7
transform(), ci_prefix() is case insensitive
...
thus can use `s' instead of `t'
and ci_prefix() does return a boolean
2018-02-17 19:15:55 +01:00
rlar
6500aeb132
transform(), drop local `n'
2018-02-17 19:15:55 +01:00
rlar
7cf4338981
transform(), drop unused argument `u_p'
2018-02-17 19:15:55 +01:00
rlar
ea6290f666
nupa_substitute(), cleanup and a fixme
...
the '&' sequences, which are hopefully nowhere announced and advertised,
might increment char pointers beyond the terminating '\0' causing havoc.
2018-02-17 19:15:55 +01:00
rlar
abb16c288b
nupa_substitute(), cleanup
2018-02-17 19:15:55 +01:00
rlar
0d3c0dfd78
nupa_substitute(), rename r_ --> r
2018-02-17 19:15:55 +01:00
rlar
a34703f748
nupa_substitute(), verify `r' beeing unused now
2018-02-17 19:15:55 +01:00
rlar
b0e5fc267c
nupa_substitute(), cleanup
2018-02-17 19:15:55 +01:00
rlar
cc02b9ae2d
nupa_substitute(), fix lvalue and cleanup
2018-02-17 19:15:55 +01:00
rlar
ac59410602
nupa_substitute(), ir ==> r_ - (const) r
2018-02-17 19:15:55 +01:00
rlar
0fd1e2323c
nupa_substitute(), express some constness
2018-02-17 19:15:55 +01:00
rlar
6c1d3ba34a
nupa_substitute(), whitespace
2018-02-17 19:15:55 +01:00
rlar
6b5606edc1
nupa_substitute(), cleanup return on error
2018-02-17 19:15:55 +01:00
rlar
cba740f88d
nupa_substitute(), postpone `s' incrementation
2018-02-17 19:15:55 +01:00
rlar
ad1eeeb410
nupa_substitute(), postpone `s' incrementation
2018-02-17 19:15:55 +01:00
rlar
39b544aba1
nupa_substitute(), cleanup
2018-02-17 19:15:55 +01:00
rlar
6a003e52d1
nupa_substitute(), cleanup for loops
2018-02-17 19:15:55 +01:00
rlar
ad603be96f
nupa_substitute(), cleanup for loops
2018-02-17 19:15:55 +01:00
rlar
c06dddc4db
nupa_substitute(), break sooner
2018-02-17 19:15:55 +01:00
rlar
baf76512b3
nupa_substitute(), reduce scope of d
2018-02-17 19:15:55 +01:00
rlar
55e7fa269a
nupa_substitute(), at the end of the loop d === *kptr
2018-02-17 19:15:55 +01:00
rlar
571909b8b6
nupa_substitute(), postpone kptr incrementation
2018-02-17 19:15:55 +01:00
rlar
d38804d7c0
nupa_substitute(), move final kptr incrementation out of the loop
2018-02-17 19:15:55 +01:00
rlar
f5448025a8
nupa_substitute(), postpone kptr incrementation
2018-02-17 19:15:55 +01:00
rlar
0aff4dfaa6
nupa_substitute(), transform while loop
2018-02-17 19:15:55 +01:00
rlar
ef1d896cee
nupa_substitute(), reduce scope of local variabes
2018-02-17 19:15:55 +01:00
rlar
bd335cb5be
nupa_substitute(), delay kptr assignment
2018-02-17 19:15:55 +01:00
rlar
ca84d10d0a
stripsomespace(), drop `ls'
2018-02-17 19:15:55 +01:00
rlar
cc05c0c05b
formula(), postpone kptr incrementation
2018-02-17 19:15:55 +01:00
rlar
abe572237f
formula(), postpone arg2 and arg3 incrementation
2018-02-17 19:15:55 +01:00
rlar
a35a2fd3db
formula(), cleanup for(;;) loop
2018-02-17 19:15:55 +01:00
rlar
3136f45229
formula(), move final kptr incrementation out of the loop
2018-02-17 19:15:55 +01:00
rlar
2010e6b4fb
formula(), kptr++ to the for loop epilogue
2018-02-17 19:15:55 +01:00
rlar
c761b4432a
formula(), transform while loop
2018-02-17 19:15:55 +01:00
rlar
11adf9f62c
findsubckt(), cleanup
2018-02-17 19:15:55 +01:00
rlar
6a9248f111
findsubckt(), use skip_back_ws()
2018-02-17 19:15:55 +01:00
rlar
9bccda5450
findsubckt(), cleanup
2018-02-17 19:15:55 +01:00
rlar
9e1a6b85ff
findsubckt(), swap name_b and name_e in the prolog
2018-02-17 19:15:55 +01:00
rlar
61f3ecffd6
findsubckt(), rename k_ptr --> name_b
2018-02-17 19:15:55 +01:00
rlar
23b741868b
findsubckt(), cleanup
2018-02-17 19:15:55 +01:00
rlar
51405f8ee7
findsubckt(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
b3c40a77cf
findsubckt(), j_ptr --> name_e - 1
2018-02-17 19:15:55 +01:00
rlar
3d9a76d342
findsubckt(), drop k_ptr--, use k_ptr - 1 instead
2018-02-17 19:15:55 +01:00
rlar
8cd136c6bd
findsubckt(), move k_ptr-- beyond the loop
2018-02-17 19:15:55 +01:00
rlar
b0b4551d68
findsubckt(), move k_ptr-- to the front of the next loop
2018-02-17 19:15:54 +01:00
rlar
d2dac0ea9d
findsubckt(), move k_ptr-- beyond the loop
2018-02-17 19:15:54 +01:00
rlar
e1f5609568
findsubckt(), exclude the terminating '\0' from the search
2018-02-17 19:15:54 +01:00
rlar
a0f9b2bf0f
findsubckt(), cleanup
2018-02-17 19:15:54 +01:00
rlar
f4bd03a00f
findsubckt(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:54 +01:00
rlar
c486218e33
findsubckt(), cleanup
2018-02-17 19:15:54 +01:00
rlar
a9c2f81878
findsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
940eb2a258
findsubckt(), j ==> j_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
cd05eb1d50
findsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
78147c2bd9
findsubckt(), k ==> k_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
81b60b7367
findsubckt(), constness
2018-02-17 19:15:54 +01:00
rlar
849d12b18a
defsubckt(), rename j_ptr ==> s_end
2018-02-17 19:15:54 +01:00
rlar
948352a2ed
defsubckt(), drop i_ptr, use s instead
2018-02-17 19:15:54 +01:00
rlar
82d4f8544c
defsubckt(), check `s' beeing nowhere used anymore
2018-02-17 19:15:54 +01:00
rlar
a46e1113d0
defsubckt(), drop `ls_ptr'
2018-02-17 19:15:54 +01:00
rlar
10e9760f13
defsubckt(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:54 +01:00
rlar
44a17a14f7
defsubckt(), cleanup
2018-02-17 19:15:54 +01:00
rlar
9a64579db6
defsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
d73a265c45
defsubckt(), j ==> j_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
1a44e4fb42
defsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
6d285d927a
defsubckt(), i ==> i_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
deca1a05ed
defsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
4e89b80a75
defsubckt(), ls ==> ls_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
dbcbf62012
defsubckt(), constness
2018-02-17 19:15:54 +01:00
rlar
27884d2512
nupa_assignment(), postpone p++
2018-02-17 19:15:54 +01:00
rlar
f0fa06ea26
nupa_assignment(), whitespace
2018-02-17 19:15:54 +01:00
rlar
0624584370
nupa_assignment(), simplify error processing
2018-02-17 19:15:54 +01:00
rlar
66433eda0b
nupa_assignment(), cleanup
2018-02-17 19:15:54 +01:00
rlar
8bded8b878
nupa_assignment(), cleanup
2018-02-17 19:15:54 +01:00
rlar
8f9f03c457
nupa_assignment(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
0e6ece4370
nupa_assignment(), ls ==> s_end - (const) s
2018-02-17 19:15:54 +01:00
rlar
410e70b9b9
nupa_assignment(), express some constness
2018-02-17 19:15:54 +01:00
rlar
5f0958026b
nupa_assignment(), cleanup
2018-02-17 19:15:54 +01:00
rlar
ba2c95243f
nupa_assignment(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
8300021c7a
nupa_assignment(), i ==> p - (const) s
2018-02-17 19:15:54 +01:00
rlar
f595db7619
nupa_assignment(), express some constness
2018-02-17 19:15:54 +01:00
rlar
35524f7e48
getexpress(), rename ls_ptr --> s_end
2018-02-17 19:15:54 +01:00
rlar
043a04b775
getexpress(), simplify usage
2018-02-17 19:15:54 +01:00
rlar
830b5faf0e
getexpress(), return one less
2018-02-17 19:15:54 +01:00
rlar
33b8936a3b
getexpress(), drop `c' and cleanup
2018-02-17 19:15:54 +01:00
rlar
f8fc4edf52
getexpress(), remove const, `pi' and rename xia_ptr --> s
2018-02-17 19:15:54 +01:00
rlar
9494f8d9af
getexpress(), change signature, return char * to continue with
2018-02-17 19:15:54 +01:00
rlar
0c363d7b4f
getexpress(), return `tpe' per reference
2018-02-17 19:15:54 +01:00
rlar
49bdcc3e3d
getexpress(), drop first argument `ls_ptr'
2018-02-17 19:15:54 +01:00
rlar
4bbff47518
getexpress(), first arg s ==> s + strlen(s)
2018-02-17 19:15:54 +01:00
rlar
7fc7202bdf
getexpress(), `p' doesn't need to be initialised here
2018-02-17 19:15:54 +01:00
rlar
4a6c7db226
getexpress(), break early
...
instead of doing nothing and then breaking
2018-02-17 19:15:54 +01:00
rlar
8a3871a0ef
getexpress(), transform loop
2018-02-17 19:15:54 +01:00
rlar
92eb2b0437
getexpress(), break early
...
instead of doing nothing and then breaking anyway
2018-02-17 19:15:54 +01:00
rlar
2f24e6e563
getexpress(), local scope for `c' and `d'
2018-02-17 19:15:54 +01:00
rlar
86ef4b8cb1
getexpress(), transform loop
2018-02-17 19:15:54 +01:00
rlar
1df1e69f5d
getexpress(), d == ')' is automatically true
...
when level has been decremented to level <= 0
2018-02-17 19:15:54 +01:00
rlar
1e6a44af27
getexpress(), transform
2018-02-17 19:15:54 +01:00
rlar
0cc72ae3c1
getexpress(), always true
2018-02-17 19:15:54 +01:00
rlar
f87c629e1b
getexpress(), break
2018-02-17 19:15:54 +01:00
rlar
9ace8b161f
getexpress(), scope
2018-02-17 19:15:54 +01:00
rlar
f2013088a6
getexpress(), transform `<' etc comparisons
2018-02-17 19:15:54 +01:00
rlar
d1b25d59bb
getexpress(), cleanup
2018-02-17 19:15:54 +01:00
rlar
a913def4d7
getexpress(), cleanup
2018-02-17 19:15:54 +01:00
rlar
ec68ee7b94
getexpress(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
9ff93246b6
getexpress(), ia_ptr ==> xiaptr + 1
2018-02-17 19:15:54 +01:00
rlar
47db566181
getexpress(), cleanup
2018-02-17 19:15:54 +01:00
rlar
4402686c69
getexpress(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
6da6f6a4fd
getexpress(), iptr ==> p + 1
2018-02-17 19:15:54 +01:00
rlar
7509fa17da
getexpress(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:54 +01:00
rlar
0f00fd3043
getexpress(), cleanup
2018-02-17 19:15:54 +01:00
rlar
a47348526c
getexpress(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
dc8eb2b956
getexpress(), ia ==> ia_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
44c5410490
getexpress(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
632829575b
getexpress(), ls ==> ls_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
f19ddf6090
getexpress(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
c351f2f19b
getexpress(), i ==> iptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
d4098d454b
getexpress(), third argument, `char **pi' instead of `int *pi'
2018-02-17 19:15:54 +01:00
rlar
57b822e0e9
getexpress(), express some constness
2018-02-17 19:15:54 +01:00
rlar
d9a2cec430
getword(), drop s_end argument, which is always == s + strlen(s)
2018-02-17 19:15:54 +01:00
rlar
c5966489c9
getword(), return one less
2018-02-17 19:15:54 +01:00
rlar
f5d686e23c
getword(), cleanup
2018-02-17 19:15:54 +01:00
rlar
51c9f93b7a
getword(), substitue s = s - 1
2018-02-17 19:15:54 +01:00
rlar
f96eb16255
getword(), (s < x) ==> (s - 1 < x - 1)
2018-02-17 19:15:54 +01:00
rlar
cc452a4c90
getword(), transform while loop
2018-02-17 19:15:54 +01:00
rlar
d6801c0cf1
getword(), substitute s = s - 1
2018-02-17 19:15:54 +01:00
rlar
68b0be8caa
getword(), (s <= x) --> (s - 1 < x)
2018-02-17 19:15:54 +01:00
rlar
10aaa7bcc0
getword(), rename variables
2018-02-17 19:15:54 +01:00
rlar
ba4d81b2d9
getword(), reorder args
2018-02-17 19:15:54 +01:00
rlar
6ca0c74cbf
getword(), pass s_end instead of s
2018-02-17 19:15:54 +01:00
rlar
3f24aa4ea0
getword(), cleanup
2018-02-17 19:15:54 +01:00
rlar
d17bcbc276
getword(), change signature
2018-02-17 19:15:54 +01:00
rlar
d3d966b027
getword(), cleanup
2018-02-17 19:15:54 +01:00
rlar
52ec0a262c
getword(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
2514664f7a
getword(), ls ==> ls_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
d5893cd1cb
getword(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
51dc7037d3
getword(), i ==> iptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
051c3f4137
getword(), third argument, `char **pi' instead of `int *pi'
2018-02-17 19:15:54 +01:00
rlar
6ba5a05905
getword(), drop `after' argument which is identical to `*pi'
2018-02-17 19:15:54 +01:00
rlar
cf9c3fc4f8
getword(), express some constness
2018-02-17 19:15:54 +01:00
rlar
6a72c09b5f
insertnumber(), return char pointer instead of integer index
2018-02-17 19:15:54 +01:00
rlar
34e37f393c
insertnumber(), rename s_ ==> s
2018-02-17 19:15:54 +01:00
rlar
1f15329745
insertnumber(), drop second argument
2018-02-17 19:15:54 +01:00
rlar
9f6173cd0b
insertnumber(), add second arg on invocation
2018-02-17 19:15:54 +01:00
rlar
a2ddc6bf2a
insertnumber(), express some constness
2018-02-17 19:15:54 +01:00
rlar
b41b8e7138
insertnumber(), add `i' on invocation
2018-02-17 19:15:54 +01:00
rlar
160529cf59
insertnumber(), express some constness
2018-02-17 19:15:54 +01:00
rlar
e8bc7df5c3
insertnumber(), emphasize return i + ...
2018-02-17 19:15:54 +01:00
rlar
06501162e5
nupa_substitute(), make use of the transformations
2018-02-17 19:15:54 +01:00
rlar
2a446c2119
nupa_substitute(), use `strncasecmp()'
2018-02-17 19:15:54 +01:00
rlar
c036fa0519
nupa_substitute(), cleanup
2018-02-17 19:15:54 +01:00
rlar
81cb1ed674
nupa_substitute(), drop s_
2018-02-17 19:15:54 +01:00
rlar
5416ecaab9
nupa_substitute(), rename iptr --> s
2018-02-17 19:15:54 +01:00
rlar
18f69116e8
nupa_substitute(), verify `s' beeing unused now
2018-02-17 19:15:54 +01:00
rlar
03abdc65f5
nupa_substitute(), cleanup
2018-02-17 19:15:54 +01:00
rlar
53b23cf4b6
nupa_substitute(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:54 +01:00
rlar
8e69f7e70a
nupa_substitute(), cleanup
2018-02-17 19:15:54 +01:00
rlar
0bea4987c4
nupa_substitute(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
b47123ac6a
nupa_substitute(), i ==> iptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
b832578f0e
nupa_substitute(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
ccf34637b3
nupa_substitute(), k ==> kptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
551aae4b05
nupa_substitute(), drop ls
2018-02-17 19:15:54 +01:00
rlar
4af5a78bb5
nupa_substitute(), ls ==> s_end - (const) s
2018-02-17 19:15:54 +01:00
rlar
fb3a1be6a5
nupa_substitute(), express some constness
2018-02-17 19:15:54 +01:00
rlar
aa5d48da3b
nupa_substitute(), drop unused argument `err'
2018-02-17 19:15:54 +01:00
rlar
e212566176
evaluate_variable(), change signature, pass substring instead of string
...
side effect:
string `t' is no longer globally upcased, which is is of no consequence
for the single place where evaluate_variable() is invoked
2018-02-17 19:15:54 +01:00
rlar
3f7951d187
evaluate_expr(), change signature, pass substring instead of string
2018-02-17 19:15:54 +01:00
rlar
7aa3664157
numparam, drop some typedefs
2018-02-17 19:15:54 +01:00
rlar
fa14255fc9
numparam, use `strtoupper()', drop `stupcase()'
2018-02-17 19:15:54 +01:00
rlar
a0a3f48227
numparam/xpressn.c, remove an artifact
2018-02-17 19:15:54 +01:00
rlar
7b175dd1c4
numparam, drop unused `srcfile'
2018-02-17 19:15:54 +01:00
rlar
4f8bef997d
numparam, nupa_signal(), drop useless return value
2018-02-17 19:15:54 +01:00
rlar
5b194f1679
numparam, drop unused stuff
2018-02-17 19:15:54 +01:00
rlar
15e8fab975
numparam, use `trunc()'
2018-02-17 19:15:54 +01:00
rlar
31ca73a6f0
numparam, use `isdigit_c()'
2018-02-17 19:15:54 +01:00
rlar
e88e75a8d4
numparam, use `toupper_c()'
2018-02-17 19:15:54 +01:00
rlar
6d5b968464
numparam, use `tolower_c()'
2018-02-17 19:15:54 +01:00
rlar
3b0a595ecf
numparam/mystring.c, drop defect and unused `ccopy()'
2018-02-17 19:15:54 +01:00
rlar
db8f8fc062
numparam/mystring.c, fix `pscopy()' and `pscopy_up()'
2018-02-17 19:15:54 +01:00
rlar
6a328ef609
numparam, drop `length()'
2018-02-17 19:15:54 +01:00
rlar
15dd80c0e7
numparam, drop `cpos()'
2018-02-17 19:15:54 +01:00
rlar
e324e4aac3
numparam/spicenum.c, use type `bool'
2018-02-17 19:15:54 +01:00
rlar
cd260cf45a
numparam/spicenum.c, stripsomespace(), cleanup
2018-02-17 19:15:54 +01:00
rlar
a9a8afa12d
numparam/xpressn.c, split `evaluate()' into two functions
2018-02-17 19:15:54 +01:00
rlar
6da961c3f1
numparam/xpressn.c, evaluate(), drop local `numeric'
...
and return instantly when formula() reports an error
2018-02-17 19:15:54 +01:00
rlar
7549b3409e
numparam/xpressn.c, abstraction, introduce `double_to_string()'
2018-02-17 19:15:54 +01:00
rlar
6d4fc501bd
numparam/xpressn.c, evaluate_variable(), cleanup `for' loop
2018-02-17 19:15:54 +01:00
rlar
fdfaf0c84a
numparam/xpressn.c, don't mess the case of quoted strings
...
and drop `dico_t.option' which is nowhere set
2018-02-17 19:15:54 +01:00
rlar
23f6d51c67
numparam/xpressn.c, evaluate(), drop local `done' and `lq'
...
no longer limit the length of a quoted string parameter
2018-02-17 19:15:54 +01:00
rlar
e970e8c4ea
numparam/xpressn.c, evaluate(), drop `dt'
2018-02-17 19:15:54 +01:00
rlar
00c3d2f79e
numparam/xpressn.c, drop `getidtype()'
2018-02-17 19:15:54 +01:00
rlar
34040a592d
numparam, #3/3, remove global `nupa_inst_name'
2018-02-17 19:15:54 +01:00
rlar
1bf2590caa
numparam, #2/3, avoid global `nupa_inst_name'
2018-02-17 19:15:53 +01:00
rlar
ca4278685d
numparam, #1/3, avoid global `nupa_inst_name'
2018-02-17 19:15:53 +01:00
rlar
495eef349d
numparam/xpressn.c, nupa_subcktcall(), drop unused `err' argument
2018-02-17 19:15:53 +01:00
rlar
979175fbc6
numparam/xpressn.c, findsubckt(), drop unused `subname' argument
2018-02-17 19:15:53 +01:00
rlar
f42c8d60b4
numparam/spicenum.c, use `copy_substring()'
2018-02-17 19:15:53 +01:00
rlar
49e03cdcb2
numparam, entry_type, #5/5, rewrite to get rid of 'NUPA_SPACE'
...
use fact: 'entry' !== NULL
2018-02-17 19:15:53 +01:00
rlar
c761c74a22
numparam, entry_type, #4/5, drop 'nolookup' which has known value here
2018-02-17 19:15:53 +01:00
rlar
b7b6d9ace3
numparam, entry_type, #3/5, drop unused 'NUPA_POINTER'
...
'NUPA_POINTER' is nowhere assigned to storage
thus 'nupa_type' variables can never have this value
2018-02-17 19:15:53 +01:00
rlar
09d92ba692
numparam, entry_type, #2/5, use a type-checked enum for 'nupa_type'
2018-02-17 19:15:53 +01:00
rlar
6a1c9f934c
numparam, entry_type, #1/5, introduce typedef 'nupa_type'
2018-02-17 19:15:53 +01:00
rlar
21f2187530
numparam/xpressn.c, #5/5, drop unused assignment
2018-02-17 19:15:53 +01:00
rlar
1820f5547f
numparam/xpressn.c, #4/5, use a local 'c' instead of 'dt'
2018-02-17 19:15:53 +01:00
rlar
85f48726ea
numparam/xpressn.c, #3/5, whitespace
2018-02-17 19:15:53 +01:00
rlar
146ca72153
numparam/xpressn.c, #2/5, cleanup, drop 'err' and return early
2018-02-17 19:15:53 +01:00
rlar
303d78f616
numparam/xpressn.c, #1/5, cleanup, rewrite upside down
...
and use known variable values to instantly 'return'
instead of skipping some 'if' bodies
2018-02-17 19:15:53 +01:00
rlar
bc0782aba1
numparam, #4/4, defsubckt(), use struct card * argument
2018-02-17 19:15:53 +01:00
rlar
2a149d7541
numparam, #3/4, nupa_scan(), use struct card * argument
2018-02-17 19:15:53 +01:00
rlar
77da3c6f26
numparam, #2/2, nupa_copy(), use struct card * argument
2018-02-17 19:15:53 +01:00
rlar
19dfaf03f3
numparam, #1/2, nupa_eval(), use struct card * argument
2018-02-17 19:15:53 +01:00
rlar
ee489599cb
struct card, #6/6, drop some redundant casts
2018-02-17 19:15:53 +01:00
rlar
4ec2717079
struct card, #5/6, rewrite from type "card" to "struct card"
2018-02-17 19:15:53 +01:00
rlar
10a353ebf4
struct card, #4/6, drop typedef card
...
For readability and to allow variables to have the name "card"
(avoid name collision with typedef "card")
2018-02-17 19:15:53 +01:00
rlar
511cdd7188
struct card, #3/6, rename members from struct line to struct card
2018-02-17 19:15:53 +01:00
rlar
981fed70ca
struct card, #2/6, drop struct line
...
struct line is an overlay of struct card.
2018-02-17 19:15:53 +01:00
rlar
8d93511a96
struct card, #1/6, minor cleanup
2018-02-17 19:15:53 +01:00
rlar
121a46f9cb
frontend/com_alias.c, asubst(), bug fix
...
wl_word can not be incremented,
this is a pointer to malloc'ed space
and will eventually be free'ed
2018-02-17 15:30:06 +01:00
rlar
41c0ee45a2
introduce GENinstanceFree() and GENmodelFree()
...
To abstract away the business of releasing the memory
of a struct GENmodel or struct GENinstance.
2018-02-17 11:53:07 +01:00
rlar
8c7d7051ae
GENmodel, GENinstance, change layout, #4/4, complete the change
...
currently each and every device specific instance and model structure
duplicates the memory layout of a struct GENmodel / GENinstance
further the first structure elements behind a GENinstance header
are reinterpreted as a sort of a generic "node" array.
This business is very error prone, and makes it difficult to
extend struct GENmodel / struct GENinstance.
This patch makes this business much more bearable.
2018-02-17 11:53:06 +01:00
rlar
2c9bfecbad
GENmodel, GENinstance, change layout, #3/4, coccinelle semantic patch
2018-02-17 11:53:05 +01:00
rlar
c25aea6815
GENmodel, GENinstance, change layout, #2/4, complete the change
...
fix the .xml files too
2018-02-17 11:53:03 +01:00
rlar
2dcb79d09c
GENmodel, GENinstance, change layout, #1/4, coccinelle semantic patch
2018-02-17 11:53:01 +01:00
rlar
4748c92de9
DEVdestroy(), change API, #2/2, complete the change, inclusive CKTdestroy()
...
loop over DEVmodDelete() and DEVdelete() in CKTdestroy()
instead of doing this business in the DEVdestroy() functions.
As a consequence, most DEVdestroy() functions
collapse completely.
2018-02-17 11:52:59 +01:00
rlar
1befa488f6
DEVdestroy(), change API, #1/2, coccinelle semantic patch
2018-02-17 11:52:58 +01:00
rlar
b29ad51a6c
DEVdestroy(), move code over to DEVmodDelete() and DEVdelete()
...
This patch itself is not valid until all invokers of DEVdestroy()
(currently this is CKTdestroy() exclusively)
are rewritten to invoke DEVmodDelete() and DEVdelete()
2018-02-17 11:52:55 +01:00
rlar
3cd81295a8
DEVmodDelete(), change API, #2/2, complete the change
...
Instead of searching and then deleting a given device-model,
just delete the given model.
The search shall be done somewhere else.
Don't free the model struct itself,
this shall be done by the invoker himself.
Don't free the device instrance list,
this shall be done by the invoker himself.
As a consequence, most DEVmodDelete() functions
collapse almost completely.
This change is of no consequence,
because DEVmodDelete() is currently nowhere used.
2018-02-17 11:52:53 +01:00
rlar
b17ee71576
DEVmodDelete(), change API, #1/2, coccinelle semantic patch
2018-02-17 11:52:51 +01:00
rlar
50e9a8c3b6
DEVmodDelete(), extend ASRCdelete() and use it in ASRCmDelete()
...
rip instance specific cleanup business from the ASRCmDelete() function.
move this to ASRCdelete()
2018-02-17 11:52:49 +01:00
rlar
c3ed42f486
DEVdelete(), change API, #2/2, complete the change
...
Instead of searching and then deleting a given device-instance,
just delete the given instance.
The search shall be done somewhere else.
Don't free the instance struct itself,
this shall be done by the invoker.
As a consequence most DEVdelete() functions
collapse almost completely.
This change is of no consequence,
because DEVdelete() is currently nowhere used.
2018-02-17 11:52:46 +01:00
rlar
e0f1e5a3de
DEVdelete(), change API, #1/2, coccinelle semantic patch
2018-02-17 11:52:44 +01:00
rlar
a8e440eabe
whitespace cleanup, comments cleanup, line wrap
2018-02-14 18:53:30 +01:00
rlar
ec4b7ffecd
adms/admst/ngspiceMODULE*.c.xml, drop "register" declaration
2018-02-12 17:56:00 +01:00
rlar
57f9804db6
devices/adms/admst/ngspiceMODULEdel.c.xml, bug fix, endless loop
...
A missing update of "prev" would cause endless looping
when searching for a device instance.
introduced in commit:
> commit 38e68869a2
> Date: Wed Mar 1 14:30:24 2006 +0000
>
> Added mdel, del and dest functions to interface.
2018-02-12 17:55:59 +01:00
rlar
cd95ad62f2
devices/ndev/ndevdel.c, remove a redundant `return'
2018-02-12 17:55:58 +01:00
rlar
efbb7badbc
extend commit: spicelib/devcies/*dest.c, rewrite DEVdestroy() functions
...
rewrite admst/ngspiceMODULEdest.c.xml too, see commit
> commit 4d79617cf1
> Date: Fri Jul 29 22:22:16 2016 +0200
>
> spicelib/devcies/*dest.c, rewrite DEVdestroy() functions
2018-02-12 17:55:57 +01:00
rlar
88c50afcd9
parser/inpdpar.c, #6/6, cleanup, introduce find_instance_parameter()
2018-02-03 17:54:15 +01:00
rlar
cf0c9eac06
parser/inpdpar.c, #5/6, cleanup, use a local `IFparm *'
2018-02-03 17:54:06 +01:00
rlar
f88cfa5d55
parser/inpdpar.c, #4/6, cleanup, use a local `IFdevice *'
2018-02-03 17:53:57 +01:00
rlar
36f3263727
parser/inpdpar.c, #3/6, cleanup, whitespace
2018-02-03 17:53:48 +01:00
rlar
4140af6d29
parser/inpdpar.c, #2/6, cleanup, use a 'switch'
2018-02-03 17:53:38 +01:00
rlar
eb86a66146
parser/inpdpar.c, #1/6, cleanup, search, break then process
2018-02-03 17:53:28 +01:00
rlar
bdf6091da7
parser/inpgmod.c, #6/6, cleanup, introduce find_model_parameter()
2018-02-03 17:29:33 +01:00
rlar
45e98db44c
parser/inpgmod.c, #5/6, cleanup, loop with a `IFparm *'
2018-02-03 17:29:32 +01:00
rlar
b75aba17a4
parser/inpgmod.c, #4/6, cleanup, use a local `IFdevice *'
2018-02-03 17:29:32 +01:00
rlar
63df147cdb
parser/inpgmod.c, #3/6, cleanup, local variables
2018-02-03 17:29:32 +01:00
rlar
ac34d19c94
parser/inpgmod.c, #2/6, cleanup, fuse the if's
2018-02-03 17:29:32 +01:00
rlar
edceabbb54
parser/inpgmod.c, #1/6, cleanup, search, break then process
2018-02-03 17:29:30 +01:00
rlar
6c71fef6f6
parser/inpgmod.c, create_model(), drop obfuscated 'txl' processing
...
Dependent on given R and L parameter values,
"txl" models might be transformed to "cpl" models in INPdomodel().
This would cause a "unrecognized parameter" warning in create_model()
when searching for the "txl" flag in the "cpl" model,
which is avoided with some awkward extra processing in inpgmod.c
This commit removes this special processing
by addition of an "alias" parameter "txl" to the
"cpl" module parameter description CPLmPTable[] in "cpl.c"
Note,
setModelParm() is a no-op for "cpl" and "txl"
see case CPL_MOD_R in
function CPLmParam()
and case TXL_MOD_R in
function TXLmParam()
2018-02-03 15:55:22 +01:00
rlar
aa27c8969c
parser/inpgmod.c, fix an almost bug, (level=...)
...
When 'level' is a valid model parameter,
then it was processed like any other parameter,
but additionally the
`if (strcmp(parm, "level") == 0)'
invoked INPgetValue() a second time.
This special processing is meant to allow "level" for all models
whether they make use of it or not.
The excess invocation of INPgetValue() didn't cause harm,
merely because the next token after the "level=number"
almost necessarily is a string (the beginning "name=" of the next assignment)
thus not a parse-able number,
thus the second INPgetValue() didn't modify the 'line' pointer.
To sanitise the code invoke the "level" skipping only if "level"
is not recognised as a valid model parameter.
2018-02-03 15:39:20 +01:00
rlar
668123ae44
analysis/cktpname.c, #4/4, cleanup
2018-02-03 13:17:17 +01:00
rlar
30550370fb
analysis/cktpname.c, #3/4, cleanup obfuscated loop termination
2018-02-03 13:16:40 +01:00
rlar
d85ceb85cb
analysis/cktpname.c, #2/4, cleanup, use a local `IFparm *'
2018-02-03 13:16:12 +01:00
rlar
1d60387617
analysis/cktpname.c, #1/4, cleanup, use a local `IFdevice *'
2018-02-03 13:16:01 +01:00
rlar
fbc1f37b36
mif/mifdelete.c, fix commit: xspice, implement "CALLBACK"
...
MIFdelete() might be called with third arg being NULL,
searching for the instance to be deleted by name only.
Need to invoke the callback in this case too.
2018-02-03 12:20:23 +01:00
rlar
e311096429
gendef.h, get rid of awkward counted GENnode macros
2018-02-03 11:46:24 +01:00
rlar
018a2d0e2f
devices/*, unify, add missing instance struct member 'GENstate'
...
to the generic part of all instance structs, even when actually unused.
see GENstate in "gendefs.h"
2018-02-03 11:46:24 +01:00
rlar
9f68d8cd68
devices/*, fix spelling of some struct members
2018-02-03 09:46:13 +01:00
rlar
f53384da70
devices/*, USE_OMP, cleanup 'InstanceArray' usage
...
store 'InstanceArray' in the very first module only,
NULL it in any other.
FREE() it in every module to treat them all the same in XXXdestroy()
2018-02-02 23:03:55 +01:00
rlar
93b62297d8
devices/mos6, add missing files mos6del.c and mos6mdel.c
...
this is a plain copy from mos3
2018-02-02 22:53:43 +01:00
rlar
fb6b4adaa5
devices/bsimsoi/b4soidest.c, fix commit: "OpenMP for B4SOI version 4.3.1"
...
> commit 39c98ad798
> Date: Fri Jul 2 09:35:05 2010 +0000
>
> OpenMP for B4SOI version 4.3.1
2018-02-02 22:35:59 +01:00
rlar
3763f9914e
devices/nbjt/nbjtdefs.h, fix commit: "mark end of struct GENmodel overlay"
...
> commit 3794c1eb20
> Date: Sat Jun 22 18:40:48 2013 +0200
>
> mark end of struct GENmodel overlay
2018-02-02 22:24:10 +01:00
rlar
caf3115733
cleanup, emphasise CKTrhs being an array
...
when accessing slot [0]
2018-01-29 19:51:13 +01:00
Holger Vogt
560cb6e970
plotting/grid.c, bug fix, avoid string buffer overflow
...
Prevent a crash of example/FFT_test.cir.
Buffer 'buf' in function drawlingrid() has been too small.
Increase 'buf' size, and add some protection.
The example file examples/plot/test-small-plot.cir
shows the limits of plotting:
difference in two numbers at digit 14 is plotted well.
at digit 15 is plotted with bugs.
at digit 16 is reduced to integer.
consider compiling with
-O1 -D_FORTIFY_SOURCE=2
for gcc, and
/GS
for visual studio.
2018-01-27 21:58:15 +01:00
rlar
c892b2d460
analysis/acan.c, check for valid startfreq
...
an 'ac dec' or 'ac oct' can not have a startfreq <= 0
2018-01-20 10:55:26 +01:00
rlar
c5d8ad792e
analysis/acsetp.c, ac analysis, allow frequency=0
2018-01-15 19:04:52 +01:00
rlar
57a0a5dec0
devices/bjt/bjttemp.c, bug fix, capacity temperature dependency
...
Fix a very old bug in the implementation of the
gummel-poon model formulas for the junction capacities.
(already in spice3f4)
For unknown reasons, the same formulas in the
diode mos1 mos2 mos6 jfet models
have been implemented correctly right from the beginning,
the typo was bjt specific.
Many Thanks for the concise and precise Bug Report
provided by Schabo Rumanus on the ngspice-users mailing list
> To: ngspice-users@lists.sourceforge.net
> Subject: [Ngspice-users] Temperatursimulation von Sperrschichtkapazitäten
Many Thanks to Dietmar Warning for his thorough verification
of this commit.
2017-12-20 18:02:13 +01:00
rlar
f0159cbd0b
numparam/spicenum.c, stripbraces(), bug fix
...
overwriting SPICE_DSTRING `dstr_p' may invalidate `s'
This bug was injected with the introduction of SPICE_DSTRING in :
> commit 76feebbbfa
> Date: Thu Feb 25 21:43:03 2010 +0000
> various bug fixes
2017-11-13 20:36:49 +01:00
rlar
84761c125f
fix erfc() usage in cider
...
cider relied on our broken ngspice variant of erfc() which behaved as
erfc_ngspice(x) = erfc(fabs(x))
Note:
apart from cider, erfc is used in
devices/ltra/ltramisc.c
always with positive argument
and
src/frontend/spec.c
again always with positive argument
Thus, the difference in implementation
never mathered anywhere except in cider
2017-10-28 12:38:36 +02:00
rlar
c900cc8824
drop ngspice internal implementation of erfc()
...
which these days is guaranteed to be provided by <math.h>
note,
our own implementation was incorrect anyway.
it evaluated to
erfc_ngspice(x) = erfc(fabs(x))
2017-10-28 12:38:32 +02:00
rlar
ca57447f6c
fix commit "devices/bsim3v32: apply Area Calculation Method (ACM) to the bsim3v3.2.4 model"
...
which moved processing of several parameters into a new function
ACM_SourceDrainResistances()
but did so incompletely.
As a consequence the matrix footprint was not correctly modified
when source or drainresistance is zero
Thanks for the bug report by "Sto" in message
> bug: mosfet models with deliberate NRD=0 (ngspice-27)
https://sourceforge.net/p/ngspice/discussion/133842/thread/fa39228d
2017-10-21 20:22:43 +02:00
Holger Vogt
f868418d13
ACM_SourceDrainResistances(), fix misleading signature
...
This function does return resistance, not conductance.
2017-10-21 20:21:34 +02:00
rlar
57f3d35ddc
devices/res, #6/6, rename variables back to their original names
...
strip the X in RESconductX, REScurrentX, RESacConductX
2017-10-21 19:05:28 +02:00
rlar
93ab0fb0e0
devices/res, #5/6, RESconduct, include RESm
...
Henceforward RESconduct (renamed to RESconductX) shall include factor RESm.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar
afd5147f98
devices/res, #4/6, RESacConduct, include RESm
...
Henceforward RESacConduct (renamed to RESacConductX) shall include factor RESm.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar
6941c43673
devices/res, #3/6, RESacConduct, collect RESm
...
Reshape the sourcecode to emphasize the RESm * RESacConduct affiliation.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar
7edd241e96
devices/res, #2/6, RESconduct, collect RESm
...
Reshape the sourcecode to emphasize the RESm * RESconduct affiliation.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar
5b23f0c684
devices/res, #1/6, REScurrent, include RESm
...
Henceforward REScurrent (renamed to REScurrentX) shall include factor RESm.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar
f73a353d6b
devices/res/resnoise.c, cleanup using pow()
2017-10-21 19:05:28 +02:00
rlar
abb07c4306
devices/res/restemp.c, RESupdate_conduct(), avoid excess warnings
...
This function is invoked several times during initialisation,
possibly with yet incomplete model and instance parameter settings.
And it might be invoked many times during dc sweep.
2017-10-21 19:05:28 +02:00
rlar
cffab98882
devices/res/resparam.c, bug fix, alter resistance not honoured when resuming a transient simulation
...
When "alter" is invoked after a break-point stopped a transient simulation,
then it might be necessary to update RESconductance
before continuing the transient simulation.
Thanks for the bug report to An Zou
in message "alter resistor value" on the ngspice-users forum
https://sourceforge.net/p/ngspice/discussion/133842/thread/33ce6855/
2017-10-21 19:05:28 +02:00
rlar
0e1294b3b5
devices/res/resparam.c, whitespace and parenthesis
2017-10-21 19:05:27 +02:00
rlar
0a48e6f2a7
devices/res, introduce RESupdate_conduct()
...
which will be usefull later
2017-10-21 19:05:27 +02:00
rlar
0af576a7d8
devices/res/resask.c, bug fix, set and query of RESresist and RESacResist shall comute
...
Note:
RESresist and RESacResist are device parameters
they do not reflect effective resistance when "ask"'ed
(don't reflect tc1, tc2, tce, m, scale, temp ...)
RESconduct and RESacConduct are "query-only" parameters
these report the effective conductance when "ask"'ed
(including tc1, tc2, tce, m, scale, temp ...)
2017-10-21 19:05:27 +02:00
rlar
1c5e954b47
devices/res, bug fix, semantics of "short" and "narrow", aka "dlr" and "dw"
...
These need to be subtracted from both sides
2017-10-21 19:05:27 +02:00
Fabio Rossi
4c503c1e47
src/tclspice.c, bug fix, broken trimming of the "spice::" namespace
...
Due to a missing break in the for(;;) loop,
causing the loop to walk beyond end of string argv[0],
causing random behaviour.
2017-10-19 17:58:02 +02:00
rlar
91c60c28df
whitespace change, avoid gcc warnings due to missleading indentation
2017-09-16 20:38:27 +02:00
h_vogt
b3827f6488
gnuplot.c, correct the setting of limits in log plots
2017-09-16 20:37:24 +02:00
dwarning
2fd3c4d94f
fix the still existing wrong array access in psd smooth routine
2017-09-05 11:28:14 +02:00
h_vogt
ca3a9bb648
com_fft.c, correct scaling and filtering for PSD
2017-09-01 23:16:25 +02:00
dwarning
0ef666ea26
com_psd: Correct the special handling of dc and nyquist component in fftw branch
2017-08-26 17:20:19 +02:00
dwarning
2377d3a64f
fix wrong write and read in not allocated memory
2017-08-22 11:53:20 +02:00
dwarning
b8a9ca9df4
correct the fft scaling for real input and complex output vector
2017-08-16 21:35:41 +02:00
h_vogt
060e0037f8
main.c, add USERPROFILE to search path for .spiceinit
...
search sequence: current directory, HOME, USERPROFILE
2017-08-12 18:27:11 +02:00
h_vogt
3814201d13
Add function read_initialisation_file().
...
extend search path for .spiceinit, search sequence now is:
current directory, user HOME directory, user USERPROFILE directory
2017-08-12 18:03:54 +02:00
h_vogt
07ea6466ad
configure option --enable-relpath
...
add relative path ../lib to spinit for codemodels
and search path in ivars.c, independently from
install path which has to be an absolute path
2017-08-12 17:37:19 +02:00
dwarning
a1d27b4257
dio, introduce qd as an alias for diode charge to get the right unit in plotting
2017-08-03 17:03:10 +02:00
dwarning
14fc59b83d
bjt, jfet, vbic, dio: allow plotting of small signal parameter like charges, capacitances and conductances in dc sweeps
2017-08-03 17:03:01 +02:00
rlar
0db861e4a6
device.c, bug fix commit "device.c, #8/19, use parent wordlist ..."
...
This commit did rely on the existence of a parent 'wordlist' element,
usually guranteed by a leading "alter" or "altermod" command word.
But 'inp_evaluate_temper()' passes a wordlist without any parent word
when invoking 'com_altermod()'
2017-07-30 12:17:43 +02:00
rlar
5542f2ec10
dio/diotemp.c, drop DIOgradingCoeff limit
...
Used to be limited to a maximum of 0.9
Varactors may need much larger values.
Thanks to Wang You for hinting to this ancient relict.
2017-07-29 19:15:40 +02:00
dwarning
998495c11b
prevent wrong version selection if model parameter is given in exponential format
2017-07-13 09:25:04 +02:00
rlar
043d3b4f6d
device.c, #19/19, whitespace
2017-07-06 17:56:23 +02:00
rlar
aa50718573
device.c, #18/19, polish comments
2017-07-06 17:56:22 +02:00
rlar
b4b32e2b93
device.c, #17/19, drop unused assignment to 'eqword'
2017-07-06 17:56:22 +02:00
rlar
fac04193e5
device.c, #16/19, shrink scope of variable 'p'
2017-07-06 17:56:22 +02:00
rlar
3eda944db5
device.c, #15/19, make use of 'wl_find()'
2017-07-06 17:56:22 +02:00
rlar
20c303eb8b
device.c, #14/19, drop variable 'wl2', can use 'wl' instead
2017-07-06 17:56:22 +02:00
rlar
e8ebfb115e
device.c, #13/19, drop artificial rewind to the beginning of the list
2017-07-06 17:56:22 +02:00
rlar
79cc996a93
device.c, #12/19, shrink scope of variable 'wlen' and 'maxelem'
2017-07-06 17:56:22 +02:00
rlar
c2c4683b4b
device.c, #11/19, shrink scope of variable 'wlin'
2017-07-06 17:56:22 +02:00
rlar
b817ca8cf7
device.c, #10/19, drop unused assignment to 'wl2'
2017-07-06 17:56:21 +02:00
rlar
9085084ccb
device.c, #9/19, drop variable 'rhs'
2017-07-06 17:56:21 +02:00
rlar
1ff0500117
device.c, #8/19, use parent wordlist to restore beginning of the list
2017-07-06 17:56:21 +02:00
rlar
01039f81a2
device.c, #7/19, use a local wordlist *wn
2017-07-06 17:56:21 +02:00
rlar
50dd15093e
device.c, #6/19, this 'wl2' wont be used anywhere
2017-07-06 17:56:21 +02:00
rlar
26f7a0e04e
device.c, #5/19, drop 'eqfound', equivalent to 'wl != NULL'
2017-07-06 17:56:21 +02:00
rlar
3f09ab6634
device.c, #4/19, loop wont be executed, and 'step' wont be used any more
2017-07-06 17:56:21 +02:00
rlar
3baaa57d18
device.c, #3/19, move some code up
2017-07-06 17:56:21 +02:00
rlar
670d87a589
device.c, #2/19, 'wl' will not be used any more
2017-07-06 17:56:21 +02:00
rlar
1eca384a94
device.c, #1/19, can 'break' here, because 'wl' is NULL
2017-07-06 17:56:04 +02:00
h_vogt
761f3915f5
device.c, 'alter', don't insert empty "" token
...
when entering ' =' or '= ' in interactive mode
2017-07-06 17:55:06 +02:00
h_vogt
d06f39f67d
device.c, bug #342 , prevent crash when using 'alter'
...
#342 SegFault alter command
https://sourceforge.net/p/ngspice/bugs/342/
2017-07-06 17:55:02 +02:00
rlar
9ddd1d7d40
fix commit: inp2q.c, #18/23, rewrite, combine two 'for' loop's
...
which replaced a INPgetNetTok() by INPgetTok()
causing a bug when handling special node names
for example this case
q1 /c /c 0 npnmodel
2017-07-05 21:09:30 +02:00
rlar
2b17f3292d
inpcom.c, inp_add_control_section(), upside down for readability
2017-06-25 14:37:13 +02:00
rlar
76bbaf4ac3
inpcom.c, inp_sort_params(), use insert_deck()
2017-06-25 14:37:13 +02:00
rlar
a26ec804cb
inpcom.c, inp_reorder_params_subckt(), introduce insert_deck()
2017-06-25 14:37:13 +02:00
rlar
c285602105
inpcom.c, inp_reorder_params_subckt(), reorder
2017-06-25 14:37:13 +02:00
rlar
bc62407226
inpcom.c, drop unused artefact xx_new_line()
2017-06-25 13:40:01 +02:00
rlar
1afa04b2d1
inpcom.c, insert_new_line(), inline xx_new_line()
2017-06-25 13:39:56 +02:00
rlar
5c7c278c3d
inpcom.c, inp_fix_subckt(), #4/4, drop redundant initialisations
2017-06-25 13:39:48 +02:00
rlar
c3e2c920ef
inpcom.c, inp_fix_subckt(), #3/4, drop 'last_param_card'
2017-06-25 13:39:41 +02:00
rlar
2aafc50608
inpcom.c, inp_fix_subckt(), #2/4, use insert_new_line()
2017-06-25 13:39:34 +02:00
rlar
dda35ef2a5
inpcom.c, inp_fix_subckt(), #1/4, rewrite 'append'
2017-06-25 13:39:27 +02:00
rlar
e75f48d91f
inpcom.c, insert_new_line(), allow NULL head
2017-06-25 13:00:39 +02:00
rlar
5ff5839296
inpcom.c, inp_stitch_continuation_lines(), rewrite for the following commit
2017-06-25 12:58:50 +02:00
rlar
420c023f56
inpcom.c, introduce insert_new_line()
...
use it to replace this pattern
foo = bar->li_next = xx_new_line(bar->li_next, ...);
with
foo = insert_newline(bar, ...);
2017-06-25 12:57:18 +02:00
rlar
38183b6167
inpcom.c, expand_section_ref(), #7/7, cleanup
2017-06-25 12:10:01 +02:00
rlar
dd155dd83e
inpcom.c, expand_section_ref(), #6/7, drop 'rest'
2017-06-25 12:09:21 +02:00
rlar
0f8fb4cf51
inpcom.c, expand_section_ref(), #5/7, drop 'newl'
2017-06-25 12:04:16 +02:00
rlar
a77db80a85
inpcom.c, expand_section_ref(), #4/7, drop 'cend', use 'c' instead
2017-06-25 12:03:39 +02:00
rlar
0c94a651ee
inpcom.c, expand_section_ref(), #3/7, simplify
2017-06-25 12:02:26 +02:00
rlar
26d878748d
inpcom.c, expand_section_ref(), #2/7, t == section_def ==> cend == c
2017-06-25 12:01:34 +02:00
rlar
7f2cf192b6
inpcom.c, expand_section_ref(), #1/7, cend != NULL === t != section_def
2017-06-25 12:00:07 +02:00
rlar
a51c1aba2c
inpcom.c, inp_read(), #2/2, rewrite xx_new_line() insertion
...
using the fact
end->li_next === NULL
2017-06-24 22:03:03 +02:00
rlar
5c3dac41d9
inpcom.c, inp_read(), #1/2, rewrite 'append' to 'end'
2017-06-24 22:01:03 +02:00
rlar
ed39305da0
inpcom.c, inp_add_series_resistor(), simplify xx_new_line() insertion
2017-06-24 20:30:04 +02:00
rlar
9eddd1d80f
inpcom.c, inp_add_control_section(), #2/2, rewrite xx_new_line() insertion
2017-06-24 20:15:02 +02:00
rlar
4ad53f0de8
inpcom.c, inp_add_control_section(), #1/2, emphasise two assertions
2017-06-24 20:12:55 +02:00
rlar
4ff9c0c166
inpcom.c, inp_chk_for_multi_in_vcvs(), #6/6, drop 'model_card'
2017-06-24 19:44:35 +02:00
rlar
d773b73f76
inpcom.c, inp_chk_for_multi_in_vcvs(), #5/6, drop 'next_card', deploy its value temporarily in the new line's li_next slot
2017-06-24 19:44:11 +02:00
rlar
3b55d2af40
inpcom.c, inp_chk_for_multi_in_vcvs(), #4/6, drop 'a_card', reuse the unused 'c' instead
2017-06-24 19:43:34 +02:00
rlar
634b012492
inpcom.c, inp_chk_for_multi_in_vcvs(), #3/6, xx_new_line() shall fill the li_next slot
2017-06-24 19:40:48 +02:00
rlar
e9e9e5d55e
inpcom.c, inp_chk_for_multi_in_vcvs(), #2/6, move code downwards
2017-06-24 19:40:38 +02:00
rlar
c83b0544de
inpcom.c, inp_chk_for_multi_in_vcvs(), #1/6, skip lines
2017-06-24 19:40:27 +02:00
rlar
e81560de1a
inpcom.c, drop the local 'new_line' variable
2017-06-24 19:11:22 +02:00
rlar
b21b4170b2
inpcom.c, simplify the insertion of new lines/decks quite a bit
2017-06-24 19:11:21 +02:00
rlar
2972953336
inpcom.c, reorder initialisation
...
initialise param_beg and param_end before they will be used,
instead of "afterwards" in preparation for the next following usage.
and move the "comment out" up some lines, think that way:
comment out original line, append new line, ...
2017-06-24 18:16:48 +02:00
h_vogt
5d82d1b04a
misccoms.c, com_quit(), don't free memory, unless shared ngspice
...
Traversing all linked memory structures to free their memory
can be a somewhat lengthy business, especially in xspice,
which is not worth the effort when we simply want to exit()
Long delays have been reported in certain cases.
For developers and for the usage of such tools as valgrind,
we still free all the memory if 'set ngdebug' is given.
2017-06-24 17:55:26 +02:00
rlar
b2621174d3
inpgmod.c, plug a memory hole
...
Reported and fixed by Marek Bielik in message:
Subject: [Ngspice-devel] Memory leaks fix
Date: Tue, 18 Apr 2017 16:16:21 +0000
2017-06-24 17:49:07 +02:00
h_vogt
7489a37973
inpgval.c, inpdpar.c, beautify the code
2017-06-06 17:05:22 +02:00
h_vogt
fa6e21dd3a
inpgval.c, INPgetValue(), use INPgetNetTok() instead of INPgetTok()
...
To fix a bug reported by Clyde Shappee in
Subject: Problem with pole zero analysis and net names
https://sourceforge.net/p/ngspice/discussion/127605/thread/14338e7e/
When using node names with a leading slash '/'
on the "pz" analysis command line.
2017-06-06 16:51:32 +02:00
rlar
a6a3d884ee
fix commit "mifsetup.c, MIFunsetup(), #1/3 delete broken code"
...
which silently dropped the
here->initialized = MIF_FALSE
aspect of the MIFunsetup() function
which caused segfault in testcase
examples/memristor/memristor_x.sp
2017-06-06 16:42:32 +02:00
Tim Edwards
fd79197fc0
xspice/icm/digital, introduce d_genlut
...
a digital n-input x m-output look-up table gate
2017-05-01 22:11:24 +02:00
Tim Edwards
8ae3b84c7c
xspice/icm/digital, introduce d_lut
...
a digital n-input look-up table gate
2017-05-01 22:11:04 +02:00
h_vogt
37fe5308d3
xspice/icm/table, introduce table2d/table3d
...
which allows to model devices based upon linear interpolation
2017-04-30 17:00:15 +02:00
rlar
a7cc37b2e2
ifparm, fix numdev too
2017-04-19 19:18:13 +02:00
h_vogt
cc8fb86411
diotemp.c, set lower limit of saturation current 'is' to epsmin
2017-04-19 18:57:20 +02:00
h_vogt
c82ee9d949
introduce option "epsmin"
...
To define a minimum argument for some log() function invocations.
(most notably for the diode saturation current 'is')
2017-04-19 18:56:00 +02:00
dwarning
78cc48575b
prevent warnings for double declared variables
2017-04-17 20:53:30 +02:00
rlar
2f329bd8b4
N_MXVLNTH, drop noise variable name limitation
2017-04-15 17:21:24 +02:00
h_vogt
306ada7dd0
inpcom.c, get_model_type(), use gettok_noparens() to extract model type
...
Takes care of model descriptions in parentheses like
d(...)
2017-04-12 22:00:07 +02:00
h_vogt
1ffb957e6c
inpcom.c, inp_fix_subckt_multiplier(), cleanup, using strchr()
2017-04-12 21:48:13 +02:00
rlar
2f1219811e
src/spicelib/devices/*/*set.c, XXXunsetup(), reset local node variables unconditionally
...
and use a more robust test for local node numbers.
That is, transform this pattern :
if (here->Node && ...) {
CKTdltNNum(ckt, here->Node);
here->Node = 0;
}
into this :
if (here->Node > 0 && ...)
CKTdltNNum(ckt, here->Node);
here->Node = 0;
The change of "!= 0" ==> "> 0" accounts for rare cases where "Node"
might have been set to -1, (meaning "unconnected")
The unconditional execution of the zero assignment is for those cases
where "Node" might have been assigned to some external or other local Node.
If so, the variable would not be set to zero, confusing the "guarding" if's
in the corresponding XXXsetup() routine.
The Pattern to follow is:
1) unset and delete *all* local Nodes in XXXunsetup()
2) allocate all of them again in a re-invocation of XXXsetup(),
exactly the same way as in the very first invocation.
2017-04-12 21:34:05 +02:00
rlar
00c743c37d
src/spicelib/devices/*/*def*.h, declare external node variables const
...
for almost all other external nodes (notable exception "txl")
src/spicelib/devices/*/*def*.h, declare external node variables const
1) The compiler shall emit an error message if we still mess around
with external node numbers.
2) To mark which elements of the instance struct are meant to be set
externally when parsing the netlist
These "external" node variables are exclusively set via the
overlay struct GENinstance, member GENnode[]
We shall not mess around with these "external" node variables
because it would get rather difficult to avoid bugs considering
re-invocation of the XXXsetup() routine.
This gets interesting for devices with optional ports,
which get copied around depending on the amount of connected ports.
2017-04-12 21:34:02 +02:00
rlar
0e9576cb34
src/spicelib/devices/*/*set.c, missing CKTdltNNum() invocations, complex cases
...
All locally created nodes (CKTmk..() invocations in XXXsetup())
must be deleted in XXXunsetup()
Otherwise CKTmk..() invocations during a following CKTsetup()
will re-emit still used node numbers,
thus accidentally shorting nodes.
This patch fixes the complex cases,
which are external node variables (ports of the instance),
which might be moved over to other external node variables
to cope with optional port connections.
This is fixed by copying the node numbers to local shadow variables
to avoid messing with the external nodes.
Otherwise a following CKTsetup() might again meddle with the external
node variables, at least causing considerable confusion, probably causing
hard to find bugs.
2017-04-12 21:34:00 +02:00
rlar
c0921250b7
src/spicelib/devices/*/*set.c, missing CKTdltNNum() invocations, medium cases
...
All locally created nodes (CKTmk..() invocations in XXXsetup())
must be deleted in XXXunsetup()
Otherwise CKTmk..() invocations during a following CKTsetup()
will re-emit still used node numbers,
thus accidentally shorting nodes.
This patch fixes a little bit more complex cases,
which are local node variables which will start with value 0
and eventually be set with the result of a CKTmk..() invocations,
but might as well receive a node number from another node variable.
Here CKTdltNNum() must not be invoked if the node number is merely
a copy from another node variable.
2017-04-12 21:33:59 +02:00
rlar
1fd14fa2ee
src/spicelib/devices/*/*set.c, missing CKTdltNNum() invocations, simple cases
...
All locally created nodes (CKTmk..() invocations in XXXsetup())
must be deleted in XXXunsetup()
Otherwise CKTmk..() invocations during a following CKTsetup()
will re-emit still used node numbers,
thus accidentally shorting nodes.
This patch fixes the simple cases,
which are local node variables which will start with value 0
and eventually be set with the result of a CKTmk..() invocation.
More complex cases evolve, if such a local variable might receive
a node number which origins from another node, or the netlist itself.
2017-04-12 21:33:58 +02:00
rlar
0c86adf9af
src/spicelib/devices/*/*set.c, XXXunsetup(), sort CKTdltNNum() invocations
...
Invoke CKTdltNNum() in reverse order of local node creation in XXXsetup()
This fixes a bug at least in mesa and hfet1,
where already destroyed node variables have still been accessed
in the guarding 'if' of a later CKTdltNNum() stanza.
Invoking them in revers order easily prevents such bugs,
and improves readability.
2017-04-12 21:33:50 +02:00
rlar
7afb798a6f
check for illegal DEVsetup() DEVunsetup() patterns.
...
Consider the following silent contracts:
1)
CKTsetup() invocations must be separated by a CKTunsetup() invocation
But CKTsetup() has an internal flag,
which will prevent re-invocation of DEVsetup()
But DEVsetup() will be called during sensitivity analysis,
bypassing this precaution. It is fatal if this will
cause another node allocation (CKTmk..()).
This commit tries to detect such cases.
(Note: many DEVsetup routines (all ?) have their CKTmk..() invocations
guarded to avoid reallocation of local nodes,
see commit f7f454c0a1
bug fix, fix the guard for device generated internal nodes (via CKTmkVolt())
)
FIXME:
DEVsetup() is seriously obfuscated by these guards.
If would be far better, if the sensitivity analysis
wouldn't sidestep into DEVsetup()
consider a device local variant of the CKTisSetup flag
2)
DEVunsetup() must delete all, each and every,
local allocated node in DEVsetup()
Otherwise CKTmk..() invocations in a following CKTsetup() will
return duplicate node numbers, effectively shorting device nodes.
This commit tries to detect incomplete CKTdltNNum() invocations.
3)
DEVunsetup() must not delete a netlist node.
This can easily happen in those devices which have optional ports,
which have code in DEVsetup() which copies node numbers to
local node variables.
This commit tries to detect such errors.
2017-04-12 21:32:51 +02:00
h_vogt
69b235531e
sharedspice.c, introduce csh variable "sharedmode"
...
to reflect whether running as shared library
2017-04-12 21:22:22 +02:00
h_vogt
0bf381e01d
cpitf.c, for Windows, introduce csh variable "win_console"
...
to reflect whether this .exe is a "console" build
2017-04-12 21:11:13 +02:00
h_vogt
670880086f
cpitf.c, MS Visual Studio, introduce csh variable "pg_config"
...
reflecting .exe compilation for
32/64 bit
with/without NGDEBUG
2017-04-12 21:01:57 +02:00
h_vogt
d7a1899210
runcoms.c, rawfile.c, include filename in the 'ASCII/binary raw file' printout
2017-04-12 20:45:51 +02:00
rlar
926ba4baaf
xspice/icm/analog/file_source/cfunc.mod, use CALLBACK
...
to free() locally allocated memory and fclose() a local filestream
2017-04-12 20:14:47 +02:00
rlar
58874cc65e
xspice, implement "CALLBACK"
...
Allow to register a callback function in the cfunc.mod files,
which will be invoked in MIFdestroy.
Usefull to "free" memory which has been allocated locally in a cfunc.mod file.
2017-04-12 20:02:35 +02:00
mhx
5f0f54761a
xspice, analog/file_source, bug fix
...
The source code did not consider the possibility
of more than one "tran" analysis invocations.
see "Bewildering problem with filesource block while sweeping"
https://sourceforge.net/p/ngspice/discussion/133842/thread/52949e23/
2017-04-12 20:01:14 +02:00
rlar
4872580221
mifsetup.c, MIFunsetup(), #3/3 now invoke CKTdltNNum()
2017-04-12 18:41:07 +02:00
rlar
9154f83c37
mifsetup.c, MIFunsetup(), #2/3 copy paste from MIFsetup()
2017-04-12 18:38:26 +02:00
rlar
c68a0313bd
mifsetup.c, MIFunsetup(), #1/3 delete broken code
2017-04-12 18:38:25 +02:00
dwarning
48262e5c0a
extend safe operation area check (SOA) to polarity check for mosfets by additional parameters
2017-04-11 21:31:54 +02:00
rlar
46ab21dca9
inpcom.c, is_a_modelname(), don't accept "1E2"
2017-04-09 20:19:35 +02:00
h_vogt
847a09fd37
inpcom.c, get_number_terminals(), ignore "save" and "print" when CIDER
2017-04-09 18:33:12 +02:00
h_vogt
e5d70d0821
gnuplot.c, bug fix, allow gnuplot with MINGW
2017-04-09 17:53:40 +02:00
rlar
ccfcc056ad
inpcom.c, bug fix, allow leading '_' in parameter identifiers
2017-04-09 15:38:15 +02:00
rlar
c6896cf338
accept .para shortcut for .param
2017-04-09 15:37:46 +02:00
rlar
900bed550d
string.c, #6/6, use skip_ws() and skip_back_ws()
2017-04-09 15:35:44 +02:00
rlar
0da47c644b
string.c, #5/6, cleanup
2017-04-09 15:35:41 +02:00
rlar
5b23b54769
string.c, #4/6, cleanup token fetching
2017-04-09 15:35:38 +02:00
rlar
c6a3438408
string.c, #3/6, cleanup 'return'
2017-04-09 15:35:35 +02:00
rlar
ed13e8a15a
string.c, #2/7, drop 'register'
2017-04-09 15:35:32 +02:00
rlar
d48bec757c
string.c, #1/6, whitespace
2017-04-09 15:35:29 +02:00
rlar
fb1c6fc123
ifparm, #16/16, isrc.c, non grouped alias entry, change "c" from IP to IOPPR
2017-04-09 15:29:44 +02:00
rlar
762314b893
ifparm, #15/16, ind.c, missing IF_AC|IF_PRINCIPAL in alias entry, use IOPAPR
2017-04-09 15:29:43 +02:00
rlar
d32a32bdc8
ifparm, #14/16, res.c, missing IF_ORQUERY|IF_REDUNDANT, introduce IOPQOR
2017-04-09 15:29:42 +02:00
rlar
cefb65507f
ifparm, #13/16, res.c, missing IF_SETQUERY in an alias entry, introduce IOPQR
2017-04-09 15:29:41 +02:00
rlar
8d3acddc7b
ifparm, #12/16, res.c, missing IF_PRINCIPAL in an alias entry, introduce IOPPR
2017-04-09 15:29:40 +02:00
rlar
614eebe944
ifparm, #11/16, res.c, missing IF_CHKQUERY for some alias entries, introduce IOPZR
2017-04-09 15:29:40 +02:00
rlar
ff00855397
ifparm, #10/16, jfet2.c, missing IF_REDUNDANT for some aliases, introduce PARAMR
2017-04-09 15:29:39 +02:00
rlar
cee466b35e
ifparm, #9/16, mes.c, "m" is an alias of "area", use IOPUR
2017-04-09 15:29:38 +02:00
rlar
f0e2b43940
ifparm, #8/16, excess IF_REDUNDANT for some aliases, use IOP
2017-04-09 15:29:37 +02:00
rlar
102a6b7c77
ifparm, #7/16, missing IF_UNINTERESTING for some aliases, introduce IOPUR
2017-04-09 15:29:36 +02:00
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
rlar
0b1c79172c
INPparseNumMod(), #13/14, invert 'if' statement
2016-07-17 18:26:48 +02:00
rlar
aa5afccf15
INPparseNumMod(), #12/14, use 'info' instead of 'lastType'
...
to signify having read a cardName
2016-07-17 18:26:41 +02:00
rlar
c4d39d66de
INPparseNumMod(), #11/14, remove unused 'cardType'
2016-07-17 18:26:27 +02:00
rlar
521fd16c11
INPparseNumMod(), #10/14, don't fall through into the 'default:'
...
instead, duplicate the code of the 'default:' and break
2016-07-17 18:26:21 +02:00
rlar
6b305744d9
INPparseNumMod(), #9/14, invert the 'if' statement
2016-07-17 18:26:16 +02:00
rlar
1483e2df9a
INPparseNumMod(), #8/14, move the 'default:' body out of the 'switch'
...
this body is inevitable, as there is no other break out of the 'switch'
2016-07-17 18:25:44 +02:00
rlar
1a9bcf6b33
INPparseNumMod(), #7/14, use 'lastType' instead of the identical 'cardType'
...
there is no further access to cardType
thus can drop the reduntandant assignments to cardType
2016-07-17 18:25:41 +02:00
rlar
110f16b361
INPparseNumMod(), #6/14, again, assign 'lastType' sooner
...
in the block in-between those two positions
there is no access to lastType
there is no 'continue'
there is no 'break' out of the enclosing switch
thus the assignment is inevitable
there is one position where cardType is modified,
need to assign to lastType there too to keep it in sync
2016-07-17 18:25:29 +02:00
rlar
18d6679c02
INPparseNumMod(), #5/14, use 'lastType' instead of the identical 'cardType'
2016-07-17 18:25:26 +02:00
rlar
11f3907139
INPparseNumMod(), #4/14, assign 'lastType' sooner
...
in the block in-between those two positions
there is no access to lastType or cardType
there is no 'continue'
there is no 'break' out of the enclosing 'switch'
thus the assignment is inevitable
2016-07-17 18:25:20 +02:00
rlar
7862a4f59f
INPparseNumMod(), #3/14, `continue' the loop instead of
...
'break'ing out of the `switch'
this is equivalent because the 'switch' is the last statement in the loop body
2016-07-17 18:24:35 +02:00
rlar
c1c7b5305e
INPparseNumMod(), #2/14, transform the `while' loop into a `for' loop
...
there was no 'continue' for this loop
there was no 'break' out of this loop
there was no assignment to txtCard, thus txtCard can't be NULL
2016-07-17 18:24:30 +02:00
rlar
e824cbd193
INPparseNumMod(), #1/14, return sooner
...
setting txtCard to 0 and cardType to E_MISSING (which is < 0)
caused the following `if (cardType >= 0)' to be skipped
and then broke out of the enclosing 'while' loop
in this case, there where no other statements executed
2016-07-17 18:24:20 +02:00
h_vogt
77380219d8
breakp2.c, prevent crash in `save' command if no circuit is loaded
2016-07-17 18:12:53 +02:00
rlar
34f8841805
cpl/cplsetup.c, cleanup
2016-07-17 11:49:42 +02:00
h_vogt
7ea4e99842
numparam/general.h, remove redundant memory management functions
2016-07-17 11:45:22 +02:00
rlar
a6f530b95c
USE_OMP, cleanup initialisation of local variable `model'
2016-07-17 11:36:47 +02:00
rlar
5b2fa579f1
USE_OMP, rename variables, `good' --> `error'
...
to express the actual meaning of these variables
2016-07-17 11:35:58 +02:00
rlar
fddbb7d9eb
USE_OMP, fix type of local variables `idx' and `InstCount'
2016-07-17 11:32:56 +02:00
rlar
994bec7859
declare free() / realloc() arguments `const void *'
...
to avoid extra casting when freeing `const' strings
2016-07-17 11:19:34 +02:00
h_vogt
6a7895fbc1
frontend/options.c, fix memory leak (pl_name, pl_title, pl_date)
2016-07-17 11:12:24 +02:00
rlar
1c565a1a89
frontend/rawfile.c, raw_write(), fix memory ownership for pl_title and pl_date
...
avoid assigning cloned strings
to pl_date/pl_title fields of multiple plots
avoid excess allocation
2016-07-17 11:12:22 +02:00
h_vogt
236b99f2b1
cktdest.c, xspice, set g_mif_info.ckt = NULL
...
when destroying/remcirc'ing a circuit
to avoid a crash in EVTfindvec()
which might try to access fields in the destroyed CKTcircuit
( excercise: tran, remcirc, load rawfile, plot something_nonexistant )
2016-07-17 10:57:49 +02:00
h_vogt
f66e76fb5f
implement option 'xmu' to control trapezoidal integration method
...
default is 0.5
option xmu=0.49
can be used to add some damping to reduce trap ringing
set xmu=0.49
or
.option xmu=0.49
works as well
2016-07-16 15:21:27 +02:00
Francesco Lannutti
ef0dcfe5f2
avoid bison dependency `version >= 2.7'
2016-07-09 20:58:17 +02:00
Francesco Lannutti
99a20162d5
bsimsoi/b4soiset.c, bug fix, don't allocate `B4SOIEbPtr' twice
2016-06-14 19:38:43 +02:00
h_vogt
b14e7cb040
sharedspice.c, remove meory leaks
2016-05-28 16:52:50 +02:00
rlar
4c60783e4d
xspice, implement EVTdest() to fix xspice memory leaks
2016-05-07 15:50:34 +02:00
rlar
af93d79675
ngspice/mifparse.h, ngspice/mifcmdat.t, reduce scope of these include files
2016-05-07 15:44:50 +02:00
rlar
97cc400efb
ngspice/evt.h, ngspice/enh.t, reduce scope of these include files
2016-05-07 15:36:43 +02:00
h_vogt
efcd8584f1
error.c, ft_sperror(), memory leak, free memory returned by `if_errstring()'
2016-04-03 18:50:28 +02:00
rlar
5611ca4f10
harmonise all incarnations of `if_errstring()' to return malloced memory
2016-04-03 18:44:48 +02:00
h_vogt
50bd157349
parser/inppas3.c, fix memory leak
2016-04-03 11:26:41 +02:00
h_vogt
ffee2a6b5f
parser/inppas3.c, fix memory ownership
...
`INPgetTok()' creates `nodename' which is then committed to `INPtermInsert()'
2016-04-03 11:26:40 +02:00
rlar
ddf01dbe3f
parser/inppas3.c, shrink scope of local variable `name'
2016-04-03 11:26:38 +02:00
rlar
cff23b8d38
fix commit "ngspice.h, cm.h, cleanup NAN defines"
2016-04-02 18:01:17 +02:00
rlar
d58fd306f3
input.c, inchar(), cleanup
2016-04-01 20:05:37 +02:00
rlar
1aab43dd1a
xspice/cmpp/*.l, flex file cleanup and use %option noinput, nounput
2016-04-01 19:36:51 +02:00
h_vogt
9154ab103a
inp2dot.c, dot_tran(), fix a memory leak
2016-04-01 19:36:36 +02:00
h_vogt
0443a2690c
glob.c, brac1(), fix a memory leak
2016-04-01 18:25:10 +02:00
h_vogt
841f2846fe
plotit.c, properly free a reversed wordlist
2016-04-01 18:05:40 +02:00
rlar
5299f8cdb6
ngspice.h, cm.h, cleanup NAN defines
2016-04-01 18:03:38 +02:00
h_vogt
8480898399
frontend/variable.c, remove memory leak
2016-04-01 17:40:17 +02:00
rlar
ac726f0cf4
struct variable, #18/18, clean
2016-04-01 17:39:53 +02:00
rlar
a6cd5eea45
struct variable, #17/18, clean
2016-04-01 17:39:22 +02:00
rlar
af81e6810e
struct variable, #16/18, drop intermediate variable
2016-04-01 17:37:27 +02:00
rlar
212121d373
struct variable, #15/18, rewrite in terms of `var_alloc_xxx()' (do-3)
2016-04-01 17:36:57 +02:00
rlar
57f56f53a6
struct variable, #14/18, introduce `var_alloc_xxx()'
2016-04-01 17:34:55 +02:00
rlar
bf5acda362
struct variable, #13/18, reorder var_alloc() invocation
2016-04-01 17:34:25 +02:00
rlar
eb53b4d703
struct variable, #12/18, rewrite in terms of `var_alloc()' (do-2)
2016-04-01 17:34:03 +02:00
rlar
8691368a81
struct variable, #11/18, introduce `var_alloc()'
2016-04-01 17:32:36 +02:00
rlar
68042b3d1b
struct variable, #10/18, rewrite in terms of `var_set_xxx()' (do-1)
2016-04-01 17:32:12 +02:00
rlar
bbbd531d8d
struct variable, #9/18, introduce `var_set_xxx()'
2016-04-01 17:29:58 +02:00
rlar
cc3a124120
struct variable, #8/18, collect struct variable operations
2016-04-01 17:29:36 +02:00
rlar
41b5f17906
struct variable, #7/18, reorder struct variable operations
2016-04-01 17:28:57 +02:00
rlar
f4f0ae3f61
struct variable, #6/18, collect struct variable operations
2016-04-01 17:27:29 +02:00
rlar
e0ae0bcff1
struct variable, #5/18, reorder struct variable initialisation
2016-04-01 17:26:51 +02:00
rlar
b748f2d6d0
struct variable, #4/18, shrink scope of local variables
2016-04-01 17:26:22 +02:00
rlar
830b4f443f
struct variable, #3/18, cleanup struct variable field initialisation
2016-04-01 17:25:46 +02:00
rlar
01a0449420
struct variable, #2/18, reorder struct variable field initialisation
2016-04-01 17:24:50 +02:00
rlar
cb4c07b7f0
struct variable, #1/18, cleanup for loops
2016-04-01 17:23:14 +02:00
rlar
a9aca09320
frontend/ftesopt.c, getFTEstat(), collect struct variable operations
2016-04-01 17:22:13 +02:00
rlar
cdf2b69a38
frontend/ftesopt.c, getFTEstat(), prepare for rewrite
2016-04-01 17:22:12 +02:00
rlar
1d15f6bfce
fix struct variable initialisation
2016-04-01 17:22:07 +02:00
rlar
698cbe20dd
frontend/options.c, fix `cp_enqvar(char *word)', missing `copy()'
2016-04-01 17:22:05 +02:00
rlar
81bf9fb9ba
frontend/ftesopt.c, ft_getstat(), cleanup
2016-04-01 17:22:02 +02:00
rlar
371bbf487b
frontend/ftesopt.c, getFTEstat(), include struct variable initialisation
2016-04-01 17:22:00 +02:00
rlar
53531da715
frontend/ftesopt.c, getFTEstat(), add `next' to the function arguments
2016-04-01 17:21:59 +02:00
rlar
a98dde245c
frontend/ftesopt.c, shrink scope of local variables
2016-04-01 17:21:58 +02:00
rlar
413ae5784c
frontend/ftesopt.c, ft_getstat(), cleanup for loop variable consing
2016-04-01 17:21:56 +02:00
rlar
44de319c34
frontend/ftesopt.c, getFTEstat(), cleanup signature
2016-04-01 17:21:55 +02:00
rlar
a8d96c0d17
frontend/ftesopt.c, getFTEstat(), cleanup signature
2016-04-01 17:21:53 +02:00
h_vogt
e60f2f63e1
frontend/cpitf.c, cp_istrue(), cleanup comments
2016-03-26 22:48:49 +01:00
h_vogt
f52a12a95a
cktsetup.c, invoke `SetAnalyse("Device Setup",...)' only once
2016-03-26 22:24:54 +01:00
h_vogt
494a58cca9
main.c, add variable 'batchmode'
...
which is set when command line option `-b' is active
2016-03-26 22:14:11 +01:00
h_vogt
8b709a394f
cpitf.c, cp_istrue(), avoid surplus Warning Message when an `if' condition expands to nothing
...
When in expression
if $var ...
the variable `var' was undefined, then
ngspice printed a surplus warning message
> Warning: NULL arithmetic expression
in addition to the error message
> Error: var: no such variable.
ngspice continues to process the conditional construct
and evaluates the condition as "FALSE"
2016-03-26 21:58:39 +01:00
rlar
059f2b6c0d
fix garbage collection of vectors returned by ft_evaluate()
2016-03-26 18:48:50 +01:00
rlar
9652cc46c8
plotting/graf.c, cleanup
2016-03-23 17:04:55 +01:00
h_vogt
c332b33d23
parser/lexical.c, #10/10, add some comments
2016-03-22 15:51:58 +01:00
rlar
a551f87652
parser/lexical.c, #9/10, use dynamic buffer allocation
2016-03-22 15:51:48 +01:00
rlar
2d480637c9
parser/lexical.c, #8/10, use a struct to store the buffer state
2016-03-22 15:51:36 +01:00
rlar
615b8a4598
parser/lexical.c, #7/10, use `copy_substring()'
2016-03-22 15:51:13 +01:00
rlar
9a7e915a9f
parser/lexical.c, #6/10, cleanup
2016-03-22 15:51:04 +01:00
rlar
8f09c35c5a
parser/lexical.c, #5/10, change buf/linebuf usage
...
properly '\0' terminate the buffers where needed
instead of an unspecific bzero() invocation
2016-03-22 15:50:52 +01:00
rlar
b7f3dbc0fe
parser/lexical.c, #4/10, rename `cw' --> `wlist_tail'
2016-03-22 15:50:48 +01:00
rlar
4cabf8fa6c
parser/lexical.c, #3/10, move the `wlist' and `cw' resetting
...
to the label `nloop'
2016-03-22 15:50:09 +01:00
rlar
a0f5111436
parser/lexical.c, #2/10, move the `wlist' and `cw' resetting
...
nearer to the `goto nloop'
2016-03-22 15:50:03 +01:00
rlar
a2af93685f
parser/lexical.c, #1/10, this condition is allways true
2016-03-22 15:26:33 +01:00
rlar
521db88eff
frontend/rawfile.c, use "stringskip.h"
2016-03-22 15:26:28 +01:00
rlar
f3e61b838e
frontend/inpcom.c, use "stringskip.h"
2016-03-22 15:26:21 +01:00
rlar
5e04924890
cleanup `skip_ws()' usage
2016-03-22 15:26:11 +01:00
rlar
b1d8b99018
skip-ws, #6/6, rename to match inpcom.c
2016-03-22 15:26:10 +01:00
rlar
22875d056b
skip-ws, #5/6, use functional style
2016-03-22 15:26:09 +01:00
rlar
d12679fccd
skip-ws, #4/6, drop `TEMPORARY_SKIP_WS_X0'
...
use TEMPORARY_SKIP_WS_X1 instead of TEMPORARY_SKIP_WS_X0
2016-03-22 15:26:08 +01:00
rlar
a86f2068c8
skip-ws, #3/6, use TEMPORARY macros, obj-invariant
2016-03-22 15:26:06 +01:00
rlar
6d1171ad6f
skip-ws, #2/6, introduce "ngspice/stringskip.h"
...
with some temporary macros to skip whitespace
2016-03-22 15:26:05 +01:00
rlar
1ad65120d5
skip-ws, #1/6, prepare for rewrite, obj-invariant
2016-03-22 15:26:04 +01:00
rlar
deeb06b063
inpcom.c, inline and rename the `skip' family, depreciate some of them
2016-03-22 15:26:02 +01:00
rlar
88983b079b
numparam/spicenum.c, prevent memory access beyond end of string
2016-03-22 15:25:47 +01:00
rlar
1578348fdf
frontend/inp.c, inp_evaluate_temper(), fix memory hole
2016-03-22 15:25:43 +01:00
rlar
cc8f84ab84
frontend/inp.c, inp_parse_temper(), bug fix, prevent multiple free'ed memory
2016-03-22 15:25:39 +01:00
rlar
c9ee5a4501
frontend/inp.c, inp_parse_temper(), rewrite linked list insertion
2016-03-22 15:25:33 +01:00
rlar
f9794431c3
xspice/icm/digital/d_osc/cfunc.mod, swallow a warning
2016-03-22 15:24:53 +01:00
rlar
297c1e90b6
xspice/icm/digital/d_state/cfunc.mod, swallow warnings
...
current state and next_state are denoted by integers,
though parsed with a parser written for double values.
2016-03-22 15:24:45 +01:00
rlar
2b0c60dadf
xspice/ipc/ipcsockets.c, choke some warnings
...
Fixme, this code is simply broken,
nobody seems to use it.
One would need to change the socket protocol (message length)
in agreement with the users of the protocol.
For the time beeing,
just suffocate the warnings in a way which does not change
the broken behaviour of this code.
2016-03-22 15:24:41 +01:00
rlar
20aaa3973a
frontend/trannoise/wallace.c, avoid warnings
...
drop unused `s' and `cob'
chage type of `coa', which is used exclusively in `unsigned int' context
2016-03-22 15:24:31 +01:00
rlar
4b5669a51c
frontend/resource.c, fix bizarre time mathematics
2016-03-22 15:24:25 +01:00
rlar
36064b624a
frontend/resource.c, rename time variables to denote their actual units
2016-03-22 15:24:20 +01:00
rlar
1125b293e3
frontend/resource.c, bug fix, lastusec actually denotes milliseconds
2016-03-22 15:23:53 +01:00
rlar
03630efb8c
remove ancient artefact `#ifdef ipsc'
2016-03-22 15:23:46 +01:00
rlar
40a0cea0d2
swap some `SWAP' arguments for readability
2016-03-22 15:23:05 +01:00
rlar
bd0bc3038b
use `SWAP' macro
2016-03-22 13:04:13 +01:00
rlar
b36385e333
improve `SWAP' macro
2016-03-22 13:03:59 +01:00
rlar
f84d2d4e44
misc/wlist.c, minor cleanup
2016-03-22 11:22:53 +01:00
rlar
273be42cfd
improve `ABORT' macro
2016-03-21 21:22:26 +01:00
rlar
6fe937f931
drop unused `SWAPINT' macro
2016-03-21 21:22:23 +01:00
rlar
6342bec8ec
everywhere, drop `MALLOC()' and `REALLOC()'
2016-03-21 21:22:15 +01:00
rlar
4c1c95e20f
everywhere, use `TMALLOC()' instead of `alloc()'
2016-03-21 21:22:07 +01:00
h_vogt
7d8e287fa3
enable backquote substitution for Visual Studio console apps
2016-03-09 20:24:37 +01:00
h_vogt
25264b3980
memory.h: hrealloc not used anywhere
2016-03-09 20:24:37 +01:00
rlar
d0897fd0c4
src/spicelib/parser/inpptree.c, bug fix, B expression of kind `max(0,expr)'
...
identified and reported by Marcel Hendrix,
expressions of this kind could trigger a segmentation violation.
PTdifferentiate() roughly evaluates to
ternary_fcn(ge0(0-expr), 0, PTdifferentate(expr))
and mkb() optimizes
0 - expr --> unary_minus(expr)
IFeval() invokes PTeval() for the derivative too,
PTeval() looks at the incorrect tree->funcnum
and tries to PTeval for a second argument which is not there,
(unary_minus does not have a second argument)
causing a segmentation fault.
2016-03-09 20:24:37 +01:00
rlar
0932120a7f
special cases of the char variants of the <ctype.h> family
2016-03-09 20:24:36 +01:00
rlar
726d0be34c
use char variants of the <ctype.h> toxxxx() family
2016-03-09 20:24:36 +01:00
rlar
71a7c3459b
use char variants of the <ctype.h> isxxxx() family
2016-03-09 20:24:36 +01:00
rlar
d0c5a495ca
ngspice.h, cm.h, cmpp.h, introduce char variants of the <ctype.h> family
2016-03-09 20:24:36 +01:00
rlar
07aba2e2ae
frontend/variable.c, used `isalnum()' instead of homegrown `isalphanum()'
2016-03-09 20:24:36 +01:00
rlar
7a51ead0a5
frontend/inpcom.c, char argument for `identifier_char()'
2016-03-09 20:24:36 +01:00
rlar
ea0cd17974
numparam/xpressn.c, fix a warning
2016-03-09 20:24:36 +01:00
rlar
1a257cd55a
frontend/breakp.c, cleanup `dbfree1()' and `dbfree()'
2016-03-09 18:23:23 +01:00
rlar
8ce99a3c66
plotting/graf.c, bug fix, dbfree1() is wanted instead of dbfree()
2016-03-09 18:23:22 +01:00
mhx
d97e12b1ab
frontend/breakp.c, avoid segfault on/after "delete all"
2016-03-09 18:23:21 +01:00
rlar
6d356f439d
autogen.sh, src/Makefile.am, fix a build problem
...
in autogen.sh:
libtoolize generates m4/*.m4 files
autoheader generates config.h.in
but only when needed
Thus a second autogen.sh invocation generated new .m4 files
but left config.h.in untouched with old timestamp
The makefiles did recognice this situation and tried to regenerate
config.h.in and config.h
But the subdir src/include was not the first one in src/Makefile.am
and thus this update did occure too late,
causing further rebuilds in the next make invocation.
Avoid this with --force arguments to the autotools,
and put src/include into the first position.
2016-03-09 18:23:20 +01:00
rlar
d59b74471b
xspice/icm, fix some warnings
2016-03-09 18:23:18 +01:00
h_vogt
51bc944def
xspice/cmpp, compatibility with MS Visual Studio
2016-02-07 17:45:43 +01:00
h_vogt
fc83bd099a
miscoms.c, mscvars.c, spinit.in, variable 'askquit' instead of 'noaskquit'
2016-02-07 17:37:42 +01:00
h_vogt
db0849d076
terminal.c, miscvars.c, variable 'moremode' instead of 'nomoremode', new default
...
the `more' pager is now disabled by default
2016-02-07 17:37:34 +01:00
h_vogt
eef5a058d2
inp.c, disable command `edit' unless `interactive' has been set
2016-02-07 17:36:54 +01:00
h_vogt
888bcce829
spicenum.c, new variable `interactive'
...
when set enables interactive numparam error handling
2016-02-07 17:34:26 +01:00
h_vogt
e6034b0e95
postcoms.c, change command `setplot'
...
`setplot'
print a list of plots available
`setplot <plotname>'
make <plotname> the current plot
`setplot new'
create a new plot
2016-02-07 17:34:15 +01:00
h_vogt
5527325a67
runcoms.c, change command `setcirc'
...
`setcirc'
print a list of circuits loaded
`setcirc <n>'
switch to circuit number <n>
2016-02-07 17:34:08 +01:00
h_vogt
a162ecec9f
src/xspice/evt/evtprint.c, bug fix, avoid segfault
...
print an error message if no circuit has been loaded
2016-02-07 17:33:54 +01:00
h_vogt
9531318d8f
src/frontend/commands.c, cleanup
2016-02-07 17:33:45 +01:00
rlar
d07b76610b
visualc/.gitignore, src/spinit.in, cleanup
2016-02-07 17:33:39 +01:00
h_vogt
85bfaaabef
src/xspice/examples/io_types.deck, bug fix, instance name
...
instance `again' occured twice
2016-02-07 17:33:25 +01:00
rlar
da5f86c50b
spicelib/analysis/transetp.c, fix typo, `TST0P' -> `TSTOP'
2016-01-22 22:41:32 +01:00
h_vogt
356a262f7f
cktdefs.h, some parameter descriptions added
2016-01-22 22:41:30 +01:00
rlar
885e7df8a5
xspice, introduce cm_message_printf()
2016-01-07 16:55:09 +01:00
h_vogt
137f8e9641
com_option.c, mif_inp2.c: remove memory leaks
2016-01-07 16:54:59 +01:00
Krzysztof Blaszkowski
03b47b3e34
src/frontend/outif.c, plotAddRealValue() etc, rallocate more coarsely
...
reallocate in chunks, instead of once per time step.
2016-01-07 09:05:00 +01:00
rlar
9d32a0a5a9
simplify complex assignments
2015-12-29 18:15:06 +01:00
Krzysztof Blaszkowski
2c63d0f6d3
frontend/outitf.c, #4/4, reorder, first do the work, then print
2015-12-29 14:58:19 +01:00
Krzysztof Blaszkowski
e952014016
frontend/outitf.c, #3/4, abstraction, `&run->data[i]' --> `d'
2015-12-29 14:58:04 +01:00
Krzysztof Blaszkowski
7720ae936f
frontend/outitf.c, #2/4, avoid repeated access to `run->numData'
2015-12-29 14:57:51 +01:00
Krzysztof Blaszkowski
6fa60faf7e
frontend/outitf.c, #1/4, abstraction, introduce `OUTpD_memory()'
2015-12-29 14:57:42 +01:00
rlar
df70661c3a
dvec abstraction, #11/11, introduce `dvec_realloc()'
2015-12-28 20:34:42 +01:00
rlar
c2a7821449
dvec abstraction, #10/11, introduce `dvec_trunc()'
2015-12-28 20:34:42 +01:00
rlar
3962453739
dvec abstraction, #9/11, introduce `dvec_free()'
2015-12-28 20:34:42 +01:00
rlar
8243696338
dvec abstraction, #8/11, upgrade `dvec_alloc()'
2015-12-28 20:34:42 +01:00
rlar
fdae9b7c06
dvec abstraction, #7/11, emphasise `v_scale = NULL' initialisation
2015-12-28 20:34:42 +01:00
rlar
1304001739
dvec abstraction, #6/11, emphasise `v_plot = NULL' initialisation
2015-12-28 20:34:42 +01:00
rlar
cea2664db0
dvec abstraction, #5/11, emphasise `v_numdims = 0' initialisation
2015-12-28 20:34:42 +01:00
rlar
8a4a37b5bb
dvec abstraction, #4/11, emphasise `ZERO(dvec)' initialisation
2015-12-28 20:34:42 +01:00
rlar
908c650f72
dvec abstraction, #3/11, use `dvec_alloc()'
2015-12-28 20:34:42 +01:00
rlar
9d99a06bcd
dvec abstraction, #2/11, introduce `dvec_alloc()'
2015-12-28 20:34:42 +01:00
rlar
08ad3f6ab5
dvec abstraction, #1/11, reorder
2015-12-28 20:34:42 +01:00
rlar
3ab568fcba
frontend/device.c, com_alter_common(), #4/4 rename and reuse locals
2015-12-28 12:57:30 +01:00
rlar
dcef3da677
frontend/device.c, com_alter_common(), #3/4 use `wl_cons()'
2015-12-28 12:57:29 +01:00
rlar
335a47f70a
frontend/device.c, com_alter_common(), #2/4 shrink scope of locals
2015-12-28 12:57:28 +01:00
rlar
a3e06831fd
frontend/device.c, com_alter_common(), #1/4 rewrite for readability
2015-12-28 12:57:27 +01:00
rlar
c442994a0a
frontend/evaluate.c, apply_func(), reorder
2015-12-27 19:03:22 +01:00
rlar
814c51659e
frontend/rawfile.c, raw_read(), reorder
2015-12-27 18:52:52 +01:00
h_vogt
88414a58ce
frontend/control.c, bug fix, "#310 Command parser problem with wrdata"
...
make all commands (see manual 17.5) entered manually,
with .control section or by script case insensitive.
generally in inpcom.c everything is converted to lowercase,
but there are exceptions, e.g. "wrdata", which might be
followed by arguments whose case needs to be preserved.
(most notably filenames)
Thanks to Mathias Gebhardt, who reported this bug in
#310 Command parser problem with wrdata
http://sourceforge.net/p/ngspice/bugs/310/
2015-12-27 15:36:04 +01:00
Krzysztof Blaszkowski
0bfee6575b
ngspice/dvec.h, struct member `v_rlength', improve comment
2015-12-27 12:58:52 +01:00
rlar
68bd883535
plotting/graf.c, collect related global variables in a struct
2015-12-27 12:08:48 +01:00
rlar
c405d0ff86
plotting/graf.c, cleanup initialisation, `gr_init()' is in charge to do that
2015-12-27 12:08:44 +01:00
rlar
299849c0db
plotting/gnuplot.c, ft_gnuplot(), bug fix, allow plotting a family of curves
...
in the vein of plotcurv.c, ft_graf()
2015-12-27 12:05:55 +01:00
rlar
be3c60badd
sharedspice.c, add prototype for `getisrcval()'
2015-12-27 12:03:34 +01:00
h_vogt
8ae0b53b9f
sharedspice.c, fix `retval' parameter for `pthread_exit()'
2015-12-27 12:03:29 +01:00
rlar
1c1fa6b333
frontend/vectors.c, vec_mkfamily(), #6/6 reorder
2015-12-27 11:42:27 +01:00
rlar
a3bf161f89
frontend/vectors.c, vec_mkfamily(), #5/6 fuse those two `for' loops
2015-12-27 11:42:26 +01:00
rlar
f86d5c60e4
frontend/vectors.c, vec_mkfamily(), #4/6 drop `j', reuse `i'
2015-12-27 11:42:25 +01:00
rlar
e52b85ac6c
frontend/vectors.c, vec_mkfamily(), #3/6 earlier initialisation of `count[]'
2015-12-27 11:42:24 +01:00
rlar
83ac9c1d2d
frontend/vectors.c, vec_mkfamily(), #2/6 rewrite v_link2 consing
2015-12-27 11:42:23 +01:00
rlar
d4558079e3
frontend/vectors.c, vec_mkfamily(), #1/6 bug fix, set v_dims[] properly
2015-12-27 11:42:22 +01:00
rlar
5a678e38dc
plotting/plotit.c, xtend(), #7/7 reorder
2015-12-27 11:21:46 +01:00
rlar
64d6a5d7c0
plotting/plotit.c, xtend(), #6/7 drop some local variables
2015-12-27 11:21:45 +01:00
rlar
d1a68482a5
plotting/plotit.c, xtend(), #5/7 use `TREALLOC()'
2015-12-27 11:21:44 +01:00
rlar
64b43b0c68
plotting/plotit.c, xtend(), #4/7 support vector of zero length
2015-12-27 11:21:43 +01:00
rlar
7c6fc1343b
plotting/plotit.c, xtend(), #3/7 complex assignment
2015-12-27 11:21:42 +01:00
rlar
13e649209c
plotting/plotit.c, xtend(), #2/7 fix index `i'
2015-12-27 11:21:41 +01:00
rlar
83fc07e770
plotting/plotit.c, xtend(), #1/7 don't free already freed data
2015-12-27 11:21:40 +01:00
rlar
c1b9f746a3
frontend/device.c, com_alter_common(), #10/11 whitespace
2015-12-26 19:00:12 +01:00
rlar
78a0f74bbc
frontend/device.c, com_alter_common(), #9/11 useless allocation
2015-12-26 19:00:08 +01:00
rlar
f04d6cffc2
frontend/device.c, com_alter_common(), #8/11 reorder
2015-12-26 19:00:04 +01:00
rlar
245ef2bbf1
frontend/device.c, com_alter_common(), #7/11 reorder
2015-12-26 19:00:00 +01:00
rlar
8fb0143043
frontend/device.c, com_alter_common(), #6/11 thats always true, drop `type'
2015-12-26 18:59:56 +01:00
rlar
88fa0bc8d2
frontend/device.c, com_alter_common(), #5/11 cleanup `i' usage
2015-12-26 18:59:52 +01:00
rlar
247767e3bf
frontend/device.c, com_alter_common(), #4/11 rewrite while() loop
2015-12-26 18:59:48 +01:00
rlar
80b76ebeb2
frontend/device.c, com_alter_common(), #3/11 rewrite while() loop
2015-12-26 18:59:44 +01:00
rlar
c284161949
frontend/device.c, com_alter_common(), #2/11 set `v_type' and `v_flags' too
2015-12-26 18:59:38 +01:00
rlar
fd2329c7e9
frontend/device.c, com_alter_common(), #1/11 fix error return
2015-12-26 18:59:27 +01:00
h_vogt
a18ac9c474
include/ngspice/cm.h, xspice, introduce NAN for visual studio
2015-12-23 14:04:23 +01:00
rlar
8e50275345
frontend/evaluate.c, apply_func(), reorder
2015-12-23 10:56:12 +01:00
rlar
6709ab900a
frontend/outitf.c, plotInit(), reorder
2015-12-23 10:55:06 +01:00
rlar
08feced9b6
frontend/rawfile.c, raw_read(), reorder
2015-12-23 10:46:42 +01:00
rlar
da5ebd8645
frontend/evaluate.c, doop(), emphasise `v_type' initialisation
2015-12-23 10:37:44 +01:00
rlar
9e353fbae8
frontend/rawfile.c, raw_read(), emphasise `v_type' initialisation
2015-12-23 10:37:41 +01:00
rlar
7bab434504
frontend/rawfile.c, fixdims(), turn `if' upside-down for readability
2015-12-23 10:33:53 +01:00
rlar
1b62c1f050
plotting/plotit.c, plotit(), `v_length' shall be updated (lpr device, asciiplot)
2015-12-23 10:30:47 +01:00
rlar
d632e3314d
frontend/parse.c, PP_mknnode(), reorder
2015-12-22 20:45:08 +01:00
rlar
30becb4509
frontend/vectors.c, vec_get(), #2/2 rewrite
2015-12-22 18:24:17 +01:00
rlar
d360023e14
frontend/vectors.c, vec_get(), #1/2 drop unused allocation
2015-12-22 18:24:14 +01:00
rlar
d37f18d777
misc/string.c, sprinkle some const'ness
2015-12-22 16:47:42 +01:00
rlar
9473ec575f
drop some remaining `NEW*' macros, use TMALLOC instead
2015-12-19 19:39:29 +01:00
rlar
9546b178fb
drop macro `NEW', use TMALLOC instead
2015-12-19 19:38:55 +01:00
rlar
9fde8e374a
txl/txlsetup.c, avoid warning, drop static `GdC' and `RdL'
2015-12-17 21:59:37 +01:00
rlar
cd7e77d21f
src/frontend/inp.c, avoid warning, drop nested local `wl'
2015-12-17 21:45:18 +01:00
rlar
d47f073550
txl/txlsetup.c, cpl/cplsetup.c, avoid warning, rename nested local `x1'
2015-12-17 20:48:59 +01:00
rlar
36aa107c0e
src/spicelib/parser/inpptree.c, avoid warning, drop nested local `arg1' ...
2015-12-17 20:40:31 +01:00
rlar
0e0c2785a4
src/spicelib/analysis/dcpss.c, avoid warning, drop a nested local `i'
2015-12-17 20:35:11 +01:00
rlar
1aab57d17e
src/spicelib/analysis/cktdisto.c, avoid warning, drop a nested local `size'
2015-12-17 20:31:53 +01:00
rlar
270f508b56
src/frontend/postsc.c, avoid warning, rename local variable `scale'
2015-12-17 19:50:49 +01:00
rlar
053a56e267
src/ciderlib/oned/onesetup.c, bug fix, access beyond array bounds
2015-12-17 18:51:21 +01:00
rlar
c94d7153fd
fix commit, "src/sharedspice.c, add vfprintf to interface for transferring ..."
2015-12-16 21:14:11 +01:00
h_vogt
1cd8bbf744
frontend/postcoms.c, add variable `width' to command "print line ..."
2015-12-16 20:12:01 +01:00
rlar
876086f768
fix commit "frontend/parse.c, bug fix, PPlex(.."dc1.@m1[vth][1]"..)"
...
which broke
let something = foo[var]
notably used in
examples/Monte_Carlo/MC_ring.sp
2015-12-16 19:17:41 +01:00
h_vogt
0b92d8cfe1
src/sharedspice.c, add vfprintf to interface for transferring messages
2015-12-15 22:16:47 +01:00
rlar
33487b7d68
src/sharedspice.c, add ATTRIBUTE_NORETURN to function `shared_exit()' declaration
2015-12-15 22:05:14 +01:00
rlar
8ec9e1a040
src/xspice/ipc/ipcstdio.c, fix ancient style function definition
2015-12-15 20:39:56 +01:00
h_vogt
23308f7fcf
src/Makefile.am, libpsapi not required when linking shared ngspice,
...
prevents creating dll with actual libtool
2015-12-15 20:27:03 +01:00
rlar
9e237d700e
txl/txlsetup.c, cpl/cplsetup.c, rename static variable `ndn' --> `ndn_btree'
2015-12-15 20:19:12 +01:00
rlar
f56fae2915
frontend/com_ghelp.c, avoid unused variables
2015-12-15 20:08:31 +01:00
rlar
a1439f5d4d
plotting/plotit.c, rename local variable `j' --> `y_type'
2015-12-15 19:58:11 +01:00
rlar
f97e4a2a35
plotting/plotit.c, cleanup search for common y_type
2015-12-15 19:57:12 +01:00
rlar
18426c755d
harmonise `struct circ' variables, `ckt' --> `ci'
2015-12-15 18:36:59 +01:00
rlar
f6716af635
frontend/ftesopt.c, rename local variable `ft_curckt' --> `ci'
...
to avoid compiler warning:
'ft_curckt' hides global declaration
2015-12-15 18:36:45 +01:00
rlar
f826ff82f8
introduce `ATTRIBUTE_NORETURN' for `controlled_exit()' and `sp_shutdown()'
2015-12-15 18:10:18 +01:00
h_vogt
84e31cae82
xspice/icm/digital/d_source/cfunc.mod, bug #301 , increase MAX_STRING_SIZE for input file reading
...
Thats a workaround for a segmentation fault (buffer overrun)
caused by too long lines in the input file for a xspice "d_source"
Thanks to Siddhant Saraf, who reported this in
#301 d_source gives wrong error and then SIGSEGV (Address boundary error)
http://sourceforge.net/p/ngspice/bugs/301/
2015-12-13 12:28:46 +01:00
h_vogt
ab05d9df04
numparm/spicenum.c, rename local variable `cp_out' --> `fp'
...
to avoid a "hides global declaration" compiler warning
2015-12-13 12:24:38 +01:00
h_vogt
f7d387005f
numparam/spicenum.c, bug #300 , exit gracefully upon numparam error (SHARED_MODULE)
...
Thanks to Sergii Baitala, who reported this in
#300 Shared ngspice: ngspice hangs on getchar
http://sourceforge.net/p/ngspice/bugs/300/
2015-12-13 11:46:11 +01:00
h_vogt
806fdfb029
vsrc/vsrcask.c, bug #299 , add "nop" handler for VSRC_EXTERNAL in SHARED_MODULE
...
Avoid NAN error when executing "show all"
Thanks to Sergii Baitala, who reported this in
#299 Shared ngspice: missed VSRC_EXTERNAL handler in VSRCask
http://sourceforge.net/p/ngspice/bugs/299/
2015-12-13 11:46:09 +01:00
dwarning
7fb8368133
favor exponential temperatur equation if all parameters tc1, tc2 and tce are given
2015-11-22 10:43:42 +01:00
h_vogt
df846346a1
visualc, cope with `bool' and `isnan()' in visual studio 2015
...
now they have isnan(),
(presumably in math.h)
now they have a C99 `bool',
(maybe even though not asked for with <stdbool.h>)
2015-11-15 15:09:27 +01:00
rlar
917ae030c9
src/sharedspice.c, fix #include style
2015-11-15 15:09:26 +01:00
rlar
f33d9953b3
frontend/define.c, cleanup `ft_substdef()'
2015-11-13 20:17:18 +01:00
rlar
8f69a04833
frontend/define.c, cleanup `numargs()'
2015-11-13 20:17:17 +01:00
rlar
22d5a7124a
frontend/define.c, abstraction, introduce `numargs()'
2015-11-13 20:17:16 +01:00
rlar
37979de65a
frontend/define.c, trcopy(), rename `nn' --> `args'
2015-11-13 20:17:16 +01:00
rlar
e99ba7478b
frontend/define.c, trcopy(), rename `args' --> `arg_names'
2015-11-13 20:17:15 +01:00
rlar
bc44be41ad
frontend/define.c, ft_substdef(), rename `s' --> `arg_names'
2015-11-13 20:17:14 +01:00
rlar
045de93d3b
frontend/define.c, cleanup `prtree1()'
2015-11-13 20:17:13 +01:00
rlar
83938330eb
frontend/define.c, cleanup `prdefs()'
2015-11-13 20:17:13 +01:00
rlar
e7c7e7052b
frontend/define.c, cleanup `prtree()'
2015-11-13 20:17:12 +01:00
rlar
15f0f5f22f
frontend/define.c, com_undefine(), rename `ludf' --> `prev_udf'
2015-11-13 20:17:11 +01:00
rlar
3be8335224
frontend/define.c, abstraction, use `strchr()'
2015-11-13 19:51:50 +01:00
rlar
501c0238d7
frontend/define.c, cleanup
2015-11-13 19:50:56 +01:00
rlar
29dde7206a
frontend/parse.c, introduce `alloc_pnode()'
2015-11-12 18:32:39 +01:00
rlar
381a690cd8
frontend/define.c, ntharg(), bug fix, fix check for end of PT_OP_COMMA args list
...
ancient bug, yet not much of a consequence because there was already
another check for correct arity of a function application.
("define"'ed function in the .control section)
2015-11-10 19:44:54 +01:00
rlar
5706fbd890
parser/inpptree-parser.y, bug fix, allow unary `+'
...
reported by Andy Fierman on the ngspice-users mailing list in message
"Help to identify 'parameter value out of range or the wrong type' error please?"
2015-11-07 21:02:21 +01:00
rlar
97c1ec733a
frontend/define.c, ntharg(), #15/15 whitespace and indentation
2015-11-07 20:26:54 +01:00
rlar
a7f776872b
frontend/define.c, ntharg(), #14/15 rewrite for(;;) loop
2015-11-07 20:26:45 +01:00
rlar
101b5ada81
frontend/define.c, ntharg(), #13/15 delay `num--' a bit
2015-11-07 20:26:36 +01:00
rlar
06b6237199
frontend/define.c, ntharg(), #12/15 delay `num--' a bit
2015-11-07 20:26:28 +01:00
rlar
bd40bbd437
frontend/define.c, ntharg(), #11/15 `args' can't be NULL here
2015-11-07 20:26:18 +01:00
rlar
cd0941367a
frontend/define.c, ntharg(), #10/15 can move this up
2015-11-07 20:26:09 +01:00