mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
Added some notes about Sherman-Morrison.
This commit is contained in:
parent
8c69d3ad15
commit
628cef3d97
@ -14,8 +14,8 @@ NETLIST_START(dummy)
|
||||
PARAM(Solver.NR_LOOPS, 300)
|
||||
PARAM(Solver.GS_LOOPS, 1)
|
||||
PARAM(Solver.GS_THRESHOLD, 6)
|
||||
PARAM(Solver.ITERATIVE, "SM")
|
||||
//PARAM(Solver.ITERATIVE, "MAT")
|
||||
//PARAM(Solver.ITERATIVE, "SM")
|
||||
PARAM(Solver.ITERATIVE, "MAT")
|
||||
//PARAM(Solver.ITERATIVE, "GMRES")
|
||||
//PARAM(Solver.ITERATIVE, "SOR")
|
||||
PARAM(Solver.DYNAMIC_TS, 0)
|
||||
|
@ -3,6 +3,31 @@
|
||||
/*
|
||||
* nld_ms_direct.h
|
||||
*
|
||||
*
|
||||
* Sherman-Morrison Solver
|
||||
*
|
||||
* Computes the updated inverse of A given that the change in A is
|
||||
*
|
||||
* A <- A + (u x v) u,v vectors
|
||||
*
|
||||
* In this specific implementation, u is a unit vector specifying the row which
|
||||
* changed. Thus v contains the changed column.
|
||||
*
|
||||
* Than z = A⁻¹ u , w = transpose(A⁻¹) v , lambda = v z
|
||||
*
|
||||
* A⁻¹ <- 1.0 / (1.0 + lambda) * (z x w)
|
||||
*
|
||||
* The approach is iterative and applied for each row changed.
|
||||
*
|
||||
* The performance for a typical circuit like kidniki compared to Gaussian
|
||||
* elimination is poor:
|
||||
*
|
||||
* a) The code needs to be run for each row change.
|
||||
* b) The inverse of A typically is fully occupied.
|
||||
*
|
||||
* It may have advantages for circuits with a high number of elements and only
|
||||
* few dynamic/active components.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NLD_MS_SM_H_
|
||||
|
Loading…
Reference in New Issue
Block a user