Skip to content

Commit

Permalink
updates for get_bounds_for_linexpr0
Browse files Browse the repository at this point in the history
  • Loading branch information
Gagandeep Singh committed Oct 1, 2019
1 parent 8328985 commit a67be60
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions fppoly/fppoly.c
Original file line number Diff line number Diff line change
Expand Up @@ -3633,8 +3633,12 @@ double get_lb_using_previous_layers(elina_manager_t *man, fppoly_t *fp,
expr_t *lexpr = copy_expr(expr);
fppoly_internal_t *pr =
fppoly_init_from_manager(man, ELINA_FUNID_ASSIGN_LINEXPR_ARRAY);
k = layerno - 1;

if (fp->numlayers == layerno) {
k = layerno - 1;
} else {
k = fp->layers[layerno]->predecessors[0] - 1;
}
double res = -INFINITY;
while (k >= 0) {

if (fp->layers[k]->type == RESIDUAL) {
Expand Down Expand Up @@ -3693,10 +3697,11 @@ double get_lb_using_previous_layers(elina_manager_t *man, fppoly_t *fp,

get_lb_using_predecessor_layer(pr, fp, &lexpr, k, use_area_heuristic);
k = fp->layers[k]->predecessors[0] - 1;
res = fmax(res, compute_lb_from_expr(pr, lexpr, fp, k));
}
}

double res = compute_lb_from_expr(pr, lexpr, fp, -1);
res = fmax(res, compute_lb_from_expr(pr, lexpr, fp, -1));
free_expr(lexpr);
return res;
}
Expand All @@ -3710,7 +3715,13 @@ double get_ub_using_previous_layers(elina_manager_t *man, fppoly_t *fp,
expr_t *uexpr = copy_expr(expr);
fppoly_internal_t *pr =
fppoly_init_from_manager(man, ELINA_FUNID_ASSIGN_LINEXPR_ARRAY);
k = layerno - 1;

if (fp->numlayers == layerno) {
k = layerno - 1;
} else {
k = fp->layers[layerno]->predecessors[0] - 1;
}
double res = INFINITY;
while (k >= 0) {
if (fp->layers[k]->type == RESIDUAL) {
if (fp->layers[k]->activation == RELU) {
Expand Down Expand Up @@ -3768,10 +3779,11 @@ double get_ub_using_previous_layers(elina_manager_t *man, fppoly_t *fp,

get_ub_using_predecessor_layer(pr, fp, &uexpr, k, use_area_heuristic);
k = fp->layers[k]->predecessors[0] - 1;
res = fmin(res, compute_ub_from_expr(pr, uexpr, fp, k));
}
}

double res = compute_ub_from_expr(pr, uexpr, fp, -1);
res = fmin(res, compute_ub_from_expr(pr, uexpr, fp, -1));
free_expr(uexpr);
return res;
}
Expand Down

0 comments on commit a67be60

Please sign in to comment.