1/***************************************************************************** 2 3 Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 4 more contributor license agreements. See the NOTICE file distributed 5 with this work for additional information regarding copyright ownership. 6 Accellera licenses this file to you under the Apache License, Version 2.0 7 (the "License"); you may not use this file except in compliance with the 8 License. You may obtain a copy of the License at 9 10 http://www.apache.org/licenses/LICENSE-2.0 11 12 Unless required by applicable law or agreed to in writing, software 13 distributed under the License is distributed on an "AS IS" BASIS, 14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 15 implied. See the License for the specific language governing 16 permissions and limitations under the License. 17 18 *****************************************************************************/ 19 20/***************************************************************************** 21 22 test01.cpp -- 23 24 Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 25 26 *****************************************************************************/ 27 28/***************************************************************************** 29 30 MODIFICATION LOG - modifiers, enter your name, affiliation, date and 31 changes you are making here. 32 33 Name, Affiliation, Date: 34 Description of Modification: 35 36 *****************************************************************************/ 37 38// test of sc_abs<T> for all SystemC arithmetic datatypes 39 40#define SC_INCLUDE_FX 41#include "systemc.h" 42 43int 44sc_main( int, char*[] ) 45{ 46 cout << "\n*** fx" << endl; 47 48 // sc_fxval 49 { 50 sc_fxval a; 51 cout << endl; 52 a = 1; 53 cout << sc_abs( a ) << endl; 54 a = -1; 55 cout << sc_abs( a ) << endl; 56 } 57 58 // sc_fxval_fast 59 { 60 sc_fxval_fast a; 61 cout << endl; 62 a = 1; 63 cout << sc_abs( a ) << endl; 64 a = -1; 65 cout << sc_abs( a ) << endl; 66 } 67 68 // sc_fix 69 { 70 sc_fix a; 71 cout << endl; 72 a = 1; 73 cout << sc_abs( a ) << endl; 74 a = -1; 75 cout << sc_abs( a ) << endl; 76 } 77 78 // sc_fix_fast 79 { 80 sc_fix_fast a; 81 cout << endl; 82 a = 1; 83 cout << sc_abs( a ) << endl; 84 a = -1; 85 cout << sc_abs( a ) << endl; 86 } 87 88 // sc_ufix 89 { 90 sc_ufix a; 91 cout << endl; 92 a = 1; 93 cout << sc_abs( a ) << endl; 94 a = -1; 95 cout << sc_abs( a ) << endl; 96 } 97 98 // sc_ufix_fast 99 { 100 sc_ufix_fast a; 101 cout << endl; 102 a = 1; 103 cout << sc_abs( a ) << endl; 104 a = -1; 105 cout << sc_abs( a ) << endl; 106 } 107 108 // sc_fixed 109 { 110 sc_fixed<32,32> a; 111 cout << endl; 112 a = 1; 113 cout << sc_abs( a ) << endl; 114 a = -1; 115 cout << sc_abs( a ) << endl; 116 } 117 118 // sc_fixed_fast 119 { 120 sc_fixed_fast<32,32> a; 121 cout << endl; 122 a = 1; 123 cout << sc_abs( a ) << endl; 124 a = -1; 125 cout << sc_abs( a ) << endl; 126 } 127 128 // sc_ufixed 129 { 130 sc_ufixed<32,32> a; 131 cout << endl; 132 a = 1; 133 cout << sc_abs( a ) << endl; 134 a = -1; 135 cout << sc_abs( a ) << endl; 136 } 137 138 // sc_ufixed_fast 139 { 140 sc_ufixed_fast<32,32> a; 141 cout << endl; 142 a = 1; 143 cout << sc_abs( a ) << endl; 144 a = -1; 145 cout << sc_abs( a ) << endl; 146 } 147 148 cout << "\n*** int" << endl; 149 150 // sc_signed 151 { 152 sc_signed a( 32 ); 153 cout << endl; 154 a = 1; 155 cout << sc_abs( a ) << endl; 156 a = -1; 157 cout << sc_abs( a ) << endl; 158 } 159 160 // sc_unsigned 161 { 162 sc_unsigned a( 32 ); 163 cout << endl; 164 a = 1; 165 cout << sc_abs( a ) << endl; 166 a = -1; 167 cout << sc_abs( a ) << endl; 168 } 169 170 // sc_bigint 171 { 172 sc_bigint<32> a; 173 cout << endl; 174 a = 1; 175 cout << sc_abs( a ) << endl; 176 a = -1; 177 cout << sc_abs( a ) << endl; 178 } 179 180 // sc_biguint 181 { 182 sc_biguint<32> a; 183 cout << endl; 184 a = 1; 185 cout << sc_abs( a ) << endl; 186 a = -1; 187 cout << sc_abs( a ) << endl; 188 } 189 190 // sc_signed_subref 191 // sc_unsigned_subref 192 193 // sc_int_base 194 { 195 sc_int_base a( 32 ); 196 cout << endl; 197 a = 1; 198 cout << sc_abs( a ) << endl; 199 a = -1; 200 cout << sc_abs( a ) << endl; 201 } 202 203 // sc_uint_base 204 { 205 sc_uint_base a( 32 ); 206 cout << endl; 207 a = 1; 208 cout << sc_abs( a ) << endl; 209 a = -1; 210 cout << sc_abs( a ) << endl; 211 } 212 213 // sc_int 214 { 215 sc_int<32> a; 216 cout << endl; 217 a = 1; 218 cout << sc_abs( a ) << endl; 219 a = -1; 220 cout << sc_abs( a ) << endl; 221 } 222 223 // sc_uint 224 { 225 sc_uint<32> a; 226 cout << endl; 227 a = 1; 228 cout << sc_abs( a ) << endl; 229 a = -1; 230 cout << sc_abs( a ) << endl; 231 } 232 233 // sc_int_subref 234 // sc_uint_subref 235 // sc_int_concref 236 // sc_uint_concref 237 238 return 0; 239} 240