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