packages feed

cao-0.1.1: backend_lib/C_generic/CAO_rint.h

/*  CAO Compiler
    Copyright (C) 2014 Cryptography and Information Security Group, HASLab - INESC TEC and Universidade do Minho

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

#ifndef CAO_RINT_H
#define CAO_RINT_H

#include "CAO_globals.h"

#ifdef __cplusplus

#include <NTL/ZZ.h>
#include <iostream>

NTL_CLIENT

extern "C" {
#endif

	#define CAO_rint_init(a,b) a = b
	#define CAO_rint_assign(a,b) a = b
	#define CAO_rint_add(a,b,c) a = ((b) + (c))
	#define CAO_rint_sub(a,b,c) a = ((b) - (c))
	#define CAO_rint_sym(a,b) a = (-(b))
	#define CAO_rint_mul(a,b,c) a = ((b) * (c))
	#define CAO_rint_div(a,b,c) a = ((b) / (c))
	#define CAO_rint_mod(a,b,c) a = ((b) % (c))
	#define CAO_rint_equal(a,b,c) a = ((b) == (c))
	#define CAO_rint_nequal(a,b,c) a = ((b) != (c))
	#define CAO_rint_lt(a,b,c) a = ((b) < (c))
	#define CAO_rint_lte(a,b,c) a = ((b) <= (c))
	#define CAO_rint_gt(a,b,c) a = ((b) > (c))
	#define CAO_rint_gte(a,b,c) a = ((b) >= (c))
	CAO_RES CAO_rint_cast_int(CAO_int, CAO_rint);
	CAO_RES CAO_rint_dump(CAO_rint);

#ifdef __cplusplus
}
#endif

#endif