[package]
edition = "2021"
rust-version = "1.81"
name = "semiflow"
version = "0.15.0-beta"
authors = ["Ilia Volkov <ilia.volkov@outlook.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "no_std Rust PDE solver: evolution equations via Chernoff approximation of operator semigroups (heat, diffusion, Schrodinger)"
homepage = "https://github.com/VolkovIlia/semiflow"
documentation = "https://docs.rs/semiflow"
readme = "README.md"
keywords = [
"pde",
"semigroup",
"numerical",
"diffusion",
"simulation",
]
categories = [
"mathematics",
"science",
"no-std",
"algorithms",
"simulation",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/VolkovIlia/semiflow"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = ["simd"]
diff-scipy = []
linear-interp = []
parallel = ["std"]
s3-poc = []
simd = []
slow-tests = []
std = [
"num-traits/std",
"num-complex/std",
]
tracking-alloc = []
[lib]
name = "semiflow"
path = "src/lib.rs"
[[example]]
name = "boundary_demo"
path = "examples/boundary_demo.rs"
[[example]]
name = "cev_european_call"
path = "examples/cev_european_call.rs"
[[example]]
name = "graph_par_speedup"
path = "examples/graph_par_speedup.rs"
[[example]]
name = "heat_2d_demo"
path = "examples/heat_2d_demo.rs"
[[example]]
name = "heston_pricer"
path = "examples/heston_pricer.rs"
[[example]]
name = "latency_tail"
path = "examples/latency_tail.rs"
[[example]]
name = "perf_suite"
path = "examples/perf_suite.rs"
[[example]]
name = "resolvent_perf"
path = "examples/resolvent_perf.rs"
[[example]]
name = "rough_heston_pricer"
path = "examples/rough_heston_pricer.rs"
[[example]]
name = "sabr_pricer"
path = "examples/sabr_pricer.rs"
[[example]]
name = "strang_advdiff_demo"
path = "examples/strang_advdiff_demo.rs"
[[test]]
name = "adaptive_2d_heat"
path = "tests/adaptive_2d_heat.rs"
[[test]]
name = "adaptive_cev_efficiency"
path = "tests/adaptive_cev_efficiency.rs"
[[test]]
name = "adaptive_chernoff_consistency"
path = "tests/adaptive_chernoff_consistency.rs"
[[test]]
name = "adaptive_classical_bit_equal"
path = "tests/adaptive_classical_bit_equal.rs"
[[test]]
name = "adaptive_f9_cev_variance"
path = "tests/adaptive_f9_cev_variance.rs"
[[test]]
name = "adaptive_generic_f32"
path = "tests/adaptive_generic_f32.rs"
[[test]]
name = "adaptive_unit"
path = "tests/adaptive_unit.rs"
[[test]]
name = "adjoint_basics"
path = "tests/adjoint_basics.rs"
[[test]]
name = "adjoint_zero_alloc"
path = "tests/adjoint_zero_alloc.rs"
[[test]]
name = "adversarial_qa_probe"
path = "tests/adversarial_qa_probe.rs"
[[test]]
name = "aniso_nd_moment"
path = "tests/aniso_nd_moment.rs"
[[test]]
name = "anisotropic_shift_nd_d2_slope"
path = "tests/anisotropic_shift_nd_d2_slope.rs"
[[test]]
name = "anisotropic_shift_nd_d3_slope"
path = "tests/anisotropic_shift_nd_d3_slope.rs"
[[test]]
name = "anisotropic_shift_nd_d4_slope"
path = "tests/anisotropic_shift_nd_d4_slope.rs"
[[test]]
name = "anisotropic_shift_nd_d5_slope"
path = "tests/anisotropic_shift_nd_d5_slope.rs"
[[test]]
name = "apply_into_byte_equal"
path = "tests/apply_into_byte_equal.rs"
[[test]]
name = "approximation_subspace"
path = "tests/approximation_subspace.rs"
[[test]]
name = "binding_adjoint_fp_parity"
path = "tests/binding_adjoint_fp_parity.rs"
[[test]]
name = "binding_carnot_cplx3_parity"
path = "tests/binding_carnot_cplx3_parity.rs"
[[test]]
name = "binding_greeks_parity"
path = "tests/binding_greeks_parity.rs"
[[test]]
name = "binding_obstacle_gamma_parity"
path = "tests/binding_obstacle_gamma_parity.rs"
[[test]]
name = "binding_resolvent_jump_nd_parity"
path = "tests/binding_resolvent_jump_nd_parity.rs"
[[test]]
name = "binding_resolvent_jump_parity"
path = "tests/binding_resolvent_jump_parity.rs"
[[test]]
name = "binding_reverse_ad_parity"
path = "tests/binding_reverse_ad_parity.rs"
[[test]]
name = "binding_smolyak_parity"
path = "tests/binding_smolyak_parity.rs"
[[test]]
name = "binding_wentzell_parity"
path = "tests/binding_wentzell_parity.rs"
[[test]]
name = "boundary_dirichlet_neumann_round_trip"
path = "tests/boundary_dirichlet_neumann_round_trip.rs"
[[test]]
name = "boundary_linear_extrap"
path = "tests/boundary_linear_extrap.rs"
[[test]]
name = "boundary_periodic"
path = "tests/boundary_periodic.rs"
[[test]]
name = "capture_trace_v1"
path = "tests/capture_trace_v1.rs"
[[test]]
name = "cev_boundary_stress"
path = "tests/cev_boundary_stress.rs"
[[test]]
name = "cev_european_call"
path = "tests/cev_european_call.rs"
[[test]]
name = "cev_european_call_sweep"
path = "tests/cev_european_call_sweep.rs"
[[test]]
name = "cev_high_lam_oracle"
path = "tests/cev_high_lam_oracle.rs"
[[test]]
name = "cheb_stiff_regime"
path = "tests/cheb_stiff_regime.rs"
[[test]]
name = "chernoff1d_parallel_bit_equal"
path = "tests/chernoff1d_parallel_bit_equal.rs"
[[test]]
name = "chernoff_f32_native"
path = "tests/chernoff_f32_native.rs"
[[test]]
name = "conservative_degenerate"
path = "tests/conservative_degenerate.rs"
[[test]]
name = "conservative_gates"
path = "tests/conservative_gates.rs"
[[test]]
name = "convergence_graph"
path = "tests/convergence_graph.rs"
[[test]]
name = "convergence_rate"
path = "tests/convergence_rate.rs"
[[test]]
name = "convergence_rate_4th"
path = "tests/convergence_rate_4th.rs"
[[test]]
name = "convergence_rate_6th"
path = "tests/convergence_rate_6th.rs"
[[test]]
name = "convergence_rate_6th_2d"
path = "tests/convergence_rate_6th_2d.rs"
[[test]]
name = "convergence_rate_strang"
path = "tests/convergence_rate_strang.rs"
[[test]]
name = "convergence_rate_variable"
path = "tests/convergence_rate_variable.rs"
[[test]]
name = "default_bridge_compat"
path = "tests/default_bridge_compat.rs"
[[test]]
name = "diff_scipy"
path = "tests/diff_scipy.rs"
[[test]]
name = "diffusion4_unit"
path = "tests/diffusion4_unit.rs"
[[test]]
name = "diffusion6_unit"
path = "tests/diffusion6_unit.rs"
[[test]]
name = "diffusion_const_a"
path = "tests/diffusion_const_a.rs"
[[test]]
name = "diffusion_with_closure"
path = "tests/diffusion_with_closure.rs"
[[test]]
name = "dual_ad_gradient"
path = "tests/dual_ad_gradient.rs"
[[test]]
name = "dual_zero_alloc"
path = "tests/dual_zero_alloc.rs"
[[test]]
name = "evolve_with_traj_zero_alloc"
path = "tests/evolve_with_traj_zero_alloc.rs"
[[test]]
name = "expmv_div_form_action_accuracy"
path = "tests/expmv_div_form_action_accuracy.rs"
[[test]]
name = "frechet_decay_skip_scaling"
path = "tests/frechet_decay_skip_scaling.rs"
[[test]]
name = "frozen_coeff_operator"
path = "tests/frozen_coeff_operator.rs"
[[test]]
name = "g11_magnus_graph_slope"
path = "tests/g11_magnus_graph_slope.rs"
[[test]]
name = "g12_graph_traj_slope"
path = "tests/g12_graph_traj_slope.rs"
[[test]]
name = "g13_var_coef_slope"
path = "tests/g13_var_coef_slope.rs"
[[test]]
name = "g14_jump_resolution"
path = "tests/g14_jump_resolution.rs"
[[test]]
name = "g15_self_adjoint_identity"
path = "tests/g15_self_adjoint_identity.rs"
[[test]]
name = "g16_dual_pairing"
path = "tests/g16_dual_pairing.rs"
[[test]]
name = "g17_magnus6_slope"
path = "tests/g17_magnus6_slope.rs"
[[test]]
name = "g18_schrodinger_unitarity"
path = "tests/g18_schrodinger_unitarity.rs"
[[test]]
name = "g19_harmonic_oscillator"
path = "tests/g19_harmonic_oscillator.rs"
[[test]]
name = "g20_nonseparable_alias_identity"
path = "tests/g20_nonseparable_alias_identity.rs"
[[test]]
name = "g31_star_mass_conservation"
path = "tests/g31_star_mass_conservation.rs"
[[test]]
name = "g_adaptive_q"
path = "tests/g_adaptive_q.rs"
[[test]]
name = "g_adjoint_fp_order"
path = "tests/g_adjoint_fp_order.rs"
[[test]]
name = "g_as_zeta2_ddim"
path = "tests/g_as_zeta2_ddim.rs"
[[test]]
name = "g_carnot_cplx3_slope"
path = "tests/g_carnot_cplx3_slope.rs"
[[test]]
name = "g_cheb_sqrt_cost"
path = "tests/g_cheb_sqrt_cost.rs"
[[test]]
name = "g_cplx_matrix"
path = "tests/g_cplx_matrix.rs"
[[test]]
name = "g_cplx_res"
path = "tests/g_cplx_res.rs"
[[test]]
name = "g_cross_diffusion"
path = "tests/g_cross_diffusion.rs"
[[test]]
name = "g_cross_diffusion_reject"
path = "tests/g_cross_diffusion_reject.rs"
[[test]]
name = "g_dirichlet_order2"
path = "tests/g_dirichlet_order2.rs"
[[test]]
name = "g_dr_zeta4_truthful_order"
path = "tests/g_dr_zeta4_truthful_order.rs"
[[test]]
name = "g_etd_adjoint_fd"
path = "tests/g_etd_adjoint_fd.rs"
[[test]]
name = "g_etd_affine_exact"
path = "tests/g_etd_affine_exact.rs"
[[test]]
name = "g_etdrk4_order"
path = "tests/g_etdrk4_order.rs"
[[test]]
name = "g_etdrk4_sweeps"
path = "tests/g_etdrk4_sweeps.rs"
[[test]]
name = "g_frechet_bilinear_one_pass"
path = "tests/g_frechet_bilinear_one_pass.rs"
[[test]]
name = "g_frechet_cost_log_nodes"
path = "tests/g_frechet_cost_log_nodes.rs"
[[test]]
name = "g_frechet_large_t_oracle"
path = "tests/g_frechet_large_t_oracle.rs"
[[test]]
name = "g_gate_helper_nonfinite"
path = "tests/g_gate_helper_nonfinite.rs"
[[test]]
name = "g_gridless"
path = "tests/g_gridless.rs"
[[test]]
name = "g_gridless_cv"
path = "tests/g_gridless_cv.rs"
[[test]]
name = "g_gridless_memory"
path = "tests/g_gridless_memory.rs"
[[test]]
name = "g_gridless_multilevel"
path = "tests/g_gridless_multilevel.rs"
[[test]]
name = "g_gridless_rqmc"
path = "tests/g_gridless_rqmc.rs"
[[test]]
name = "g_gridless_ttrank"
path = "tests/g_gridless_ttrank.rs"
[[test]]
name = "g_hard_wall_order2"
path = "tests/g_hard_wall_order2.rs"
[[test]]
name = "g_kahler_curv"
path = "tests/g_kahler_curv.rs"
[[test]]
name = "g_killing_order2"
path = "tests/g_killing_order2.rs"
[[test]]
name = "g_lanczos_hl_cost"
path = "tests/g_lanczos_hl_cost.rs"
[[test]]
name = "g_matrix_2d3d"
path = "tests/g_matrix_2d3d.rs"
[[test]]
name = "g_matrix_exp_small_m"
path = "tests/g_matrix_exp_small_m.rs"
[[test]]
name = "g_matrix_pade_m5"
path = "tests/g_matrix_pade_m5.rs"
[[test]]
name = "g_nonfinite_bound_reject"
path = "tests/g_nonfinite_bound_reject.rs"
[[test]]
name = "g_phi_aug_dense"
path = "tests/g_phi_aug_dense.rs"
[[test]]
name = "g_phi_combination_dense"
path = "tests/g_phi_combination_dense.rs"
[[test]]
name = "g_phi_cost_v_invariant"
path = "tests/g_phi_cost_v_invariant.rs"
[[test]]
name = "g_phi_general_dense"
path = "tests/g_phi_general_dense.rs"
[[test]]
name = "g_phi_krylov"
path = "tests/g_phi_krylov.rs"
[[test]]
name = "g_phi_mass_dense"
path = "tests/g_phi_mass_dense.rs"
[[test]]
name = "g_phi_shift"
path = "tests/g_phi_shift.rs"
[[test]]
name = "g_qschrod"
path = "tests/g_qschrod.rs"
[[test]]
name = "g_rational_krylov"
path = "tests/g_rational_krylov.rs"
[[test]]
name = "g_resolvent_jump_2d_order"
path = "tests/g_resolvent_jump_2d_order.rs"
[[test]]
name = "g_resolvent_jump_3d_order"
path = "tests/g_resolvent_jump_3d_order.rs"
[[test]]
name = "g_resolvent_jump_order"
path = "tests/g_resolvent_jump_order.rs"
[[test]]
name = "g_reverse_ad"
path = "tests/g_reverse_ad.rs"
[[test]]
name = "g_reverse_ad_advantage"
path = "tests/g_reverse_ad_advantage.rs"
[[test]]
name = "g_reverse_ad_kvector"
path = "tests/g_reverse_ad_kvector.rs"
[[test]]
name = "g_reverse_ad_structure"
path = "tests/g_reverse_ad_structure.rs"
[[test]]
name = "g_richardson"
path = "tests/g_richardson.rs"
[[test]]
name = "g_s3_dense_coupling"
path = "tests/g_s3_dense_coupling.rs"
[[test]]
name = "g_s3_drift_spectral"
path = "tests/g_s3_drift_spectral.rs"
[[test]]
name = "g_s3_nonlinear"
path = "tests/g_s3_nonlinear.rs"
[[test]]
name = "g_s3_nonsep_varcoef"
path = "tests/g_s3_nonsep_varcoef.rs"
[[test]]
name = "g_s3_varcoef_spectral"
path = "tests/g_s3_varcoef_spectral.rs"
[[test]]
name = "g_semilinear"
path = "tests/g_semilinear.rs"
[[test]]
name = "g_smolyak_d5"
path = "tests/g_smolyak_d5.rs"
[[test]]
name = "g_smolyak_d6"
path = "tests/g_smolyak_d6.rs"
[[test]]
name = "g_spdr_implicit_cross"
path = "tests/g_spdr_implicit_cross.rs"
[[test]]
name = "g_spdr_linear_cost"
path = "tests/g_spdr_linear_cost.rs"
[[test]]
name = "g_spdr_overflow_robust"
path = "tests/g_spdr_overflow_robust.rs"
[[test]]
name = "g_spdr_pcg_dense"
path = "tests/g_spdr_pcg_dense.rs"
[[test]]
name = "g_spdr_phi1_limit"
path = "tests/g_spdr_phi1_limit.rs"
[[test]]
name = "g_spdr_reject"
path = "tests/g_spdr_reject.rs"
[[test]]
name = "g_spdr_robust"
path = "tests/g_spdr_robust.rs"
[[test]]
name = "g_spdr_steady_mms"
path = "tests/g_spdr_steady_mms.rs"
[[test]]
name = "g_spdr_tridiag_dense"
path = "tests/g_spdr_tridiag_dense.rs"
[[test]]
name = "g_step_plan_bit_equal"
path = "tests/g_step_plan_bit_equal.rs"
[[test]]
name = "g_step_plan_consumers"
path = "tests/g_step_plan_consumers.rs"
[[test]]
name = "g_step_plan_used"
path = "tests/g_step_plan_used.rs"
[[test]]
name = "g_step_plan_zero_alloc"
path = "tests/g_step_plan_zero_alloc.rs"
[[test]]
name = "g_stiff_kinetics"
path = "tests/g_stiff_kinetics.rs"
[[test]]
name = "g_stiff_kinetics_nodes"
path = "tests/g_stiff_kinetics_nodes.rs"
[[test]]
name = "g_symop_compose_exact"
path = "tests/g_symop_compose_exact.rs"
[[test]]
name = "g_symop_implicit_dense"
path = "tests/g_symop_implicit_dense.rs"
[[test]]
name = "g_symop_implicit_pcg_cap"
path = "tests/g_symop_implicit_pcg_cap.rs"
[[test]]
name = "g_symop_implicit_pcg_spd"
path = "tests/g_symop_implicit_pcg_spd.rs"
[[test]]
name = "g_symop_implicit_stiff"
path = "tests/g_symop_implicit_stiff.rs"
[[test]]
name = "g_tt_band_converge"
path = "tests/g_tt_band_converge.rs"
[[test]]
name = "g_tt_chernoff"
path = "tests/g_tt_chernoff.rs"
[[test]]
name = "g_tt_coupled"
path = "tests/g_tt_coupled.rs"
[[test]]
name = "g_tt_coupled_converge"
path = "tests/g_tt_coupled_converge.rs"
[[test]]
name = "g_tt_strang_identity"
path = "tests/g_tt_strang_identity.rs"
[[test]]
name = "g_tt_varcoef"
path = "tests/g_tt_varcoef.rs"
[[test]]
name = "g_wentzell_order"
path = "tests/g_wentzell_order.rs"
[[test]]
name = "g_wentzell_stable"
path = "tests/g_wentzell_stable.rs"
[[test]]
name = "general_operator_gates"
path = "tests/general_operator_gates.rs"
[[test]]
name = "generic_float_smoke"
path = "tests/generic_float_smoke.rs"
[[test]]
name = "generic_float_strang"
path = "tests/generic_float_strang.rs"
[[test]]
name = "generic_float_strang_f32_regime"
path = "tests/generic_float_strang_f32_regime.rs"
[[test]]
name = "graph_adjoint_sampled_parity"
path = "tests/graph_adjoint_sampled_parity.rs"
[[test]]
name = "graph_apply_into_zero_alloc"
path = "tests/graph_apply_into_zero_alloc.rs"
[[test]]
name = "graph_apply_into_zero_alloc_magnus"
path = "tests/graph_apply_into_zero_alloc_magnus.rs"
[[test]]
name = "graph_expmv_dense"
path = "tests/graph_expmv_dense.rs"
[[test]]
name = "graph_expmv_depth_flat"
path = "tests/graph_expmv_depth_flat.rs"
[[test]]
name = "graph_frechet_fd"
path = "tests/graph_frechet_fd.rs"
[[test]]
name = "graph_g10_zeta4_slope"
path = "tests/graph_g10_zeta4_slope.rs"
[[test]]
name = "graph_g8_zeta_a_slope"
path = "tests/graph_g8_zeta_a_slope.rs"
[[test]]
name = "graph_g9_strang_slope"
path = "tests/graph_g9_strang_slope.rs"
[[test]]
name = "graph_g_k6_slope"
path = "tests/graph_g_k6_slope.rs"
[[test]]
name = "graph_heat6_basics"
path = "tests/graph_heat6_basics.rs"
[[test]]
name = "graph_heat6_zero_alloc"
path = "tests/graph_heat6_zero_alloc.rs"
[[test]]
name = "graph_heat_oracle"
path = "tests/graph_heat_oracle.rs"
[[test]]
name = "graph_invariants"
path = "tests/graph_invariants.rs"
[[test]]
name = "graph_proptest"
path = "tests/graph_proptest.rs"
[[test]]
name = "graph_proptest_magnus"
path = "tests/graph_proptest_magnus.rs"
[[test]]
name = "graph_traj_basics"
path = "tests/graph_traj_basics.rs"
[[test]]
name = "graph_var_coef_proptest"
path = "tests/graph_var_coef_proptest.rs"
[[test]]
name = "graph_var_coef_zero_alloc"
path = "tests/graph_var_coef_zero_alloc.rs"
[[test]]
name = "grid_batched_ulp"
path = "tests/grid_batched_ulp.rs"
[[test]]
name = "grid_chebyshev_bc_dispatch"
path = "tests/grid_chebyshev_bc_dispatch.rs"
[[test]]
name = "hdr_snapshot"
path = "tests/hdr_snapshot.rs"
[[test]]
name = "heat_2d_nonseparable_aniso_oracle"
path = "tests/heat_2d_nonseparable_aniso_oracle.rs"
[[test]]
name = "heat_2d_nonseparable_oracle"
path = "tests/heat_2d_nonseparable_oracle.rs"
[[test]]
name = "heat_2d_oracle"
path = "tests/heat_2d_oracle.rs"
[[test]]
name = "heat_2d_oracle_4th"
path = "tests/heat_2d_oracle_4th.rs"
[[test]]
name = "heat_3d_oracle"
path = "tests/heat_3d_oracle.rs"
[[test]]
name = "heat_kernel"
path = "tests/heat_kernel.rs"
[[test]]
name = "hormander_engel_slope"
path = "tests/hormander_engel_slope.rs"
[[test]]
name = "hormander_heisenberg_slope"
path = "tests/hormander_heisenberg_slope.rs"
[[test]]
name = "hormander_kolmogorov_slope"
path = "tests/hormander_kolmogorov_slope.rs"
[[test]]
name = "howland_lift_slope"
path = "tests/howland_lift_slope.rs"
[[test]]
name = "killing_dirichlet_slope"
path = "tests/killing_dirichlet_slope.rs"
[[test]]
name = "laplace_resolvent_residual"
path = "tests/laplace_resolvent_residual.rs"
[[test]]
name = "magnus6_graph_basics"
path = "tests/magnus6_graph_basics.rs"
[[test]]
name = "magnus6_graph_zero_alloc"
path = "tests/magnus6_graph_zero_alloc.rs"
[[test]]
name = "manifold_sphere_slope"
path = "tests/manifold_sphere_slope.rs"
[[test]]
name = "massk_consistent"
path = "tests/massk_consistent.rs"
[[test]]
name = "massk_lumped"
path = "tests/massk_lumped.rs"
[[test]]
name = "matrix_diffusion_m1_slope"
path = "tests/matrix_diffusion_m1_slope.rs"
[[test]]
name = "matrix_diffusion_m2_slope"
path = "tests/matrix_diffusion_m2_slope.rs"
[[test]]
name = "matrix_diffusion_m3_slope"
path = "tests/matrix_diffusion_m3_slope.rs"
[[test]]
name = "matrix_diffusion_m4_slope"
path = "tests/matrix_diffusion_m4_slope.rs"
[[test]]
name = "matrix_system_unit"
path = "tests/matrix_system_unit.rs"
[[test]]
name = "multilayer_gates"
path = "tests/multilayer_gates.rs"
[[test]]
name = "nd_shift_zero_alloc"
path = "tests/nd_shift_zero_alloc.rs"
[[test]]
name = "nonseparable2d_unit"
path = "tests/nonseparable2d_unit.rs"
[[test]]
name = "nonseparable_mixed_basics"
path = "tests/nonseparable_mixed_basics.rs"
[[test]]
name = "nonseparable_mixed_zero_alloc"
path = "tests/nonseparable_mixed_zero_alloc.rs"
[[test]]
name = "ns2d_aniso_parallel_bit_equal"
path = "tests/ns2d_aniso_parallel_bit_equal.rs"
[[test]]
name = "obstacle_proptest"
path = "tests/obstacle_proptest.rs"
[[test]]
name = "obstacle_vi_slope"
path = "tests/obstacle_vi_slope.rs"
[[test]]
name = "octonic_chebyshev_generic"
path = "tests/octonic_chebyshev_generic.rs"
[[test]]
name = "order_contract_v0_6_1"
path = "tests/order_contract_v0_6_1.rs"
[[test]]
name = "parallel_scratch_drain"
path = "tests/parallel_scratch_drain.rs"
[[test]]
name = "path_eps_chebyshev_floor"
path = "tests/path_eps_chebyshev_floor.rs"
[[test]]
name = "path_eps_spatial_floor"
path = "tests/path_eps_spatial_floor.rs"
[[test]]
name = "pcg_null_space_guard"
path = "tests/pcg_null_space_guard.rs"
[[test]]
name = "point_eval_byte_identity"
path = "tests/point_eval_byte_identity.rs"
[[test]]
name = "proptest_a_prime_consistency"
path = "tests/proptest_a_prime_consistency.rs"
[[test]]
name = "proptest_a_seventh_derivative_consistency"
path = "tests/proptest_a_seventh_derivative_consistency.rs"
[[test]]
name = "proptest_adaptive_contractivity"
path = "tests/proptest_adaptive_contractivity.rs"
[[test]]
name = "proptest_contractivity"
path = "tests/proptest_contractivity.rs"
[[test]]
name = "proptest_diffusion4_consistency"
path = "tests/proptest_diffusion4_consistency.rs"
[[test]]
name = "proptest_diffusion6_consistency"
path = "tests/proptest_diffusion6_consistency.rs"
[[test]]
name = "proptest_diffusion_constant"
path = "tests/proptest_diffusion_constant.rs"
[[test]]
name = "proptest_drift_consistency"
path = "tests/proptest_drift_consistency.rs"
[[test]]
name = "proptest_grid_fn_2d_state"
path = "tests/proptest_grid_fn_2d_state.rs"
[[test]]
name = "proptest_nonseparable2d_consistency"
path = "tests/proptest_nonseparable2d_consistency.rs"
[[test]]
name = "proptest_strang_split"
path = "tests/proptest_strang_split.rs"
[[test]]
name = "proptest_tensor_consistency"
path = "tests/proptest_tensor_consistency.rs"
[[test]]
name = "proptest_truncated_exp4_consistency"
path = "tests/proptest_truncated_exp4_consistency.rs"
[[test]]
name = "quantum_graph_eigenmode"
path = "tests/quantum_graph_eigenmode.rs"
[[test]]
name = "reflected_heat_halfline"
path = "tests/reflected_heat_halfline.rs"
[[test]]
name = "regression_iter5_schrodinger"
path = "tests/regression_iter5_schrodinger.rs"
[[test]]
name = "resolvent_jump_smoke"
path = "tests/resolvent_jump_smoke.rs"
[[test]]
name = "resolvent_laplace_chernoff"
path = "tests/resolvent_laplace_chernoff.rs"
[[test]]
name = "resolvent_laplace_chernoff_slope"
path = "tests/resolvent_laplace_chernoff_slope.rs"
[[test]]
name = "robin_heat_slope"
path = "tests/robin_heat_slope.rs"
[[test]]
name = "rough_heston_mc_oracle"
path = "tests/rough_heston_mc_oracle.rs"
[[test]]
name = "rough_heston_model_bias"
path = "tests/rough_heston_model_bias.rs"
[[test]]
name = "schrodinger_basics"
path = "tests/schrodinger_basics.rs"
[[test]]
name = "schrodinger_complex_unitarity"
path = "tests/schrodinger_complex_unitarity.rs"
[[test]]
name = "schrodinger_zero_alloc"
path = "tests/schrodinger_zero_alloc.rs"
[[test]]
name = "septic_hermite_floor"
path = "tests/septic_hermite_floor.rs"
[[test]]
name = "shift1d_vjp_gates"
path = "tests/shift1d_vjp_gates.rs"
[[test]]
name = "simd_bit_equal"
path = "tests/simd_bit_equal.rs"
[[test]]
name = "simd_bit_equal_f32"
path = "tests/simd_bit_equal_f32.rs"
[[test]]
name = "simd_speedup"
path = "tests/simd_speedup.rs"
[[test]]
name = "spdr_binding_parity"
path = "tests/spdr_binding_parity.rs"
[[test]]
name = "state_trait_contract"
path = "tests/state_trait_contract.rs"
[[test]]
name = "strang2d_parallel_bit_equal"
path = "tests/strang2d_parallel_bit_equal.rs"
[[test]]
name = "strang2d_parallel_bit_equal_f32"
path = "tests/strang2d_parallel_bit_equal_f32.rs"
[[test]]
name = "strang2d_pencil_gates"
path = "tests/strang2d_pencil_gates.rs"
[[test]]
name = "strang3d_parallel_bit_equal"
path = "tests/strang3d_parallel_bit_equal.rs"
[[test]]
name = "strang3d_serial_scratch_bit_equal"
path = "tests/strang3d_serial_scratch_bit_equal.rs"
[[test]]
name = "strang_3d_slope"
path = "tests/strang_3d_slope.rs"
[[test]]
name = "strang_advdiff"
path = "tests/strang_advdiff.rs"
[[test]]
name = "strang_advdiff_2d"
path = "tests/strang_advdiff_2d.rs"
[[test]]
name = "strang_fused_order_2d"
path = "tests/strang_fused_order_2d.rs"
[[test]]
name = "strang_inplace_alloc_count"
path = "tests/strang_inplace_alloc_count.rs"
[[test]]
name = "strang_inplace_byte_equal"
path = "tests/strang_inplace_byte_equal.rs"
[[test]]
name = "strang_nonseparable_aniso_slope"
path = "tests/strang_nonseparable_aniso_slope.rs"
[[test]]
name = "strang_nonseparable_slope"
path = "tests/strang_nonseparable_slope.rs"
[[test]]
name = "subordinated_order1_slope"
path = "tests/subordinated_order1_slope.rs"
[[test]]
name = "subordinated_smoke"
path = "tests/subordinated_smoke.rs"
[[test]]
name = "sym_op_dense"
path = "tests/sym_op_dense.rs"
[[test]]
name = "sym_op_entry_frechet"
path = "tests/sym_op_entry_frechet.rs"
[[test]]
name = "t_gridless"
path = "tests/t_gridless.rs"
[[test]]
name = "t_measure_state_variance"
path = "tests/t_measure_state_variance.rs"
[[test]]
name = "t_obstacle_gamma"
path = "tests/t_obstacle_gamma.rs"
[[test]]
name = "t_resolvent_jump_nd"
path = "tests/t_resolvent_jump_nd.rs"
[[test]]
name = "t_reverse_transpose"
path = "tests/t_reverse_transpose.rs"
[[test]]
name = "t_tt_coupled"
path = "tests/t_tt_coupled.rs"
[[test]]
name = "theta_m_table"
path = "tests/theta_m_table.rs"
[[test]]
name = "truncated_exp4_bypass_bit_equal"
path = "tests/truncated_exp4_bypass_bit_equal.rs"
[[test]]
name = "truncated_exp4_cached_coeff_bit_equal"
path = "tests/truncated_exp4_cached_coeff_bit_equal.rs"
[[test]]
name = "truncated_exp4_convergence"
path = "tests/truncated_exp4_convergence.rs"
[[test]]
name = "truncated_exp4_simd_bit_equal"
path = "tests/truncated_exp4_simd_bit_equal.rs"
[[test]]
name = "truncated_exp4_unit"
path = "tests/truncated_exp4_unit.rs"
[[test]]
name = "truncated_exp4_variable_a_no_regression"
path = "tests/truncated_exp4_variable_a_no_regression.rs"
[[test]]
name = "truncated_exp_cev_high_corner"
path = "tests/truncated_exp_cev_high_corner.rs"
[[test]]
name = "truncated_exp_constant_a_regression"
path = "tests/truncated_exp_constant_a_regression.rs"
[[test]]
name = "truncated_exp_heat_kernel"
path = "tests/truncated_exp_heat_kernel.rs"
[[test]]
name = "truncated_exp_zeta_liouville_oracle"
path = "tests/truncated_exp_zeta_liouville_oracle.rs"
[[test]]
name = "tt_coupled_coverage_gaps"
path = "tests/tt_coupled_coverage_gaps.rs"
[[test]]
name = "v0_5_0_regression_bit_equal"
path = "tests/v0_5_0_regression_bit_equal.rs"
[[test]]
name = "varcoef_magnus_graph_zero_alloc"
path = "tests/varcoef_magnus_graph_zero_alloc.rs"
[[test]]
name = "varcoef_magnus_proptest"
path = "tests/varcoef_magnus_proptest.rs"
[[test]]
name = "varcoef_magnus_slope"
path = "tests/varcoef_magnus_slope.rs"
[[test]]
name = "varcoef_magnus_unit"
path = "tests/varcoef_magnus_unit.rs"
[[test]]
name = "variable_drift_oracle"
path = "tests/variable_drift_oracle.rs"
[[test]]
name = "zero_alloc_steady"
path = "tests/zero_alloc_steady.rs"
[[test]]
name = "zeta4_correction_slope"
path = "tests/zeta4_correction_slope.rs"
[[test]]
name = "zeta4_correction_slope_cheb"
path = "tests/zeta4_correction_slope_cheb.rs"
[[test]]
name = "zeta4_liouville_oracle"
path = "tests/zeta4_liouville_oracle.rs"
[[test]]
name = "zeta4_truthful_order"
path = "tests/zeta4_truthful_order.rs"
[[test]]
name = "zeta6_correction_slope"
path = "tests/zeta6_correction_slope.rs"
[[test]]
name = "zeta6_correction_slope_cheb"
path = "tests/zeta6_correction_slope_cheb.rs"
[[test]]
name = "zeta6_liouville_oracle"
path = "tests/zeta6_liouville_oracle.rs"
[[test]]
name = "zeta6_truthful_order"
path = "tests/zeta6_truthful_order.rs"
[[test]]
name = "zeta8_correction_slope"
path = "tests/zeta8_correction_slope.rs"
[[test]]
name = "zeta8_truthful_order"
path = "tests/zeta8_truthful_order.rs"
[[test]]
name = "zeta_liouville_oracle"
path = "tests/zeta_liouville_oracle.rs"
[[bench]]
name = "advdiff_2d"
path = "benches/advdiff_2d.rs"
harness = false
[[bench]]
name = "cache_phase4"
path = "benches/cache_phase4.rs"
harness = false
[[bench]]
name = "diffusion6_simd"
path = "benches/diffusion6_simd.rs"
harness = false
[[bench]]
name = "graph_heat"
path = "benches/graph_heat.rs"
harness = false
[[bench]]
name = "heat_1d"
path = "benches/heat_1d.rs"
harness = false
[[bench]]
name = "heat_2d"
path = "benches/heat_2d.rs"
harness = false
[[bench]]
name = "new_kernels"
path = "benches/new_kernels.rs"
harness = false
[[bench]]
name = "new_kernels2"
path = "benches/new_kernels2.rs"
harness = false
[[bench]]
name = "new_kernels3"
path = "benches/new_kernels3.rs"
harness = false
[[bench]]
name = "new_kernels4"
path = "benches/new_kernels4.rs"
harness = false
[[bench]]
name = "ns2d_aniso_parallel"
path = "benches/ns2d_aniso_parallel.rs"
harness = false
required-features = ["parallel"]
[[bench]]
name = "strang2d_parallel"
path = "benches/strang2d_parallel.rs"
harness = false
required-features = ["parallel"]
[[bench]]
name = "strang3d_parallel"
path = "benches/strang3d_parallel.rs"
harness = false
required-features = ["parallel"]
[[bench]]
name = "zeta_ladder"
path = "benches/zeta_ladder.rs"
harness = false
[dependencies.libm]
version = "0.2"
default-features = false
[dependencies.num-complex]
version = "0.4"
features = ["libm"]
default-features = false
[dependencies.num-traits]
version = "0.2"
features = ["libm"]
default-features = false
[dev-dependencies.allocation-counter]
version = "0.8"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "=1.4.0"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.static_assertions]
version = "1.1"
[dev-dependencies.statrs]
version = "0.18"
[lints.clippy]
disallowed_methods = "allow"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "deny"
unsafe_code = "deny"