Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
b1cd7e5
Retire ComparisonMultistep and the reference's general Adams path
jtravs Nov 12, 2026
2f88d14
Make PIController final and drop native's override refusal
jtravs Nov 12, 2026
484ae45
Retire the CF4 coupled-flow sections
jtravs Nov 12, 2026
c75ef0f
Drop the dead spectral_responses leaf and its flag
jtravs Nov 12, 2026
8db1865
Remove single and mixed precision
jtravs Nov 12, 2026
33a10f7
Describe binary64 only in the design pages and the guide
jtravs Nov 12, 2026
f9ad54e
Check the delayed-response channels once, at translation
jtravs Nov 12, 2026
6cdd21d
Run the private gated plasma benchmark on native
jtravs Nov 12, 2026
ef1634a
Give PIController.__init_subclass__ no keyword parameters
jtravs Nov 12, 2026
e4c0e0a
Collapse the backend registry to its two backends
jtravs Nov 12, 2026
88e8ba1
Merge the retired reference-only methods and the native gated plasma …
jtravs Nov 12, 2026
82019b5
Remove the hashed precision key from the run record
jtravs Nov 12, 2026
b80cd72
Merge binary64 only, the two-backend registry and the precision key r…
jtravs Nov 12, 2026
e32b415
Merge the docstring diet's properties, ratchet and test-typing fix
jtravs Nov 12, 2026
f8387ab
Read native's thread budget from solprop._process; drop its copy
jtravs Nov 12, 2026
25cb70b
Give the quadrature alarm once, from translate.modal, for both backends
jtravs Nov 12, 2026
cf3e1b1
Check the general route once, at translation; move its derivations
jtravs Nov 12, 2026
c8b1d2d
Move the reference's on-axis scan under numpy_ref
jtravs Nov 12, 2026
de9ff7b
Move the call ledger to backends.ledger; multistep under numpy_ref
jtravs Nov 12, 2026
74853cf
Derive response_order from the compiled leaves instead of storing it
jtravs Nov 12, 2026
c28c829
Derive the coupled flow's Schur factors once, in translate.coupled
jtravs Nov 12, 2026
aab445e
Give the trace harness's engine the one-argument start
jtravs Nov 12, 2026
4d4c0a9
Remove native's *_FIELDS seam tuples and _check_seam
jtravs Nov 12, 2026
aca1400
Describe where native's shared derivations and checks now live
jtravs Nov 12, 2026
fc7eb61
Drop modules that no longer exist from the shard weights
jtravs Nov 12, 2026
0ca49c5
Drop the deleted performance gallery from the examples index
jtravs Nov 12, 2026
57cd3a7
Tighten the size ratchets to the two-backend branch's figures
jtravs Nov 12, 2026
970866a
Type the native-count tests' core stub for strict pyright
jtravs Nov 12, 2026
541928c
Check the four-leaf fixture's structure past the route policy
jtravs Nov 12, 2026
1525916
Expect the registry's refusal of an unknown backend in the settings
jtravs Nov 12, 2026
fdd6989
Refuse an unknown backend by name whatever the integrator
jtravs Nov 12, 2026
557d234
Guard the general route's derivations with the admission's own rule
jtravs Nov 12, 2026
4826159
Check the general leaves' consistency before the route's policy
jtravs Nov 12, 2026
bad6cf7
Name the reason and fix for a recipe's retired keywords
jtravs Nov 12, 2026
b92630d
Make the mlx and two-backend notes agree on the transforms refusal
jtravs Nov 12, 2026
8df6b4f
Drop retired build keys only from a recipe that has a build table
jtravs Nov 12, 2026
a4e8410
Bump the service protocol for the run_options reply's new shape
jtravs Nov 12, 2026
cb017b7
Refuse the gated benchmark on an envelope plasma by name, in Python
jtravs Nov 12, 2026
5c16dcd
Document Derivative's fields and freeze it; type source_absent
jtravs Nov 12, 2026
783f90e
Form response_order once per compiled record
jtravs Nov 12, 2026
26c5ebc
Build both backends' flow records on CoupledFlowFactors
jtravs Nov 12, 2026
4b74de7
Qualify general_memory in general_node_chunk's docstring
jtravs Nov 12, 2026
c2637f2
Unlink the retired single-precision pages from SEPs 33 and 36
jtravs Nov 12, 2026
47ebf5a
Narrow the mis-shaped-certificate test's metric for basedpyright
jtravs Nov 12, 2026
4aaa6f2
Merge the docstring diet's frozen copies, lean rules and property sum…
jtravs Nov 12, 2026
cdd6d1e
Draw the moved backends and translate modules in the layers figure
jtravs Nov 12, 2026
f5393a9
Expect the registry's refusal of an unknown batch backend
jtravs Nov 12, 2026
80dd994
Revert "Read native's thread budget from solprop._process; drop its c…
jtravs Nov 12, 2026
196394d
Say the native wheel imports without solprop, its budget reader a copy
jtravs Nov 12, 2026
bfe079f
Merge main after the docstring diet landed
jtravs Nov 12, 2026
1acdffc
Adapt three tests from main to the two-backend branch
jtravs Nov 12, 2026
2bfb1b1
Close the two-backend branch's coverage gaps: delete dead paths, test…
jtravs Nov 12, 2026
1dc64b5
Keep the general route's field-grid refusal, named before the axis ch…
jtravs Nov 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions benchmarks/ab.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@ def arm_environment(settings: list[str]) -> dict[str, str]:


def arm_configuration(configuration: Record, backend: str) -> Record:
"""Return one arm's configuration: its backend, in double precision."""
return {**configuration, "backend": backend, "precision": "double"}
"""Return one arm's configuration: its backend."""
return {**configuration, "backend": backend}


def arm_order(round_index: int) -> tuple[str, ...]:
Expand Down
24 changes: 6 additions & 18 deletions benchmarks/builders.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,21 +80,18 @@ def integrator(stepper: str) -> Multistep | RungeKutta | None:


def variant(configuration: Record) -> Record:
"""Return the keywords that turn a case into its backend, precision, noise and grid.
"""Return the keywords that turn a case into its backend, noise and grid.

``precision`` is ``"double"`` unless the configuration names it. A single-precision
run, or one asked for ``noise="none"``,
is noiseless: no seed and no noise model, so that a cross-backend A/B compares
one workload. ``fft_size="pow2"`` rebuilds the case's time grid at the next power
of two; the transverse grids are kept, as their sizes set the physics.
A run asked for ``noise="none"`` is noiseless: no seed and no noise model, so that
a cross-backend A/B compares one workload. ``fft_size="pow2"`` rebuilds the case's
time grid at the next power of two; the transverse grids are kept, as their sizes
set the physics.
"""
precision = configuration.get("precision") or "double"
noiseless = precision == "single" or configuration.get("noise") == "none"
noiseless = configuration.get("noise") == "none"
fft_size = configuration.get("fft_size") or "case"
if fft_size not in ("case", "pow2"):
raise SuiteError(f"unknown fft_size {fft_size}")
return {
"precision": precision,
"noiseless": noiseless,
"fft_size": fft_size,
"backend": configuration["backend"],
Expand Down Expand Up @@ -151,7 +148,6 @@ def capillary(name: str, options: Record | None = None) -> Simulation:
energy=275e-6,
modes=4 if name == "rdw" else 1,
mode_average=averaged,
precision=options["precision"],
backend=options["backend"],
**_limits(options, 1.5, 800e-9, (90e-9, 4e-6), 400e-15),
**_launch(options),
Expand All @@ -167,7 +163,6 @@ def capillary(name: str, options: Record | None = None) -> Simulation:
energy=10e-6,
modes=3,
loss=0.0,
precision=options["precision"],
backend=options["backend"],
**_limits(options, 0.13, 515e-9, (220e-9, 4e-6), 2e-12),
**_launch(options),
Expand All @@ -187,7 +182,6 @@ def capillary(name: str, options: Record | None = None) -> Simulation:
modes=1 if name == "ctc_reduced" else 2,
raman=True,
temperature=294.0,
precision=options["precision"],
backend=options["backend"],
**_limits(options, 0.1, 515e-9, (250e-9, 2e-6), 2e-12),
**_launch(options),
Expand All @@ -205,7 +199,6 @@ def capillary(name: str, options: Record | None = None) -> Simulation:
modes=1,
envelope=name == "argon_blueshift_envelope",
mode_average=averaged,
precision=options["precision"],
backend=options["backend"],
**_limits(
options,
Expand All @@ -230,7 +223,6 @@ def capillary(name: str, options: Record | None = None) -> Simulation:
plasma=False,
modes=1,
mode_average=True,
precision=options["precision"],
backend=options["backend"],
**_limits(options, 0.4, 1030e-9, (200e-9, 4e-6), 800e-15),
**_launch(options),
Expand All @@ -249,7 +241,6 @@ def capillary(name: str, options: Record | None = None) -> Simulation:
raman=True,
modes=1,
mode_average=averaged,
precision=options["precision"],
backend=options["backend"],
**_limits(options, 2.0, 1030e-9, (400e-9, 4e-6), 6e-12),
**_launch(options),
Expand Down Expand Up @@ -286,7 +277,6 @@ def soliton(length: float, options: Record, **keywords: Any) -> Simulation:
# and a seed would make it a different workload (SEP 37 measured 65 times
# the steps with one).
noise=None,
precision=options["precision"],
backend=options["backend"],
**_limits(options, length, 835e-9, (500e-9, 2e-6), 4e-12, envelope=True),
**keywords,
Expand Down Expand Up @@ -332,7 +322,6 @@ def gnlse(name: str, options: Record | None = None) -> Simulation:
peak_power=10e3,
raman=True,
shock=True,
precision=options["precision"],
backend=options["backend"],
**_limits(options, 0.15, 835e-9, (400e-9, 2e-6), 12.5e-12, envelope=True),
**_launch(options),
Expand Down Expand Up @@ -591,7 +580,6 @@ def build(configuration: Record) -> Simulation:
options = variant(configuration)
if case.builder in ("kerr", "spatial"):
settings = SimulationSettings(
precision=options["precision"],
save_planes=itinerary,
dz_max=case.length,
dz_init=case.length * 1e-4,
Expand Down
6 changes: 2 additions & 4 deletions benchmarks/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,9 +185,8 @@ def configuration(
"""Resolve one measurement without constructing a scientific object.

On a device build, `width` is the host's thread count and `device` says the
native backend must run on the accelerator. Every backend runs in double
precision; ``noise="none"`` drops the case's noise and
``fft_size="pow2"`` rebuilds its time grid at a power of two
native backend must run on the accelerator. ``noise="none"`` drops the case's
noise and ``fft_size="pow2"`` rebuilds its time grid at a power of two
(``benchmarks.builders.variant``).
"""
if stepper not in self.steppers:
Expand All @@ -201,7 +200,6 @@ def configuration(
"stepper": stepper,
"threads": width,
"backend": backend,
"precision": "double",
"noise": noise,
"fft_size": fft_size,
"device": device,
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/sessions.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def fibre(
itinerary : list of float
The save planes, m, the last at `stop`.
options : dict
The backend, precision and grid variant (``benchmarks.builders.variant``).
The backend, noise and grid variant (``benchmarks.builders.variant``).

Returns
-------
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/track.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def selection_options(parser: argparse.ArgumentParser) -> None:
"--backend",
choices=BACKENDS,
default="native",
help="every backend runs in double precision",
help="the backend every case runs on",
)
parser.add_argument(
"--noise",
Expand Down
1 change: 0 additions & 1 deletion benchmarks/worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -717,7 +717,6 @@ def measure(
"counted": counters,
"repeat_difference": _repeat_difference(finals),
"integrator": integrator_label(stepper.integrator),
"precision": configuration.get("precision", "double"),
"rtol": controller.rtol,
"atol": controller.atol,
"noise": simulation.noise_resolution.resolved
Expand Down
1 change: 1 addition & 0 deletions changelog.d/binary64-only.removed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Single and mixed precision are retired: solprop computes in IEEE 754 binary64 only ([ADR-077](docs/dev/decisions.md)). The `precision` keyword of `SimulationSettings`, the `Simulation.from_*` constructors and the `prop_*` functions, and a recipe's `precision` key, are gone (a recipe's `precision = "double"` is dropped, so an old recipe still loads, and any other value is refused naming ADR-077); so are `solprop.translate.precision`, the `precision` field of `PropagationProblem` and the `precision` argument of `assemble`, the reference's binary32 path (`NumpySingleBackend`), `SINGLE_PRECISION_NOISE`, `solprop.driver.defaults.rtol_in_precision`, the `precision` argument of `default_rtol`, `default_controller`, `default_integrator`, `resolve_noise` and `solprop.backends.registry.available`, the run summary's precision row, the `precision` field of `solprop_native.BuildInfo`, and the guide's single-precision page and gallery example. The kernel's `run_options` reply lists the installed backends under `backends`, in place of `double` and `single`. Output written in single precision still opens.
1 change: 1 addition & 0 deletions changelog.d/cf4-coupled-flow.removed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Removed the CF4 coupled-flow sections (ADR-077): `CoherentWall`'s `method`, `growth_limit` and `fallback` keywords, `solprop.translate.coupled.cf4_flow`, `cf4_defect`, `cf4_growth_bound`, `CF4_NODES`, `CF4_WEIGHTS` and `CF4_GROWTH_LIMIT`, the `"cf4"` section method, and the `flow.cf4` entry of a coherent wall's run record. They ran on `numpy_ref` alone; a recipe that gives one is refused with that reason. A varying coherent wall is integrated by the frozen-residual split, as by default; to shorten its advisory step, divide the sections (`CoherentWall(sections=...)`) or cap the step.
1 change: 1 addition & 0 deletions changelog.d/comparison-multistep.removed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Removed `solprop.stepper.multistep.ComparisonMultistep`, the benchmark-only Adams variants SEP 13 compared and did not select (PECE, explicit Adams–Bashforth, the matched predictor–corrector pairs and their Hermite dense interpolant), with the reference's general Adams path that stepped them, `milne_factor`, `defect_integral`, the `Corrector` and `Interpolant` types, `Multistep.corrector`, `Multistep.corrector_nodes` and `IntegrationSpec.reference_only` (ADR-077). Use `Multistep()`; `Multistep(order=q, variable_order=False, formulation="interaction")` is the one-order-higher PEC variant the comparison family also named.
1 change: 1 addition & 0 deletions changelog.d/final-pi-controller.breaking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`PIController` is final: defining a subclass raises `StepperError` (ADR-077). Both backends implement its decisions and its norm (`scale`, `accepts`, `propose`, `rejection_factor`, `start_factor`, `equivalent_norm`) themselves, so a subclass that overrode one would have stepped differently on each; it ran on `numpy_ref` alone and native refused it. Set the controller's fields instead.
1 change: 0 additions & 1 deletion changelog.d/native-comparison-variants.breaking.md

This file was deleted.

13 changes: 13 additions & 0 deletions changelog.d/native-numpy-ref-decoupled.breaking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
The general modal route's and the coupled flow's admission is part of the problem's own
validation (`solprop.translate.admission.check_general_route`), raised once as a
`TranslationError` naming solprop rather than as a `BackendError` from each backend;
`solprop.backends.numpy_ref.admission` and `refuse_general_leaves` are removed. The
general route's derivations moved to `solprop.translate.general` (`node_kerr_tensor`,
`node_kerr_form`, `node_delayed_maps`) and its node chunk to `solprop.backends.node_chunk`
(`general_node_chunk`, `general_planned_chunk`); the quadrature alarm is
`solprop.translate.modal.QUADRATURE_ALARM`, logged on the `solprop.translate.modal`
logger; the Adams call ledger is `solprop.backends.ledger.CallLedger`, and the
reference's Adams module is `solprop.backends.numpy_ref.multistep`.
`CompiledResponses.response_order` is derived from the compiled leaves and is no longer a
constructor argument. `solprop_native` no longer exports the `*_FIELDS` seam tuples, and
`check_build` no longer looks seam members up.
1 change: 0 additions & 1 deletion changelog.d/native-reference-only-controllers.breaking.md

This file was deleted.

1 change: 1 addition & 0 deletions changelog.d/precision-resume-key.breaking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
A run's configuration no longer records a `precision`, which every run recorded since SEP 33, so the resume key of every run changes once ([ADR-077](docs/dev/decisions.md)): a run started on an earlier release is refused a resume on this one, naming the change. Finish in-flight runs, and resume stopped ones, on the release that started them before upgrading; their output still opens.
2 changes: 1 addition & 1 deletion changelog.d/saved-plane-copies.changed.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
A saved plane makes fewer field-sized copies, with the same stored bits. A field the backend made for the observation alone (the native backend's host copy, the reference's widened single-precision state) is converted to true-power amplitudes where it is, so a modal plane on `native` makes two field-sized arrays where it made three, and a unit-weight one no longer copies the field at all before storing it. The reference's single-precision observation scales its widened state in place, one array fewer, and a plane observer and a failure checkpoint at a plane that kept no field now share one fetch of it. This partly addresses [#346](https://github.com/LupoLab/solprop/issues/346), as SEP 47's early copy elisions; a large spatial plane on `native` still makes its host copy and its stored copy.
A saved plane makes fewer field-sized copies, with the same stored bits. A field the backend made for the observation alone (the native backend's host copy) is converted to true-power amplitudes where it is, so a modal plane on `native` makes two field-sized arrays where it made three, and a unit-weight one no longer copies the field at all before storing it. A plane observer and a failure checkpoint at a plane that kept no field now share one fetch of it. This partly addresses [#346](https://github.com/LupoLab/solprop/issues/346), as SEP 47's early copy elisions; a large spatial plane on `native` still makes its host copy and its stored copy.
2 changes: 1 addition & 1 deletion changelog.d/sep-0047-retire-mlx.removed.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
The experimental `mlx` backend for Apple GPUs is retired ([SEP 47](docs/dev/seps/archive/sep-0047-run-ownership.md) §6.6): `backend="mlx"`, in a call or a recipe, raises `BackendError` and never runs on another backend, and output that records it still opens. The `solprop[mlx]` extra, the front end's MLX choice and the `metal` entry of the kernel's run options are gone; the front end shows a recipe's unavailable backend as it is named, and picking a binary64 backend for a single-precision recipe returns it to double precision. Single precision runs on `numpy_ref`, named explicitly; `precision="single"` with `backend="auto"` is refused. With MLX's transform costs gone, the `transforms` keyword of `FieldGrid.from_limits` and `EnvelopeGrid.from_limits` (a recipe grid that gives it is refused, naming SEP 47), the `library` argument of `solprop.grid.fft_cost`, `solprop.grid.TransformLibrary` and `TRANSFORM_LIBRARIES`, `solprop.backends.registry.metal_available` and `SINGLE_ONLY`, and the `mlx_*` and `single_precision_rows` sizes of `solprop.backends.memory` are removed.
The experimental `mlx` backend for Apple GPUs is retired ([SEP 47](docs/dev/seps/archive/sep-0047-run-ownership.md) §6.6): `backend="mlx"`, in a call or a recipe, raises `BackendError` and never runs on another backend, and output that records it still opens. The `solprop[mlx]` extra, the front end's MLX choice and the `metal` entry of the kernel's run options are gone; the front end shows a recipe's unavailable backend as it is named. With MLX's transform costs gone, the `transforms` keyword of `FieldGrid.from_limits` and `EnvelopeGrid.from_limits` (a recipe grid that gives it is refused, naming SEP 47 and the fix, as are the keys ADR-077 retired), the `library` argument of `solprop.grid.fft_cost`, `solprop.grid.TransformLibrary` and `TRANSFORM_LIBRARIES`, `solprop.backends.registry.metal_available` and `SINGLE_ONLY`, and the `mlx_*` and `single_precision_rows` sizes of `solprop.backends.memory` are removed.
3 changes: 1 addition & 2 deletions changelog.d/sep-0047-step-driver-removed.removed.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ The legacy step driver `solprop.backends.driver` (`StepDriver`), the Adams march
are removed ([SEP 47](docs/dev/seps/archive/sep-0047-run-ownership.md) section 6.8): the native
backend runs every run in its native session and inherits no Python step loop, and the
NumPy reference marches with its own `solprop.backends.host` classes. `reached` and
`replay_tolerance` are now in `solprop.stepper.schedule`, and `refuse_general_leaves` in
`solprop.backends.numpy_ref.admission`. A native backend's direct stepping members
`replay_tolerance` are now in `solprop.stepper.schedule`. A native backend's direct stepping members
(`set_initial`, `propagate_to`, `observe`, `stats`, `attach_monitor` and the rest) are
gone with them: start a run with `backend.prepare(problem, request).start(start)` or
`solprop.backends.sessions.start_session`.
1 change: 1 addition & 0 deletions changelog.d/spectral-responses-leaf.removed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Removed `CompiledResponses.spectral_responses` and `Flags.has_spectral_responses` from the kernel contract. The tuple could only repeat `envelope_plasma`, which carries the envelope plasma's post-transform assembly alone, and the refusals that read the flag could not be reached.
1 change: 1 addition & 0 deletions changelog.d/two-backends.removed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
solprop has exactly two backends, `native` and `numpy_ref`, with no tiers and no plugin backends ([ADR-077](docs/dev/decisions.md)). `solprop.backends.registry.BACKENDS`, `BackendEntry`, `REMOVED_BACKENDS` and `FAR_FIELD_BACKENDS` are removed; `BACKEND_NAMES` lists the two. A backend name that is neither, `numba_cpu` and `mlx` included, now raises `BackendError` naming both wherever it is requested, where `select` raised `ValueError` for an unknown one; output and snapshots that record a retired backend still load.
42 changes: 0 additions & 42 deletions docs/auto_examples/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -452,47 +452,6 @@ planar compressor.
</div>


.. thumbnail-parent-div-close

.. raw:: html

</div>

Performance
-----------

Running the same physics in less memory: single precision on the reference backend,
compared with binary64.


.. raw:: html

<div id='sg-tag-list' class='sphx-glr-tag-list'></div>


.. raw:: html

<div class="sphx-glr-thumbnails">

.. thumbnail-parent-div-open

.. raw:: html

<div class="sphx-glr-thumbcontainer" tooltip="A run can hold its field and evaluate its nonlinear response in binary32 with precision=&quot;single&quot;, which halves the memory of every field-sized buffer. Whether a problem keeps its accuracy in binary32 is a property of the problem, so this example runs two of them both ways and compares: the photoionisation blue shift of /auto_examples/processes/plot_06_ionisation_blue_shift, here over its first 0.2 m, and a short radial argon filament, both on field grids with the field-grid plasma. Each runs in binary64 on the default backend, native, and in binary32 on the reference backend, numpy_ref, which is named explicitly: it is the backend that runs single precision.">

.. only:: html

.. image:: /auto_examples/performance/images/thumb/sphx_glr_plot_01_single_precision_thumb.png
:alt:

:doc:`/auto_examples/performance/plot_01_single_precision`

.. raw:: html

<div class="sphx-glr-thumbnail-title">Single precision</div>
</div>


.. thumbnail-parent-div-close

.. raw:: html
Expand All @@ -508,5 +467,4 @@ compared with binary64.
/auto_examples/processes/index.rst
/auto_examples/supercontinuum/index.rst
/auto_examples/waveguides/index.rst
/auto_examples/performance/index.rst

Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Loading