| /***************************************************************************** |
| |
| Licensed to Accellera Systems Initiative Inc. (Accellera) under one or |
| more contributor license agreements. See the NOTICE file distributed |
| with this work for additional information regarding copyright ownership. |
| Accellera licenses this file to you under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with the |
| License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| implied. See the License for the specific language governing |
| permissions and limitations under the License. |
| |
| *****************************************************************************/ |
| |
| /***************************************************************************** |
| |
| default_constructor.cpp -- |
| |
| Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 |
| |
| *****************************************************************************/ |
| |
| /***************************************************************************** |
| |
| MODIFICATION LOG - modifiers, enter your name, affiliation, date and |
| changes you are making here. |
| |
| Name, Affiliation, Date: |
| Description of Modification: |
| |
| *****************************************************************************/ |
| |
| // This may look like C code, but it is really -*- C++ -*- |
| // |
| // default_constructor.cxx -- |
| // Copyright Synopsys 1998 |
| // Author : Ric Hilderink |
| // Created On : Wed Dec 30 09:38:31 1998 |
| // Status : none |
| // |
| |
| #include <limits.h> |
| #include <float.h> |
| |
| #define SC_INCLUDE_FX |
| #include "systemc.h" |
| #include "fx_precision_double.h" |
| |
| typedef unsigned int uint; |
| typedef unsigned short ushort; |
| typedef unsigned long ulong; |
| |
| #define SHOW(a) cerr << #a << " : " << double(a) << " : " << a.to_string(SC_HEX) << "\n" |
| #define IDENT(a) cerr << "--default_constructor-Inf-Inf-Inf-Inf-Inf- " << a << "\n" |
| |
| #define T_CHAR_MAX "0b010101110100110111001011" |
| #define T_CHAR_MIN "-0xsmdeadbeafe-101" |
| #define T_UCHAR_MAX "0b010101110100110111001011e+101" |
| #define T_UCHAR_MIN "0xdeadbeafe-101" |
| |
| static void test_fx_float_char() |
| { |
| IDENT("test_fx_float_char"); |
| |
| sc_fxval a("0"); |
| sc_fxval b("1"); |
| sc_fxval c("-1"); |
| sc_fxval d(T_CHAR_MAX); |
| sc_fxval e(T_CHAR_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_float_int() |
| { |
| IDENT("test_fx_float_int"); |
| |
| sc_fxval a(0); |
| sc_fxval b(1); |
| sc_fxval c(-1); |
| sc_fxval d(INT_MAX); |
| sc_fxval e(INT_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_float_uint() |
| { |
| IDENT("test_fx_float_uint"); |
| |
| sc_fxval a((uint)0); |
| sc_fxval b((uint)1); |
| sc_fxval c((uint)-1); |
| sc_fxval d(UINT_MAX); |
| sc_fxval e((uint)abs(INT_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_float_short() |
| { |
| IDENT("test_fx_float_short"); |
| |
| sc_fxval a((short)0); |
| sc_fxval b((short)1); |
| sc_fxval c((short)-1); |
| sc_fxval d((short)SHRT_MAX); |
| sc_fxval e((short)SHRT_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_float_ushort() |
| { |
| IDENT("test_fx_float_ushort"); |
| |
| sc_fxval a((ushort)0); |
| sc_fxval b((ushort)1); |
| sc_fxval c((ushort)-1); |
| sc_fxval d(USHRT_MAX); |
| sc_fxval e((ushort)abs(SHRT_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_float_long() |
| { |
| IDENT("test_fx_float_long"); |
| |
| sc_fxval a((long)0); |
| sc_fxval b((long)1); |
| sc_fxval c((long)-1); |
| sc_fxval d(LONG_MAX); |
| sc_fxval e(LONG_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_float_ulong() |
| { |
| IDENT("test_fx_float_ulong"); |
| |
| sc_fxval a((ulong)0); |
| sc_fxval b((ulong)1); |
| sc_fxval c((ulong)-1); |
| sc_fxval d(ULONG_MAX); |
| sc_fxval e((ulong)abs(LONG_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_float_float() |
| { |
| IDENT("test_fx_float_float"); |
| |
| sc_fxval a(0.0); |
| sc_fxval b(1.0); |
| sc_fxval c(-1.0); |
| sc_fxval d(FLT_MAX); |
| sc_fxval e(FLT_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_float_double() |
| { |
| IDENT("test_fx_float_double"); |
| |
| sc_fxval a((double)0.0); |
| sc_fxval b((double)1.0); |
| sc_fxval c((double)-1.0); |
| sc_fxval d(DBL_MAX); |
| sc_fxval e(DBL_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| //----------------------------------------------------------------------- |
| static void test_fx_ufix_char() |
| { |
| IDENT("test_fx_ufix_char"); |
| |
| sc_ufix a("0"); |
| sc_ufix b("1"); |
| sc_ufix c("-1"); |
| sc_ufix d(T_UCHAR_MAX); |
| sc_ufix e(T_UCHAR_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufix_int() |
| { |
| IDENT("test_fx_ufix_int"); |
| |
| sc_ufix a(0); |
| sc_ufix b(1); |
| sc_ufix c(-1); |
| sc_ufix d(INT_MAX); |
| sc_ufix e(INT_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufix_uint() |
| { |
| IDENT("test_fx_ufix_uint"); |
| |
| sc_ufix a((uint)0); |
| sc_ufix b((uint)1); |
| sc_ufix c((uint)-1); |
| sc_ufix d(UINT_MAX); |
| sc_ufix e((uint)abs(INT_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufix_short() |
| { |
| IDENT("test_fx_ufix_short"); |
| |
| sc_ufix a((short)0); |
| sc_ufix b((short)1); |
| sc_ufix c((short)-1); |
| sc_ufix d(SHRT_MAX); |
| sc_ufix e(SHRT_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufix_ushort() |
| { |
| IDENT("test_fx_ufix_ushort"); |
| |
| sc_ufix a((ushort)0); |
| sc_ufix b((ushort)1); |
| sc_ufix c((ushort)-1); |
| sc_ufix d(USHRT_MAX); |
| sc_ufix e((ushort)abs(SHRT_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufix_long() |
| { |
| IDENT("test_fx_ufix_long"); |
| |
| sc_ufix a((long)0); |
| sc_ufix b((long)1); |
| sc_ufix c((long)-1); |
| sc_ufix d(LONG_MAX); |
| sc_ufix e(LONG_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufix_ulong() |
| { |
| IDENT("test_fx_ufix_ulong"); |
| |
| sc_ufix a((ulong)0); |
| sc_ufix b((ulong)1); |
| sc_ufix c((ulong)-1); |
| sc_ufix d(ULONG_MAX); |
| sc_ufix e((ulong)abs(LONG_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufix_float() |
| { |
| IDENT("test_fx_ufix_float"); |
| |
| sc_ufix a(0.0); |
| sc_ufix b(1.0); |
| sc_ufix c(-1.0); |
| sc_ufix d(FLT_MAX); |
| sc_ufix e(FLT_MIN); |
| |
| // cerr << "sc_ufix d(FLT_MAX); does not work (yet)\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufix_double() |
| { |
| IDENT("test_fx_ufix_double"); |
| |
| sc_ufix a((double)0.0); |
| sc_ufix b((double)1.0); |
| sc_ufix c((double)-1.0); |
| sc_ufix d(DBL_MAX); |
| sc_ufix e(DBL_MIN); |
| |
| // cerr << "sc_ufix d(DBL_MAX); does not work (yet)\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| //----------------------------------------------------------------------- |
| static void test_fx_fix_char() |
| { |
| IDENT("test_fx_fix_char"); |
| |
| sc_fix a("0"); SHOW(a); |
| sc_fix b("1"); SHOW(b); |
| sc_fix c("-1"); SHOW(c); |
| sc_fix d(T_CHAR_MAX); SHOW(d); |
| sc_fix e(T_CHAR_MIN); SHOW(e); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fix_int() |
| { |
| IDENT("test_fx_fix_int"); |
| |
| sc_fix a(0); |
| sc_fix b(1); |
| sc_fix c(-1); |
| sc_fix d(INT_MAX); |
| sc_fix e(INT_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fix_uint() |
| { |
| IDENT("test_fx_fix_uint"); |
| |
| sc_fix a((uint)0); |
| sc_fix b((uint)1); |
| sc_fix c((uint)-1); |
| sc_fix d(UINT_MAX); |
| sc_fix e((uint)abs(INT_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| static void test_fx_fix_short() |
| { |
| IDENT("test_fx_fix_short"); |
| |
| sc_fix a((short)0); |
| sc_fix b((short)1); |
| sc_fix c((short)-1); |
| sc_fix d(SHRT_MAX); |
| sc_fix e(SHRT_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fix_ushort() |
| { |
| IDENT("test_fx_fix_ushort"); |
| |
| sc_fix a((ushort)0); |
| sc_fix b((ushort)1); |
| sc_fix c((ushort)-1); |
| sc_fix d(USHRT_MAX); |
| sc_fix e((ushort)abs(SHRT_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fix_long() |
| { |
| IDENT("test_fx_fix_long"); |
| |
| sc_fix a((long)0); |
| sc_fix b((long)1); |
| sc_fix c((long)-1); |
| sc_fix d(LONG_MAX); |
| sc_fix e(LONG_MIN); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fix_ulong() |
| { |
| IDENT("test_fx_fix_ulong"); |
| |
| sc_fix a((ulong)0); |
| sc_fix b((ulong)1); |
| sc_fix c((ulong)-1); |
| sc_fix d(ULONG_MAX); |
| sc_fix e((ulong)abs(LONG_MIN)); |
| |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fix_float() |
| { |
| IDENT("test_fx_fix_float"); |
| |
| sc_fix a(0.0); |
| sc_fix b(1.0); |
| sc_fix c(-1.0); |
| sc_fix d(FLT_MAX); |
| sc_fix e(FLT_MIN); |
| |
| // cerr << "sc_fix d(FLT_MAX); does not work (yet)\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fix_double() |
| { |
| IDENT("test_fx_fix_double"); |
| |
| sc_fix a((double)0.0); |
| sc_fix b((double)1.0); |
| sc_fix c((double)-1.0); |
| sc_fix d(DBL_MAX); |
| sc_fix e(DBL_MIN); |
| |
| // cerr << "sc_fix d(DBL_MAX); does not work (yet)\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| //----------------------------------------------------------------------- |
| static void test_fx_fixed_char() |
| { |
| IDENT("test_fx_fixed_char"); |
| |
| sc_fixed<8, 5> a("0"); |
| sc_fixed<8, 5> b("1"); |
| sc_fixed<8, 5> c("-1"); |
| sc_fixed<8, 5> d(T_CHAR_MAX); |
| sc_fixed<8, 5> e(T_CHAR_MIN); |
| |
| // cerr << "sc_fixed<8, 5> d(INT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fixed_int() |
| { |
| IDENT("test_fx_fixed_int"); |
| |
| sc_fixed<8, 5> a(0); |
| sc_fixed<8, 5> b(1); |
| sc_fixed<8, 5> c(-1); |
| sc_fixed<8, 5> d(INT_MAX); |
| sc_fixed<8, 5> e(INT_MIN); |
| |
| // cerr << "sc_fixed<8, 5> d(INT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fixed_uint() |
| { |
| IDENT("test_sc_fixed_uint"); |
| |
| sc_fixed<8, 5> a((uint)0); |
| sc_fixed<8, 5> b((uint)1); |
| sc_fixed<8, 5> c((uint)-1); |
| sc_fixed<8, 5> d(UINT_MAX); |
| sc_fixed<8, 5> e((uint)abs(INT_MIN)); |
| |
| // cerr << "sc_fixed<8, 5> d(UINT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fixed_short() |
| { |
| IDENT("test_fx_fixed_short"); |
| |
| sc_fixed<8, 5> a((short)0); |
| sc_fixed<8, 5> b((short)1); |
| sc_fixed<8, 5> c((short)-1); |
| sc_fixed<8, 5> d(SHRT_MAX); |
| sc_fixed<8, 5> e(SHRT_MIN); |
| |
| // cerr << "sc_fixed<8, 5> d(INT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fixed_ushort() |
| { |
| IDENT("test_sc_fixed_ushort"); |
| |
| sc_fixed<8, 5> a((ushort)0); |
| sc_fixed<8, 5> b((ushort)1); |
| sc_fixed<8, 5> c((ushort)-1); |
| sc_fixed<8, 5> d(USHRT_MAX); |
| sc_fixed<8, 5> e((ushort)abs(SHRT_MIN)); |
| |
| // cerr << "sc_fixed<8, 5> d(UINT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fixed_long() |
| { |
| IDENT("test_sc_fixeded_long"); |
| |
| sc_fixed<8, 5> a((long)0); |
| sc_fixed<8, 5> b((long)1); |
| sc_fixed<8, 5> c((long)-1); |
| sc_fixed<8, 5> d(LONG_MAX); |
| sc_fixed<8, 5> e(LONG_MIN); |
| |
| // cerr << "sc_fixed<8, 5> d(INT_LONG); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fixed_ulong() |
| { |
| IDENT("test_fx_fixed_ulong"); |
| |
| sc_fixed<8, 5> a((ulong)0); |
| sc_fixed<8, 5> b((ulong)1); |
| sc_fixed<8, 5> c((ulong)-1); |
| sc_fixed<8, 5> d(ULONG_MAX); |
| sc_fixed<8, 5> e((ulong)abs(LONG_MIN)); |
| |
| // cerr << "sc_fixed<8, 5> d(ULONG_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fixed_float() |
| { |
| IDENT("test_fx_fixed_float"); |
| |
| sc_fixed<8, 5> a(0.0); |
| sc_fixed<8, 5> b(1.0); |
| sc_fixed<8, 5> c(-1.0); |
| sc_fixed<8, 5> d(FLT_MAX); |
| sc_fixed<8, 5> e(FLT_MIN); |
| |
| // cerr << "sc_fixed<8, 5> d(FLT_MAX); does not work (yet)\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_fixed_double() |
| { |
| IDENT("test_fx_fixed_double"); |
| |
| sc_fixed<8, 5> a((double)0.0); |
| sc_fixed<8, 5> b((double)1.0); |
| sc_fixed<8, 5> c((double)-1.0); |
| sc_fixed<8, 5> d(DBL_MAX); |
| sc_fixed<8, 5> e(DBL_MIN); |
| |
| // cerr << "sc_fixed<8, 5> d(DBL_MAX); does not work (yet)\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| //----------------------------------------------------------------------- |
| static void test_fx_ufixed_char() |
| { |
| IDENT("test_fx_ufixed_char"); |
| |
| sc_ufixed<8, 5> a("0"); |
| sc_ufixed<8, 5> b("1"); |
| sc_ufixed<8, 5> c("-1"); |
| sc_ufixed<8, 5> d(T_UCHAR_MAX); |
| sc_ufixed<8, 5> e(T_UCHAR_MIN); |
| |
| // cerr << "sc_ufixed<8, 5> d(INT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufixed_int() |
| { |
| IDENT("test_fx_ufixed_int"); |
| |
| sc_ufixed<8, 5> a(0); |
| sc_ufixed<8, 5> b(1); |
| sc_ufixed<8, 5> c(-1); |
| sc_ufixed<8, 5> d(INT_MAX); |
| sc_ufixed<8, 5> e(INT_MIN); |
| |
| // cerr << "sc_ufixed<8, 5> d(INT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufixed_uint() |
| { |
| IDENT("test_fx_ufixed_uint"); |
| |
| sc_ufixed<8, 5> a((uint)0); |
| sc_ufixed<8, 5> b((uint)1); |
| sc_ufixed<8, 5> c((uint)-1); |
| sc_ufixed<8, 5> d(UINT_MAX); |
| sc_ufixed<8, 5> e((uint)abs(INT_MIN)); |
| |
| // cerr << "sc_ufixed<8, 5> d(UINT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufixed_short() |
| { |
| IDENT("test_fx_ufixed_short"); |
| |
| sc_ufixed<8, 5> a((short)0); |
| sc_ufixed<8, 5> b((short)1); |
| sc_ufixed<8, 5> c((short)-1); |
| sc_ufixed<8, 5> d(SHRT_MAX); |
| sc_ufixed<8, 5> e(SHRT_MIN); |
| |
| // cerr << "sc_ufixed<8, 5> d(INT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufixed_ushort() |
| { |
| IDENT("test_fx_ufixed_ushort"); |
| |
| sc_ufixed<8, 5> a((ushort)0); |
| sc_ufixed<8, 5> b((ushort)1); |
| sc_ufixed<8, 5> c((ushort)-1); |
| sc_ufixed<8, 5> d(USHRT_MAX); |
| sc_ufixed<8, 5> e((ushort)abs(SHRT_MIN)); |
| |
| // cerr << "sc_ufixed<8, 5> d(UINT_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufixed_long() |
| { |
| IDENT("test_fx_ufixeded_long"); |
| |
| sc_ufixed<8, 5> a((long)0); |
| sc_ufixed<8, 5> b((long)1); |
| sc_ufixed<8, 5> c((long)-1); |
| sc_ufixed<8, 5> d(LONG_MAX); |
| sc_ufixed<8, 5> e(LONG_MIN); |
| |
| // cerr << "sc_ufixed<8, 5> d(INT_LONG); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufixed_ulong() |
| { |
| IDENT("test_fx_ufixed_ulong"); |
| |
| sc_ufixed<8, 5> a((ulong)0); |
| sc_ufixed<8, 5> b((ulong)1); |
| sc_ufixed<8, 5> c((ulong)-1); |
| sc_ufixed<8, 5> d(ULONG_MAX); |
| sc_ufixed<8, 5> e((ulong)abs(LONG_MIN)); |
| |
| // cerr << "sc_ufixed<8, 5> d(ULONG_MAX); does not work\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufixed_float() |
| { |
| IDENT("test_fx_ufixed_float"); |
| |
| sc_ufixed<8, 5> a(0.0); |
| sc_ufixed<8, 5> b(1.0); |
| sc_ufixed<8, 5> c(-1.0); |
| sc_ufixed<8, 5> d(FLT_MAX); |
| sc_ufixed<8, 5> e(FLT_MIN); |
| |
| // cerr << "sc_ufixed<8, 5> d(FLT_MAX); does not work (yet)\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| static void test_fx_ufixed_double() |
| { |
| IDENT("test_fx_ufixed_double"); |
| |
| sc_ufixed<8, 5> a((double)0.0); |
| sc_ufixed<8, 5> b((double)1.0); |
| sc_ufixed<8, 5> c((double)-1.0); |
| sc_ufixed<8, 5> d(DBL_MAX); |
| sc_ufixed<8, 5> e(DBL_MIN); |
| |
| // cerr << "sc_ufixed<8, 5> d(DBL_MAX); does not work (yet)\n"; |
| SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e); |
| } |
| |
| void default_constructor() |
| { |
| cerr << "************** default_constructor for fx_float\n"; |
| test_fx_float_char(); |
| test_fx_float_int(); |
| test_fx_float_uint(); |
| test_fx_float_short(); |
| test_fx_float_ushort(); |
| test_fx_float_long(); |
| test_fx_float_ulong(); |
| test_fx_float_float(); |
| test_fx_float_double(); |
| |
| cerr << "************** default_constructor for fx_ufix\n"; |
| test_fx_ufix_char(); |
| test_fx_ufix_int(); |
| test_fx_ufix_uint(); |
| test_fx_ufix_short(); |
| test_fx_ufix_ushort(); |
| test_fx_ufix_long(); |
| test_fx_ufix_ulong(); |
| test_fx_ufix_float(); |
| test_fx_ufix_double(); |
| |
| cerr << "************** default_constructor for fx_fix\n"; |
| test_fx_fix_char(); |
| test_fx_fix_int(); |
| test_fx_fix_uint(); |
| test_fx_fix_short(); |
| test_fx_fix_ushort(); |
| test_fx_fix_long(); |
| test_fx_fix_ulong(); |
| test_fx_fix_float(); |
| test_fx_fix_double(); |
| |
| cerr << "************** default_constructor for <wl,iwl>fx_fixed\n"; |
| test_fx_fixed_char(); |
| test_fx_fixed_int(); |
| test_fx_fixed_uint(); |
| test_fx_fixed_short(); |
| test_fx_fixed_ushort(); |
| test_fx_fixed_long(); |
| test_fx_fixed_ulong(); |
| test_fx_fixed_float(); |
| test_fx_fixed_double(); |
| |
| cerr << "************** default_constructor for <wl,iwl>fx_ufixed\n"; |
| test_fx_ufixed_char(); |
| test_fx_ufixed_int(); |
| test_fx_ufixed_uint(); |
| test_fx_ufixed_short(); |
| test_fx_ufixed_ushort(); |
| test_fx_ufixed_long(); |
| test_fx_ufixed_ulong(); |
| test_fx_ufixed_float(); |
| test_fx_ufixed_double(); |
| } |