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.
Files changed (163) hide show
  1. spice3-0.1.0/Cargo.toml +53 -0
  2. spice3-0.1.0/PKG-INFO +72 -0
  3. spice3-0.1.0/README.md +40 -0
  4. spice3-0.1.0/crates/dune-core/Cargo.toml +54 -0
  5. spice3-0.1.0/crates/dune-core/benches/fixtures/ltra_3.mna +309 -0
  6. spice3-0.1.0/crates/dune-core/benches/fixtures/mos6inv.mna +241 -0
  7. spice3-0.1.0/crates/dune-core/benches/fixtures/mosmem.mna +48 -0
  8. spice3-0.1.0/crates/dune-core/benches/fixtures/rca3040.mna +146 -0
  9. spice3-0.1.0/crates/dune-core/benches/fixtures/schmitt.mna +75 -0
  10. spice3-0.1.0/crates/dune-core/benches/lu.rs +184 -0
  11. spice3-0.1.0/crates/dune-core/benches/sim.rs +136 -0
  12. spice3-0.1.0/crates/dune-core/examples/parload_bench.rs +127 -0
  13. spice3-0.1.0/crates/dune-core/examples/session_speed.rs +214 -0
  14. spice3-0.1.0/crates/dune-core/src/ac.rs +94 -0
  15. spice3-0.1.0/crates/dune-core/src/asrc.rs +774 -0
  16. spice3-0.1.0/crates/dune-core/src/b1disto.rs +924 -0
  17. spice3-0.1.0/crates/dune-core/src/bjt.rs +1622 -0
  18. spice3-0.1.0/crates/dune-core/src/bsim1.rs +1655 -0
  19. spice3-0.1.0/crates/dune-core/src/bsim2.rs +1682 -0
  20. spice3-0.1.0/crates/dune-core/src/bsim3/eval.rs +1733 -0
  21. spice3-0.1.0/crates/dune-core/src/bsim3/mod.rs +1199 -0
  22. spice3-0.1.0/crates/dune-core/src/bsim3/params.rs +1143 -0
  23. spice3-0.1.0/crates/dune-core/src/bsim3/temp.rs +695 -0
  24. spice3-0.1.0/crates/dune-core/src/bsim3/tests.rs +362 -0
  25. spice3-0.1.0/crates/dune-core/src/circuit.rs +1911 -0
  26. spice3-0.1.0/crates/dune-core/src/consts.rs +27 -0
  27. spice3-0.1.0/crates/dune-core/src/dc.rs +144 -0
  28. spice3-0.1.0/crates/dune-core/src/dderivs.rs +589 -0
  29. spice3-0.1.0/crates/dune-core/src/devices.rs +1589 -0
  30. spice3-0.1.0/crates/dune-core/src/devnoise.rs +317 -0
  31. spice3-0.1.0/crates/dune-core/src/diode.rs +981 -0
  32. spice3-0.1.0/crates/dune-core/src/disto.rs +1016 -0
  33. spice3-0.1.0/crates/dune-core/src/elaborate.rs +2402 -0
  34. spice3-0.1.0/crates/dune-core/src/engine.rs +3548 -0
  35. spice3-0.1.0/crates/dune-core/src/error.rs +74 -0
  36. spice3-0.1.0/crates/dune-core/src/integ.rs +436 -0
  37. spice3-0.1.0/crates/dune-core/src/jfet.rs +1498 -0
  38. spice3-0.1.0/crates/dune-core/src/lib.rs +109 -0
  39. spice3-0.1.0/crates/dune-core/src/linalg/backend/dense_det.rs +85 -0
  40. spice3-0.1.0/crates/dune-core/src/linalg/backend/faer_dense.rs +164 -0
  41. spice3-0.1.0/crates/dune-core/src/linalg/backend/mod.rs +8 -0
  42. spice3-0.1.0/crates/dune-core/src/linalg/backend/xingo_sparse.rs +607 -0
  43. spice3-0.1.0/crates/dune-core/src/linalg/mod.rs +89 -0
  44. spice3-0.1.0/crates/dune-core/src/ltra.rs +2727 -0
  45. spice3-0.1.0/crates/dune-core/src/ltrafit.rs +664 -0
  46. spice3-0.1.0/crates/dune-core/src/matrix.rs +583 -0
  47. spice3-0.1.0/crates/dune-core/src/measure.rs +926 -0
  48. spice3-0.1.0/crates/dune-core/src/mes.rs +759 -0
  49. spice3-0.1.0/crates/dune-core/src/mos1.rs +1705 -0
  50. spice3-0.1.0/crates/dune-core/src/mos2.rs +2352 -0
  51. spice3-0.1.0/crates/dune-core/src/mos3.rs +2115 -0
  52. spice3-0.1.0/crates/dune-core/src/mos6.rs +1103 -0
  53. spice3-0.1.0/crates/dune-core/src/mosdisto.rs +365 -0
  54. spice3-0.1.0/crates/dune-core/src/noise.rs +381 -0
  55. spice3-0.1.0/crates/dune-core/src/op.rs +59 -0
  56. spice3-0.1.0/crates/dune-core/src/options.rs +406 -0
  57. spice3-0.1.0/crates/dune-core/src/parload.rs +315 -0
  58. spice3-0.1.0/crates/dune-core/src/pss.rs +1858 -0
  59. spice3-0.1.0/crates/dune-core/src/pz.rs +1343 -0
  60. spice3-0.1.0/crates/dune-core/src/run.rs +322 -0
  61. spice3-0.1.0/crates/dune-core/src/select.rs +515 -0
  62. spice3-0.1.0/crates/dune-core/src/sens.rs +318 -0
  63. spice3-0.1.0/crates/dune-core/src/session.rs +729 -0
  64. spice3-0.1.0/crates/dune-core/src/solution.rs +75 -0
  65. spice3-0.1.0/crates/dune-core/src/sp.rs +610 -0
  66. spice3-0.1.0/crates/dune-core/src/srcfn.rs +317 -0
  67. spice3-0.1.0/crates/dune-core/src/state.rs +168 -0
  68. spice3-0.1.0/crates/dune-core/src/sweep.rs +399 -0
  69. spice3-0.1.0/crates/dune-core/src/switch.rs +462 -0
  70. spice3-0.1.0/crates/dune-core/src/tf.rs +242 -0
  71. spice3-0.1.0/crates/dune-core/src/tra.rs +697 -0
  72. spice3-0.1.0/crates/dune-core/src/tran.rs +100 -0
  73. spice3-0.1.0/crates/dune-core/src/trnoise.rs +963 -0
  74. spice3-0.1.0/crates/dune-core/tests/cards.rs +179 -0
  75. spice3-0.1.0/crates/dune-core/tests/devnoise.rs +564 -0
  76. spice3-0.1.0/crates/dune-core/tests/iterate.rs +62 -0
  77. spice3-0.1.0/crates/dune-core/tests/ltra_fit.rs +136 -0
  78. spice3-0.1.0/crates/dune-core/tests/measure.rs +290 -0
  79. spice3-0.1.0/crates/dune-core/tests/measure_ngspice.rs +166 -0
  80. spice3-0.1.0/crates/dune-core/tests/op.rs +183 -0
  81. spice3-0.1.0/crates/dune-core/tests/parload.rs +191 -0
  82. spice3-0.1.0/crates/dune-core/tests/pss.rs +366 -0
  83. spice3-0.1.0/crates/dune-core/tests/pss_lines.rs +393 -0
  84. spice3-0.1.0/crates/dune-core/tests/pss_osc.rs +395 -0
  85. spice3-0.1.0/crates/dune-core/tests/robust_tran.rs +132 -0
  86. spice3-0.1.0/crates/dune-core/tests/run.rs +191 -0
  87. spice3-0.1.0/crates/dune-core/tests/session.rs +475 -0
  88. spice3-0.1.0/crates/dune-core/tests/sweep.rs +272 -0
  89. spice3-0.1.0/crates/dune-core/tests/tf_sens.rs +132 -0
  90. spice3-0.1.0/crates/dune-core/tests/tmax_divisor.rs +89 -0
  91. spice3-0.1.0/crates/dune-core/tests/trnoise.rs +362 -0
  92. spice3-0.1.0/crates/dune-netlist/Cargo.toml +10 -0
  93. spice3-0.1.0/crates/dune-netlist/src/deck.rs +484 -0
  94. spice3-0.1.0/crates/dune-netlist/src/diag.rs +79 -0
  95. spice3-0.1.0/crates/dune-netlist/src/dot.rs +908 -0
  96. spice3-0.1.0/crates/dune-netlist/src/elem.rs +1172 -0
  97. spice3-0.1.0/crates/dune-netlist/src/expr.rs +705 -0
  98. spice3-0.1.0/crates/dune-netlist/src/ir.rs +692 -0
  99. spice3-0.1.0/crates/dune-netlist/src/lib.rs +42 -0
  100. spice3-0.1.0/crates/dune-netlist/src/meas.rs +618 -0
  101. spice3-0.1.0/crates/dune-netlist/src/param.rs +241 -0
  102. spice3-0.1.0/crates/dune-netlist/src/parse.rs +328 -0
  103. spice3-0.1.0/crates/dune-netlist/src/scan.rs +423 -0
  104. spice3-0.1.0/crates/dune-netlist/src/span.rs +159 -0
  105. spice3-0.1.0/crates/dune-netlist/src/subckt.rs +255 -0
  106. spice3-0.1.0/crates/dune-netlist/tests/corpus.rs +49 -0
  107. spice3-0.1.0/crates/dune-netlist/tests/fuzz_smoke.rs +186 -0
  108. spice3-0.1.0/crates/dune-netlist/tests/parse.rs +497 -0
  109. spice3-0.1.0/crates/dune-pic/Cargo.toml +16 -0
  110. spice3-0.1.0/crates/dune-pic/examples/preview.rs +21 -0
  111. spice3-0.1.0/crates/dune-pic/src/connect.rs +133 -0
  112. spice3-0.1.0/crates/dune-pic/src/lib.rs +1643 -0
  113. spice3-0.1.0/crates/dune-pic/src/spans.rs +408 -0
  114. spice3-0.1.0/crates/dune-pic/src/spice.pic +571 -0
  115. spice3-0.1.0/crates/dune-pic/tests/canvas.rs +181 -0
  116. spice3-0.1.0/crates/dune-pic/tests/corpus.rs +906 -0
  117. spice3-0.1.0/crates/dune-pic/tests/extract.rs +1052 -0
  118. spice3-0.1.0/crates/dune-pic/tests/writeback.rs +359 -0
  119. spice3-0.1.0/crates/dune-raw/Cargo.toml +11 -0
  120. spice3-0.1.0/crates/dune-raw/examples/recode.rs +23 -0
  121. spice3-0.1.0/crates/dune-raw/src/error.rs +23 -0
  122. spice3-0.1.0/crates/dune-raw/src/lib.rs +71 -0
  123. spice3-0.1.0/crates/dune-raw/src/plot.rs +146 -0
  124. spice3-0.1.0/crates/dune-raw/src/read.rs +527 -0
  125. spice3-0.1.0/crates/dune-raw/src/types.rs +122 -0
  126. spice3-0.1.0/crates/dune-raw/src/write.rs +218 -0
  127. spice3-0.1.0/crates/dune-raw/tests/data/README.md +7 -0
  128. spice3-0.1.0/crates/dune-raw/tests/data/rc.cir +9 -0
  129. spice3-0.1.0/crates/dune-raw/tests/data/rc_ascii.raw +417 -0
  130. spice3-0.1.0/crates/dune-raw/tests/data/rc_binary.raw +0 -0
  131. spice3-0.1.0/crates/dune-raw/tests/ngspice_fixtures.rs +201 -0
  132. spice3-0.1.0/pyproject.toml +75 -0
  133. spice3-0.1.0/python/.gitignore +3 -0
  134. spice3-0.1.0/python/CHANGELOG.md +21 -0
  135. spice3-0.1.0/python/Cargo.lock +1631 -0
  136. spice3-0.1.0/python/Cargo.toml +59 -0
  137. spice3-0.1.0/python/README.md +40 -0
  138. spice3-0.1.0/python/src/lib.rs +1395 -0
  139. spice3-0.1.0/python/src/pic.rs +315 -0
  140. spice3-0.1.0/python/tests/conftest.py +27 -0
  141. spice3-0.1.0/python/tests/test_errors.py +108 -0
  142. spice3-0.1.0/python/tests/test_measure.py +108 -0
  143. spice3-0.1.0/python/tests/test_options.py +100 -0
  144. spice3-0.1.0/python/tests/test_pic.py +243 -0
  145. spice3-0.1.0/python/tests/test_pss.py +275 -0
  146. spice3-0.1.0/python/tests/test_repr.py +155 -0
  147. spice3-0.1.0/python/tests/test_session.py +166 -0
  148. spice3-0.1.0/python/tests/test_simulate.py +182 -0
  149. spice3-0.1.0/python/tests/test_sweep.py +155 -0
  150. spice3-0.1.0/python/tests/test_tmax_divisor.py +75 -0
  151. spice3-0.1.0/python/tests/test_zero_copy.py +42 -0
  152. spice3-0.1.0/spice/__init__.py +65 -0
  153. spice3-0.1.0/spice/_errors.py +139 -0
  154. spice3-0.1.0/spice/_measure.py +133 -0
  155. spice3-0.1.0/spice/_pss.py +243 -0
  156. spice3-0.1.0/spice/_repr.py +447 -0
  157. spice3-0.1.0/spice/_result.py +310 -0
  158. spice3-0.1.0/spice/_session.py +200 -0
  159. spice3-0.1.0/spice/_simulate.py +177 -0
  160. spice3-0.1.0/spice/_spice.pyi +84 -0
  161. spice3-0.1.0/spice/_sweep.py +259 -0
  162. spice3-0.1.0/spice/pic.py +510 -0
  163. spice3-0.1.0/spice/py.typed +0 -0
@@ -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