gcd1_true-termination.c

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:16.0
disk size 558 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
 *
 */
extern int __VERIFIER_nondet_int(void);

int gcd(int x, int y)	
{
	int r;
	
	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 x;
}

int main()
{
	int x,y;

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

	gcd(x,y);
}


popout

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

actions get anonymous link download benchmark