@@ -39,74 +39,76 @@ HumanFilterMetrics calculate_human_filter_metrics(
3939{
4040 HumanFilterMetrics result;
4141
42- result.human_history_comfort = human_metrics.history_comfort ;
43- result.human_history_comfort_available = human_metrics.history_comfort_available ;
44- result.filtered_history_comfort = apply_human_filter (
42+ result.history_comfort . human_reference = human_metrics.history_comfort ;
43+ result.history_comfort . human_reference_available = human_metrics.history_comfort_available ;
44+ result.history_comfort . filtered = apply_human_filter (
4545 agent_metrics.history_comfort , agent_metrics.history_comfort_available ,
4646 human_metrics.history_comfort , human_metrics.history_comfort_available ,
47- result.history_comfort_filter_applied );
47+ result.history_comfort . filter_applied );
4848
49- result.human_extended_comfort = human_metrics.extended_comfort ;
50- result.human_extended_comfort_available = human_metrics.extended_comfort_available ;
51- result.filtered_extended_comfort = apply_human_filter (
49+ result.extended_comfort . human_reference = human_metrics.extended_comfort ;
50+ result.extended_comfort . human_reference_available = human_metrics.extended_comfort_available ;
51+ result.extended_comfort . filtered = apply_human_filter (
5252 agent_metrics.extended_comfort , agent_metrics.extended_comfort_available ,
5353 human_metrics.extended_comfort , human_metrics.extended_comfort_available ,
54- result.extended_comfort_filter_applied );
54+ result.extended_comfort . filter_applied );
5555
56- result.human_ego_progress = human_metrics.ego_progress ;
57- result.human_ego_progress_available = human_metrics.ego_progress_available ;
58- result.filtered_ego_progress = apply_human_filter (
56+ result.ego_progress . human_reference = human_metrics.ego_progress ;
57+ result.ego_progress . human_reference_available = human_metrics.ego_progress_available ;
58+ result.ego_progress . filtered = apply_human_filter (
5959 agent_metrics.ego_progress , agent_metrics.ego_progress_available , human_metrics.ego_progress ,
60- human_metrics.ego_progress_available , result.ego_progress_filter_applied );
60+ human_metrics.ego_progress_available , result.ego_progress . filter_applied );
6161
62- result.human_time_to_collision_within_bound = human_metrics.time_to_collision_within_bound ;
63- result.human_time_to_collision_within_bound_available =
62+ result.time_to_collision_within_bound .human_reference =
63+ human_metrics.time_to_collision_within_bound ;
64+ result.time_to_collision_within_bound .human_reference_available =
6465 human_metrics.time_to_collision_within_bound_available ;
65- result.filtered_time_to_collision_within_bound = apply_human_filter (
66+ result.time_to_collision_within_bound . filtered = apply_human_filter (
6667 agent_metrics.time_to_collision_within_bound ,
6768 agent_metrics.time_to_collision_within_bound_available ,
6869 human_metrics.time_to_collision_within_bound ,
6970 human_metrics.time_to_collision_within_bound_available ,
70- result.time_to_collision_within_bound_filter_applied );
71+ result.time_to_collision_within_bound . filter_applied );
7172
72- result.human_lane_keeping = human_metrics.lane_keeping ;
73- result.human_lane_keeping_available = human_metrics.lane_keeping_available ;
74- result.filtered_lane_keeping = apply_human_filter (
73+ result.lane_keeping . human_reference = human_metrics.lane_keeping ;
74+ result.lane_keeping . human_reference_available = human_metrics.lane_keeping_available ;
75+ result.lane_keeping . filtered = apply_human_filter (
7576 agent_metrics.lane_keeping , agent_metrics.lane_keeping_available , human_metrics.lane_keeping ,
76- human_metrics.lane_keeping_available , result.lane_keeping_filter_applied );
77+ human_metrics.lane_keeping_available , result.lane_keeping . filter_applied );
7778
78- result.human_drivable_area_compliance = human_metrics.drivable_area_compliance ;
79- result.human_drivable_area_compliance_available =
79+ result.drivable_area_compliance . human_reference = human_metrics.drivable_area_compliance ;
80+ result.drivable_area_compliance . human_reference_available =
8081 human_metrics.drivable_area_compliance_available ;
81- result.filtered_drivable_area_compliance = apply_human_filter (
82+ result.drivable_area_compliance . filtered = apply_human_filter (
8283 agent_metrics.drivable_area_compliance , agent_metrics.drivable_area_compliance_available ,
8384 human_metrics.drivable_area_compliance , human_metrics.drivable_area_compliance_available ,
84- result.drivable_area_compliance_filter_applied );
85+ result.drivable_area_compliance . filter_applied );
8586
86- result.human_no_at_fault_collision = human_metrics.no_at_fault_collision ;
87- result.human_no_at_fault_collision_available = human_metrics.no_at_fault_collision_available ;
88- result.filtered_no_at_fault_collision = apply_human_filter (
87+ result.no_at_fault_collision .human_reference = human_metrics.no_at_fault_collision ;
88+ result.no_at_fault_collision .human_reference_available =
89+ human_metrics.no_at_fault_collision_available ;
90+ result.no_at_fault_collision .filtered = apply_human_filter (
8991 agent_metrics.no_at_fault_collision , agent_metrics.no_at_fault_collision_available ,
9092 human_metrics.no_at_fault_collision , human_metrics.no_at_fault_collision_available ,
91- result.no_at_fault_collision_filter_applied );
93+ result.no_at_fault_collision . filter_applied );
9294
93- result.human_driving_direction_compliance = human_metrics.driving_direction_compliance ;
94- result.human_driving_direction_compliance_available =
95+ result.driving_direction_compliance . human_reference = human_metrics.driving_direction_compliance ;
96+ result.driving_direction_compliance . human_reference_available =
9597 human_metrics.driving_direction_compliance_available ;
96- result.filtered_driving_direction_compliance = apply_human_filter (
98+ result.driving_direction_compliance . filtered = apply_human_filter (
9799 agent_metrics.driving_direction_compliance ,
98100 agent_metrics.driving_direction_compliance_available ,
99101 human_metrics.driving_direction_compliance ,
100102 human_metrics.driving_direction_compliance_available ,
101- result.driving_direction_compliance_filter_applied );
103+ result.driving_direction_compliance . filter_applied );
102104
103- result.human_traffic_light_compliance = human_metrics.traffic_light_compliance ;
104- result.human_traffic_light_compliance_available =
105+ result.traffic_light_compliance . human_reference = human_metrics.traffic_light_compliance ;
106+ result.traffic_light_compliance . human_reference_available =
105107 human_metrics.traffic_light_compliance_available ;
106- result.filtered_traffic_light_compliance = apply_human_filter (
108+ result.traffic_light_compliance . filtered = apply_human_filter (
107109 agent_metrics.traffic_light_compliance , agent_metrics.traffic_light_compliance_available ,
108110 human_metrics.traffic_light_compliance , human_metrics.traffic_light_compliance_available ,
109- result.traffic_light_compliance_filter_applied );
111+ result.traffic_light_compliance . filter_applied );
110112
111113 return result;
112114}
@@ -126,17 +128,17 @@ SyntheticEpdmsMetrics calculate_synthetic_epdms(
126128 agent_metrics.lane_keeping_available &&
127129 agent_metrics.history_comfort_available &&
128130 agent_metrics.extended_comfort_available ;
129- result.raw_available = raw_multiplicative_available && raw_weighted_available;
130- if (result.raw_available ) {
131- result.raw_multiplicative_metrics_prod =
131+ result.raw . available = raw_multiplicative_available && raw_weighted_available;
132+ if (result.raw . available ) {
133+ result.raw . multiplicative_metrics_prod =
132134 agent_metrics.no_at_fault_collision * agent_metrics.drivable_area_compliance *
133135 agent_metrics.driving_direction_compliance * agent_metrics.traffic_light_compliance ;
134- result.raw_weighted_metrics =
136+ result.raw . weighted_metrics =
135137 (5.0 * agent_metrics.ego_progress + 5.0 * agent_metrics.time_to_collision_within_bound +
136138 2.0 * agent_metrics.lane_keeping + 2.0 * agent_metrics.history_comfort +
137139 2.0 * agent_metrics.extended_comfort ) /
138140 kSyntheticWeightedDenominator ;
139- result.raw_epdms = result.raw_multiplicative_metrics_prod * result.raw_weighted_metrics ;
141+ result.raw . epdms = result.raw . multiplicative_metrics_prod * result.raw . weighted_metrics ;
140142 }
141143
142144 const bool human_filtered_multiplicative_available =
@@ -149,25 +151,25 @@ SyntheticEpdmsMetrics calculate_synthetic_epdms(
149151 agent_metrics.time_to_collision_within_bound_available &&
150152 agent_metrics.lane_keeping_available && agent_metrics.history_comfort_available &&
151153 agent_metrics.extended_comfort_available ;
152- result.human_filtered_available =
154+ result.human_filtered . available =
153155 human_filtered_multiplicative_available && human_filtered_weighted_available;
154- if (result.human_filtered_available ) {
155- result.human_filtered_multiplicative_metrics_prod =
156- human_filter_metrics.filtered_no_at_fault_collision *
157- human_filter_metrics.filtered_drivable_area_compliance *
158- human_filter_metrics.filtered_driving_direction_compliance *
159- human_filter_metrics.filtered_traffic_light_compliance ;
156+ if (result.human_filtered . available ) {
157+ result.human_filtered . multiplicative_metrics_prod =
158+ human_filter_metrics.no_at_fault_collision . filtered *
159+ human_filter_metrics.drivable_area_compliance . filtered *
160+ human_filter_metrics.driving_direction_compliance . filtered *
161+ human_filter_metrics.traffic_light_compliance . filtered ;
160162 const double filtered_ego_progress =
161- human_filter_metrics.ego_progress_filter_applied ? 1.0 : agent_metrics.ego_progress ;
162- result.human_filtered_weighted_metrics =
163+ human_filter_metrics.ego_progress . filter_applied ? 1.0 : agent_metrics.ego_progress ;
164+ result.human_filtered . weighted_metrics =
163165 (5.0 * filtered_ego_progress +
164- 5.0 * human_filter_metrics.filtered_time_to_collision_within_bound +
165- 2.0 * human_filter_metrics.filtered_lane_keeping +
166- 2.0 * human_filter_metrics.filtered_history_comfort +
167- 2.0 * human_filter_metrics.filtered_extended_comfort ) /
166+ 5.0 * human_filter_metrics.time_to_collision_within_bound . filtered +
167+ 2.0 * human_filter_metrics.lane_keeping . filtered +
168+ 2.0 * human_filter_metrics.history_comfort . filtered +
169+ 2.0 * human_filter_metrics.extended_comfort . filtered ) /
168170 kSyntheticWeightedDenominator ;
169- result.human_filtered_epdms =
170- result.human_filtered_multiplicative_metrics_prod * result.human_filtered_weighted_metrics ;
171+ result.human_filtered . epdms =
172+ result.human_filtered . multiplicative_metrics_prod * result.human_filtered . weighted_metrics ;
171173 }
172174
173175 return result;
0 commit comments