pub trait GraphTerm {
Show 20 methods
// Required methods
fn evaluate<T: FloatLike>(
&mut self,
sample: &MomentumSample<T>,
context: GraphTermEvaluationContext<'_, '_, T>,
) -> Result<GraphEvaluationResult<T>>;
fn name(&self) -> String;
fn orientation_label(&self, orientation_id: usize) -> Option<String>;
fn sampling_channel_label(
&self,
channel_id: SamplingChannelId,
parameterization_settings: &ParameterizationSettings,
) -> Result<Option<String>>;
fn warm_up(
&mut self,
settings: &RuntimeSettings,
model: &Model,
) -> Result<()>;
fn get_graph(&self) -> &Graph;
fn sampling_setup(&self) -> &LmbMultiChannelingSetup;
fn sampling_setup_mut(&mut self) -> &mut LmbMultiChannelingSetup;
fn get_num_orientations(&self) -> usize;
fn production_orientation_keys(&self) -> &[String];
fn selected_production_orientation_keys(&self) -> Vec<&str>;
fn selected_lmb_basis_id(
&self,
parameterization_settings: &ParameterizationSettings,
) -> Result<LmbIndex>;
fn get_tropical_sampler(&self) -> &SampleGenerator<3>;
fn get_mut_param_builder(&mut self) -> &mut ParamBuilder<f64>;
fn get_real_mass_vector(&self) -> Result<EdgeVec<Option<F<f64>>>>;
fn bind_sampling_bridge<T: FloatLike>(
&self,
catalogue: &SamplingChannelCatalogue,
programs: &[(Option<SamplingExpressionEvaluator>, Option<SamplingExpressionEvaluator>, Option<SamplingExpressionEvaluator>)],
parameterization_settings: &ParameterizationSettings,
settings: &RuntimeSettings,
external_momenta: &[[T; 4]],
orientation: Option<usize>,
) -> Result<SamplingChannelBridge<T>>;
fn sampling_channel_is_lmb(
&self,
channel_id: SamplingChannelId,
parameterization_settings: &ParameterizationSettings,
) -> Result<bool>;
fn sampling_channel_ids(
&self,
parameterization_settings: &ParameterizationSettings,
) -> Result<Vec<SamplingChannelId>>;
// Provided methods
fn prepare_physical_overlaps(
&mut self,
_sample: &MomentumSample<ArbPrec>,
_context: GraphTermEvaluationContext<'_, '_, ArbPrec>,
) -> Result<Option<TiVec<CutGroupId, Option<LUSharedOverlaps<ArbPrec>>>>> { ... }
fn compile_sampling_bridge<T: FloatLike>(
&self,
parameterization_settings: &ParameterizationSettings,
settings: &RuntimeSettings,
external_momenta: &[[T; 4]],
orientation: Option<usize>,
) -> Result<SamplingChannelBridge<T>> { ... }
}Required Methods§
fn evaluate<T: FloatLike>( &mut self, sample: &MomentumSample<T>, context: GraphTermEvaluationContext<'_, '_, T>, ) -> Result<GraphEvaluationResult<T>>
fn name(&self) -> String
fn orientation_label(&self, orientation_id: usize) -> Option<String>
fn sampling_channel_label( &self, channel_id: SamplingChannelId, parameterization_settings: &ParameterizationSettings, ) -> Result<Option<String>>
fn warm_up(&mut self, settings: &RuntimeSettings, model: &Model) -> Result<()>
fn get_graph(&self) -> &Graph
fn sampling_setup(&self) -> &LmbMultiChannelingSetup
fn sampling_setup_mut(&mut self) -> &mut LmbMultiChannelingSetup
fn get_num_orientations(&self) -> usize
fn production_orientation_keys(&self) -> &[String]
fn selected_production_orientation_keys(&self) -> Vec<&str>
fn selected_lmb_basis_id( &self, parameterization_settings: &ParameterizationSettings, ) -> Result<LmbIndex>
fn get_tropical_sampler(&self) -> &SampleGenerator<3>
fn get_mut_param_builder(&mut self) -> &mut ParamBuilder<f64>
fn get_real_mass_vector(&self) -> Result<EdgeVec<Option<F<f64>>>>
Sourcefn bind_sampling_bridge<T: FloatLike>(
&self,
catalogue: &SamplingChannelCatalogue,
programs: &[(Option<SamplingExpressionEvaluator>, Option<SamplingExpressionEvaluator>, Option<SamplingExpressionEvaluator>)],
parameterization_settings: &ParameterizationSettings,
settings: &RuntimeSettings,
external_momenta: &[[T; 4]],
orientation: Option<usize>,
) -> Result<SamplingChannelBridge<T>>
fn bind_sampling_bridge<T: FloatLike>( &self, catalogue: &SamplingChannelCatalogue, programs: &[(Option<SamplingExpressionEvaluator>, Option<SamplingExpressionEvaluator>, Option<SamplingExpressionEvaluator>)], parameterization_settings: &ParameterizationSettings, settings: &RuntimeSettings, external_momenta: &[[T; 4]], orientation: Option<usize>, ) -> Result<SamplingChannelBridge<T>>
Bind the already resolved catalogue and compiled programs to native graph geometry. Canonical warmup and native component diagnostics reuse this one definition.
fn sampling_channel_is_lmb( &self, channel_id: SamplingChannelId, parameterization_settings: &ParameterizationSettings, ) -> Result<bool>
fn sampling_channel_ids( &self, parameterization_settings: &ParameterizationSettings, ) -> Result<Vec<SamplingChannelId>>
Provided Methods§
Sourcefn prepare_physical_overlaps(
&mut self,
_sample: &MomentumSample<ArbPrec>,
_context: GraphTermEvaluationContext<'_, '_, ArbPrec>,
) -> Result<Option<TiVec<CutGroupId, Option<LUSharedOverlaps<ArbPrec>>>>>
fn prepare_physical_overlaps( &mut self, _sample: &MomentumSample<ArbPrec>, _context: GraphTermEvaluationContext<'_, '_, ArbPrec>, ) -> Result<Option<TiVec<CutGroupId, Option<LUSharedOverlaps<ArbPrec>>>>>
Prepare physical center decisions at the original Arb point. Geometry is channel-independent for the same selector-accepted cut set; explicit channel selectors retain their source metadata. Amplitudes own their separate overlap preparation.
Sourcefn compile_sampling_bridge<T: FloatLike>(
&self,
parameterization_settings: &ParameterizationSettings,
settings: &RuntimeSettings,
external_momenta: &[[T; 4]],
orientation: Option<usize>,
) -> Result<SamplingChannelBridge<T>>
fn compile_sampling_bridge<T: FloatLike>( &self, parameterization_settings: &ParameterizationSettings, settings: &RuntimeSettings, external_momenta: &[[T; 4]], orientation: Option<usize>, ) -> Result<SamplingChannelBridge<T>>
Compile the canonical full-frame sampling bridge for this graph. Process implementations own the graph-specific external signature and LMB setup; the sampler only supplies the already-resolved kinematics.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".