use crate::fixed::{NonNegativeFixed, SignedFixed};
pub const N: usize = 8;
pub const F: usize = 10;
pub const K: usize = 4;
pub const Q: usize = 4;
pub const GENERATOR_VERSION: &str = "v1.1.0";
pub const RDF_INPUT_DIGEST: &str =
"5f3b550a116aab25628f9e8272ac1348f21d19114eb2cbca11c7c4c9176ebf69";
pub const GENERATOR_SOURCE_DIGEST: &str =
"bf159da344a6d4a2091d150c5a8c4eab5478ca43dafd3c6501d699e8a4027fb6";
pub const FACTOR_ACCESS_FREQUENCY: usize = 0;
pub const FACTOR_ACCESS_FREQUENCY_IRI: &str = "cmca:accessFrequency";
pub const FACTOR_BUSINESS_VALUE: usize = 1;
pub const FACTOR_BUSINESS_VALUE_IRI: &str = "cmca:businessValue";
pub const FACTOR_RECOMPUTATION_COST: usize = 2;
pub const FACTOR_RECOMPUTATION_COST_IRI: &str = "cmca:recomputationCost";
pub const FACTOR_RETRIEVAL_DEMAND: usize = 3;
pub const FACTOR_RETRIEVAL_DEMAND_IRI: &str = "cmca:retrievalDemand";
pub const FACTOR_SCHEDULING_DEMAND: usize = 4;
pub const FACTOR_SCHEDULING_DEMAND_IRI: &str = "cmca:schedulingDemand";
pub const FACTOR_SEARCH_DEMAND: usize = 5;
pub const FACTOR_SEARCH_DEMAND_IRI: &str = "cmca:searchDemand";
pub const FACTOR_STANDING: usize = 6;
pub const FACTOR_STANDING_IRI: &str = "cmca:standing";
pub const FACTOR_VALIDITY: usize = 7;
pub const FACTOR_VALIDITY_IRI: &str = "cmca:validity";
pub const FACTOR_VERIFICATION_COST: usize = 8;
pub const FACTOR_VERIFICATION_COST_IRI: &str = "cmca:verificationCost";
pub const FACTOR_DOWNSTREAM_CONSEQUENCE: usize = 9;
pub const FACTOR_DOWNSTREAM_CONSEQUENCE_IRI: &str = "cmca:downstreamConsequence";
pub const MEASURE_CACHE: usize = 0;
pub const MEASURE_CACHE_IRI: &str = "cmca:MeasureCache";
pub const MEASURE_SEARCH: usize = 1;
pub const MEASURE_SEARCH_IRI: &str = "cmca:MeasureSearch";
pub const MEASURE_RETRIEVAL: usize = 2;
pub const MEASURE_RETRIEVAL_IRI: &str = "cmca:MeasureRetrieval";
pub const MEASURE_SCHEDULING: usize = 3;
pub const MEASURE_SCHEDULING_IRI: &str = "cmca:MeasureScheduling";
pub const LENS_EXPLOITATION: usize = 0;
pub const LENS_EXPLOITATION_IRI: &str = "cmca:LensExploitation";
pub const LENS_PROPORTIONAL: usize = 1;
pub const LENS_PROPORTIONAL_IRI: &str = "cmca:LensProportional";
pub const LENS_COVERAGE: usize = 2;
pub const LENS_COVERAGE_IRI: &str = "cmca:LensCoverage";
pub const LENS_RARE: usize = 3;
pub const LENS_RARE_IRI: &str = "cmca:LensRare";
pub const OBJECT_ARTIFACT__A: usize = 0;
pub const OBJECT_ARTIFACT__A_IRI: &str = "cmca:Artifact_A";
pub const OBJECT_ARTIFACT__B: usize = 1;
pub const OBJECT_ARTIFACT__B_IRI: &str = "cmca:Artifact_B";
pub const OBJECT_OBJ__ACTIVITY: usize = 2;
pub const OBJECT_OBJ__ACTIVITY_IRI: &str = "cmca:Obj_Activity";
pub const OBJECT_OBJ__DEPLOYMENT: usize = 3;
pub const OBJECT_OBJ__DEPLOYMENT_IRI: &str = "cmca:Obj_Deployment";
pub const OBJECT_OBJ__OBLIGATION: usize = 4;
pub const OBJECT_OBJ__OBLIGATION_IRI: &str = "cmca:Obj_Obligation";
pub const OBJECT_OBJ__OUTCOME: usize = 5;
pub const OBJECT_OBJ__OUTCOME_IRI: &str = "cmca:Obj_Outcome";
pub const OBJECT_OBJ__SINGLE: usize = 6;
pub const OBJECT_OBJ__SINGLE_IRI: &str = "cmca:Obj_Single";
pub const OBJECT_OBJ__VALUE: usize = 7;
pub const OBJECT_OBJ__VALUE_IRI: &str = "cmca:Obj_Value";
#[derive(Copy, Clone, Debug)]
pub struct PackedSemanticState {
pub id: u32,
pub factors: [NonNegativeFixed; F],
}
#[derive(Copy, Clone, Debug)]
pub struct LensSpec {
pub id: u32,
pub q: SignedFixed,
}
pub static ETA: NonNegativeFixed = NonNegativeFixed::from_bits(32768);
pub static LAMBDA: [[NonNegativeFixed; Q]; K] = [
[
NonNegativeFixed::from_bits(26214),
NonNegativeFixed::from_bits(19661),
NonNegativeFixed::from_bits(13107),
NonNegativeFixed::from_bits(6554),
], [
NonNegativeFixed::from_bits(6554),
NonNegativeFixed::from_bits(13107),
NonNegativeFixed::from_bits(19661),
NonNegativeFixed::from_bits(26214),
], [
NonNegativeFixed::from_bits(16384),
NonNegativeFixed::from_bits(16384),
NonNegativeFixed::from_bits(16384),
NonNegativeFixed::from_bits(16384),
], [
NonNegativeFixed::from_bits(32768),
NonNegativeFixed::from_bits(0),
NonNegativeFixed::from_bits(32768),
NonNegativeFixed::from_bits(0),
], ];
pub static OBJECT_REGISTRY: [PackedSemanticState; N] = [
PackedSemanticState {
id: 0,
factors: [
NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(655360), NonNegativeFixed::from_bits(58982), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(6554), NonNegativeFixed::from_bits(655360), ],
},
PackedSemanticState {
id: 1,
factors: [
NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(655360), NonNegativeFixed::from_bits(6554), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(58982), NonNegativeFixed::from_bits(655360), ],
},
PackedSemanticState {
id: 2,
factors: [
NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536000), ],
},
PackedSemanticState {
id: 3,
factors: [
NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536000), ],
},
PackedSemanticState {
id: 4,
factors: [
NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536000), ],
},
PackedSemanticState {
id: 5,
factors: [
NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536000), ],
},
PackedSemanticState {
id: 6,
factors: [
NonNegativeFixed::from_bits(52429), NonNegativeFixed::from_bits(6553600), NonNegativeFixed::from_bits(52429), NonNegativeFixed::from_bits(58982), NonNegativeFixed::from_bits(0), NonNegativeFixed::from_bits(6554), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(52429), NonNegativeFixed::from_bits(6553600), ],
},
PackedSemanticState {
id: 7,
factors: [
NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536000), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(65536), NonNegativeFixed::from_bits(32768), NonNegativeFixed::from_bits(65536000), ],
},
];
pub static LENS_REGISTRY: [LensSpec; Q] = [
LensSpec {
id: 0,
q: SignedFixed::from_bits(131072),
},
LensSpec {
id: 1,
q: SignedFixed::from_bits(65536),
},
LensSpec {
id: 2,
q: SignedFixed::from_bits(0),
},
LensSpec {
id: 3,
q: SignedFixed::from_bits(-65536),
},
];