Symbolic Circuit Analysis with General-Purpose Computer Algebra Systems
Many symbolic circuit analysis programs have been
developed in the past but one common feature to most
of the stand-alone systems is the lack of
mathematical postprocessing capabilities. However,
when performing symbolic circuit calculations,
designers need to "play" with expressions returned
by the symbolic analyzer. This does not only include
graphing transfer functions. More importantly, there
must be functionality for extracting and replacing
parts of expressions, solving equations for one or
more variables symbolically, expanding expressions
into series, ... or, in other words, do all the
regular tasks general-purpose computer algebra
systems are designed for. Therefore, we have
implemented our symbolic circuit analyzer
Analog Insydes
on top of the widely used computer-algebra systems
Macsyma and
Maple V (a
Mathematica
version is currently under development).
These CA systems provide all the functionality and
flexibility needed for setting up, solving and
manipulating symbolic circuit equations, but,
unfortunately, at the expense of a much lower
execution speed and memory efficiency than
specialized symbolic analysis programs. Besides
the computational overhead which is inherent to a
general-purpose CAS a main reason for this is the
lack of efficient storage mechanisms for data
structures like sparse matrices and
vectors. Moreover, some of the symbolic circuit
analysis algorithms, particularly those for
symbolic expression approximation, involve a great
deal of hybrid symbolic/numeric calculations. No
CAS known at the moment is capable of bypassing its
simplifier and doing high-speed, machine-precision
real and complex evaluation of symbolic
expressions. CAS designers and vendors are only
slowly becoming aware of the technical importance
of combining symbolic computation systems with
fast numerical libraries.
Specialized Symbolic/Numeric Computation Routines
As a result of these deficiencies we are currently
developing a specialized C library of
Symbolic/Numeric Computation
Routines (SYNCRO). The library can be used to
build up and manipulate general mathematical
expression trees. In addition to the standard atomic
data types it provides basic data representations
for symbolic/numeric sparse matrices and
vectors. Its emphasis lies on fast numerical
evaluation of expression trees, which is achieved by
means of special numerical companion routines
associated with each operator. These companion
routines allow for machine-precision numerical
evaluation of expression trees without the need for
algebraic simplification.
|