fx_fixed_limits_inf.cpp revision 12855
14159Sgblack@eecs.umich.edu/***************************************************************************** 24159Sgblack@eecs.umich.edu 34159Sgblack@eecs.umich.edu Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 44159Sgblack@eecs.umich.edu more contributor license agreements. See the NOTICE file distributed 54159Sgblack@eecs.umich.edu with this work for additional information regarding copyright ownership. 64159Sgblack@eecs.umich.edu Accellera licenses this file to you under the Apache License, Version 2.0 74159Sgblack@eecs.umich.edu (the "License"); you may not use this file except in compliance with the 84159Sgblack@eecs.umich.edu License. You may obtain a copy of the License at 94159Sgblack@eecs.umich.edu 104159Sgblack@eecs.umich.edu http://www.apache.org/licenses/LICENSE-2.0 114159Sgblack@eecs.umich.edu 124159Sgblack@eecs.umich.edu Unless required by applicable law or agreed to in writing, software 134159Sgblack@eecs.umich.edu distributed under the License is distributed on an "AS IS" BASIS, 144159Sgblack@eecs.umich.edu WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 154159Sgblack@eecs.umich.edu implied. See the License for the specific language governing 164159Sgblack@eecs.umich.edu permissions and limitations under the License. 174159Sgblack@eecs.umich.edu 184159Sgblack@eecs.umich.edu *****************************************************************************/ 194159Sgblack@eecs.umich.edu 204159Sgblack@eecs.umich.edu/***************************************************************************** 214159Sgblack@eecs.umich.edu 224159Sgblack@eecs.umich.edu fx_fixed_limits_inf.cpp -- 234159Sgblack@eecs.umich.edu 244159Sgblack@eecs.umich.edu Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 254159Sgblack@eecs.umich.edu 264159Sgblack@eecs.umich.edu *****************************************************************************/ 274159Sgblack@eecs.umich.edu 284159Sgblack@eecs.umich.edu/***************************************************************************** 294159Sgblack@eecs.umich.edu 304159Sgblack@eecs.umich.edu MODIFICATION LOG - modifiers, enter your name, affiliation, date and 314159Sgblack@eecs.umich.edu changes you are making here. 324159Sgblack@eecs.umich.edu 334159Sgblack@eecs.umich.edu Name, Affiliation, Date: 344159Sgblack@eecs.umich.edu Description of Modification: 354159Sgblack@eecs.umich.edu 364159Sgblack@eecs.umich.edu *****************************************************************************/ 374159Sgblack@eecs.umich.edu 384159Sgblack@eecs.umich.edu// This may look like C code, but it is really -*- C++ -*- 394159Sgblack@eecs.umich.edu// 404159Sgblack@eecs.umich.edu// fx_fixed<8, 5>_limits.cxx -- 414159Sgblack@eecs.umich.edu// Copyright Synopsys 1998 424159Sgblack@eecs.umich.edu// Author : Ric Hilderink 434159Sgblack@eecs.umich.edu// Created On : Fri Jan 8 14:30:41 1999 444159Sgblack@eecs.umich.edu// Status : none 454159Sgblack@eecs.umich.edu// 464159Sgblack@eecs.umich.edu 474159Sgblack@eecs.umich.edu 484159Sgblack@eecs.umich.edu#include <limits.h> 494159Sgblack@eecs.umich.edu#include <float.h> 504159Sgblack@eecs.umich.edu#include <math.h> 514159Sgblack@eecs.umich.edu 524159Sgblack@eecs.umich.edu#define SC_INCLUDE_FX 534159Sgblack@eecs.umich.edu#include "systemc.h" 544159Sgblack@eecs.umich.edu#include "fx_precision_double.h" 554159Sgblack@eecs.umich.edu 564159Sgblack@eecs.umich.edu#define SHOW(a) out << #a << " : " << a.to_string(SC_HEX) << "\n" 574159Sgblack@eecs.umich.edu#define SHOW_EXP(a) { res = a; out << #a << " : " << res.to_string(SC_HEX) << "\n"; } 584159Sgblack@eecs.umich.edu 594159Sgblack@eecs.umich.edu 605543Ssaidi@eecs.umich.edu#define SHOW_EXPRS(a, b) \ 614159Sgblack@eecs.umich.edu SHOW_EXP(a b zero_min); \ 624159Sgblack@eecs.umich.edu SHOW_EXP(a b zero_plus); \ 634159Sgblack@eecs.umich.edu SHOW_EXP(a b zero); \ 644159Sgblack@eecs.umich.edu SHOW_EXP(a b long_max); \ 654159Sgblack@eecs.umich.edu SHOW_EXP(a b long_min); \ 664159Sgblack@eecs.umich.edu SHOW_EXP(a b int_max); \ 674159Sgblack@eecs.umich.edu SHOW_EXP(a b int_min); \ 685543Ssaidi@eecs.umich.edu SHOW_EXP(a b uint_max); \ 695543Ssaidi@eecs.umich.edu SHOW_EXP(a b ulong_max); \ 704159Sgblack@eecs.umich.edu SHOW_EXP(a b double_min); \ 714159Sgblack@eecs.umich.edu SHOW_EXP(a b double_max); \ 724159Sgblack@eecs.umich.edu SHOW_EXP(a b float_min); \ 734159Sgblack@eecs.umich.edu SHOW_EXP(a b float_max); 744159Sgblack@eecs.umich.edu 754159Sgblack@eecs.umich.edu#define SHOW_EXPS(a) \ 764159Sgblack@eecs.umich.edu SHOW_EXPRS(a, /) \ 774159Sgblack@eecs.umich.edu SHOW_EXPRS(a, *) \ 784159Sgblack@eecs.umich.edu SHOW_EXPRS(a, +) \ 794159Sgblack@eecs.umich.edu SHOW_EXPRS(a, -) \ 804159Sgblack@eecs.umich.edu SHOW_EXPRS(a, >) \ 815543Ssaidi@eecs.umich.edu SHOW_EXPRS(a, <) \ 825543Ssaidi@eecs.umich.edu SHOW_EXPRS(a, >=) \ 834159Sgblack@eecs.umich.edu SHOW_EXPRS(a, <=) \ 844159Sgblack@eecs.umich.edu SHOW_EXPRS(a, ==) \ 854159Sgblack@eecs.umich.edu SHOW_EXPRS(a, !=) \ 864159Sgblack@eecs.umich.edu SHOW_EXPRS(a, * a *) 874159Sgblack@eecs.umich.edu 884159Sgblack@eecs.umich.edu 894159Sgblack@eecs.umich.eduvoid test_fx_fixed_limits_inf(ostream& out) 904159Sgblack@eecs.umich.edu{ 914159Sgblack@eecs.umich.edu out << "****************** limits fx_fixed<8, 5>_inf\n"; 924159Sgblack@eecs.umich.edu 934159Sgblack@eecs.umich.edu sc_fixed<8, 5> zero_min("-0"); SHOW(zero_min); 944159Sgblack@eecs.umich.edu sc_fixed<8, 5> zero_plus("+0"); SHOW(zero_plus); 954159Sgblack@eecs.umich.edu sc_fixed<8, 5> zero(0); SHOW(zero); 964159Sgblack@eecs.umich.edu 974159Sgblack@eecs.umich.edu sc_fixed<8, 5> long_max(LONG_MAX); SHOW(long_max); 984159Sgblack@eecs.umich.edu sc_fixed<8, 5> long_min(LONG_MIN); SHOW(long_min); 995543Ssaidi@eecs.umich.edu sc_fixed<8, 5> int_max(INT_MAX); SHOW(int_max); 1004159Sgblack@eecs.umich.edu sc_fixed<8, 5> int_min(INT_MIN); SHOW(int_min); 1014159Sgblack@eecs.umich.edu sc_fixed<8, 5> uint_max(UINT_MAX); SHOW(uint_max); 1024159Sgblack@eecs.umich.edu sc_fixed<8, 5> ulong_max(ULONG_MAX); SHOW(ulong_max); 1034159Sgblack@eecs.umich.edu 1044159Sgblack@eecs.umich.edu sc_fixed<8, 5> double_min(DBL_MIN); SHOW(double_min); 1054159Sgblack@eecs.umich.edu sc_fixed<8, 5> double_max(DBL_MAX); SHOW(double_max); 1064159Sgblack@eecs.umich.edu sc_fixed<8, 5> float_min(FLT_MIN); SHOW(float_min); 1074159Sgblack@eecs.umich.edu sc_fixed<8, 5> float_max(FLT_MAX); SHOW(float_max); 1084159Sgblack@eecs.umich.edu 1094159Sgblack@eecs.umich.edu // sc_fixed<8, 5> res; 1104159Sgblack@eecs.umich.edu} 1114159Sgblack@eecs.umich.edu