Limit output to four digits
Add power and temperature limits.
Derating with self-heating, or with fixed temperature,
or no derating at all, selectable by setting model parameters.
Example file: SOA plotted as frame, with diode current.
Parameters id_max, pd_max and te_max have been added
for current, power, and temperature to the already existing
fv_max and bv_max (max forward and backward volteges).
Replace the type of all boolean variables around the ABI by NG_BOOL.
NG_BOOL is typedefed to _Bool, when compiling shared ngspice. When
sharedspice.h is use externally NG_BOOL is typdefed to bool
This isn't currently used but can be used in various places to
automatically provide the internal API version that is used.
Normally developers doesn't want to break the API by introducing a
version bump as this means the new library isn't backward compatible
any more.
E.g. the API version can be used to enhance the name of the library,
quite often libraries with an API version 0 don't add this version to
library name (like ngspice is doing this too right now).
Doing the libtool versioning right can be a bit tedious. Especially the
correct handling of the various versions for the libtool .so naming is
difficult to understand if this part isn't done often.
To improve the API versioning adding some helping text what the various
version number are intended for and how to handle these within the
life cycle and development of the Ngspice project.
Basically libtool uses 'current', 'revision' and 'age' to version a
library.
Here a short outline how to do the libtool versioning:
Only bug fixing did happen, no new symbols were added, the new library
provide the exact amount and behaviour of the existing symbols.
--> Increase the 'revision' by 1 (c:r+1:a)
New symbols were added, the behaviour of the existing symbols doesn't
have changed.
--> Increase the 'age' by 1, set 'revision' to 0 (c:r=0,a+1)
Existing symbols behave now different or existing symbols were removed.
--> Increase 'current' by 1, set 'revison' to 0, set 'age' to 0 (c+1,r=0,a=0)
!!!Note!!!
The ABI version is also affected by this (needs a bump too, the library
isn't backward compatible any more.
There is no third node in NUMD or NUMD2, so don't set
GENnode(fast)[i]. This patch fixes a bug introduced in
4895a4b5a ("Diode model with selfheating option", 2021-04-11)