qudit_expr/codegen/
mod.rs1mod builder;
2mod builtins;
3#[allow(clippy::module_inception)]
4mod codegen;
5mod module;
6
7pub type WriteFunc<R> =
18 unsafe extern "C" fn(*const R, *mut R, *const u64, *const u64, u64, *const bool);
19
20fn process_name_for_gen(name: &str) -> String {
21 name.replace(" ", "_")
22 .replace("⊗", "t")
23 .replace("†", "d")
24 .replace("^", "p")
25 .replace("⋅", "x")
26}
27
28pub use builder::CompilableUnit;
29pub use builder::DifferentiationLevel;
30pub use builder::ModuleBuilder;
31pub use builder::{FUNCTION, GRADIENT, HESSIAN};
32pub use module::Module;
33
34pub use codegen::CodeGenerator;
35
36use qudit_core::RealScalar;
37
38pub struct WriteFuncWithLifeTime<'a, R: RealScalar> {
39 #[allow(dead_code)]
40 func: WriteFunc<R>,
41 _phantom: std::marker::PhantomData<&'a Module<R>>,
42}