quantrs2_sim/quantum_gravity_simulation/
quantumgravitysimulator_calculate_beta_function_group.rs1use crate::error::{Result, SimulatorError};
8use scirs2_core::random::prelude::*;
9
10use super::quantumgravitysimulator_type::QuantumGravitySimulator;
11
12impl QuantumGravitySimulator {
13 pub(super) fn calculate_beta_function(
15 &self,
16 coupling: &str,
17 value: f64,
18 energy_scale: &f64,
19 ) -> Result<f64> {
20 match coupling {
21 "newton_constant" => Ok(2.0f64.mul_add(value, 0.1 * value.powi(2) * energy_scale.ln())),
22 "cosmological_constant" => Ok((-2.0f64).mul_add(value, 0.01 * value.powi(2))),
23 "r_squared" => Ok((-2.0f64).mul_add(value, 0.001 * value.powi(3))),
24 _ => Ok(0.0),
25 }
26 }
27}