gcd1_true-termination.c

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:05.0
disk size 563 Bytes
downloadable true
type
attribute value
name no_type
processor id 1
description this is the default benchmark type for rejected benchmarks and benchmarks that are not associated with a type.
owning community none
loading contents
/*
 * gcd program (terminating) based on 
 * (Dershowitz, Lindenstrauss, Sagiv and Serebrenik, 2001)
 *
 * Date: 15.12.2013
 * Author: Amir Ben-Amram, amirben@cs.mta.ac.il
 *
 */
typedef enum {false, true} bool;

extern int __VERIFIER_nondet_int(void);

int main()
{
	int r, x, y;

	x = __VERIFIER_nondet_int();
	y = __VERIFIER_nondet_int();

	if (x<0) {x = -x;}
	if (y<0) {y = -y;}
	while (y>0) {
		/*  the next statements compute  r = mod(x,y)   */
		r = x;
		while (r>=y) {
			r = r-y;
        }
		/* end of inlined mod */
		x = y;
		y = r;
	}
    return 0;
}
popout

content may be truncated. 'popout' for larger text window.

actions get anonymous link download benchmark