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
rlar
3b6b71f680
frontend/define.c, ntharg(), #9/15 can move this up
2015-11-07 20:25:47 +01:00
rlar
bc793fbf27
frontend/define.c, ntharg(), #8/15 this `if' condition can't be true
2015-11-07 20:25:27 +01:00
rlar
e93327fdb7
frontend/define.c, ntharg(), #7/15 substitute tail of ntharg() for `break'
2015-11-07 20:25:20 +01:00
rlar
e98bfc720f
frontend/define.c, ntharg(), #6/15 rewrite while() --> for(;;)
2015-11-07 20:25:12 +01:00
rlar
67301b25fe
frontend/define.c, ntharg(), #5/15 make use of `fact: num >= 1'
2015-11-07 20:25:04 +01:00
rlar
f538b4dba3
frontend/define.c, ntharg(), #4/15 express some facts
2015-11-07 20:24:56 +01:00
rlar
71908ef194
frontend/define.c, ntharg(), #3/15 drop redundant `if', already guarded by `while'
2015-11-07 20:24:48 +01:00
rlar
8ac0329bd9
frontend/define.c, ntharg(), #2/15 minor cleanup
2015-11-07 20:24:39 +01:00
rlar
f91f8c2a09
frontend/define.c, ntharg(), #1/15 drop `struct pnode *ptry', use `args' instead
2015-11-07 20:24:26 +01:00
rlar
600d289000
frontend/define.c, ntharg(), avoid segfault when out of `args'
...
return NULL instead
2015-11-07 20:15:53 +01:00
rlar
b137930330
xpressn.c, formula(), #6/6 simplify
2015-11-07 19:11:54 +01:00
rlar
a805fe6b56
xpressn.c, formula(), #5/6 whitespace and indentation
2015-11-07 19:10:25 +01:00
rlar
577352e6bb
xpressn.c, formula(), #4/6 move around
2015-11-07 19:09:44 +01:00
rlar
b156921ea0
xpressn.c, formula(), #3/6 refactor fetchid(), pass substring, include `upcase()'
2015-11-07 19:08:40 +01:00
rlar
1d9592c591
xpressn.c, formula(), #2/6 move dstring buildup out of `fetchid()'
2015-11-07 19:08:23 +01:00
rlar
d6ce788539
xpressn.c, formula(), #1/6 upside-down an `if..else..'
2015-11-07 18:59:07 +01:00
rlar
b447f26703
`E..table {expr} {pairs}', `G..', allow an optional `=' after `table'
2015-11-07 17:52:19 +01:00
rlar
7479e48f7a
`E..value=', `G..value=', allow `=' being optional
2015-11-07 17:49:06 +01:00
rlar
28c0c96bbc
devices/res, introduce TCE, exponential temperature coefficient
2015-11-02 19:25:43 +01:00
rlar
45117c94fd
drop yyparse() prototypes, require bison >= 2.7 which emits them
2015-10-18 00:46:13 +02:00
rlar
76aedfae40
numparam/xpressn.c, cleanup `getidtype()'
2015-10-11 14:21:04 +02:00
rlar
813024678d
numparam/xpressn.c, cleanup `fetchnumentry()'
2015-10-11 14:02:45 +02:00
rlar
c9e8c7651f
numparam/xpressn.c, cleanup `keyword()'
2015-10-11 11:56:35 +02:00
rlar
0390736faa
xpressn.c, fetchid(), #15/15 cleanup
2015-10-10 20:20:45 +02:00
rlar
ba9c7f060b
xpressn.c, fetchid(), #14/15 rewrite
2015-10-10 20:20:45 +02:00
rlar
ff74222538
xpressn.c, fetchid(), #13/15 local scope
2015-10-10 20:20:45 +02:00
rlar
9041bf93ca
xpressn.c, fetchid(), #12/15 use fact
2015-10-10 20:20:45 +02:00
rlar
c8020f4811
xpressn.c, fetchid(), #11/15 reorder
2015-10-10 20:20:44 +02:00
rlar
880b41bb7f
xpressn.c, fetchid(), #10/15 rewrite
2015-10-10 20:20:44 +02:00
rlar
16b53e3784
xpressn.c, fetchid(), #9/15 reorder
2015-10-10 20:20:44 +02:00
rlar
3fea077ebe
xpressn.c, fetchid(), #8/15 rewrite
2015-10-10 20:20:44 +02:00
rlar
aa87d90ba9
xpressn.c, fetchid(), #7/15 use fact
2015-10-10 20:20:44 +02:00
rlar
9a69f79feb
xpressn.c, fetchid(), #6/15 use fact
2015-10-10 20:20:44 +02:00
rlar
16496f8ff7
xpressn.c, fetchid(), #5/15 express some facts
2015-10-10 20:20:44 +02:00
rlar
cc68d8fadb
xpressn.c, fetchid(), #4/15 use fact
2015-10-10 20:20:44 +02:00
rlar
e8fa81e382
xpressn.c, fetchid(), #3/15 express some facts
2015-10-10 20:20:44 +02:00
rlar
7142e0e1fc
xpressn.c, fetchid(), #2/15 rename `iptr' --> `s'
2015-10-10 20:20:44 +02:00
rlar
af0ba9bed5
xpressn.c, fetchid(), #1/15 swap arguments
2015-10-10 20:20:44 +02:00
rlar
0178dcd5f3
remove bison generated files from the repository
...
Their presence breaks automake rules when running
in a separate build directory.
And when regenerated cause unwanted "changed files"
in the repository.
As a consequence visual C compilation will fail.
It will still work with a "make dist" generated tar ball.
We need to upgrade the visual C project files
to invoke bison and flex on windows,
or we have to provide these generated files
in a visual C specific directory. (very annoying of course)
2015-10-10 20:14:50 +02:00
rlar
2f061b441e
Makefile.am, fix dependency rules for bison generated files
...
which have been lost in commit
> Date: Sun Jul 5 19:34:25 2015 +0200
>
> polish bison/flex makefile rules
2015-10-10 20:04:27 +02:00
rlar
a0a5e0f9c2
inpptree-parser.y, fix type of function `PTparse()'
2015-10-10 10:40:42 +02:00
dwarning
1b4aa22d0d
Update some level and version entries for MOS models
2015-10-08 18:20:16 +02:00
rlar
73731bdf77
frontend/plotting/plotit.c, cleanup, reduce scope of `struct dvec *dv'
2015-10-04 15:38:27 +02:00
rlar
a4c7dff570
frontend/define.c, rewrite `struct udfunc' insertion
2015-10-04 15:34:14 +02:00
rlar
a5f933b3ec
frontend/parse.c, bug fix, PPlex(.."dc1.@m1[vth][1]"..)
...
The whole string was lexed into only one TOK_STR
instead of the actual (quasi) identifier "dc1.@m1[vth]"
2015-09-24 18:25:25 +02:00
rlar
192eeadb0b
remove crufty comments which where used to support broken text editors
2015-09-24 18:23:54 +02:00
mhx
a324d86878
inpcom.c, allow `temper' to be recognised when preceded by '='
2015-08-16 20:20:50 +02:00
rlar
45bec4b8eb
inpcom.c, strip braces in `inp_get_func_from_line()'
2015-08-16 19:56:12 +02:00
rlar
2ac726b265
inpcom.c, rename `struct function' member `macro' --> `body'
2015-08-16 19:56:10 +02:00
rlar
dffcbddbba
swallow `deprecated directive' warning emitted by newer bisons
2015-08-16 19:54:35 +02:00
rlar
2e023a6be7
inpcom.c, cleanup `inp_new_func()'
...
especially avoid local state in a function local static variable
2015-08-16 14:54:37 +02:00
rlar
56312b7872
inpcom.c, cleanup `inp_rem_func()'
2015-08-16 14:27:18 +02:00
rlar
db9eb23b7d
inpcom.c, bug fix, avoid segfault when `.ends' is missing
2015-08-15 17:05:00 +02:00
rlar
61724121aa
res/restemp.c, bug fix, need to update `RESresist' in `REStemp()'
...
instead of `RESsetup()'
to be effective when altering a resistor model parameter or when
sweeping a resistor model parameter in a dc analysis.
see tests/regression/temper/temper-3.cir
2015-08-10 17:52:57 +02:00
rlar
5940bf9294
analysis/dctrcurv.c, bug fix, sweeping `temper' in a dc analysis
...
incorrect update of model parameters,
need to `invoke CKTtemp()' *after* `inp_evaluate_temper()'
see tests/regression/temper/temper-2.cir
2015-08-10 17:52:54 +02:00
rlar
fc6455ca99
inp.c, bug fix, `temper' in a model parameter, missing INPretrieve() invocation
...
The model name needs to be transformed into a `IFuid'
before it can be searched for with `findModel()'
see tests/regression/temper/temper-1.cir
2015-08-10 17:52:21 +02:00
rlar
0c0bc4079f
configure.ac, allow cross-compilation, especially for MinGW-w64
...
notably on debian gnu/linux with package `mingw-w64'
cross-compile a mingw 32bit windows executable with this incantation:
(compile "
./autogen.sh
rm -rf tmp-build tmp-output
mkdir -p tmp-build tmp-output
( cd tmp-build && ../configure \
--build=$(../config.guess) \
--host=i686-w64-mingw32 \
--prefix='c:/spice' \
--exec-prefix='c:/spice'\
--with-windows --enable-xspice --enable-cider --disable-debug )
LC_ALL=C make -C tmp-build -k -j6
LC_ALL=C make -C tmp-build -k -j6 DESTDIR=$(pwd)/tmp-output/ install
(cd 'tmp-output/c:/' && zip -r - .) > tmp-output.zip
")
compilation to Win64 works the same way, with
--host=x86_64-w64-mingw32
The tmp-output.zip directory structure resembles the
structure of our original sourceforge ngspice-26_140112.zip windows package
ready to be unzip'ed in c:/
Though the testfiles, examples and documentation is missing.
2015-07-06 21:08:05 +02:00
rlar
794df1066a
update bison generated files
2015-07-05 20:26:59 +02:00
rlar
1c6efd9481
polish bison/flex makefile rules
2015-07-05 20:25:23 +02:00
rlar
74aaa72c39
src/xspice/icm/GNUmakefile.in, extend `make distclean'
2015-07-05 19:15:42 +02:00
rlar
9be4f753e6
remove redundant src/xspice/cmpp/ylwrap
2015-07-04 10:48:22 +02:00
rlar
39fdeb0c9a
src/frontend/plotting/gnuplot.c, enforce "noenhanced text" mode
...
Contrary to older versions gnuplot 5 uses "enhanced text mode" per default.
The strings which we pass to gnuplot don't have "latex" semantics,
thus consistently enforce "noenhanced text mode".
Add a function quote_gnuplot_string() to escape and quote strings
in such a way that they will arrive in gnuplot unmodified.
2015-05-17 17:34:29 +02:00
Marcel Hendrix
02fe549be7
src/frontend/plotting/plotit.c, allow "plot xlog ylog" (equiv to "plot loglog")
2015-05-14 15:56:45 +02:00
rlar
5d19c99e94
src/frontend/outitf.c, bug fix, "resume" causing segment violation
...
introduced in commit
"noisean, deliver results in V/sqrt(Hz) and A/sqrt(Hz)"
analysisPtr is NULL when beginPlot() is invoked to "resume"
2015-05-09 18:56:01 +02:00
rlar
f4472f788e
spicelib/parser/inpptree.c, bug fix, "#287 Shared library crashes on using non existing functions "
...
"remcirc" has the potential to invoke INPfreeTree() with a NULL IFparseTree
Thanks to Craggan, who reported this in:
http://sourceforge.net/p/ngspice/bugs/287/
2015-05-04 20:17:28 +02:00
rlar
6ff1560487
frontend/cpitf.c, free a temporary vector which was left in `cp_istrue()'
...
reported by Marcel Hendrix.
Using conditional expressions within a .control sequence
left some garbage vectors in the current plot.
For example
> let ix = 0
>
> while ix < 2
> let ix = ix + 1
> end
>
> display
"display" reported a variable named "ix < 2"
which was an internal temporary value in said function `cp_istrue()'
2015-05-02 12:33:45 +02:00
rlar
e609c7411d
src/frontend/vectors.c, abstraction, introduce `vec_iszero()'
2015-05-02 12:27:35 +02:00
rlar
44425b1d0a
fix commit "inpcom.c, comment_out_unused_subckt_models() #4/8, introduce `nlist_find()'"
...
which broke the search for binned models
2015-05-02 12:20:58 +02:00
rlar
cab63eedd4
frontend/com_let.c, bug fix, "#302 Integer in Let Statement"
...
let 2foo = someexpression
was silently accepted, even though 2foo is an illegal identifier.
(first letter is a digit)
This was especially irritating, since
print 2foo
has a legal meaning, 2 femto oO, which is 2e-15
(whatever Unit an oO might be)
Reported by Justin Fisher in
http://sourceforge.net/p/ngspice/bugs/302/
2015-05-02 11:18:30 +02:00
rlar
7bc6374138
cleanup, use '\0' instead of 0 in char context
2015-05-02 10:24:54 +02:00
rlar
19e427e3a5
cleanup, use NULL instead of 0 in pointer context
2015-05-02 10:24:49 +02:00
rlar
6513aa5173
spicelib/devices, cleanup, 0 versus NULL in SPICEdev initialization
2015-05-02 10:24:45 +02:00
rlar
6bea757457
frontend/numparam, drop `sfix()'
2015-05-02 10:24:40 +02:00
rlar
c3f851750c
fix commit "devices/asrc, introduce `ASRCvars' with the indices of the controlling nodes/branches"
2015-04-24 21:45:54 +02:00
rlar
83a5c31e6f
fix commit "devices/asrc, allocate `ASRCacValues' in ASRCsetup()"
2015-04-24 21:45:29 +02:00
rlar
ab5cd17044
inpcom.c, workaround for "#307 define problems with the Modelname "mname" with Subcircuits"
...
a diode model named "1smb4148" could not be found
because it was dropped in `comment_out_unused_subckt_models()'
as a work around the function
is_a_modelname()
is extended to accept an additional pattern which does match "1smb4148"
Thanks to Martin who submitted the bug report here:
http://sourceforge.net/p/ngspice/bugs/307/
2015-04-19 17:36:05 +02:00
rlar
e4ba6eb602
inpcom.c, comment_out_unused_subckt_models() #8/8, drop `no_of_lines'
2015-04-19 17:07:42 +02:00
rlar
8379de8ddb
inpcom.c, comment_out_unused_subckt_models() #7/8, allocation
2015-04-19 17:07:40 +02:00
rlar
341ee45314
inpcom.c, comment_out_unused_subckt_models() #6/8, cleanup
2015-04-19 17:07:10 +02:00
rlar
e598da4706
inpcom.c, comment_out_unused_subckt_models() #5/8, introduce `nlist_adjoin()'
2015-04-19 16:58:30 +02:00
rlar
2e7b469cfe
inpcom.c, comment_out_unused_subckt_models() #4/8, introduce `nlist_find()'
2015-04-19 16:58:11 +02:00
rlar
d8807c00c4
inpcom.c, comment_out_unused_subckt_models() #3/8, drop ´tmp_cnt', `new_names[]'
2015-04-19 16:57:30 +02:00
rlar
5ec24f4ed0
inpcom.c, comment_out_unused_subckt_models() #2/8, cleanup
2015-04-19 16:56:18 +02:00
rlar
d2e138c592
inpcom.c, comment_out_unused_subckt_models() #1/8, use a struct to collect data
2015-04-19 16:54:51 +02:00
rlar
84a945ca45
inpcom.c, comment_out_unused_subckt_models(), reduce scope of local variables
2015-04-18 22:03:19 +02:00
rlar
a8d90775ca
inpcom.c, get_subckts_for_subckt(), reduce scope of local variables
2015-04-18 21:56:07 +02:00
rlar
e2dabb2e75
inpcom.c, introduce `is_a_modelname()' to encapsulate highly dubious code
2015-04-18 12:50:19 +02:00
Marcel Hendrix
f9432cb3da
frontend/com_measure2.c, bug fix for "meas AVG"
...
meas "AVG" did merely the average of the given values,
without consideration of their spacing on the "scale" axis.
now use trapezoidal summing to calculate the AVG
note, there is "meas INTEG"
which goes beyond trapezoidal summing
2015-04-16 21:20:20 +02:00
rlar
8be0829b9b
frontend/breakp.c, bug fix, "#306 Deleting breakpoint causes Internal Error in status"
...
The "delete" command destroyed the whole list of stored breakpoints
instead of just the specified one.
Thanks to "jpcgt", who reported this in
"#306 Deleting breakpoint causes Internal Error in status"
http://sourceforge.net/p/ngspice/bugs/306/
2015-04-16 19:58:58 +02:00
rlar
0b4bcf31f4
devices/res, bug fix, extend ac-resistance to the pz analysis
2015-04-15 19:52:36 +02:00
rlar
b6b76ad035
devices/asrc, introduce `ASRCvars' with the indices of the controlling nodes/branches
2015-04-12 21:36:22 +02:00
rlar
b4f1c1dda3
devices/asrc, allocate `ASRCacValues' in ASRCsetup()
2015-04-12 21:34:16 +02:00
rlar
232debc6ec
drop `NEWN', use `TMALLOC'
2015-04-12 20:10:07 +02:00
rlar
ad869c6d2d
devices/asrc, rewrite #10/10, emphasise matrix for the two cases VSRC vs ISRC
2015-04-12 18:23:22 +02:00
rlar
66a0da8ab9
devices/asrc, rewrite #9/10, combine common code
2015-04-12 18:22:06 +02:00
rlar
704e50b62a
devices/asrc, rewrite #8/10, cleanup and reorder
2015-04-12 18:18:20 +02:00
rlar
3a1c094682
devices/asrc, rewrite #7/10, allocate in one go
2015-04-12 18:18:14 +02:00
rlar
b3860ac599
devices/asrc, rewrite #6/10, check for errors right at the beginning
2015-04-12 18:17:52 +02:00
rlar
1c53a425f0
devices/asrc, rewrite #5/10, combine common code
2015-04-12 18:17:46 +02:00
rlar
6ea1e1932d
devices/asrc, rewrite #4/10, drop `ASRCcont_br'
2015-04-12 18:11:41 +02:00
rlar
ce49a4977d
devices/asrc, rewrite #3/10, combine TSTALLOC and MY_TSTALLOC
2015-04-12 18:11:38 +02:00
rlar
e902ebd34d
devices/asrc, rewrite #2/10, simplify incremental memory allocation
2015-04-12 18:11:33 +02:00
rlar
e13e1690d2
devices/asrc, rewrite #1/10, add a return (E_BADPARM)
2015-04-12 18:11:29 +02:00
rlar
7afb450e66
devices/asrc, cleanup #9/9, polish local variables
2015-04-11 21:31:02 +02:00
rlar
21ff522441
devices/asrc, cleanup #8/9, cleanup parentheses and braces
2015-04-11 21:31:02 +02:00
rlar
39a25ba114
devices/asrc, cleanup #7/9, use '[]' to access array elements
2015-04-11 21:31:02 +02:00
rlar
036a45f348
devices/asrc, cleanup #6/9, cleanup
2015-04-11 21:31:02 +02:00
rlar
bd5ac3e4fc
devices/asrc, cleanup #5/9, drop explicit NULL comparsion
2015-04-11 21:31:02 +02:00
rlar
b91386222e
devices/asrc, cleanup #4/9, unify model cast
2015-04-11 21:31:01 +02:00
rlar
03ef81785a
devices/asrc, cleanup #3/9, polish comments
2015-04-11 21:31:01 +02:00
rlar
2cb727476f
devices/asrc, cleanup #2/9, whitespace
2015-04-11 21:31:01 +02:00
rlar
df147cd8b8
devices/asrc, cleanup #1/9, invert `if'
2015-04-11 21:31:01 +02:00
rlar
bfe9df8511
devices/ind.c, bug fix, use 'm' in pz analysis
2015-04-07 20:43:43 +02:00
rlar
685d684c88
devices/ind: bug fix, multiplier `m'
...
multiplier `m' was applied twice,
because it was already implemented in indtemp.c before this commit :
> Date: Thu May 9 10:28:38 2013 +0200
>
> devices/ind: implement multiplier `m'
2015-04-06 21:19:44 +02:00
dwarning
7c5f3173e2
hisimhv2: fix naming problems by MS linker
2015-03-29 11:43:30 +02:00
rlar
5ac7858a79
rewrite, use tprintf
2015-03-28 20:10:29 +01:00
rlar
6b5bbb71d0
rawfile.c, bug fix, missing memory allocation and a memory leak
2015-03-28 19:51:50 +01:00
rlar
be283109dc
numconst.h, fix pi
2015-03-28 12:57:03 +01:00
rlar
4b7092633c
hisimhv1, remove unused variables
2015-03-28 12:15:18 +01:00
rlar
5042ffc5cc
hisimhv1, remove excess casts
2015-03-28 12:15:17 +01:00
rlar
7464d4423a
hisimhv1, drop of non __STDC__ code
2015-03-28 12:15:16 +01:00
rlar
90d0bb3d2d
hisimhv1, append `;' when using `BINNING' to be auto indentation friendly
2015-03-28 12:15:15 +01:00
rlar
c5a3788f6b
hisimhv2, TMFx, globals need to be static or need an own namespace
...
Fixme, actually these should have block local scope.
(local in the blocks of the macros where these variables are actually used)
Thats safer, much easier to understand, at least as fast,
and won't defeat parallelisation.
2015-03-28 12:15:11 +01:00
rlar
6ac641e906
hisimhv2, remove excess casts
2015-03-28 11:26:12 +01:00
rlar
970299bdc2
hisimhv2, drop of non __STDC__ code
2015-03-28 11:26:11 +01:00
rlar
0ef07aad20
hisimhv2, append `;' when using `BINNING' and `TSTALLOC' to be auto indentation friendly
2015-03-28 11:26:11 +01:00
rlar
6ad8b96dbb
hisimhv2, apply "mark end of struct GENmodel overlay"
2015-03-28 11:26:11 +01:00
rlar
1f5b0f852b
hisimhv2, apply commit "use TMALLOC, funcall, and NULL casts"
2015-03-28 11:26:11 +01:00
rlar
53555ac8c6
hisimhv2, extend rename from hisimhv --> hsimhv2
2015-03-28 11:26:11 +01:00
rlar
87a9c67a8f
hisim2, remove excess casts
2015-03-27 17:53:36 +01:00
rlar
efd8a0dce8
hisim2, append `;' when using `BINNING' to be auto indentation friendly
2015-03-27 17:52:05 +01:00
rlar
495988608a
hisim2, apply commit "use TMALLOC, funcall, and NULL casts"
2015-03-27 16:45:48 +01:00
dwarning
26937f8dfb
hisimhv1: less verbosity, remove useless printout
2015-03-26 10:30:57 +01:00
dwarning
eb99465713
hisimhv1: prevent a nonsens range check for model parameter qme2
2015-03-26 10:21:37 +01:00
dwarning
6dbe8e618d
correct node assignment for hisimhv
2015-03-26 10:08:09 +01:00
rlar
00ed1122b7
hisim2, reintroduce "rewrite, useing IFerrorf()"
2015-03-25 18:49:44 +01:00
rlar
a87bf334b8
hisim2, reintroduce "rewrite `TSTALLOC()' macro for auto indentation"
2015-03-25 18:49:43 +01:00
rlar
9141e86926
hisim2, reintroduce "mark end of struct GENmodel overlay"
2015-03-25 18:49:43 +01:00
rlar
48ff3df6eb
hisim2, reintroduce "hsm2eval.c, avoid static variables to allow multithreading"
2015-03-25 18:49:43 +01:00
dwarning
2b71713498
get the hisimhv v2 device info
2015-03-25 15:34:34 +01:00
dwarning
9ed2da9ad9
new hisimhv model version 2.2.0 in a separate directory
2015-03-25 15:17:16 +01:00
dwarning
adcec9fa5f
Revert "update hisimhv model to version 2.2.0"
...
This reverts commit c2ef7aeff3 .
2015-03-25 14:13:07 +01:00
dwarning
db52073f5d
cpitf.c: bugfix #304 reported by Dave Clarc, correct base of natural logarithm
2015-03-25 07:01:26 +01:00
dwarning
c2ef7aeff3
update hisimhv model to version 2.2.0
2015-03-25 06:47:32 +01:00
dwarning
339e7fe819
update hisim model to version 2.8.0
2015-03-23 21:47:00 +01:00
rlar
7d92eae124
noisean, introduce a .control variable "sqrnoise" to deliver noise data in squared representation
...
use "set srqrnoise" (and "unset sqrnoise") to control this.
2015-03-23 19:32:33 +01:00
rlar
8d6726f0f4
noisean, deliver results in V/sqrt(Hz) and A/sqrt(Hz)
2015-03-22 21:44:50 +01:00
rlar
e755b45281
fix commit "noise analysis, bug fix, override ac magnitude of all vsrc/isrc devices"
2015-03-22 20:22:01 +01:00
rlar
64da5a99bf
src/frontend/com_measure2.c, cleanup, rewrite `correct_vec()'
2015-03-22 19:16:36 +01:00
rlar
27aae75ade
src/frontend/com_measure2.c, bug fix, typo when setting `m_vectype2'
...
this doesn't change anything, because m_vectype2 is nowhere used.
2015-03-22 19:15:44 +01:00
rlar
c16701b66c
swallow compiler warning caused by "noise analysis, bug fix, override ac magnitude of all vsrc/isrc devices"
2015-03-22 18:25:17 +01:00
rlar
76a48c161d
src/frontend/outif.c, introduce guess_type() for common code in plotInit() and fileInit_pass2()
2015-03-22 12:30:45 +01:00
rlar
54c0f47dde
src/frontend/outif.c, fileInit_pass2(), add inoise/onoise types
...
which were missing in commit:
> Date: Fri Mar 18 20:15:10 2011 +0000
> bug no. 3214252 fixed
2015-03-22 11:12:59 +01:00
rlar
bcda90e258
src/frontend, cleanup, drop `GENcircuit'
2015-03-21 13:56:57 +01:00
rlar
b69e61d010
src/frontend/device.c, cleanup usage of `IFparm.dataType'
2015-03-21 13:52:55 +01:00
rlar
426f567287
spiceif.c, parmlookup(), allow more than one `IF_REDUNDANT' parameter alias
2015-03-18 17:52:52 +01:00
dwarning
dd24406234
allow alternativ model parameter tref for vbic models
2015-03-16 17:21:42 +01:00
dwarning
c44f101c49
extend bsim4 instance parameter with mulu0 for local mobility multiplier
2015-03-16 16:08:59 +01:00
dwarning
4402897a07
allow alternate instance parameter name delvt0 for bsim4 models
2015-03-16 15:27:42 +01:00
dwarning
759ec4a3d0
allow r=value as an alternative instance parameter
2015-03-15 10:38:06 +01:00
dwarning
88ef78e53b
introduce geometry and frequency dependency for the flicker noise model
2015-03-15 10:16:16 +01:00
dwarning
82b0bc070f
sorting parameter for resistor setup and temperature update routines
2015-03-14 00:29:55 +01:00
dwarning
95f45e2ee6
allow redundant instance parameter noise for compatibility reasons
2015-03-13 22:04:01 +01:00
rlar
62d2f5d5f4
use `enum simulation_types'
2015-03-10 21:34:24 +01:00
rlar
d98c5c90f3
src/maths/cmaths/cmath4.c, bug fix, cx_fft, cx_ifft, cx_derive
...
incorrect check for VF_COMPLEX in field v_type instead of v_flags
2015-03-10 20:09:20 +01:00
rlar
6f21c3b9db
use `enum simulation_types'
2015-03-10 18:27:39 +01:00
rlar
07ee771a96
noise analysis, bug fix, override ac magnitude of all vsrc/isrc devices
...
Bug report due to Hartmut Henkel in
>> [Ngspice-users] Noise analysis depends on ac parameter
The noise analysis internally depends on an ac analysis
to derive "inoise" from "onoise"
("onoise" is multiplied with the inverse ac gain from input to output)
This AC analysis used all the given ac magnitudes for all vsrc/isrc
devices in the deck.
This fix overrides all ac magnitudes with zero,
except for the given input device,
whose magnitude is set to one.
2015-03-09 20:02:36 +01:00
rlar
b3b543c1c7
typesdef.c, rewrite
2015-03-08 21:04:59 +01:00
rlar
95d2166946
typesdef.c, bug fix, incorrect `notypes', `capacitance' and `charge' doomed
...
introduced in
Date: Wed Oct 3 15:01:36 2012 +0200
outif.c, typesdef.c, sim.h: correct labeling of cap, cur, and charge data
2015-03-08 20:39:02 +01:00
rlar
73d581f9a6
graph.h, struct graph, remove unused elements
2015-03-08 19:38:33 +01:00
rlar
2b3220086d
graph.h, grid.c, enforce consistent string buffer size (plot "units", LABEL_CHARS)
2015-03-08 19:36:46 +01:00
dwarning
032b1c32c4
separate diode bottom and sidewall contributions for depletion capacitance
2015-03-08 17:54:49 +01:00
dwarning
ea4c438311
Limiting the junction potential to a usual values for silicon diodes
2015-03-08 17:54:30 +01:00
dwarning
c30373e37e
correct formula for temperature dependent depletion capacitance (tlevc=1)
2015-03-04 06:54:34 +01:00
rlar
a21770aab9
parser/inpgtok.c, remove unused function `INPgetU2Tok()'
...
INPgetU2Tok() was introduced in commit
Date: Fri Sep 3 12:51:42 2010 +0000
bug in B source parsing removed
and later unused in commit
Date: Thu Apr 28 19:27:45 2011 +0000
bug fix, (#329233 )
2015-02-28 20:43:25 +01:00
rlar
1b7f3a9f2c
parser/inpeval.c, this cannot happen here
2015-02-28 19:41:31 +01:00
rlar
548a1045a4
parser/inpeval.c, simplify mil/meg/milli processing
2015-02-28 19:22:01 +01:00
rlar
c018b328b9
parser/inpeval.c, whitespace cleanup
2015-02-28 19:03:41 +01:00
rlar
4555107013
parser/inpeval.c, use '\0'
2015-02-28 19:03:39 +01:00
rlar
a2b5288a3d
parser/inpeval.c, bug fix, allow at most one sign char when parsing a number
2015-02-28 19:03:37 +01:00
rlar
12e8ee750b
parser/inpeval.c, bug fix, incorrect restore of `*line'
2015-02-28 19:03:32 +01:00
rlar
2cbc84ccd1
parser/inpgtok.c, use copy_substring()
2015-02-28 11:05:46 +01:00
rlar
39d391fe33
parser/inpgtok.c, whitespace cleanup
2015-02-28 11:05:43 +01:00
rlar
4ae35e8974
parser/inpgtok.c, bug fix, introduced in "memory leaks: code improved"
...
commit "memory leaks: code improved"
Date: Sun Apr 5 08:57:55 2009 +0000
'point' has not been incremented for so called
"Weird items" with string length == 1
2015-02-28 11:05:23 +01:00
rlar
3c133c95b3
update bison generated files
2015-02-21 15:08:06 +01:00
rlar
788a5e5fa0
inpptree parser, bug fix, segfault due to usage of an unknown function
...
for example:
B1 1 0 V = {log(2.0, 1.3) + nosuchthing(2.0, 1.3)}
2015-02-21 15:08:04 +01:00
rlar
8e65614d31
spfactor.c, cktnames.c, don't crash when simulating "nothing"
...
reported by Siddhant Saraf in
> [ngspice:discussion] "out of memory" error : simulating a 2bit AND gate"
This comes in two flavours,
1) an empty circuit
2) a xspice circuit with exclusively xspice event nodes
2015-02-08 22:07:14 +01:00
rlar
8d44da4741
sharedspice.c, disable unused code
2015-01-22 17:50:16 +01:00
rlar
ae62187d06
sharedspice.c, bug fix, #298 Wrong define in sharedspice.c
...
thanks to "Sergii" who reported this here:
http://sourceforge.net/p/ngspice/bugs/298
This bug did not have any effect
2015-01-22 17:49:47 +01:00
rlar
ccc4c60d81
src/frontend/variable.c, swallow "warning: conversion to 'int' from 'size_t' may change the sign of the result"
2015-01-04 20:37:16 +01:00
rlar
7b0275ebf7
string.c, swallow "warning: value computed is not used"
2015-01-04 20:31:45 +01:00
rlar
e57b8b5426
main.c, volatile, make shure they are up to date in memory when LONGJMP is executed
2015-01-04 16:06:15 +01:00
rlar
f8df1a7b2f
src/main.c, whitespace cleanup
2015-01-03 21:50:19 +01:00
rlar
8369732e7b
src/main.c, cleanup
2015-01-03 21:50:18 +01:00
rlar
42d0e42e0d
src/main.c, prompt(), rewrite
2015-01-03 21:17:18 +01:00
rlar
15a04192da
src/main.c, prompt(), fix incorrect backslash expansion in promptstrings
2015-01-03 20:56:47 +01:00
rlar
a65a028067
src/main.c, prompt(), drop ancient workaround for editline v2.9
...
thats dead now for some years.
2015-01-03 20:56:45 +01:00
rlar
6aff8d5418
src/main.c, rewrite to be autoindent friendly
2015-01-03 20:56:42 +01:00
rlar
86c61c1909
src/main.c, nutmeg, cleanup `ft_loadfile()' invocation
...
drop non functional code which might originally have been meant
to read a default `ft_rawfile' when no other file
was given on the command line.
this would be disturbing behaviour anyway,
since it would be impossible to start
nutmeg interactively without any file.
2015-01-03 16:37:43 +01:00
rlar
a820d11451
inpcom.c, inp_remove_ws(), allow netsted braces `{}'
2014-12-31 16:58:25 +01:00
rlar
9ee7888033
inpcom.c, inp_remove_ws(), copy() only when necessary
2014-12-31 16:58:24 +01:00
rlar
3fd1f56a10
inpcom.c, inp_remove_ws(), fix processing after skipped whitespace
2014-12-31 16:58:20 +01:00
rlar
d623763e58
inpcom.c, cleanup inp_remove_ws(), reorder loop, reveal obscure behaviour
2014-12-31 16:52:41 +01:00
rlar
bd055c1a98
inpcom.c, cleanup inp_remove_ws(), #4/4, minor
2014-12-31 16:33:45 +01:00
rlar
e25620f117
inpcom.c, cleanup inp_remove_ws(), #3/4, common code in if-then-else
2014-12-31 16:33:21 +01:00
rlar
d1260f4e4d
inpcom.c, cleanup inp_remove_ws(), #2/4, dup some code down into if-then-else
2014-12-31 15:59:51 +01:00
rlar
91658bc856
inpcom.c, cleanup inp_remove_ws(), #1/4, thats inevitably true
2014-12-31 15:59:28 +01:00
rlar
82a5c1c48a
inpcom.c, inp_remove_ws(), avoid appending a surplus '\0'
2014-12-31 15:49:57 +01:00
rlar
07ba16192e
inpcom.c, cleanup inp_remove_ws(), #5/5, introduce `d' instead of `big_buffer_index'
2014-12-31 15:12:40 +01:00
rlar
f1fcc943f9
inpcom.c, cleanup inp_remove_ws(), #4/5, minor
2014-12-31 15:12:22 +01:00
rlar
e290e55f31
inpcom.c, cleanup inp_remove_ws(), #3/5, drop `curr', use `s' instead
2014-12-31 15:12:06 +01:00
rlar
0081ec9b51
inpcom.c, cleanup inp_remove_ws(), #2/5, highlight `s' beeing almost unused
2014-12-31 15:11:46 +01:00
rlar
179d55547c
inpcom.c, cleanup inp_remove_ws(), #1/5, highlight `s' beeing const
2014-12-31 15:11:05 +01:00
rlar
9b1f248c52
inpcom.c, inp_remove_ws(), #7/7, invert 'if' expression
2014-12-28 20:07:20 +01:00
rlar
d2371be535
inpcom.c, inp_remove_ws(), #6/7, reorder condition, highlight similiarity
2014-12-28 20:06:12 +01:00
rlar
cf6582ea8c
inpcom.c, inp_remove_ws(), #5/7, simplify condition
2014-12-28 20:05:41 +01:00
rlar
2c200ae453
inpcom.c, inp_remove_ws(), #4/7, simplify condition
2014-12-28 20:04:59 +01:00
rlar
0e74b5be15
inpcom.c, inp_remove_ws(), #3/7, combine `if' expressions
2014-12-28 20:04:19 +01:00
rlar
70c9350359
inpcom.c, inp_remove_ws(), #2/7, combine `if' expressions
2014-12-28 20:03:27 +01:00
rlar
51914a4088
inpcom.c, inp_remove_ws(), #1/7, split if-then-else
2014-12-28 20:02:27 +01:00
rlar
718c85a545
inpcom.c, inp_remove_ws(), don't insert whitespace at end of line
2014-12-28 20:01:44 +01:00
Thomas Uhle
2851e650d3
sharedspice.c, use GetCurrentThreadId() instead of GetTreadID()
...
Thanks to Thomas Uhle for this patch, see
http://sourceforge.net/p/ngspice/patches/26/
#26 GetThreadId() missing in older Win32 API, proposing to use GetCurrentThreadId() instead
2014-12-20 20:17:29 +01:00
rlar
ed73bf393e
inpcom.c, `inp_quote_params()', fixme, express doubts
2014-12-20 19:02:56 +01:00
rlar
8adb888300
inpcom.c, cleanup `inp_quote_params()', local scope for some variables
2014-12-20 18:51:39 +01:00
rlar
47d6b50f2e
inpcom.c, cleanup `inp_quote_params()', drop `beg'
2014-12-20 18:50:48 +01:00
rlar
075b96bb05
inpcom.c, cleanup `inp_quote_params()', drop `new_str'
2014-12-20 18:50:27 +01:00
rlar
1b49bb6ea4
inpcom.c, cleanup `inp_quote_params()', don't poke string
2014-12-20 18:49:34 +01:00
rlar
6a6c9a9409
inpcom.c, cleanup `inp_quote_params()', use `skip_ws()'
2014-12-20 18:49:25 +01:00
rlar
7a2dfd46eb
inpcom.c, `inp_quote_params()', bug fix, starting point for search of next identifier
2014-12-20 18:49:06 +01:00
rlar
d6c280c9b1
inpcom.c, `inp_sort_params()', move `inp_quote_params()' invocation to the epilogue
2014-12-15 20:30:50 +01:00
rlar
9294b42327
inpcom.c, `inp_reorder_params_subckt()', don't process the .subckt card itself by `inp_quote_params()'
...
actually, any .dot card is ignored by `inp_quote_params()' anyway
2014-12-15 20:04:34 +01:00
rlar
2e2f4fc69c
inpcom.c, cleanup `inp_reorder_params()', use NULL instead of `end'
2014-12-15 19:52:31 +01:00
rlar
aee2561f5a
inpcom.c, `inp_sort_params()', do not unnecessarily swap params
2014-12-14 22:41:46 +01:00
rlar
84252fee5e
inpcom.c, cleanup `inp_fix_subckt()', use `line_free_x()'
2014-12-14 22:30:58 +01:00
rlar
e9d37d0637
inpcom.c, cleanup `inp_fix_subckt()', simplify list concatenation
2014-12-14 22:30:53 +01:00
rlar
c09fd54a54
inpcom.c, bug fix, `inp_sort_params()' will do the concatenation
2014-12-14 22:28:04 +01:00
rlar
ada71a6ec7
inpcom.c, `inp_fix_subckt()', bogus and useless invocation of `inp_quote_params()'
2014-12-14 22:03:13 +01:00
rlar
0595602c40
inpcom.c, cleanup `inp_sort_params()', drop unused `end_card'
2014-12-14 22:02:58 +01:00
rlar
0d610d4c7a
fix `quote' spelling
2014-12-14 22:02:32 +01:00
rlar
1ab1213771
inpcom.c, cleanup `inp_reorder_params_subckt()', swallow `deck'
2014-12-14 19:41:29 +01:00
rlar
63c9bdf1ca
inpcom.c, cleanup `inp_reorder_params()', swallow `deck'
2014-12-14 19:40:25 +01:00
rlar
a842144e02
inpcom.c, cleanup `inp_reorder_params()', swallow `end'
2014-12-14 19:38:54 +01:00
rlar
e09c962f1b
inpcom.c, abstraction, introduce `inp_qoute_params()'
2014-12-14 19:20:52 +01:00
rlar
3819912e34
inpcom.c, cleanup `inp_sort_params()', local scope for some variables
2014-12-14 19:20:51 +01:00
rlar
956831f922
swallow warning in commit "inpcom.c, teemper bug fix, ..."
2014-12-14 19:20:48 +01:00
rlar
8bf9a67fc8
inpcom.c, cleanup `inp_sort_params()'
2014-12-14 16:20:53 +01:00
rlar
aeec110c64
inpcom.c, cleanup `inp_sort_params()'
2014-12-14 16:03:59 +01:00
rlar
726f1d3fb8
inpcom.c, teemper bug fix, rewrite `inp_functionalise_identifier()'
...
do not compare against `VALIDCHARS'
which is much to broad with respect to our operators
2014-12-13 22:36:18 +01:00
rlar
9579b78091
inpcom.c, inp_fix_temper_in_param(), abstraction, introduce `inp_functionalise_identifier()'
2014-12-13 18:23:30 +01:00
rlar
ff613c3c41
inpcom.c, abstraction, yet another `ya_search_identifier()'
2014-12-06 20:48:26 +01:00
rlar
c5e0bcde04
cleanup using `hypot()'
2014-12-06 20:41:11 +01:00
rlar
eafa0a9bed
inpcom.c, use backwards protected `skip_back_ws_()'
2014-12-05 19:39:51 +01:00
rlar
e0859d78c0
inpcom.c, rewrite `inp_fix_temper_in_param()'
2014-12-02 20:04:23 +01:00
rlar
7524ad2ee6
src/misc/string.c, rewrite using `copy_substring()'
2014-12-01 20:18:59 +01:00
rlar
45cfdde701
src/frontend/plotting/plotit.c, plotit(), fix command line buffer overflow
2014-11-30 22:15:37 +01:00
rlar
d18d2a935c
src/frontend/variable.c, rewrite `cp_variablesubst()'
2014-11-30 20:58:29 +01:00
rlar
33d33e9d50
src/frontend/variable.c, fix expansion of '$var' when $var is an empty list
...
test case:
set foo = ( )
set foo = ( $foo baz bar )
echo $foo
2014-11-30 11:20:05 +01:00
rlar
bd441171a7
inpcom.c, inp_fix_param_values(), bug fix, #295 .model fails when a literal numerical parameter value starts with a '+'
2014-11-10 21:18:18 +01:00
rlar
5e76305ffa
inpcom.c, inp_modify_exp(), bug fix, enforce precedence when numparm substitutions come into play
2014-11-06 21:16:24 +01:00
rlar
30742f30a4
inpcom.c, inp_modify_exp(), bug fix, #294 B source failure when using an unary minus
2014-11-06 18:29:54 +01:00
rlar
c79d2482ae
inp_modify_exp(), remove operator rewrite `**' --> `^'
...
Thats implemented in the lexer for B expressions,
( `PTlex()' in src/spicelib/parser/inpptree.c )
2014-11-04 19:59:40 +01:00
rlar
70ad8cce5f
inp_modify_exp(), cleanup #17/17, polish while loop
2014-11-04 18:56:34 +01:00
rlar
aa05b6f095
inp_modify_exp(), cleanup #16/17, whitespace
2014-11-04 18:56:34 +01:00
rlar
b37db50aed
inp_modify_exp(), cleanup #15/17, use postincrement
2014-11-04 18:56:34 +01:00
rlar
b58c8252cc
inp_modify_exp(), cleanup #14/17, reduce scope of `buf'
2014-11-04 18:56:34 +01:00
rlar
e1f8344bae
inp_modify_exp(), cleanup #13/17, rename `ustate' --> `state'
2014-11-04 18:56:34 +01:00
rlar
970b5ed772
inp_modify_exp(), cleanup #12/17, rename `actchar' --> `c'
2014-11-04 18:56:32 +01:00
rlar
88a01bfd68
inp_modify_exp(), cleanup #11/17, rename `str_ptr' --> `s'
2014-11-04 18:56:24 +01:00
rlar
b023f36dbb
inp_modify_exp(), cleanup #10/17, use tprintf()
2014-11-04 18:55:37 +01:00
rlar
2992d6b416
inp_modify_exp(), cleanup #9/17, use `int' for `i'
2014-11-04 18:55:36 +01:00
rlar
ca767ef08f
inp_modify_exp(), cleanup #8/17, use an enum for `ustate'
2014-11-04 18:55:34 +01:00
rlar
c792f344bb
inp_modify_exp(), cleanup #7/17, use postincrement
2014-11-04 18:53:29 +01:00
rlar
381b5d9ec1
inp_modify_exp(), cleanup #6/17, rewrite
2014-11-04 18:53:28 +01:00
rlar
49c233029a
inp_modify_exp(), cleanup #5/17, local scope for variables
2014-11-04 18:53:28 +01:00
rlar
6bc63f798d
inp_modify_exp(), cleanup #4/17, cleanup for loop
2014-11-04 18:53:28 +01:00
rlar
74954fbcfe
inp_modify_exp(), cleanup #3/17, drop `new_str'
2014-11-04 18:53:28 +01:00
rlar
3d842352aa
inp_modify_exp(), cleanup #2/17, remove redundant assignments
2014-11-04 18:53:26 +01:00
rlar
3fc7b99292
inp_modify_exp(), cleanup #1/17, use tprintf()
2014-11-04 18:50:53 +01:00
rlar
87960d52b4
inpcom.c, use tprintf() to simplify code in inp_bsource_compat()
2014-11-02 19:46:16 +01:00
rlar
8b04ff6b7c
inpcom.c, use inp_modify_exp() to remove duplicated code in inp_bsource_compat()
2014-11-02 19:45:42 +01:00
rlar
5464859ebb
inpcom.c, inp_bsource_compat(), shrink brace removal to the actual b-expression
2014-11-02 18:45:41 +01:00
rlar
5550d53512
inpcom.c, inp_bsource_compat(), fix an assertion
2014-11-02 18:45:28 +01:00
rlar
71a1b27a23
inpcom.c, inp_modify_exp(expr), offload tfree(expr) to the invoker
2014-11-02 18:45:14 +01:00
rlar
1f9cf0b6b5
inpcom.c, bug fix, #293 Bug in .option rseries = <value> with parallel inductors
...
reported by João Alberto and Andy Fierman in
http://sourceforge.net/p/ngspice/bugs/293/
2014-10-30 20:18:11 +01:00
rlar
254be00842
src/frontend/postcoms.c, cleanup, unused variable `appendwrite'
2014-10-12 22:08:19 +02:00
rlar
e08dcafbe9
cleanup, signature of CKTacDump() and CKTdump(), void* --> runDesc*
2014-10-12 22:07:28 +02:00
Jim Holmes
85ae073471
src/frontend/postcoms.c, bugfix, write/save an xspice `event' node
...
In function EVTfindvec() XSPICE can create
a `dvec' with a non NULL `v_scale' slot.
This special scale with name "step"
differs from the current plot `pl_scale' slot
and triggered ancient buggy code here.
2014-10-12 19:32:17 +02:00
rlar
5c97e31049
cleanup, use '\0' and NULL
2014-09-20 19:20:20 +02:00
rlar
0865747d88
numparam/mystring.c, cleanup functions which return `void'
2014-09-20 18:55:32 +02:00
rlar
c6a8429258
src/maths/cmaths, implement `nint()' (.control language)
2014-09-20 17:15:10 +02:00
rlar
9e72296e40
src/spicelib/parse, implement `nint()' (`B' language)
2014-09-20 17:15:09 +02:00
rlar
2602a492b2
fix `log' in `B' and in `.control', to base e instead of 10
...
In the B language this can be considered a bug fix.
In the .control language this is a severe change
and breaks backwards compatibility.
In all three languages 'numparam' 'B' and '.control' we now have
ln to the base e
log to the base e
log10 to the base 10
Thus log and log10 is now consistent
with the vast majority of programming languages.
ln is merely for convenience.
very few other languages have it.
I'd like to discourage its usage.
2014-09-12 19:18:11 +02:00
rlar
abfd38b535
B language, introduce `log10'
2014-09-12 19:10:07 +02:00
rlar
88bc7874f0
numparm, introduce `log10'
2014-09-12 19:09:56 +02:00
rlar
99eade8ec9
cleanup, rename cx_ln --> cx_log (.control language)
2014-09-12 19:09:52 +02:00
rlar
c926f46986
cleanup, rename rename cx_log --> cx_log10 (.control language)
2014-09-12 19:09:42 +02:00
rlar
bdf70bd2b0
cleanup, rename PTln --> PTlog, PTF_LN --> PTF_LOG (`B' language)
2014-09-12 19:09:30 +02:00
rlar
93a212ca3c
cleanup, rename PTlog --> PTlog10, PTF_LOG --> PTF_LOG10 (`B' language)
2014-09-12 19:05:56 +02:00
rlar
5e8856d944
inpcom.c, inp_get_func_from_line(), allow an optional '=' in ".func foo() = {expr}"
2014-08-12 18:10:14 +02:00
rlar
e1f0dc5893
numparam, nupa_define(), drop unused argument `pval'
2014-08-10 20:21:48 +02:00
rlar
c2028203a8
numparam, unify `entry' variable
2014-08-10 20:21:43 +02:00