112855Sgabeblack@google.com/*****************************************************************************
212855Sgabeblack@google.com
312855Sgabeblack@google.com  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
412855Sgabeblack@google.com  more contributor license agreements.  See the NOTICE file distributed
512855Sgabeblack@google.com  with this work for additional information regarding copyright ownership.
612855Sgabeblack@google.com  Accellera licenses this file to you under the Apache License, Version 2.0
712855Sgabeblack@google.com  (the "License"); you may not use this file except in compliance with the
812855Sgabeblack@google.com  License.  You may obtain a copy of the License at
912855Sgabeblack@google.com
1012855Sgabeblack@google.com    http://www.apache.org/licenses/LICENSE-2.0
1112855Sgabeblack@google.com
1212855Sgabeblack@google.com  Unless required by applicable law or agreed to in writing, software
1312855Sgabeblack@google.com  distributed under the License is distributed on an "AS IS" BASIS,
1412855Sgabeblack@google.com  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1512855Sgabeblack@google.com  implied.  See the License for the specific language governing
1612855Sgabeblack@google.com  permissions and limitations under the License.
1712855Sgabeblack@google.com
1812855Sgabeblack@google.com *****************************************************************************/
1912855Sgabeblack@google.com
2012855Sgabeblack@google.com/*****************************************************************************
2112855Sgabeblack@google.com
2212855Sgabeblack@google.com  default_constructor.cpp --
2312855Sgabeblack@google.com
2412855Sgabeblack@google.com  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
2512855Sgabeblack@google.com
2612855Sgabeblack@google.com *****************************************************************************/
2712855Sgabeblack@google.com
2812855Sgabeblack@google.com/*****************************************************************************
2912855Sgabeblack@google.com
3012855Sgabeblack@google.com  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
3112855Sgabeblack@google.com  changes you are making here.
3212855Sgabeblack@google.com
3312855Sgabeblack@google.com      Name, Affiliation, Date:
3412855Sgabeblack@google.com  Description of Modification:
3512855Sgabeblack@google.com
3612855Sgabeblack@google.com *****************************************************************************/
3712855Sgabeblack@google.com
3812855Sgabeblack@google.com// This may look like C code, but it is really -*- C++ -*-
3912855Sgabeblack@google.com//
4012855Sgabeblack@google.com// default_constructor.cxx --
4112855Sgabeblack@google.com// Copyright Synopsys 1998
4212855Sgabeblack@google.com// Author          : Ric Hilderink
4312855Sgabeblack@google.com// Created On      : Wed Dec 30 09:38:31 1998
4412855Sgabeblack@google.com// Status          : none
4512855Sgabeblack@google.com//
4612855Sgabeblack@google.com
4712855Sgabeblack@google.com#include <limits.h>
4812855Sgabeblack@google.com#include <float.h>
4912855Sgabeblack@google.com#define SC_INCLUDE_FX
5012855Sgabeblack@google.com#include "systemc.h"
5112855Sgabeblack@google.com
5212855Sgabeblack@google.comtypedef unsigned int   uint;
5312855Sgabeblack@google.comtypedef unsigned short ushort;
5412855Sgabeblack@google.comtypedef unsigned long  ulong;
5512855Sgabeblack@google.com
5612855Sgabeblack@google.com#define SHOW(a) cerr << #a << " : " << double(a) << " : " << a.to_string(SC_HEX) << "\n"
5712855Sgabeblack@google.com#define IDENT(a) cerr << "--default_constructor-Inf-Inf-Inf-Inf-Inf- " << a << "\n"
5812855Sgabeblack@google.com
5912855Sgabeblack@google.com#define T_CHAR_MAX "0b010101110100110111001011"
6012855Sgabeblack@google.com#define T_CHAR_MIN "-0xsmdeadbeafe-101"
6112855Sgabeblack@google.com#define T_UCHAR_MAX "0b010101110100110111001011e+101"
6212855Sgabeblack@google.com#define T_UCHAR_MIN "0xdeadbeafe-101"
6312855Sgabeblack@google.com
6412855Sgabeblack@google.comstatic void test_fx_float_char()
6512855Sgabeblack@google.com{
6612855Sgabeblack@google.com  IDENT("test_fx_float_char");
6712855Sgabeblack@google.com
6812855Sgabeblack@google.com  sc_fxval a("0");
6912855Sgabeblack@google.com  sc_fxval b("1");
7012855Sgabeblack@google.com  sc_fxval c("-1");
7112855Sgabeblack@google.com  sc_fxval d(T_CHAR_MAX);
7212855Sgabeblack@google.com  sc_fxval e(T_CHAR_MIN);
7312855Sgabeblack@google.com
7412855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
7512855Sgabeblack@google.com}
7612855Sgabeblack@google.com
7712855Sgabeblack@google.comstatic void test_fx_float_int()
7812855Sgabeblack@google.com{
7912855Sgabeblack@google.com  IDENT("test_fx_float_int");
8012855Sgabeblack@google.com
8112855Sgabeblack@google.com  sc_fxval a(0);
8212855Sgabeblack@google.com  sc_fxval b(1);
8312855Sgabeblack@google.com  sc_fxval c(-1);
8412855Sgabeblack@google.com  sc_fxval d(INT_MAX);
8512855Sgabeblack@google.com  sc_fxval e(INT_MIN);
8612855Sgabeblack@google.com
8712855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
8812855Sgabeblack@google.com}
8912855Sgabeblack@google.com
9012855Sgabeblack@google.comstatic void test_fx_float_uint()
9112855Sgabeblack@google.com{
9212855Sgabeblack@google.com  IDENT("test_fx_float_uint");
9312855Sgabeblack@google.com
9412855Sgabeblack@google.com  sc_fxval a((uint)0);
9512855Sgabeblack@google.com  sc_fxval b((uint)1);
9612855Sgabeblack@google.com  sc_fxval c((uint)-1);
9712855Sgabeblack@google.com  sc_fxval d(UINT_MAX);
9812855Sgabeblack@google.com  sc_fxval e((uint)abs(INT_MIN));
9912855Sgabeblack@google.com
10012855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
10112855Sgabeblack@google.com}
10212855Sgabeblack@google.com
10312855Sgabeblack@google.comstatic void test_fx_float_short()
10412855Sgabeblack@google.com{
10512855Sgabeblack@google.com  IDENT("test_fx_float_short");
10612855Sgabeblack@google.com
10712855Sgabeblack@google.com  sc_fxval a((short)0);
10812855Sgabeblack@google.com  sc_fxval b((short)1);
10912855Sgabeblack@google.com  sc_fxval c((short)-1);
11012855Sgabeblack@google.com  sc_fxval d((short)SHRT_MAX);
11112855Sgabeblack@google.com  sc_fxval e((short)SHRT_MIN);
11212855Sgabeblack@google.com
11312855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
11412855Sgabeblack@google.com}
11512855Sgabeblack@google.com
11612855Sgabeblack@google.comstatic void test_fx_float_ushort()
11712855Sgabeblack@google.com{
11812855Sgabeblack@google.com  IDENT("test_fx_float_ushort");
11912855Sgabeblack@google.com
12012855Sgabeblack@google.com  sc_fxval a((ushort)0);
12112855Sgabeblack@google.com  sc_fxval b((ushort)1);
12212855Sgabeblack@google.com  sc_fxval c((ushort)-1);
12312855Sgabeblack@google.com  sc_fxval d(USHRT_MAX);
12412855Sgabeblack@google.com  sc_fxval e((ushort)abs(SHRT_MIN));
12512855Sgabeblack@google.com
12612855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
12712855Sgabeblack@google.com}
12812855Sgabeblack@google.com
12912855Sgabeblack@google.comstatic void test_fx_float_long()
13012855Sgabeblack@google.com{
13112855Sgabeblack@google.com  IDENT("test_fx_float_long");
13212855Sgabeblack@google.com
13312855Sgabeblack@google.com  sc_fxval a((long)0);
13412855Sgabeblack@google.com  sc_fxval b((long)1);
13512855Sgabeblack@google.com  sc_fxval c((long)-1);
13612855Sgabeblack@google.com  sc_fxval d(LONG_MAX);
13712855Sgabeblack@google.com  sc_fxval e(LONG_MIN);
13812855Sgabeblack@google.com
13912855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
14012855Sgabeblack@google.com}
14112855Sgabeblack@google.com
14212855Sgabeblack@google.comstatic void test_fx_float_ulong()
14312855Sgabeblack@google.com{
14412855Sgabeblack@google.com  IDENT("test_fx_float_ulong");
14512855Sgabeblack@google.com
14612855Sgabeblack@google.com  sc_fxval a((ulong)0);
14712855Sgabeblack@google.com  sc_fxval b((ulong)1);
14812855Sgabeblack@google.com  sc_fxval c((ulong)-1);
14912855Sgabeblack@google.com  sc_fxval d(ULONG_MAX);
15012855Sgabeblack@google.com  sc_fxval e((ulong)abs(LONG_MIN));
15112855Sgabeblack@google.com
15212855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
15312855Sgabeblack@google.com}
15412855Sgabeblack@google.com
15512855Sgabeblack@google.comstatic void test_fx_float_float()
15612855Sgabeblack@google.com{
15712855Sgabeblack@google.com  IDENT("test_fx_float_float");
15812855Sgabeblack@google.com
15912855Sgabeblack@google.com  sc_fxval a(0.0);
16012855Sgabeblack@google.com  sc_fxval b(1.0);
16112855Sgabeblack@google.com  sc_fxval c(-1.0);
16212855Sgabeblack@google.com  sc_fxval d(FLT_MAX);
16312855Sgabeblack@google.com  sc_fxval e(FLT_MIN);
16412855Sgabeblack@google.com
16512855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
16612855Sgabeblack@google.com}
16712855Sgabeblack@google.com
16812855Sgabeblack@google.comstatic void test_fx_float_double()
16912855Sgabeblack@google.com{
17012855Sgabeblack@google.com  IDENT("test_fx_float_double");
17112855Sgabeblack@google.com
17212855Sgabeblack@google.com  sc_fxval a((double)0.0);
17312855Sgabeblack@google.com  sc_fxval b((double)1.0);
17412855Sgabeblack@google.com  sc_fxval c((double)-1.0);
17512855Sgabeblack@google.com  sc_fxval d(DBL_MAX);
17612855Sgabeblack@google.com  sc_fxval e(DBL_MIN);
17712855Sgabeblack@google.com
17812855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
17912855Sgabeblack@google.com}
18012855Sgabeblack@google.com
18112855Sgabeblack@google.com//-----------------------------------------------------------------------
18212855Sgabeblack@google.comstatic void test_fx_ufix_char()
18312855Sgabeblack@google.com{
18412855Sgabeblack@google.com  IDENT("test_fx_ufix_char");
18512855Sgabeblack@google.com
18612855Sgabeblack@google.com  sc_ufix a("0");
18712855Sgabeblack@google.com  sc_ufix b("1");
18812855Sgabeblack@google.com  sc_ufix c("-1");
18912855Sgabeblack@google.com  sc_ufix d(T_UCHAR_MAX);
19012855Sgabeblack@google.com  sc_ufix e(T_UCHAR_MIN);
19112855Sgabeblack@google.com
19212855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
19312855Sgabeblack@google.com}
19412855Sgabeblack@google.com
19512855Sgabeblack@google.comstatic void test_fx_ufix_int()
19612855Sgabeblack@google.com{
19712855Sgabeblack@google.com  IDENT("test_fx_ufix_int");
19812855Sgabeblack@google.com
19912855Sgabeblack@google.com  sc_ufix a(0);
20012855Sgabeblack@google.com  sc_ufix b(1);
20112855Sgabeblack@google.com  sc_ufix c(-1);
20212855Sgabeblack@google.com  sc_ufix d(INT_MAX);
20312855Sgabeblack@google.com  sc_ufix e(INT_MIN);
20412855Sgabeblack@google.com
20512855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
20612855Sgabeblack@google.com}
20712855Sgabeblack@google.com
20812855Sgabeblack@google.comstatic void test_fx_ufix_uint()
20912855Sgabeblack@google.com{
21012855Sgabeblack@google.com  IDENT("test_fx_ufix_uint");
21112855Sgabeblack@google.com
21212855Sgabeblack@google.com  sc_ufix a((uint)0);
21312855Sgabeblack@google.com  sc_ufix b((uint)1);
21412855Sgabeblack@google.com  sc_ufix c((uint)-1);
21512855Sgabeblack@google.com  sc_ufix d(UINT_MAX);
21612855Sgabeblack@google.com  sc_ufix e((uint)abs(INT_MIN));
21712855Sgabeblack@google.com
21812855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
21912855Sgabeblack@google.com}
22012855Sgabeblack@google.com
22112855Sgabeblack@google.comstatic void test_fx_ufix_short()
22212855Sgabeblack@google.com{
22312855Sgabeblack@google.com  IDENT("test_fx_ufix_short");
22412855Sgabeblack@google.com
22512855Sgabeblack@google.com  sc_ufix a((short)0);
22612855Sgabeblack@google.com  sc_ufix b((short)1);
22712855Sgabeblack@google.com  sc_ufix c((short)-1);
22812855Sgabeblack@google.com  sc_ufix d(SHRT_MAX);
22912855Sgabeblack@google.com  sc_ufix e(SHRT_MIN);
23012855Sgabeblack@google.com
23112855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
23212855Sgabeblack@google.com}
23312855Sgabeblack@google.com
23412855Sgabeblack@google.comstatic void test_fx_ufix_ushort()
23512855Sgabeblack@google.com{
23612855Sgabeblack@google.com  IDENT("test_fx_ufix_ushort");
23712855Sgabeblack@google.com
23812855Sgabeblack@google.com  sc_ufix a((ushort)0);
23912855Sgabeblack@google.com  sc_ufix b((ushort)1);
24012855Sgabeblack@google.com  sc_ufix c((ushort)-1);
24112855Sgabeblack@google.com  sc_ufix d(USHRT_MAX);
24212855Sgabeblack@google.com  sc_ufix e((ushort)abs(SHRT_MIN));
24312855Sgabeblack@google.com
24412855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
24512855Sgabeblack@google.com}
24612855Sgabeblack@google.com
24712855Sgabeblack@google.comstatic void test_fx_ufix_long()
24812855Sgabeblack@google.com{
24912855Sgabeblack@google.com  IDENT("test_fx_ufix_long");
25012855Sgabeblack@google.com
25112855Sgabeblack@google.com  sc_ufix a((long)0);
25212855Sgabeblack@google.com  sc_ufix b((long)1);
25312855Sgabeblack@google.com  sc_ufix c((long)-1);
25412855Sgabeblack@google.com  sc_ufix d(LONG_MAX);
25512855Sgabeblack@google.com  sc_ufix e(LONG_MIN);
25612855Sgabeblack@google.com
25712855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
25812855Sgabeblack@google.com}
25912855Sgabeblack@google.com
26012855Sgabeblack@google.comstatic void test_fx_ufix_ulong()
26112855Sgabeblack@google.com{
26212855Sgabeblack@google.com  IDENT("test_fx_ufix_ulong");
26312855Sgabeblack@google.com
26412855Sgabeblack@google.com  sc_ufix a((ulong)0);
26512855Sgabeblack@google.com  sc_ufix b((ulong)1);
26612855Sgabeblack@google.com  sc_ufix c((ulong)-1);
26712855Sgabeblack@google.com  sc_ufix d(ULONG_MAX);
26812855Sgabeblack@google.com  sc_ufix e((ulong)abs(LONG_MIN));
26912855Sgabeblack@google.com
27012855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
27112855Sgabeblack@google.com}
27212855Sgabeblack@google.com
27312855Sgabeblack@google.comstatic void test_fx_ufix_float()
27412855Sgabeblack@google.com{
27512855Sgabeblack@google.com  IDENT("test_fx_ufix_float");
27612855Sgabeblack@google.com
27712855Sgabeblack@google.com  sc_ufix a(0.0);
27812855Sgabeblack@google.com  sc_ufix b(1.0);
27912855Sgabeblack@google.com  sc_ufix c(-1.0);
28012855Sgabeblack@google.com  sc_ufix d(FLT_MAX);
28112855Sgabeblack@google.com  sc_ufix e(FLT_MIN);
28212855Sgabeblack@google.com
28312855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
28412855Sgabeblack@google.com}
28512855Sgabeblack@google.com
28612855Sgabeblack@google.comstatic void test_fx_ufix_double()
28712855Sgabeblack@google.com{
28812855Sgabeblack@google.com  IDENT("test_fx_ufix_double");
28912855Sgabeblack@google.com
29012855Sgabeblack@google.com  sc_ufix a((double)0.0);
29112855Sgabeblack@google.com  sc_ufix b((double)1.0);
29212855Sgabeblack@google.com  sc_ufix c((double)-1.0);
29312855Sgabeblack@google.com  sc_ufix d(DBL_MAX);
29412855Sgabeblack@google.com  sc_ufix e(DBL_MIN);
29512855Sgabeblack@google.com
29612855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
29712855Sgabeblack@google.com}
29812855Sgabeblack@google.com
29912855Sgabeblack@google.com//-----------------------------------------------------------------------
30012855Sgabeblack@google.comstatic void test_fx_fix_char()
30112855Sgabeblack@google.com{
30212855Sgabeblack@google.com  IDENT("test_fx_fix_char");
30312855Sgabeblack@google.com
30412855Sgabeblack@google.com  sc_fix a("0"); SHOW(a);
30512855Sgabeblack@google.com  sc_fix b("1"); SHOW(b);
30612855Sgabeblack@google.com  sc_fix c("-1"); SHOW(c);
30712855Sgabeblack@google.com  sc_fix d(T_CHAR_MAX); SHOW(d);
30812855Sgabeblack@google.com  sc_fix e(T_CHAR_MIN); SHOW(e);
30912855Sgabeblack@google.com
31012855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
31112855Sgabeblack@google.com}
31212855Sgabeblack@google.com
31312855Sgabeblack@google.comstatic void test_fx_fix_int()
31412855Sgabeblack@google.com{
31512855Sgabeblack@google.com  IDENT("test_fx_fix_int");
31612855Sgabeblack@google.com
31712855Sgabeblack@google.com  sc_fix a(0);
31812855Sgabeblack@google.com  sc_fix b(1);
31912855Sgabeblack@google.com  sc_fix c(-1);
32012855Sgabeblack@google.com  sc_fix d(INT_MAX);
32112855Sgabeblack@google.com  sc_fix e(INT_MIN);
32212855Sgabeblack@google.com
32312855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
32412855Sgabeblack@google.com}
32512855Sgabeblack@google.com
32612855Sgabeblack@google.comstatic void test_fx_fix_uint()
32712855Sgabeblack@google.com{
32812855Sgabeblack@google.com  IDENT("test_fx_fix_uint");
32912855Sgabeblack@google.com
33012855Sgabeblack@google.com  sc_fix a((uint)0);
33112855Sgabeblack@google.com  sc_fix b((uint)1);
33212855Sgabeblack@google.com  sc_fix c((uint)-1);
33312855Sgabeblack@google.com  sc_fix d(UINT_MAX);
33412855Sgabeblack@google.com  sc_fix e((uint)abs(INT_MIN));
33512855Sgabeblack@google.com
33612855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
33712855Sgabeblack@google.com}
33812855Sgabeblack@google.comstatic void test_fx_fix_short()
33912855Sgabeblack@google.com{
34012855Sgabeblack@google.com  IDENT("test_fx_fix_short");
34112855Sgabeblack@google.com
34212855Sgabeblack@google.com  sc_fix a((short)0);
34312855Sgabeblack@google.com  sc_fix b((short)1);
34412855Sgabeblack@google.com  sc_fix c((short)-1);
34512855Sgabeblack@google.com  sc_fix d(SHRT_MAX);
34612855Sgabeblack@google.com  sc_fix e(SHRT_MIN);
34712855Sgabeblack@google.com
34812855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
34912855Sgabeblack@google.com}
35012855Sgabeblack@google.com
35112855Sgabeblack@google.comstatic void test_fx_fix_ushort()
35212855Sgabeblack@google.com{
35312855Sgabeblack@google.com  IDENT("test_fx_fix_ushort");
35412855Sgabeblack@google.com
35512855Sgabeblack@google.com  sc_fix a((ushort)0);
35612855Sgabeblack@google.com  sc_fix b((ushort)1);
35712855Sgabeblack@google.com  sc_fix c((ushort)-1);
35812855Sgabeblack@google.com  sc_fix d(USHRT_MAX);
35912855Sgabeblack@google.com  sc_fix e((ushort)abs(SHRT_MIN));
36012855Sgabeblack@google.com
36112855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
36212855Sgabeblack@google.com}
36312855Sgabeblack@google.com
36412855Sgabeblack@google.comstatic void test_fx_fix_long()
36512855Sgabeblack@google.com{
36612855Sgabeblack@google.com  IDENT("test_fx_fix_long");
36712855Sgabeblack@google.com
36812855Sgabeblack@google.com  sc_fix a((long)0);
36912855Sgabeblack@google.com  sc_fix b((long)1);
37012855Sgabeblack@google.com  sc_fix c((long)-1);
37112855Sgabeblack@google.com  sc_fix d(LONG_MAX);
37212855Sgabeblack@google.com  sc_fix e(LONG_MIN);
37312855Sgabeblack@google.com
37412855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
37512855Sgabeblack@google.com}
37612855Sgabeblack@google.com
37712855Sgabeblack@google.comstatic void test_fx_fix_ulong()
37812855Sgabeblack@google.com{
37912855Sgabeblack@google.com  IDENT("test_fx_fix_ulong");
38012855Sgabeblack@google.com
38112855Sgabeblack@google.com  sc_fix a((ulong)0);
38212855Sgabeblack@google.com  sc_fix b((ulong)1);
38312855Sgabeblack@google.com  sc_fix c((ulong)-1);
38412855Sgabeblack@google.com  sc_fix d(ULONG_MAX);
38512855Sgabeblack@google.com  sc_fix e((ulong)abs(LONG_MIN));
38612855Sgabeblack@google.com
38712855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
38812855Sgabeblack@google.com}
38912855Sgabeblack@google.com
39012855Sgabeblack@google.comstatic void test_fx_fix_float()
39112855Sgabeblack@google.com{
39212855Sgabeblack@google.com  IDENT("test_fx_fix_float");
39312855Sgabeblack@google.com
39412855Sgabeblack@google.com  sc_fix a(0.0);
39512855Sgabeblack@google.com  sc_fix b(1.0);
39612855Sgabeblack@google.com  sc_fix c(-1.0);
39712855Sgabeblack@google.com  sc_fix d(FLT_MAX);
39812855Sgabeblack@google.com  sc_fix e(FLT_MIN);
39912855Sgabeblack@google.com
40012855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
40112855Sgabeblack@google.com}
40212855Sgabeblack@google.com
40312855Sgabeblack@google.comstatic void test_fx_fix_double()
40412855Sgabeblack@google.com{
40512855Sgabeblack@google.com  IDENT("test_fx_fix_double");
40612855Sgabeblack@google.com
40712855Sgabeblack@google.com  sc_fix a((double)0.0);
40812855Sgabeblack@google.com  sc_fix b((double)1.0);
40912855Sgabeblack@google.com  sc_fix c((double)-1.0);
41012855Sgabeblack@google.com  sc_fix d(DBL_MAX);
41112855Sgabeblack@google.com  sc_fix e(DBL_MIN);
41212855Sgabeblack@google.com
41312855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
41412855Sgabeblack@google.com}
41512855Sgabeblack@google.com
41612855Sgabeblack@google.com//-----------------------------------------------------------------------
41712855Sgabeblack@google.comstatic void test_fx_fixed_char()
41812855Sgabeblack@google.com{
41912855Sgabeblack@google.com  IDENT("test_fx_fixed_char");
42012855Sgabeblack@google.com
42112855Sgabeblack@google.com  sc_fixed<8, 5> a("0");
42212855Sgabeblack@google.com  sc_fixed<8, 5> b("1");
42312855Sgabeblack@google.com  sc_fixed<8, 5> c("-1");
42412855Sgabeblack@google.com  sc_fixed<8, 5> d(T_CHAR_MAX);
42512855Sgabeblack@google.com  sc_fixed<8, 5> e(T_CHAR_MIN);
42612855Sgabeblack@google.com
42712855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
42812855Sgabeblack@google.com}
42912855Sgabeblack@google.com
43012855Sgabeblack@google.comstatic void test_fx_fixed_int()
43112855Sgabeblack@google.com{
43212855Sgabeblack@google.com  IDENT("test_fx_fixed_int");
43312855Sgabeblack@google.com
43412855Sgabeblack@google.com  sc_fixed<8, 5> a(0);
43512855Sgabeblack@google.com  sc_fixed<8, 5> b(1);
43612855Sgabeblack@google.com  sc_fixed<8, 5> c(-1);
43712855Sgabeblack@google.com  sc_fixed<8, 5> d(INT_MAX);
43812855Sgabeblack@google.com  sc_fixed<8, 5> e(INT_MIN);
43912855Sgabeblack@google.com
44012855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
44112855Sgabeblack@google.com}
44212855Sgabeblack@google.com
44312855Sgabeblack@google.comstatic void test_fx_fixed_uint()
44412855Sgabeblack@google.com{
44512855Sgabeblack@google.com  IDENT("test_sc_fixed_uint");
44612855Sgabeblack@google.com
44712855Sgabeblack@google.com  sc_fixed<8, 5> a((uint)0);
44812855Sgabeblack@google.com  sc_fixed<8, 5> b((uint)1);
44912855Sgabeblack@google.com  sc_fixed<8, 5> c((uint)-1);
45012855Sgabeblack@google.com  sc_fixed<8, 5> d(UINT_MAX);
45112855Sgabeblack@google.com  sc_fixed<8, 5> e((uint)abs(INT_MIN));
45212855Sgabeblack@google.com
45312855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
45412855Sgabeblack@google.com}
45512855Sgabeblack@google.com
45612855Sgabeblack@google.comstatic void test_fx_fixed_short()
45712855Sgabeblack@google.com{
45812855Sgabeblack@google.com  IDENT("test_fx_fixed_short");
45912855Sgabeblack@google.com
46012855Sgabeblack@google.com  sc_fixed<8, 5> a((short)0);
46112855Sgabeblack@google.com  sc_fixed<8, 5> b((short)1);
46212855Sgabeblack@google.com  sc_fixed<8, 5> c((short)-1);
46312855Sgabeblack@google.com  sc_fixed<8, 5> d(SHRT_MAX);
46412855Sgabeblack@google.com  sc_fixed<8, 5> e(SHRT_MIN);
46512855Sgabeblack@google.com
46612855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
46712855Sgabeblack@google.com}
46812855Sgabeblack@google.com
46912855Sgabeblack@google.comstatic void test_fx_fixed_ushort()
47012855Sgabeblack@google.com{
47112855Sgabeblack@google.com  IDENT("test_sc_fixed_ushort");
47212855Sgabeblack@google.com
47312855Sgabeblack@google.com  sc_fixed<8, 5> a((ushort)0);
47412855Sgabeblack@google.com  sc_fixed<8, 5> b((ushort)1);
47512855Sgabeblack@google.com  sc_fixed<8, 5> c((ushort)-1);
47612855Sgabeblack@google.com  sc_fixed<8, 5> d(USHRT_MAX);
47712855Sgabeblack@google.com  sc_fixed<8, 5> e((ushort)abs(SHRT_MIN));
47812855Sgabeblack@google.com
47912855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
48012855Sgabeblack@google.com}
48112855Sgabeblack@google.com
48212855Sgabeblack@google.comstatic void test_fx_fixed_long()
48312855Sgabeblack@google.com{
48412855Sgabeblack@google.com  IDENT("test_sc_fixeded_long");
48512855Sgabeblack@google.com
48612855Sgabeblack@google.com  sc_fixed<8, 5> a((long)0);
48712855Sgabeblack@google.com  sc_fixed<8, 5> b((long)1);
48812855Sgabeblack@google.com  sc_fixed<8, 5> c((long)-1);
48912855Sgabeblack@google.com  sc_fixed<8, 5> d(LONG_MAX);
49012855Sgabeblack@google.com  sc_fixed<8, 5> e(LONG_MIN);
49112855Sgabeblack@google.com
49212855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
49312855Sgabeblack@google.com}
49412855Sgabeblack@google.com
49512855Sgabeblack@google.comstatic void test_fx_fixed_ulong()
49612855Sgabeblack@google.com{
49712855Sgabeblack@google.com  IDENT("test_fx_fixed_ulong");
49812855Sgabeblack@google.com
49912855Sgabeblack@google.com  sc_fixed<8, 5> a((ulong)0);
50012855Sgabeblack@google.com  sc_fixed<8, 5> b((ulong)1);
50112855Sgabeblack@google.com  sc_fixed<8, 5> c((ulong)-1);
50212855Sgabeblack@google.com  sc_fixed<8, 5> d(ULONG_MAX);
50312855Sgabeblack@google.com  sc_fixed<8, 5> e((ulong)abs(LONG_MIN));
50412855Sgabeblack@google.com
50512855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
50612855Sgabeblack@google.com}
50712855Sgabeblack@google.com
50812855Sgabeblack@google.comstatic void test_fx_fixed_float()
50912855Sgabeblack@google.com{
51012855Sgabeblack@google.com  IDENT("test_fx_fixed_float");
51112855Sgabeblack@google.com
51212855Sgabeblack@google.com  sc_fixed<8, 5> a(0.0);
51312855Sgabeblack@google.com  sc_fixed<8, 5> b(1.0);
51412855Sgabeblack@google.com  sc_fixed<8, 5> c(-1.0);
51512855Sgabeblack@google.com  sc_fixed<8, 5> d(FLT_MAX);
51612855Sgabeblack@google.com  sc_fixed<8, 5> e(FLT_MIN);
51712855Sgabeblack@google.com
51812855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
51912855Sgabeblack@google.com}
52012855Sgabeblack@google.com
52112855Sgabeblack@google.comstatic void test_fx_fixed_double()
52212855Sgabeblack@google.com{
52312855Sgabeblack@google.com  IDENT("test_fx_fixed_double");
52412855Sgabeblack@google.com
52512855Sgabeblack@google.com  sc_fixed<8, 5> a((double)0.0);
52612855Sgabeblack@google.com  sc_fixed<8, 5> b((double)1.0);
52712855Sgabeblack@google.com  sc_fixed<8, 5> c((double)-1.0);
52812855Sgabeblack@google.com  sc_fixed<8, 5> d(DBL_MAX);
52912855Sgabeblack@google.com  sc_fixed<8, 5> e(DBL_MIN);
53012855Sgabeblack@google.com
53112855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
53212855Sgabeblack@google.com}
53312855Sgabeblack@google.com
53412855Sgabeblack@google.com//-----------------------------------------------------------------------
53512855Sgabeblack@google.comstatic void test_fx_ufixed_char()
53612855Sgabeblack@google.com{
53712855Sgabeblack@google.com  IDENT("test_fx_ufixed_char");
53812855Sgabeblack@google.com
53912855Sgabeblack@google.com  sc_ufixed<8, 5> a("0");
54012855Sgabeblack@google.com  sc_ufixed<8, 5> b("1");
54112855Sgabeblack@google.com  sc_ufixed<8, 5> c("-1");
54212855Sgabeblack@google.com  sc_ufixed<8, 5> d(T_UCHAR_MAX);
54312855Sgabeblack@google.com  sc_ufixed<8, 5> e(T_UCHAR_MIN);
54412855Sgabeblack@google.com
54512855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
54612855Sgabeblack@google.com}
54712855Sgabeblack@google.com
54812855Sgabeblack@google.comstatic void test_fx_ufixed_int()
54912855Sgabeblack@google.com{
55012855Sgabeblack@google.com  IDENT("test_fx_ufixed_int");
55112855Sgabeblack@google.com
55212855Sgabeblack@google.com  sc_ufixed<8, 5> a(0);
55312855Sgabeblack@google.com  sc_ufixed<8, 5> b(1);
55412855Sgabeblack@google.com  sc_ufixed<8, 5> c(-1);
55512855Sgabeblack@google.com  sc_ufixed<8, 5> d(INT_MAX);
55612855Sgabeblack@google.com  sc_ufixed<8, 5> e(INT_MIN);
55712855Sgabeblack@google.com
55812855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
55912855Sgabeblack@google.com}
56012855Sgabeblack@google.com
56112855Sgabeblack@google.comstatic void test_fx_ufixed_uint()
56212855Sgabeblack@google.com{
56312855Sgabeblack@google.com  IDENT("test_fx_ufixed_uint");
56412855Sgabeblack@google.com
56512855Sgabeblack@google.com  sc_ufixed<8, 5> a((uint)0);
56612855Sgabeblack@google.com  sc_ufixed<8, 5> b((uint)1);
56712855Sgabeblack@google.com  sc_ufixed<8, 5> c((uint)-1);
56812855Sgabeblack@google.com  sc_ufixed<8, 5> d(UINT_MAX);
56912855Sgabeblack@google.com  sc_ufixed<8, 5> e((uint)abs(INT_MIN));
57012855Sgabeblack@google.com
57112855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
57212855Sgabeblack@google.com}
57312855Sgabeblack@google.com
57412855Sgabeblack@google.comstatic void test_fx_ufixed_short()
57512855Sgabeblack@google.com{
57612855Sgabeblack@google.com  IDENT("test_fx_ufixed_short");
57712855Sgabeblack@google.com
57812855Sgabeblack@google.com  sc_ufixed<8, 5> a((short)0);
57912855Sgabeblack@google.com  sc_ufixed<8, 5> b((short)1);
58012855Sgabeblack@google.com  sc_ufixed<8, 5> c((short)-1);
58112855Sgabeblack@google.com  sc_ufixed<8, 5> d(SHRT_MAX);
58212855Sgabeblack@google.com  sc_ufixed<8, 5> e(SHRT_MIN);
58312855Sgabeblack@google.com
58412855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
58512855Sgabeblack@google.com}
58612855Sgabeblack@google.com
58712855Sgabeblack@google.comstatic void test_fx_ufixed_ushort()
58812855Sgabeblack@google.com{
58912855Sgabeblack@google.com  IDENT("test_fx_ufixed_ushort");
59012855Sgabeblack@google.com
59112855Sgabeblack@google.com  sc_ufixed<8, 5> a((ushort)0);
59212855Sgabeblack@google.com  sc_ufixed<8, 5> b((ushort)1);
59312855Sgabeblack@google.com  sc_ufixed<8, 5> c((ushort)-1);
59412855Sgabeblack@google.com  sc_ufixed<8, 5> d(USHRT_MAX);
59512855Sgabeblack@google.com  sc_ufixed<8, 5> e((ushort)abs(SHRT_MIN));
59612855Sgabeblack@google.com
59712855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
59812855Sgabeblack@google.com}
59912855Sgabeblack@google.com
60012855Sgabeblack@google.comstatic void test_fx_ufixed_long()
60112855Sgabeblack@google.com{
60212855Sgabeblack@google.com  IDENT("test_fx_ufixeded_long");
60312855Sgabeblack@google.com
60412855Sgabeblack@google.com  sc_ufixed<8, 5> a((long)0);
60512855Sgabeblack@google.com  sc_ufixed<8, 5> b((long)1);
60612855Sgabeblack@google.com  sc_ufixed<8, 5> c((long)-1);
60712855Sgabeblack@google.com  sc_ufixed<8, 5> d(LONG_MAX);
60812855Sgabeblack@google.com  sc_ufixed<8, 5> e(LONG_MIN);
60912855Sgabeblack@google.com
61012855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
61112855Sgabeblack@google.com}
61212855Sgabeblack@google.com
61312855Sgabeblack@google.comstatic void test_fx_ufixed_ulong()
61412855Sgabeblack@google.com{
61512855Sgabeblack@google.com  IDENT("test_fx_ufixed_ulong");
61612855Sgabeblack@google.com
61712855Sgabeblack@google.com  sc_ufixed<8, 5> a((ulong)0);
61812855Sgabeblack@google.com  sc_ufixed<8, 5> b((ulong)1);
61912855Sgabeblack@google.com  sc_ufixed<8, 5> c((ulong)-1);
62012855Sgabeblack@google.com  sc_ufixed<8, 5> d(ULONG_MAX);
62112855Sgabeblack@google.com  sc_ufixed<8, 5> e((ulong)abs(LONG_MIN));
62212855Sgabeblack@google.com
62312855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
62412855Sgabeblack@google.com}
62512855Sgabeblack@google.com
62612855Sgabeblack@google.comstatic void test_fx_ufixed_float()
62712855Sgabeblack@google.com{
62812855Sgabeblack@google.com  IDENT("test_fx_ufixed_float");
62912855Sgabeblack@google.com
63012855Sgabeblack@google.com  sc_ufixed<8, 5> a(0.0);
63112855Sgabeblack@google.com  sc_ufixed<8, 5> b(1.0);
63212855Sgabeblack@google.com  sc_ufixed<8, 5> c(-1.0);
63312855Sgabeblack@google.com  sc_ufixed<8, 5> d(FLT_MAX);
63412855Sgabeblack@google.com  sc_ufixed<8, 5> e(FLT_MIN);
63512855Sgabeblack@google.com
63612855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
63712855Sgabeblack@google.com}
63812855Sgabeblack@google.com
63912855Sgabeblack@google.comstatic void test_fx_ufixed_double()
64012855Sgabeblack@google.com{
64112855Sgabeblack@google.com  IDENT("test_fx_ufixed_double");
64212855Sgabeblack@google.com
64312855Sgabeblack@google.com  sc_ufixed<8, 5> a((double)0.0);
64412855Sgabeblack@google.com  sc_ufixed<8, 5> b((double)1.0);
64512855Sgabeblack@google.com  sc_ufixed<8, 5> c((double)-1.0);
64612855Sgabeblack@google.com  sc_ufixed<8, 5> d(DBL_MAX);
64712855Sgabeblack@google.com  sc_ufixed<8, 5> e(DBL_MIN);
64812855Sgabeblack@google.com
64912855Sgabeblack@google.com  SHOW(a); SHOW(b); SHOW(c); SHOW(d); SHOW(e);
65012855Sgabeblack@google.com}
65112855Sgabeblack@google.com
65212855Sgabeblack@google.comvoid default_constructor()
65312855Sgabeblack@google.com{
65412855Sgabeblack@google.com  cerr << "************** default_constructor for fx_float\n";
65512855Sgabeblack@google.com  test_fx_float_char();
65612855Sgabeblack@google.com  test_fx_float_int();
65712855Sgabeblack@google.com  test_fx_float_uint();
65812855Sgabeblack@google.com  test_fx_float_short();
65912855Sgabeblack@google.com  test_fx_float_ushort();
66012855Sgabeblack@google.com  test_fx_float_long();
66112855Sgabeblack@google.com  test_fx_float_ulong();
66212855Sgabeblack@google.com  test_fx_float_float();
66312855Sgabeblack@google.com  test_fx_float_double();
66412855Sgabeblack@google.com
66512855Sgabeblack@google.com  cerr << "************** default_constructor for fx_ufix\n";
66612855Sgabeblack@google.com  test_fx_ufix_char();
66712855Sgabeblack@google.com  test_fx_ufix_int();
66812855Sgabeblack@google.com  test_fx_ufix_uint();
66912855Sgabeblack@google.com  test_fx_ufix_short();
67012855Sgabeblack@google.com  test_fx_ufix_ushort();
67112855Sgabeblack@google.com  test_fx_ufix_long();
67212855Sgabeblack@google.com  test_fx_ufix_ulong();
67312855Sgabeblack@google.com  test_fx_ufix_float();
67412855Sgabeblack@google.com  test_fx_ufix_double();
67512855Sgabeblack@google.com
67612855Sgabeblack@google.com  cerr << "************** default_constructor for fx_fix\n";
67712855Sgabeblack@google.com  test_fx_fix_char();
67812855Sgabeblack@google.com  test_fx_fix_int();
67912855Sgabeblack@google.com  test_fx_fix_uint();
68012855Sgabeblack@google.com  test_fx_fix_short();
68112855Sgabeblack@google.com  test_fx_fix_ushort();
68212855Sgabeblack@google.com  test_fx_fix_long();
68312855Sgabeblack@google.com  test_fx_fix_ulong();
68412855Sgabeblack@google.com  test_fx_fix_float();
68512855Sgabeblack@google.com  test_fx_fix_double();
68612855Sgabeblack@google.com
68712855Sgabeblack@google.com  cerr << "************** default_constructor for <wl,iwl>fx_fixed\n";
68812855Sgabeblack@google.com  test_fx_fixed_char();
68912855Sgabeblack@google.com  test_fx_fixed_int();
69012855Sgabeblack@google.com  test_fx_fixed_uint();
69112855Sgabeblack@google.com  test_fx_fixed_short();
69212855Sgabeblack@google.com  test_fx_fixed_ushort();
69312855Sgabeblack@google.com  test_fx_fixed_long();
69412855Sgabeblack@google.com  test_fx_fixed_ulong();
69512855Sgabeblack@google.com  test_fx_fixed_float();
69612855Sgabeblack@google.com  test_fx_fixed_double();
69712855Sgabeblack@google.com
69812855Sgabeblack@google.com  cerr << "************** default_constructor for <wl,iwl>fx_ufixed\n";
69912855Sgabeblack@google.com  test_fx_ufixed_char();
70012855Sgabeblack@google.com  test_fx_ufixed_int();
70112855Sgabeblack@google.com  test_fx_ufixed_uint();
70212855Sgabeblack@google.com  test_fx_ufixed_short();
70312855Sgabeblack@google.com  test_fx_ufixed_ushort();
70412855Sgabeblack@google.com  test_fx_ufixed_long();
70512855Sgabeblack@google.com  test_fx_ufixed_ulong();
70612855Sgabeblack@google.com  test_fx_ufixed_float();
70712855Sgabeblack@google.com  test_fx_ufixed_double();
70812855Sgabeblack@google.com}
709