spice3 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- spice3-0.1.0/Cargo.toml +53 -0
- spice3-0.1.0/PKG-INFO +72 -0
- spice3-0.1.0/README.md +40 -0
- spice3-0.1.0/crates/dune-core/Cargo.toml +54 -0
- spice3-0.1.0/crates/dune-core/benches/fixtures/ltra_3.mna +309 -0
- spice3-0.1.0/crates/dune-core/benches/fixtures/mos6inv.mna +241 -0
- spice3-0.1.0/crates/dune-core/benches/fixtures/mosmem.mna +48 -0
- spice3-0.1.0/crates/dune-core/benches/fixtures/rca3040.mna +146 -0
- spice3-0.1.0/crates/dune-core/benches/fixtures/schmitt.mna +75 -0
- spice3-0.1.0/crates/dune-core/benches/lu.rs +184 -0
- spice3-0.1.0/crates/dune-core/benches/sim.rs +136 -0
- spice3-0.1.0/crates/dune-core/examples/parload_bench.rs +127 -0
- spice3-0.1.0/crates/dune-core/examples/session_speed.rs +214 -0
- spice3-0.1.0/crates/dune-core/src/ac.rs +94 -0
- spice3-0.1.0/crates/dune-core/src/asrc.rs +774 -0
- spice3-0.1.0/crates/dune-core/src/b1disto.rs +924 -0
- spice3-0.1.0/crates/dune-core/src/bjt.rs +1622 -0
- spice3-0.1.0/crates/dune-core/src/bsim1.rs +1655 -0
- spice3-0.1.0/crates/dune-core/src/bsim2.rs +1682 -0
- spice3-0.1.0/crates/dune-core/src/bsim3/eval.rs +1733 -0
- spice3-0.1.0/crates/dune-core/src/bsim3/mod.rs +1199 -0
- spice3-0.1.0/crates/dune-core/src/bsim3/params.rs +1143 -0
- spice3-0.1.0/crates/dune-core/src/bsim3/temp.rs +695 -0
- spice3-0.1.0/crates/dune-core/src/bsim3/tests.rs +362 -0
- spice3-0.1.0/crates/dune-core/src/circuit.rs +1911 -0
- spice3-0.1.0/crates/dune-core/src/consts.rs +27 -0
- spice3-0.1.0/crates/dune-core/src/dc.rs +144 -0
- spice3-0.1.0/crates/dune-core/src/dderivs.rs +589 -0
- spice3-0.1.0/crates/dune-core/src/devices.rs +1589 -0
- spice3-0.1.0/crates/dune-core/src/devnoise.rs +317 -0
- spice3-0.1.0/crates/dune-core/src/diode.rs +981 -0
- spice3-0.1.0/crates/dune-core/src/disto.rs +1016 -0
- spice3-0.1.0/crates/dune-core/src/elaborate.rs +2402 -0
- spice3-0.1.0/crates/dune-core/src/engine.rs +3548 -0
- spice3-0.1.0/crates/dune-core/src/error.rs +74 -0
- spice3-0.1.0/crates/dune-core/src/integ.rs +436 -0
- spice3-0.1.0/crates/dune-core/src/jfet.rs +1498 -0
- spice3-0.1.0/crates/dune-core/src/lib.rs +109 -0
- spice3-0.1.0/crates/dune-core/src/linalg/backend/dense_det.rs +85 -0
- spice3-0.1.0/crates/dune-core/src/linalg/backend/faer_dense.rs +164 -0
- spice3-0.1.0/crates/dune-core/src/linalg/backend/mod.rs +8 -0
- spice3-0.1.0/crates/dune-core/src/linalg/backend/xingo_sparse.rs +607 -0
- spice3-0.1.0/crates/dune-core/src/linalg/mod.rs +89 -0
- spice3-0.1.0/crates/dune-core/src/ltra.rs +2727 -0
- spice3-0.1.0/crates/dune-core/src/ltrafit.rs +664 -0
- spice3-0.1.0/crates/dune-core/src/matrix.rs +583 -0
- spice3-0.1.0/crates/dune-core/src/measure.rs +926 -0
- spice3-0.1.0/crates/dune-core/src/mes.rs +759 -0
- spice3-0.1.0/crates/dune-core/src/mos1.rs +1705 -0
- spice3-0.1.0/crates/dune-core/src/mos2.rs +2352 -0
- spice3-0.1.0/crates/dune-core/src/mos3.rs +2115 -0
- spice3-0.1.0/crates/dune-core/src/mos6.rs +1103 -0
- spice3-0.1.0/crates/dune-core/src/mosdisto.rs +365 -0
- spice3-0.1.0/crates/dune-core/src/noise.rs +381 -0
- spice3-0.1.0/crates/dune-core/src/op.rs +59 -0
- spice3-0.1.0/crates/dune-core/src/options.rs +406 -0
- spice3-0.1.0/crates/dune-core/src/parload.rs +315 -0
- spice3-0.1.0/crates/dune-core/src/pss.rs +1858 -0
- spice3-0.1.0/crates/dune-core/src/pz.rs +1343 -0
- spice3-0.1.0/crates/dune-core/src/run.rs +322 -0
- spice3-0.1.0/crates/dune-core/src/select.rs +515 -0
- spice3-0.1.0/crates/dune-core/src/sens.rs +318 -0
- spice3-0.1.0/crates/dune-core/src/session.rs +729 -0
- spice3-0.1.0/crates/dune-core/src/solution.rs +75 -0
- spice3-0.1.0/crates/dune-core/src/sp.rs +610 -0
- spice3-0.1.0/crates/dune-core/src/srcfn.rs +317 -0
- spice3-0.1.0/crates/dune-core/src/state.rs +168 -0
- spice3-0.1.0/crates/dune-core/src/sweep.rs +399 -0
- spice3-0.1.0/crates/dune-core/src/switch.rs +462 -0
- spice3-0.1.0/crates/dune-core/src/tf.rs +242 -0
- spice3-0.1.0/crates/dune-core/src/tra.rs +697 -0
- spice3-0.1.0/crates/dune-core/src/tran.rs +100 -0
- spice3-0.1.0/crates/dune-core/src/trnoise.rs +963 -0
- spice3-0.1.0/crates/dune-core/tests/cards.rs +179 -0
- spice3-0.1.0/crates/dune-core/tests/devnoise.rs +564 -0
- spice3-0.1.0/crates/dune-core/tests/iterate.rs +62 -0
- spice3-0.1.0/crates/dune-core/tests/ltra_fit.rs +136 -0
- spice3-0.1.0/crates/dune-core/tests/measure.rs +290 -0
- spice3-0.1.0/crates/dune-core/tests/measure_ngspice.rs +166 -0
- spice3-0.1.0/crates/dune-core/tests/op.rs +183 -0
- spice3-0.1.0/crates/dune-core/tests/parload.rs +191 -0
- spice3-0.1.0/crates/dune-core/tests/pss.rs +366 -0
- spice3-0.1.0/crates/dune-core/tests/pss_lines.rs +393 -0
- spice3-0.1.0/crates/dune-core/tests/pss_osc.rs +395 -0
- spice3-0.1.0/crates/dune-core/tests/robust_tran.rs +132 -0
- spice3-0.1.0/crates/dune-core/tests/run.rs +191 -0
- spice3-0.1.0/crates/dune-core/tests/session.rs +475 -0
- spice3-0.1.0/crates/dune-core/tests/sweep.rs +272 -0
- spice3-0.1.0/crates/dune-core/tests/tf_sens.rs +132 -0
- spice3-0.1.0/crates/dune-core/tests/tmax_divisor.rs +89 -0
- spice3-0.1.0/crates/dune-core/tests/trnoise.rs +362 -0
- spice3-0.1.0/crates/dune-netlist/Cargo.toml +10 -0
- spice3-0.1.0/crates/dune-netlist/src/deck.rs +484 -0
- spice3-0.1.0/crates/dune-netlist/src/diag.rs +79 -0
- spice3-0.1.0/crates/dune-netlist/src/dot.rs +908 -0
- spice3-0.1.0/crates/dune-netlist/src/elem.rs +1172 -0
- spice3-0.1.0/crates/dune-netlist/src/expr.rs +705 -0
- spice3-0.1.0/crates/dune-netlist/src/ir.rs +692 -0
- spice3-0.1.0/crates/dune-netlist/src/lib.rs +42 -0
- spice3-0.1.0/crates/dune-netlist/src/meas.rs +618 -0
- spice3-0.1.0/crates/dune-netlist/src/param.rs +241 -0
- spice3-0.1.0/crates/dune-netlist/src/parse.rs +328 -0
- spice3-0.1.0/crates/dune-netlist/src/scan.rs +423 -0
- spice3-0.1.0/crates/dune-netlist/src/span.rs +159 -0
- spice3-0.1.0/crates/dune-netlist/src/subckt.rs +255 -0
- spice3-0.1.0/crates/dune-netlist/tests/corpus.rs +49 -0
- spice3-0.1.0/crates/dune-netlist/tests/fuzz_smoke.rs +186 -0
- spice3-0.1.0/crates/dune-netlist/tests/parse.rs +497 -0
- spice3-0.1.0/crates/dune-pic/Cargo.toml +16 -0
- spice3-0.1.0/crates/dune-pic/examples/preview.rs +21 -0
- spice3-0.1.0/crates/dune-pic/src/connect.rs +133 -0
- spice3-0.1.0/crates/dune-pic/src/lib.rs +1643 -0
- spice3-0.1.0/crates/dune-pic/src/spans.rs +408 -0
- spice3-0.1.0/crates/dune-pic/src/spice.pic +571 -0
- spice3-0.1.0/crates/dune-pic/tests/canvas.rs +181 -0
- spice3-0.1.0/crates/dune-pic/tests/corpus.rs +906 -0
- spice3-0.1.0/crates/dune-pic/tests/extract.rs +1052 -0
- spice3-0.1.0/crates/dune-pic/tests/writeback.rs +359 -0
- spice3-0.1.0/crates/dune-raw/Cargo.toml +11 -0
- spice3-0.1.0/crates/dune-raw/examples/recode.rs +23 -0
- spice3-0.1.0/crates/dune-raw/src/error.rs +23 -0
- spice3-0.1.0/crates/dune-raw/src/lib.rs +71 -0
- spice3-0.1.0/crates/dune-raw/src/plot.rs +146 -0
- spice3-0.1.0/crates/dune-raw/src/read.rs +527 -0
- spice3-0.1.0/crates/dune-raw/src/types.rs +122 -0
- spice3-0.1.0/crates/dune-raw/src/write.rs +218 -0
- spice3-0.1.0/crates/dune-raw/tests/data/README.md +7 -0
- spice3-0.1.0/crates/dune-raw/tests/data/rc.cir +9 -0
- spice3-0.1.0/crates/dune-raw/tests/data/rc_ascii.raw +417 -0
- spice3-0.1.0/crates/dune-raw/tests/data/rc_binary.raw +0 -0
- spice3-0.1.0/crates/dune-raw/tests/ngspice_fixtures.rs +201 -0
- spice3-0.1.0/pyproject.toml +75 -0
- spice3-0.1.0/python/.gitignore +3 -0
- spice3-0.1.0/python/CHANGELOG.md +21 -0
- spice3-0.1.0/python/Cargo.lock +1631 -0
- spice3-0.1.0/python/Cargo.toml +59 -0
- spice3-0.1.0/python/README.md +40 -0
- spice3-0.1.0/python/src/lib.rs +1395 -0
- spice3-0.1.0/python/src/pic.rs +315 -0
- spice3-0.1.0/python/tests/conftest.py +27 -0
- spice3-0.1.0/python/tests/test_errors.py +108 -0
- spice3-0.1.0/python/tests/test_measure.py +108 -0
- spice3-0.1.0/python/tests/test_options.py +100 -0
- spice3-0.1.0/python/tests/test_pic.py +243 -0
- spice3-0.1.0/python/tests/test_pss.py +275 -0
- spice3-0.1.0/python/tests/test_repr.py +155 -0
- spice3-0.1.0/python/tests/test_session.py +166 -0
- spice3-0.1.0/python/tests/test_simulate.py +182 -0
- spice3-0.1.0/python/tests/test_sweep.py +155 -0
- spice3-0.1.0/python/tests/test_tmax_divisor.py +75 -0
- spice3-0.1.0/python/tests/test_zero_copy.py +42 -0
- spice3-0.1.0/spice/__init__.py +65 -0
- spice3-0.1.0/spice/_errors.py +139 -0
- spice3-0.1.0/spice/_measure.py +133 -0
- spice3-0.1.0/spice/_pss.py +243 -0
- spice3-0.1.0/spice/_repr.py +447 -0
- spice3-0.1.0/spice/_result.py +310 -0
- spice3-0.1.0/spice/_session.py +200 -0
- spice3-0.1.0/spice/_simulate.py +177 -0
- spice3-0.1.0/spice/_spice.pyi +84 -0
- spice3-0.1.0/spice/_sweep.py +259 -0
- spice3-0.1.0/spice/pic.py +510 -0
- spice3-0.1.0/spice/py.typed +0 -0
spice3-0.1.0/Cargo.toml
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
[workspace]
|
|
2
|
+
resolver = "3"
|
|
3
|
+
members = [
|
|
4
|
+
"crates/dune-netlist",
|
|
5
|
+
"crates/dune-core",
|
|
6
|
+
"crates/dune-raw",
|
|
7
|
+
"crates/dune-cli",
|
|
8
|
+
"crates/dune-oracle",
|
|
9
|
+
"crates/dune-wasm",
|
|
10
|
+
"crates/dune-ffi",
|
|
11
|
+
"crates/dune-pic",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
[workspace.package]
|
|
15
|
+
version = "0.1.0"
|
|
16
|
+
edition = "2024"
|
|
17
|
+
# MSRV: 1.88 — dune-raw uses let-chains (stable 1.88); was declared
|
|
18
|
+
# 1.85 but never true since then (the msrv CI job caught up 2026-11-06).
|
|
19
|
+
rust-version = "1.88"
|
|
20
|
+
license = "BSD-3-Clause"
|
|
21
|
+
|
|
22
|
+
[workspace.dependencies]
|
|
23
|
+
thiserror = "2"
|
|
24
|
+
anyhow = "1"
|
|
25
|
+
num-complex = "0.4"
|
|
26
|
+
tempfile = "3"
|
|
27
|
+
# `erfc` for the RC lossy line (fdlibm port, pure Rust, wasm-safe).
|
|
28
|
+
libm = "0.2"
|
|
29
|
+
|
|
30
|
+
# The Xingó project's sparse LU (D-0005), from crates.io; only
|
|
31
|
+
# `dune-core`'s optional `solver-xingo` feature uses it. No default
|
|
32
|
+
# features: its own `faer` feature is the KKT/LDL side, unused here.
|
|
33
|
+
xingo-sparse = { version = "0.3", default-features = false }
|
|
34
|
+
|
|
35
|
+
dune-netlist = { path = "crates/dune-netlist" }
|
|
36
|
+
dune-core = { path = "crates/dune-core" }
|
|
37
|
+
dune-raw = { path = "crates/dune-raw" }
|
|
38
|
+
dune-pic = { path = "crates/dune-pic" }
|
|
39
|
+
|
|
40
|
+
# faer's LU is unusably slow unoptimized, and optimizing the faer
|
|
41
|
+
# package alone does not help: its generic entry points monomorphize
|
|
42
|
+
# into dune-core, so the hot code is compiled with dune-core's own
|
|
43
|
+
# opt-level. Optimizing both takes the debug oracle run (CI's
|
|
44
|
+
# `cargo run -p dune-oracle -- --ci`) from 12:51 to 5:41 on Apple
|
|
45
|
+
# Silicon (measured 2026-11-06, 64 circuits). The remaining gap to
|
|
46
|
+
# the ~10 s release run is the dev profile's own checking
|
|
47
|
+
# (overflow-checks, debug_assertions), which is the point of running
|
|
48
|
+
# the oracle in debug, so it stays; optimizing dune-raw/netlist/
|
|
49
|
+
# oracle too was measured to change nothing (5:27) and is not done.
|
|
50
|
+
[profile.dev.package.faer]
|
|
51
|
+
opt-level = 3
|
|
52
|
+
[profile.dev.package.dune-core]
|
|
53
|
+
opt-level = 3
|
spice3-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: spice3
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
5
|
+
Classifier: Intended Audience :: Science/Research
|
|
6
|
+
Classifier: Intended Audience :: Education
|
|
7
|
+
Classifier: Operating System :: OS Independent
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
10
|
+
Classifier: Programming Language :: Rust
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
|
|
12
|
+
Classifier: Typing :: Typed
|
|
13
|
+
Requires-Dist: polars>=1.0
|
|
14
|
+
Requires-Dist: numpy>=1.23
|
|
15
|
+
Requires-Dist: pandas>=2.0 ; extra == 'pandas'
|
|
16
|
+
Requires-Dist: pyarrow>=14 ; extra == 'pyarrow'
|
|
17
|
+
Requires-Dist: pytest>=8 ; extra == 'test'
|
|
18
|
+
Requires-Dist: pandas>=2.0 ; extra == 'test'
|
|
19
|
+
Provides-Extra: pandas
|
|
20
|
+
Provides-Extra: pyarrow
|
|
21
|
+
Provides-Extra: test
|
|
22
|
+
Summary: SPICE3f5-faithful circuit simulation (the Dune engine) for Python
|
|
23
|
+
Keywords: spice,circuit-simulation,spice3f5,ngspice,eda,electronics,transient-analysis
|
|
24
|
+
Author-email: André Leite <leite@de.ufpe.br>
|
|
25
|
+
Maintainer-email: André Leite <leite@de.ufpe.br>
|
|
26
|
+
License-Expression: BSD-3-Clause
|
|
27
|
+
Requires-Python: >=3.10
|
|
28
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
29
|
+
Project-URL: Issues, https://github.com/milkway/dune/issues
|
|
30
|
+
Project-URL: Repository, https://github.com/milkway/dune
|
|
31
|
+
|
|
32
|
+
# spice3
|
|
33
|
+
|
|
34
|
+
`pip install spice3` → `import spice`.
|
|
35
|
+
|
|
36
|
+
Circuit simulation for Python, powered by **Dune** — a Rust engine
|
|
37
|
+
derived from Berkeley **SPICE3f5** and validated circuit-by-circuit
|
|
38
|
+
against **ngspice** as numerical oracle.
|
|
39
|
+
|
|
40
|
+
> **Status: pre-alpha.** This release reserves the package name while
|
|
41
|
+
> the engine's first public version is being finished. The API below
|
|
42
|
+
> works today but may still change.
|
|
43
|
+
|
|
44
|
+
```python
|
|
45
|
+
from pathlib import Path
|
|
46
|
+
import spice
|
|
47
|
+
|
|
48
|
+
result = spice.simulate(Path("rc.cir"))
|
|
49
|
+
plot = result.plot("Transient Analysis")
|
|
50
|
+
df = plot.df() # polars DataFrame, scale column first
|
|
51
|
+
v2 = plot.column("v(2)") # zero-copy, read-only numpy array
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- Every SPICE3f5 analysis: `.op`, `.dc`, `.tran`, `.ac`, `.pz`,
|
|
55
|
+
`.noise`, `.disto`, `.tf`, `.sens` — plus the periodic steady state
|
|
56
|
+
of driven circuits (`.pss`, shooting–Newton; `spice.pss()`).
|
|
57
|
+
- All SPICE3f5 devices, including BJT (Gummel–Poon), MOS levels
|
|
58
|
+
1/2/3/6, BSIM1/BSIM2, JFET, MESFET, switches and both
|
|
59
|
+
transmission lines.
|
|
60
|
+
- Results as [polars](https://pola.rs) DataFrames (pandas optional)
|
|
61
|
+
and zero-copy NumPy arrays; complete type annotations (`py.typed`).
|
|
62
|
+
- Schematics as decks: `spice.pic.extract()` reads the netlist of an
|
|
63
|
+
[rpic](https://github.com/milkway/rpic-lang) figure drawn with the
|
|
64
|
+
dune prelude, `spice.simulate()` runs it and `spice.pic.render()`
|
|
65
|
+
draws it as SVG (with typeset `$...$` labels).
|
|
66
|
+
- Faithful netlist semantics: decks that run under `spice3 -b` or
|
|
67
|
+
`ngspice -b` run here, with structured, span-carrying errors.
|
|
68
|
+
|
|
69
|
+
The engine, corpus and oracle harness live in the
|
|
70
|
+
[Dune repository](https://github.com/milkway/dune). BSD-3-Clause,
|
|
71
|
+
© André Leite and The Regents of the University of California.
|
|
72
|
+
|
spice3-0.1.0/README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# spice3
|
|
2
|
+
|
|
3
|
+
`pip install spice3` → `import spice`.
|
|
4
|
+
|
|
5
|
+
Circuit simulation for Python, powered by **Dune** — a Rust engine
|
|
6
|
+
derived from Berkeley **SPICE3f5** and validated circuit-by-circuit
|
|
7
|
+
against **ngspice** as numerical oracle.
|
|
8
|
+
|
|
9
|
+
> **Status: pre-alpha.** This release reserves the package name while
|
|
10
|
+
> the engine's first public version is being finished. The API below
|
|
11
|
+
> works today but may still change.
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
import spice
|
|
16
|
+
|
|
17
|
+
result = spice.simulate(Path("rc.cir"))
|
|
18
|
+
plot = result.plot("Transient Analysis")
|
|
19
|
+
df = plot.df() # polars DataFrame, scale column first
|
|
20
|
+
v2 = plot.column("v(2)") # zero-copy, read-only numpy array
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
- Every SPICE3f5 analysis: `.op`, `.dc`, `.tran`, `.ac`, `.pz`,
|
|
24
|
+
`.noise`, `.disto`, `.tf`, `.sens` — plus the periodic steady state
|
|
25
|
+
of driven circuits (`.pss`, shooting–Newton; `spice.pss()`).
|
|
26
|
+
- All SPICE3f5 devices, including BJT (Gummel–Poon), MOS levels
|
|
27
|
+
1/2/3/6, BSIM1/BSIM2, JFET, MESFET, switches and both
|
|
28
|
+
transmission lines.
|
|
29
|
+
- Results as [polars](https://pola.rs) DataFrames (pandas optional)
|
|
30
|
+
and zero-copy NumPy arrays; complete type annotations (`py.typed`).
|
|
31
|
+
- Schematics as decks: `spice.pic.extract()` reads the netlist of an
|
|
32
|
+
[rpic](https://github.com/milkway/rpic-lang) figure drawn with the
|
|
33
|
+
dune prelude, `spice.simulate()` runs it and `spice.pic.render()`
|
|
34
|
+
draws it as SVG (with typeset `$...$` labels).
|
|
35
|
+
- Faithful netlist semantics: decks that run under `spice3 -b` or
|
|
36
|
+
`ngspice -b` run here, with structured, span-carrying errors.
|
|
37
|
+
|
|
38
|
+
The engine, corpus and oracle harness live in the
|
|
39
|
+
[Dune repository](https://github.com/milkway/dune). BSD-3-Clause,
|
|
40
|
+
© André Leite and The Regents of the University of California.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "dune-core"
|
|
3
|
+
description = "Circuit simulation engine: MNA, devices, Newton-Raphson, integration, analyses"
|
|
4
|
+
version.workspace = true
|
|
5
|
+
edition.workspace = true
|
|
6
|
+
rust-version.workspace = true
|
|
7
|
+
license.workspace = true
|
|
8
|
+
|
|
9
|
+
[features]
|
|
10
|
+
default = ["solver-faer"]
|
|
11
|
+
# Dense LU backend over the `faer` crate (D-0005 naming; D-0013 keeps
|
|
12
|
+
# it the default).
|
|
13
|
+
solver-faer = ["dep:faer"]
|
|
14
|
+
# Sparse LU backend over the published `xingo-sparse` crate (D-0005's
|
|
15
|
+
# target; D-0013). When enabled it replaces faer as the engine's
|
|
16
|
+
# solver. Opt-in: it needs rustc >= 1.90 (xingo-sparse's MSRV; the
|
|
17
|
+
# workspace's own stays 1.88 without it).
|
|
18
|
+
solver-xingo = ["dep:xingo-sparse"]
|
|
19
|
+
# `sweep_parallel`: the runs of a sweep over a rayon thread pool
|
|
20
|
+
# (issue #10); `Options::load_threads`: the per-iteration device load
|
|
21
|
+
# over one (issue #9, lever 1). Native only — off by default and never enabled for
|
|
22
|
+
# wasm32 (dune-wasm runs `sweep` sequentially).
|
|
23
|
+
parallel = ["dep:rayon"]
|
|
24
|
+
|
|
25
|
+
[dependencies]
|
|
26
|
+
thiserror.workspace = true
|
|
27
|
+
num-complex.workspace = true
|
|
28
|
+
dune-netlist.workspace = true
|
|
29
|
+
dune-raw.workspace = true
|
|
30
|
+
libm.workspace = true
|
|
31
|
+
rayon = { version = "1.10", optional = true }
|
|
32
|
+
faer = { version = "0.24", optional = true, default-features = false, features = [
|
|
33
|
+
"std",
|
|
34
|
+
"linalg",
|
|
35
|
+
] }
|
|
36
|
+
xingo-sparse = { workspace = true, optional = true }
|
|
37
|
+
|
|
38
|
+
[dev-dependencies]
|
|
39
|
+
criterion = { version = "0.5", default-features = false, features = ["cargo_bench_support"] }
|
|
40
|
+
|
|
41
|
+
# P-3 benchmarks (faer dense vs xingo-sparse). `lu` runs both
|
|
42
|
+
# backends in one binary when `solver-xingo` is on; `sim` measures whichever
|
|
43
|
+
# backend the build selected, so run it once per feature set.
|
|
44
|
+
[[bench]]
|
|
45
|
+
name = "lu"
|
|
46
|
+
harness = false
|
|
47
|
+
|
|
48
|
+
[[bench]]
|
|
49
|
+
name = "sim"
|
|
50
|
+
harness = false
|
|
51
|
+
|
|
52
|
+
[[example]]
|
|
53
|
+
name = "parload_bench"
|
|
54
|
+
required-features = ["parallel"]
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
85 308 0e0
|
|
2
|
+
0 1 1e0 0e0 0e0
|
|
3
|
+
1 0 1e0 0e0 0e0
|
|
4
|
+
2 3 1e0 0e0 0e0
|
|
5
|
+
3 2 1e0 0e0 0e0
|
|
6
|
+
4 4 5.664180629466097e-3 0e0 0e0
|
|
7
|
+
5 7 -1e-2 0e0 0e0
|
|
8
|
+
6 6 6.482202278758739e-2 0e0 0e0
|
|
9
|
+
4 7 -5.209635007384001e-3 0e0 0e0
|
|
10
|
+
4 6 -1.665366405921841e-10 0e0 0e0
|
|
11
|
+
7 5 -1e-2 0e0 0e0
|
|
12
|
+
7 4 -5.2096351739206416e-3 0e0 0e0
|
|
13
|
+
7 6 -3.6371059016652523e-3 0e0 0e0
|
|
14
|
+
6 4 -3.198770668201944e-19 0e0 0e0
|
|
15
|
+
6 7 -3.6371060682018927e-3 0e0 0e0
|
|
16
|
+
5 5 4.796421806032936e-2 0e0 0e0
|
|
17
|
+
7 7 1.8846741075585895e-2 0e0 0e0
|
|
18
|
+
5 4 -1.0000000032008977e-12 0e0 0e0
|
|
19
|
+
4 5 -1.0000000032008977e-12 0e0 0e0
|
|
20
|
+
8 9 -1e-2 0e0 0e0
|
|
21
|
+
5 9 6.071343298521846e-3 0e0 0e0
|
|
22
|
+
5 6 -4.361754262872715e-2 0e0 0e0
|
|
23
|
+
9 8 -1e-2 0e0 0e0
|
|
24
|
+
9 5 -2.766682063209843e-2 0e0 0e0
|
|
25
|
+
9 6 -6.591183613467872e-3 0e0 0e0
|
|
26
|
+
6 5 -9.879378698106869e-3 0e0 0e0
|
|
27
|
+
6 9 -4.032934754408815e-2 0e0 0e0
|
|
28
|
+
8 8 1.7403306237155792e-2 0e0 0e0
|
|
29
|
+
9 9 4.425800424556631e-2 0e0 0e0
|
|
30
|
+
8 5 -2.5135206145739504e-4 0e0 0e0
|
|
31
|
+
5 8 -2.5135206145739504e-4 0e0 0e0
|
|
32
|
+
10 10 3.8959554242344006e-2 0e0 0e0
|
|
33
|
+
11 12 -1e-2 0e0 0e0
|
|
34
|
+
10 12 -3.3309078957627324e-3 0e0 0e0
|
|
35
|
+
12 11 -1e-2 0e0 0e0
|
|
36
|
+
12 10 -2.8066410325178474e-2 0e0 0e0
|
|
37
|
+
11 11 1.0798164310438818e-2 0e0 0e0
|
|
38
|
+
12 12 4.453790002139388e-2 0e0 0e0
|
|
39
|
+
11 10 -2.981643104388176e-4 0e0 0e0
|
|
40
|
+
10 11 -2.981643104388176e-4 0e0 0e0
|
|
41
|
+
13 13 2.869321181944908e-2 0e0 0e0
|
|
42
|
+
13 14 -1.7660407703295015e-2 0e0 0e0
|
|
43
|
+
14 13 -2.062892363864067e-2 0e0 0e0
|
|
44
|
+
14 14 2.6404880356665293e-2 0e0 0e0
|
|
45
|
+
15 16 -1e-2 0e0 0e0
|
|
46
|
+
8 16 -4.0379309743933025e-3 0e0 0e0
|
|
47
|
+
8 13 -3.0140232003050935e-3 0e0 0e0
|
|
48
|
+
16 15 -1e-2 0e0 0e0
|
|
49
|
+
16 8 -7.051954174698177e-3 0e0 0e0
|
|
50
|
+
16 13 -5.050264942517352e-3 0e0 0e0
|
|
51
|
+
13 8 -2.1889346693528863e-16 0e0 0e0
|
|
52
|
+
13 16 -8.064288142822226e-3 0e0 0e0
|
|
53
|
+
15 15 2.083514824666718e-2 0e0 0e0
|
|
54
|
+
16 16 2.210221911721553e-2 0e0 0e0
|
|
55
|
+
15 8 -1.0000021798802808e-12 0e0 0e0
|
|
56
|
+
8 15 -1.0000021798802808e-12 0e0 0e0
|
|
57
|
+
17 17 2.0196880778181242e-1 0e0 0e0
|
|
58
|
+
6 19 -1e-2 0e0 0e0
|
|
59
|
+
18 18 3.2347977713054055e-1 0e0 0e0
|
|
60
|
+
17 19 1.5852055643420837e-1 0e0 0e0
|
|
61
|
+
17 18 -1.8240765371546805e-1 0e0 0e0
|
|
62
|
+
19 6 -1e-2 0e0 0e0
|
|
63
|
+
19 17 -2.058710640219926e-2 0e0 0e0
|
|
64
|
+
19 18 -8.196698281916156e-3 0e0 0e0
|
|
65
|
+
18 17 -3.299990879060401e-3 0e0 0e0
|
|
66
|
+
18 19 -1.873043611183238e-1 0e0 0e0
|
|
67
|
+
19 19 3.8783804684115415e-2 0e0 0e0
|
|
68
|
+
6 17 0e0 0e0 0e0
|
|
69
|
+
17 6 0e0 0e0 0e0
|
|
70
|
+
20 20 1.799644532877791e-2 0e0 0e0
|
|
71
|
+
21 22 -1e-2 0e0 0e0
|
|
72
|
+
20 22 -1.0112956393104413e-2 0e0 0e0
|
|
73
|
+
22 21 -1e-2 0e0 0e0
|
|
74
|
+
22 20 -1.70756808483734e-2 0e0 0e0
|
|
75
|
+
21 21 1.0506379690493929e-2 0e0 0e0
|
|
76
|
+
22 22 3.3039242131216506e-2 0e0 0e0
|
|
77
|
+
21 20 -6.379690493929053e-6 0e0 0e0
|
|
78
|
+
20 21 -6.379690493929053e-6 0e0 0e0
|
|
79
|
+
23 23 4.842043797820923e-2 0e0 0e0
|
|
80
|
+
18 24 -1e-2 0e0 0e0
|
|
81
|
+
23 24 2.7878118420096062e-2 0e0 0e0
|
|
82
|
+
24 18 -1e-2 0e0 0e0
|
|
83
|
+
24 23 -1.1548232107996088e-2 0e0 0e0
|
|
84
|
+
24 24 2.7304125448032755e-2 0e0 0e0
|
|
85
|
+
18 23 -2.5630430869117094e-9 0e0 0e0
|
|
86
|
+
23 18 -2.5630430869117094e-9 0e0 0e0
|
|
87
|
+
25 25 1.5215861590775672e-2 0e0 0e0
|
|
88
|
+
26 27 -1e-2 0e0 0e0
|
|
89
|
+
25 27 -1.4077552182006726e-2 0e0 0e0
|
|
90
|
+
27 26 -1e-2 0e0 0e0
|
|
91
|
+
27 25 -1.517143206972089e-2 0e0 0e0
|
|
92
|
+
26 26 3.2510562831889536e-2 0e0 0e0
|
|
93
|
+
27 27 3.0781208980922105e-2 0e0 0e0
|
|
94
|
+
26 25 0e0 0e0 0e0
|
|
95
|
+
25 26 0e0 0e0 0e0
|
|
96
|
+
28 28 9.400343140757736e-2 0e0 0e0
|
|
97
|
+
29 30 -1e-2 0e0 0e0
|
|
98
|
+
28 30 1.069519430477602e-3 0e0 0e0
|
|
99
|
+
28 26 -6.512989025525587e-3 0e0 0e0
|
|
100
|
+
30 29 -1e-2 0e0 0e0
|
|
101
|
+
30 28 -5.443469594047984e-3 0e0 0e0
|
|
102
|
+
30 26 -5.930907122728984e-3 0e0 0e0
|
|
103
|
+
26 28 -1.0000005902982948e-12 0e0 0e0
|
|
104
|
+
26 30 -1.2443896147254569e-2 0e0 0e0
|
|
105
|
+
29 29 2.110745725494131e-2 0e0 0e0
|
|
106
|
+
30 30 2.1374376716776968e-2 0e0 0e0
|
|
107
|
+
29 28 -1.000000005869076e-12 0e0 0e0
|
|
108
|
+
28 29 -1.000000005869076e-12 0e0 0e0
|
|
109
|
+
31 31 4.244006048648687e-1 0e0 0e0
|
|
110
|
+
18 32 -1e-2 0e0 0e0
|
|
111
|
+
31 32 -1.0908835157993718e-1 0e0 0e0
|
|
112
|
+
32 18 -1e-2 0e0 0e0
|
|
113
|
+
32 31 -5.6322405177778305e-2 0e0 0e0
|
|
114
|
+
32 32 7.101859972187112e-2 0e0 0e0
|
|
115
|
+
18 31 -1.1177760163215834e-1 0e0 0e0
|
|
116
|
+
31 18 -1.1177760163215834e-1 0e0 0e0
|
|
117
|
+
26 33 -1e-2 0e0 0e0
|
|
118
|
+
28 33 1.8971789923261728e-1 0e0 0e0
|
|
119
|
+
28 31 -1.9494452771081333e-1 0e0 0e0
|
|
120
|
+
33 26 -1e-2 0e0 0e0
|
|
121
|
+
33 28 -5.226628478196043e-3 0e0 0e0
|
|
122
|
+
33 31 -8.332176854012711e-3 0e0 0e0
|
|
123
|
+
31 28 -3.3447931821209523e-19 0e0 0e0
|
|
124
|
+
31 33 -2.0327670456482605e-1 0e0 0e0
|
|
125
|
+
33 33 2.3558805332208756e-2 0e0 0e0
|
|
126
|
+
0 0 5.121233221676657e-10 0e0 0e0
|
|
127
|
+
0 5 -1.000000010825845e-12 0e0 0e0
|
|
128
|
+
5 0 -1.000000010825845e-12 0e0 0e0
|
|
129
|
+
0 6 -1.0000000102582074e-12 0e0 0e0
|
|
130
|
+
6 0 -1.0000000102582074e-12 0e0 0e0
|
|
131
|
+
34 34 1.8008171050055277e-1 0e0 0e0
|
|
132
|
+
17 34 -1.7808171050055277e-1 0e0 0e0
|
|
133
|
+
34 17 -1.7808171050055277e-1 0e0 0e0
|
|
134
|
+
23 15 -1.0768481579000512e-2 0e0 0e0
|
|
135
|
+
15 23 -1.0768481579000512e-2 0e0 0e0
|
|
136
|
+
26 18 -1.6968301912724997e-11 0e0 0e0
|
|
137
|
+
18 26 -1.6968301912724997e-11 0e0 0e0
|
|
138
|
+
23 29 -1.0440790587274646e-2 0e0 0e0
|
|
139
|
+
29 23 -1.0440790587274646e-2 0e0 0e0
|
|
140
|
+
25 18 -1.4487587653279964e-5 0e0 0e0
|
|
141
|
+
18 25 -1.4487587653279964e-5 0e0 0e0
|
|
142
|
+
35 35 1.5762745376966265e-2 0e0 0e0
|
|
143
|
+
23 35 -1.5662745376966266e-2 0e0 0e0
|
|
144
|
+
35 23 -1.5662745376966266e-2 0e0 0e0
|
|
145
|
+
2 2 2.0204123482926686e-1 0e0 0e0
|
|
146
|
+
36 36 2.831533560413881e-1 0e0 0e0
|
|
147
|
+
36 2 -1.9982002270805477e-1 0e0 0e0
|
|
148
|
+
2 36 -1.9982002270805477e-1 0e0 0e0
|
|
149
|
+
5 2 -1.6666666666666666e-4 0e0 0e0
|
|
150
|
+
2 5 -1.6666666666666666e-4 0e0 0e0
|
|
151
|
+
4 2 -4.5454545454545455e-4 0e0 0e0
|
|
152
|
+
2 4 -4.5454545454545455e-4 0e0 0e0
|
|
153
|
+
11 6 -5e-4 0e0 0e0
|
|
154
|
+
6 11 -5e-4 0e0 0e0
|
|
155
|
+
10 6 -3.333333333333333e-4 0e0 0e0
|
|
156
|
+
6 10 -3.333333333333333e-4 0e0 0e0
|
|
157
|
+
8 2 -1e-4 0e0 0e0
|
|
158
|
+
2 8 -1e-4 0e0 0e0
|
|
159
|
+
15 2 -6.666666666666667e-5 0e0 0e0
|
|
160
|
+
2 15 -6.666666666666667e-5 0e0 0e0
|
|
161
|
+
34 2 -1.3333333333333333e-3 0e0 0e0
|
|
162
|
+
2 34 -1.3333333333333333e-3 0e0 0e0
|
|
163
|
+
21 18 -5e-4 0e0 0e0
|
|
164
|
+
18 21 -5e-4 0e0 0e0
|
|
165
|
+
34 29 -6.666666666666666e-4 0e0 0e0
|
|
166
|
+
29 34 -6.666666666666666e-4 0e0 0e0
|
|
167
|
+
20 18 -3.333333333333333e-4 0e0 0e0
|
|
168
|
+
18 20 -3.333333333333333e-4 0e0 0e0
|
|
169
|
+
35 2 -1e-4 0e0 0e0
|
|
170
|
+
2 35 -1e-4 0e0 0e0
|
|
171
|
+
28 36 -8.333333333333333e-2 0e0 0e0
|
|
172
|
+
36 28 -8.333333333333333e-2 0e0 0e0
|
|
173
|
+
37 37 2e-2 0e0 0e0
|
|
174
|
+
39 31 1.9988731357062407e-2 0e0 0e0
|
|
175
|
+
39 38 0e0 0e0 0e0
|
|
176
|
+
39 39 -1e0 0e0 0e0
|
|
177
|
+
39 40 0e0 0e0 0e0
|
|
178
|
+
40 31 0e0 0e0 0e0
|
|
179
|
+
40 38 1.9988731357062407e-2 0e0 0e0
|
|
180
|
+
40 39 0e0 0e0 0e0
|
|
181
|
+
40 40 -1e0 0e0 0e0
|
|
182
|
+
31 39 1e0 0e0 0e0
|
|
183
|
+
38 40 1e0 0e0 0e0
|
|
184
|
+
38 38 0e0 0e0 0e0
|
|
185
|
+
41 42 1e0 0e0 0e0
|
|
186
|
+
42 41 1e0 0e0 0e0
|
|
187
|
+
43 44 1e0 0e0 0e0
|
|
188
|
+
44 43 1e0 0e0 0e0
|
|
189
|
+
45 42 -7.07106779721e-1 0e0 0e0
|
|
190
|
+
45 44 7.07106782652e-1 0e0 0e0
|
|
191
|
+
46 42 -7.07106781919e-1 0e0 0e0
|
|
192
|
+
46 44 -7.07106780454e-1 0e0 0e0
|
|
193
|
+
47 48 1e0 0e0 0e0
|
|
194
|
+
48 47 1e0 0e0 0e0
|
|
195
|
+
41 48 -1e0 0e0 0e0
|
|
196
|
+
48 41 -1e0 0e0 0e0
|
|
197
|
+
48 45 -7.07106780454e-1 0e0 0e0
|
|
198
|
+
38 49 1e0 0e0 0e0
|
|
199
|
+
49 38 1e0 0e0 0e0
|
|
200
|
+
47 49 -1e0 0e0 0e0
|
|
201
|
+
49 47 -1e0 0e0 0e0
|
|
202
|
+
49 46 -7.07106782652e-1 0e0 0e0
|
|
203
|
+
50 51 1e0 0e0 0e0
|
|
204
|
+
51 50 1e0 0e0 0e0
|
|
205
|
+
43 51 -1e0 0e0 0e0
|
|
206
|
+
51 43 -1e0 0e0 0e0
|
|
207
|
+
51 45 7.07106781919e-1 0e0 0e0
|
|
208
|
+
37 52 1e0 0e0 0e0
|
|
209
|
+
52 37 1e0 0e0 0e0
|
|
210
|
+
50 52 -1e0 0e0 0e0
|
|
211
|
+
52 50 -1e0 0e0 0e0
|
|
212
|
+
52 46 -7.07106779721e-1 0e0 0e0
|
|
213
|
+
54 45 3.913144516630151e-2 0e0 0e0
|
|
214
|
+
54 53 0e0 0e0 0e0
|
|
215
|
+
54 54 -1e0 0e0 0e0
|
|
216
|
+
54 55 0e0 0e0 0e0
|
|
217
|
+
55 45 0e0 0e0 0e0
|
|
218
|
+
55 53 3.913144516630151e-2 0e0 0e0
|
|
219
|
+
55 54 0e0 0e0 0e0
|
|
220
|
+
55 55 -1e0 0e0 0e0
|
|
221
|
+
45 54 1e0 0e0 0e0
|
|
222
|
+
53 55 1e0 0e0 0e0
|
|
223
|
+
45 45 0e0 0e0 0e0
|
|
224
|
+
53 53 0e0 0e0 0e0
|
|
225
|
+
57 46 1.6421092399865528e-2 0e0 0e0
|
|
226
|
+
57 56 0e0 0e0 0e0
|
|
227
|
+
57 57 -1e0 0e0 0e0
|
|
228
|
+
57 58 0e0 0e0 0e0
|
|
229
|
+
58 46 0e0 0e0 0e0
|
|
230
|
+
58 56 1.6421092399865528e-2 0e0 0e0
|
|
231
|
+
58 57 0e0 0e0 0e0
|
|
232
|
+
58 58 -1e0 0e0 0e0
|
|
233
|
+
46 57 1e0 0e0 0e0
|
|
234
|
+
56 58 1e0 0e0 0e0
|
|
235
|
+
46 46 0e0 0e0 0e0
|
|
236
|
+
56 56 0e0 0e0 0e0
|
|
237
|
+
59 60 1e0 0e0 0e0
|
|
238
|
+
60 59 1e0 0e0 0e0
|
|
239
|
+
61 62 1e0 0e0 0e0
|
|
240
|
+
62 61 1e0 0e0 0e0
|
|
241
|
+
53 60 -7.07106779721e-1 0e0 0e0
|
|
242
|
+
53 62 7.07106782652e-1 0e0 0e0
|
|
243
|
+
56 60 -7.07106781919e-1 0e0 0e0
|
|
244
|
+
56 62 -7.07106780454e-1 0e0 0e0
|
|
245
|
+
63 64 1e0 0e0 0e0
|
|
246
|
+
64 63 1e0 0e0 0e0
|
|
247
|
+
59 64 -1e0 0e0 0e0
|
|
248
|
+
64 59 -1e0 0e0 0e0
|
|
249
|
+
64 53 -7.07106780454e-1 0e0 0e0
|
|
250
|
+
65 66 1e0 0e0 0e0
|
|
251
|
+
66 65 1e0 0e0 0e0
|
|
252
|
+
63 66 -1e0 0e0 0e0
|
|
253
|
+
66 63 -1e0 0e0 0e0
|
|
254
|
+
66 56 -7.07106782652e-1 0e0 0e0
|
|
255
|
+
67 68 1e0 0e0 0e0
|
|
256
|
+
68 67 1e0 0e0 0e0
|
|
257
|
+
61 68 -1e0 0e0 0e0
|
|
258
|
+
68 61 -1e0 0e0 0e0
|
|
259
|
+
68 53 7.07106781919e-1 0e0 0e0
|
|
260
|
+
69 70 1e0 0e0 0e0
|
|
261
|
+
70 69 1e0 0e0 0e0
|
|
262
|
+
67 70 -1e0 0e0 0e0
|
|
263
|
+
70 67 -1e0 0e0 0e0
|
|
264
|
+
70 56 -7.07106779721e-1 0e0 0e0
|
|
265
|
+
72 65 1.9988731357062407e-2 0e0 0e0
|
|
266
|
+
72 71 0e0 0e0 0e0
|
|
267
|
+
72 72 -1e0 0e0 0e0
|
|
268
|
+
72 73 0e0 0e0 0e0
|
|
269
|
+
73 65 0e0 0e0 0e0
|
|
270
|
+
73 71 1.9988731357062407e-2 0e0 0e0
|
|
271
|
+
73 72 0e0 0e0 0e0
|
|
272
|
+
73 73 -1e0 0e0 0e0
|
|
273
|
+
65 72 1e0 0e0 0e0
|
|
274
|
+
71 73 1e0 0e0 0e0
|
|
275
|
+
65 65 0e0 0e0 0e0
|
|
276
|
+
71 71 7.422667794434161e-1 0e0 0e0
|
|
277
|
+
74 75 1e0 0e0 0e0
|
|
278
|
+
75 74 1e0 0e0 0e0
|
|
279
|
+
76 76 1.901801801801802e-1 0e0 0e0
|
|
280
|
+
77 77 2.3335533553355335e-3 0e0 0e0
|
|
281
|
+
74 74 1.3333333333333334e-4 0e0 0e0
|
|
282
|
+
77 74 -1.3333333333333334e-4 0e0 0e0
|
|
283
|
+
74 77 -1.3333333333333334e-4 0e0 0e0
|
|
284
|
+
78 78 1.0000000019902066e-2 0e0 0e0
|
|
285
|
+
76 78 -1e-2 0e0 0e0
|
|
286
|
+
71 78 -1.990206535697821e-11 0e0 0e0
|
|
287
|
+
78 76 -1e-2 0e0 0e0
|
|
288
|
+
78 71 -1.990206535697821e-11 0e0 0e0
|
|
289
|
+
79 79 5.543429059994011e-1 0e0 0e0
|
|
290
|
+
77 79 -1.1001100110011e-3 0e0 0e0
|
|
291
|
+
71 79 -5.532427959884e-1 0e0 0e0
|
|
292
|
+
79 77 -1.1001100110011e-3 0e0 0e0
|
|
293
|
+
79 71 -5.532427959884e-1 0e0 0e0
|
|
294
|
+
80 80 2.99269839412833e-3 0e0 0e0
|
|
295
|
+
81 81 2.992698394129513e-3 0e0 0e0
|
|
296
|
+
80 81 -1.1001100110011e-3 0e0 0e0
|
|
297
|
+
81 80 -1.1001100110011e-3 0e0 0e0
|
|
298
|
+
82 82 2.9926983940680237e-3 0e0 0e0
|
|
299
|
+
83 83 2.99269839412833e-3 0e0 0e0
|
|
300
|
+
82 83 -1.1001100110011e-3 0e0 0e0
|
|
301
|
+
80 83 -1.8925883831272298e-3 0e0 0e0
|
|
302
|
+
83 82 -1.1001100110011e-3 0e0 0e0
|
|
303
|
+
83 80 -1.8925883831272298e-3 0e0 0e0
|
|
304
|
+
84 84 2.9926983940680237e-3 0e0 0e0
|
|
305
|
+
77 84 -1.1001100110011e-3 0e0 0e0
|
|
306
|
+
82 84 -1.8925883830669236e-3 0e0 0e0
|
|
307
|
+
84 77 -1.1001100110011e-3 0e0 0e0
|
|
308
|
+
84 82 -1.8925883830669236e-3 0e0 0e0
|
|
309
|
+
69 69 2e-2 0e0 0e0
|