gem5  v20.1.0.0
sc_ufixed.hh
Go to the documentation of this file.
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  sc_ufixed.h -
23 
24  Original Author: Martin Janssen, Synopsys, Inc.
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 // $Log: sc_ufixed.h,v $
39 // Revision 1.2 2011/01/19 18:57:40 acg
40 // Andy Goodrich: changes for IEEE_1666_2011.
41 //
42 // Revision 1.1.1.1 2006/12/15 20:20:04 acg
43 // SystemC 2.3
44 //
45 // Revision 1.3 2006/01/13 18:53:58 acg
46 // Andy Goodrich: added $Log command so that CVS comments are reproduced in
47 // the source.
48 //
49 
50 #ifndef __SYSTEMC_EXT_DT_FX_SC_UFIXED_HH__
51 #define __SYSTEMC_EXT_DT_FX_SC_UFIXED_HH__
52 
53 #include "sc_ufix.hh"
54 
55 namespace sc_dt
56 {
57 
58 // classes defined in this module
59 template <int W, int I, sc_q_mode Q, sc_o_mode O, int N>
60 class sc_ufixed;
61 template <int W, int I, sc_q_mode Q, sc_o_mode O, int N>
62 class sc_ufixed_fast;
63 
64 
65 // ----------------------------------------------------------------------------
66 // TEMPLATE CLASS : sc_ufixed
67 //
68 // "Constrained" unsigned fixed-point class; arbitrary precision.
69 // ----------------------------------------------------------------------------
70 
71 template <int W, int I,
74 class sc_ufixed : public sc_ufix
75 {
76  public:
77  // constructors
78  explicit sc_ufixed(sc_fxnum_observer * =0);
79  explicit sc_ufixed(const sc_fxcast_switch &, sc_fxnum_observer * =0);
80 
81 #define DECL_CTORS_T_A(tp) \
82  sc_ufixed(tp, sc_fxnum_observer * =0); \
83  sc_ufixed(tp, const sc_fxcast_switch &, sc_fxnum_observer * =0);
84 
85 #define DECL_CTORS_T_B(tp) \
86  explicit sc_ufixed(tp, sc_fxnum_observer * =0); \
87  sc_ufixed(tp, const sc_fxcast_switch &, sc_fxnum_observer * =0);
88 
89  DECL_CTORS_T_A(int)
90  DECL_CTORS_T_A(unsigned int)
92  DECL_CTORS_T_A(unsigned long)
94  DECL_CTORS_T_A(double)
95  DECL_CTORS_T_A(const char *)
96  DECL_CTORS_T_A(const sc_fxval &)
98  DECL_CTORS_T_A(const sc_fxnum &)
100 
103  DECL_CTORS_T_B(const sc_int_base &)
105  DECL_CTORS_T_B(const sc_signed &)
106  DECL_CTORS_T_B(const sc_unsigned &)
107 
108 #undef DECL_CTORS_T_A
109 #undef DECL_CTORS_T_B
110  // copy constructor
112 
113  // assignment operators
115 
116 #define DECL_ASN_OP_T(op,tp) sc_ufixed &operator op (tp);
117 
118 #define DECL_ASN_OP_OTHER(op) \
119  DECL_ASN_OP_T(op, int64) \
120  DECL_ASN_OP_T(op, uint64) \
121  DECL_ASN_OP_T(op, const sc_int_base &) \
122  DECL_ASN_OP_T(op, const sc_uint_base &) \
123  DECL_ASN_OP_T(op, const sc_signed &) \
124  DECL_ASN_OP_T(op, const sc_unsigned &)
125 
126 #define DECL_ASN_OP(op) \
127  DECL_ASN_OP_T(op, int) \
128  DECL_ASN_OP_T(op, unsigned int) \
129  DECL_ASN_OP_T(op, long) \
130  DECL_ASN_OP_T(op, unsigned long) \
131  DECL_ASN_OP_T(op, float) \
132  DECL_ASN_OP_T(op, double) \
133  DECL_ASN_OP_T(op, const char *) \
134  DECL_ASN_OP_T(op, const sc_fxval &) \
135  DECL_ASN_OP_T(op, const sc_fxval_fast &) \
136  DECL_ASN_OP_T(op, const sc_fxnum &) \
137  DECL_ASN_OP_T(op, const sc_fxnum_fast &) \
138  DECL_ASN_OP_OTHER(op)
139 
140  DECL_ASN_OP(=)
141 
142  DECL_ASN_OP(*=)
143  DECL_ASN_OP(/=)
144  DECL_ASN_OP(+=)
145  DECL_ASN_OP(-=)
146 
147  DECL_ASN_OP_T(<<=, int)
148  DECL_ASN_OP_T(>>=, int)
149 
150  DECL_ASN_OP_T(&=, const sc_ufix &)
151  DECL_ASN_OP_T(&=, const sc_ufix_fast &)
152  DECL_ASN_OP_T(|=, const sc_ufix &)
153  DECL_ASN_OP_T(|=, const sc_ufix_fast &)
154  DECL_ASN_OP_T(^=, const sc_ufix &)
155  DECL_ASN_OP_T(^=, const sc_ufix_fast &)
156 
157 #undef DECL_ASN_OP_T
158 #undef DECL_ASN_OP_OTHER
159 #undef DECL_ASN_OP
160 
161  // auto-increment and auto-decrement
162  const sc_fxval operator ++ (int);
163  const sc_fxval operator -- (int);
164 
167 };
168 
169 
170 // ----------------------------------------------------------------------------
171 // TEMPLATE CLASS : sc_ufixed_fast
172 //
173 // "Constrained" unsigned fixed-point class; limited precision.
174 // ----------------------------------------------------------------------------
175 
176 template <int W, int I,
179 class sc_ufixed_fast : public sc_ufix_fast
180 {
181  public:
182  // constructors
183  explicit sc_ufixed_fast(sc_fxnum_fast_observer * =0);
184  explicit sc_ufixed_fast(const sc_fxcast_switch &,
186 
187 #define DECL_CTORS_T_A(tp) \
188  sc_ufixed_fast(tp, sc_fxnum_fast_observer * =0); \
189  sc_ufixed_fast(tp, const sc_fxcast_switch &, sc_fxnum_fast_observer * =0);
190 
191 #define DECL_CTORS_T_B(tp) \
192  explicit sc_ufixed_fast(tp, sc_fxnum_fast_observer * =0); \
193  sc_ufixed_fast(tp, const sc_fxcast_switch &, sc_fxnum_fast_observer * =0);
194 
195  DECL_CTORS_T_A(int)
196  DECL_CTORS_T_A(unsigned int)
197  DECL_CTORS_T_A(long)
198  DECL_CTORS_T_A(unsigned long)
199  DECL_CTORS_T_A(float)
200  DECL_CTORS_T_A(double)
201  DECL_CTORS_T_A(const char *)
202  DECL_CTORS_T_A(const sc_fxval &)
204  DECL_CTORS_T_A(const sc_fxnum &)
206 
209  DECL_CTORS_T_B(const sc_int_base &)
211  DECL_CTORS_T_B(const sc_signed &)
212  DECL_CTORS_T_B(const sc_unsigned &)
213 
214 #undef DECL_CTORS_T_A
215 #undef DECL_CTORS_T_B
216  // copy constructor
218 
219  // assignment operators
220  sc_ufixed_fast &operator = (const sc_ufixed_fast<W, I, Q, O, N> &);
221 
222 #define DECL_ASN_OP_T(op,tp) sc_ufixed_fast &operator op (tp);
223 
224 #define DECL_ASN_OP_OTHER(op) \
225  DECL_ASN_OP_T(op, int64) \
226  DECL_ASN_OP_T(op, uint64) \
227  DECL_ASN_OP_T(op, const sc_int_base &) \
228  DECL_ASN_OP_T(op, const sc_uint_base &) \
229  DECL_ASN_OP_T(op, const sc_signed &) \
230  DECL_ASN_OP_T(op, const sc_unsigned &)
231 
232 #define DECL_ASN_OP(op) \
233  DECL_ASN_OP_T(op, int) \
234  DECL_ASN_OP_T(op, unsigned int) \
235  DECL_ASN_OP_T(op, long) \
236  DECL_ASN_OP_T(op, unsigned long) \
237  DECL_ASN_OP_T(op, float) \
238  DECL_ASN_OP_T(op, double) \
239  DECL_ASN_OP_T(op, const char *) \
240  DECL_ASN_OP_T(op, const sc_fxval &) \
241  DECL_ASN_OP_T(op, const sc_fxval_fast &) \
242  DECL_ASN_OP_T(op, const sc_fxnum &) \
243  DECL_ASN_OP_T(op, const sc_fxnum_fast &) \
244  DECL_ASN_OP_OTHER(op)
245 
246  DECL_ASN_OP(=)
247 
248  DECL_ASN_OP(*=)
249  DECL_ASN_OP(/=)
250  DECL_ASN_OP(+=)
251  DECL_ASN_OP(-=)
252 
253  DECL_ASN_OP_T(<<=, int)
254  DECL_ASN_OP_T(>>=, int)
255 
256  DECL_ASN_OP_T(&=, const sc_ufix &)
257  DECL_ASN_OP_T(&=, const sc_ufix_fast &)
258  DECL_ASN_OP_T(|=, const sc_ufix &)
259  DECL_ASN_OP_T(|=, const sc_ufix_fast &)
260  DECL_ASN_OP_T(^=, const sc_ufix &)
261  DECL_ASN_OP_T(^=, const sc_ufix_fast &)
262 
263 #undef DECL_ASN_OP_T
264 #undef DECL_ASN_OP_OTHER
265 #undef DECL_ASN_OP
266 
267  // auto-increment and auto-decrement
268  const sc_fxval_fast operator ++ (int);
269  const sc_fxval_fast operator -- (int);
270 
273 };
274 
275 
276 // IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
277 
278 // ----------------------------------------------------------------------------
279 // TEMPLATE CLASS : sc_ufixed
280 //
281 // "Constrained" unsigned fixed-point class; arbitrary precision.
282 // ----------------------------------------------------------------------------
283 
284 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
285 inline sc_ufixed<W, I, Q, O, N>::sc_ufixed(sc_fxnum_observer *observer_) :
286  sc_ufix(W, I, Q, O, N, observer_)
287 {}
288 
289 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
290 inline sc_ufixed<W, I, Q, O, N>::sc_ufixed(const sc_fxcast_switch &cast_sw,
291  sc_fxnum_observer *observer_) :
292  sc_ufix(W, I, Q, O, N, cast_sw, observer_)
293 {}
294 
295 #define DEFN_CTORS_T(tp) \
296 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \
297 inline sc_ufixed<W, I, Q, O, N>::sc_ufixed( \
298  tp a, sc_fxnum_observer *observer_) :\
299  sc_ufix(a, W, I, Q, O, N, observer_) \
300 {} \
301  \
302 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \
303 inline sc_ufixed<W, I, Q, O, N>::sc_ufixed( \
304  tp a, const sc_fxcast_switch &cast_sw, \
305  sc_fxnum_observer *observer_) : \
306  sc_ufix(a, W, I, Q, O, N, cast_sw, observer_) \
307 {}
308 
309 DEFN_CTORS_T(int)
310 DEFN_CTORS_T(unsigned int)
311 DEFN_CTORS_T(long)
312 DEFN_CTORS_T(unsigned long)
313 DEFN_CTORS_T(float)
314 DEFN_CTORS_T(double)
315 DEFN_CTORS_T(const char *)
318 DEFN_CTORS_T(const sc_fxnum &)
320 
323 DEFN_CTORS_T(const sc_int_base &)
324 DEFN_CTORS_T(const sc_uint_base &)
325 DEFN_CTORS_T(const sc_signed &)
326 DEFN_CTORS_T(const sc_unsigned &)
327 
328 #undef DEFN_CTORS_T
329 
330 // copy constructor
331 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
333  sc_ufix(a, W, I, Q, O, N)
334 {}
335 
336 // assignment operators
337 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
340 {
342  return *this;
343 }
344 
345 #define DEFN_ASN_OP_T(op,tp) \
346 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \
347 inline sc_ufixed<W, I, Q, O, N> & \
348 sc_ufixed<W, I, Q, O, N>::operator op (tp a) \
349 { \
350  sc_ufix::operator op (a); \
351  return *this; \
352 }
353 
354 #define DEFN_ASN_OP_OTHER(op) \
355 DEFN_ASN_OP_T(op, int64) \
356 DEFN_ASN_OP_T(op, uint64) \
357 DEFN_ASN_OP_T(op, const sc_int_base &) \
358 DEFN_ASN_OP_T(op, const sc_uint_base &) \
359 DEFN_ASN_OP_T(op, const sc_signed &) \
360 DEFN_ASN_OP_T(op, const sc_unsigned &)
361 
362 #define DEFN_ASN_OP(op) \
363 DEFN_ASN_OP_T(op, int) \
364 DEFN_ASN_OP_T(op, unsigned int) \
365 DEFN_ASN_OP_T(op, long) \
366 DEFN_ASN_OP_T(op, unsigned long) \
367 DEFN_ASN_OP_T(op, float) \
368 DEFN_ASN_OP_T(op, double) \
369 DEFN_ASN_OP_T(op, const char *) \
370 DEFN_ASN_OP_T(op, const sc_fxval &) \
371 DEFN_ASN_OP_T(op, const sc_fxval_fast &) \
372 DEFN_ASN_OP_T(op, const sc_fxnum &) \
373 DEFN_ASN_OP_T(op, const sc_fxnum_fast &) \
374 DEFN_ASN_OP_OTHER(op)
375 
376 DEFN_ASN_OP(=)
377 
378 DEFN_ASN_OP(*=)
379 DEFN_ASN_OP(/=)
380 DEFN_ASN_OP(+=)
381 DEFN_ASN_OP(-=)
382 
383 DEFN_ASN_OP_T(<<=, int)
384 DEFN_ASN_OP_T(>>=, int)
385 
386 DEFN_ASN_OP_T(&=, const sc_ufix &)
387 DEFN_ASN_OP_T(&=, const sc_ufix_fast &)
388 DEFN_ASN_OP_T(|=, const sc_ufix &)
389 DEFN_ASN_OP_T(|=, const sc_ufix_fast &)
390 DEFN_ASN_OP_T(^=, const sc_ufix &)
391 DEFN_ASN_OP_T(^=, const sc_ufix_fast &)
392 
393 #undef DEFN_ASN_OP_T
394 #undef DEFN_ASN_OP_OTHER
395 #undef DEFN_ASN_OP
396 
397 // auto-increment and auto-decrement
398 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
399 inline const sc_fxval
401 {
402  return sc_fxval(sc_ufix::operator ++ (0));
403 }
404 
405 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
406 inline const sc_fxval
408 {
409  return sc_fxval(sc_ufix::operator -- (0));
410 }
411 
412 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
413 inline sc_ufixed<W, I, Q, O, N> &
415 {
417  return *this;
418 }
419 
420 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
421 inline sc_ufixed<W, I, Q, O, N> &
423 {
425  return *this;
426 }
427 
428 
429 // ----------------------------------------------------------------------------
430 // TEMPLATE CLASS : sc_ufixed_fast
431 //
432 // "Constrained" unsigned fixed-point class; limited precision.
433 // ----------------------------------------------------------------------------
434 
435 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
437  sc_fxnum_fast_observer *observer_) :
438  sc_ufix_fast(W, I, Q, O, N, observer_)
439 {}
440 
441 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
443  const sc_fxcast_switch &cast_sw,
444  sc_fxnum_fast_observer *observer_) :
445  sc_ufix_fast(W, I, Q, O, N, cast_sw, observer_)
446 {}
447 
448 #define DEFN_CTORS_T(tp) \
449 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \
450 inline sc_ufixed_fast<W, I, Q, O, N>::sc_ufixed_fast( \
451  tp a, sc_fxnum_fast_observer *observer_ ) : \
452  sc_ufix_fast(a, W, I, Q, O, N, observer_) \
453 {} \
454  \
455 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \
456 inline sc_ufixed_fast<W, I, Q, O, N>::sc_ufixed_fast( \
457  tp a, const sc_fxcast_switch &cast_sw, \
458  sc_fxnum_fast_observer *observer_) : \
459  sc_ufix_fast(a, W, I, Q, O, N, cast_sw, observer_) \
460 {}
461 
462 DEFN_CTORS_T(int)
463 DEFN_CTORS_T(unsigned int)
464 DEFN_CTORS_T(long)
465 DEFN_CTORS_T(unsigned long)
466 DEFN_CTORS_T(float)
468 DEFN_CTORS_T(const char *)
469 DEFN_CTORS_T(const sc_fxval &)
471 DEFN_CTORS_T(const sc_fxnum &)
473 
476 DEFN_CTORS_T(const sc_int_base &)
477 DEFN_CTORS_T(const sc_uint_base &)
478 DEFN_CTORS_T(const sc_signed &)
479 DEFN_CTORS_T(const sc_unsigned &)
480 
481 #undef DEFN_CTORS_T
482 
483 // copy constructor
484 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
486  const sc_ufixed_fast<W, I, Q, O, N> &a) :
487  sc_ufix_fast(a, W, I, Q, O, N)
488 {}
489 
490 // assignment operators
491 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
492 inline sc_ufixed_fast<W, I, Q, O, N> &
493 sc_ufixed_fast<W, I, Q, O, N>::operator = (
494  const sc_ufixed_fast<W, I, Q, O, N> &a)
495 {
496  sc_ufix_fast::operator = (a);
497  return *this;
498 }
499 
500 #define DEFN_ASN_OP_T(op, tp) \
501 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N> \
502 inline sc_ufixed_fast<W, I, Q, O, N> & \
503 sc_ufixed_fast<W, I, Q, O, N>::operator op (tp a) \
504 { \
505  sc_ufix_fast::operator op (a); \
506  return *this; \
507 }
508 
509 #define DEFN_ASN_OP_OTHER(op) \
510 DEFN_ASN_OP_T(op, int64) \
511 DEFN_ASN_OP_T(op, uint64) \
512 DEFN_ASN_OP_T(op, const sc_int_base &) \
513 DEFN_ASN_OP_T(op, const sc_uint_base &) \
514 DEFN_ASN_OP_T(op, const sc_signed &) \
515 DEFN_ASN_OP_T(op, const sc_unsigned &)
516 
517 #define DEFN_ASN_OP(op) \
518 DEFN_ASN_OP_T(op, int) \
519 DEFN_ASN_OP_T(op, unsigned int) \
520 DEFN_ASN_OP_T(op, long) \
521 DEFN_ASN_OP_T(op, unsigned long) \
522 DEFN_ASN_OP_T(op, float) \
523 DEFN_ASN_OP_T(op, double) \
524 DEFN_ASN_OP_T(op, const char *) \
525 DEFN_ASN_OP_T(op, const sc_fxval &) \
526 DEFN_ASN_OP_T(op, const sc_fxval_fast &) \
527 DEFN_ASN_OP_T(op, const sc_fxnum &) \
528 DEFN_ASN_OP_T(op, const sc_fxnum_fast &) \
529 DEFN_ASN_OP_OTHER(op)
530 
532 
533 DEFN_ASN_OP(*=)
534 DEFN_ASN_OP(/=)
535 DEFN_ASN_OP(+=)
536 DEFN_ASN_OP(-=)
537 
538 DEFN_ASN_OP_T(<<=, int)
539 DEFN_ASN_OP_T(>>=, int)
540 
541 DEFN_ASN_OP_T(&=, const sc_ufix &)
542 DEFN_ASN_OP_T(&=, const sc_ufix_fast &)
543 DEFN_ASN_OP_T(|=, const sc_ufix &)
544 DEFN_ASN_OP_T(|=, const sc_ufix_fast &)
545 DEFN_ASN_OP_T(^=, const sc_ufix &)
546 DEFN_ASN_OP_T(^=, const sc_ufix_fast &)
547 
548 #undef DEFN_ASN_OP_T
549 #undef DEFN_ASN_OP_OTHER
550 #undef DEFN_ASN_OP
551 
552 // auto-increment and auto-decrement
553 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
554 inline const sc_fxval_fast
555 sc_ufixed_fast<W, I, Q, O, N>::operator ++ (int)
556 {
557  return sc_fxval_fast( sc_ufix_fast::operator ++ (0));
558 }
559 
560 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
561 inline const sc_fxval_fast
562 sc_ufixed_fast<W, I, Q, O, N>::operator -- (int)
563 {
564  return sc_fxval_fast( sc_ufix_fast::operator -- (0));
565 }
566 
567 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
568 inline sc_ufixed_fast<W, I, Q, O, N> &
569 sc_ufixed_fast<W, I, Q, O, N>::operator ++ ()
570 {
571  sc_ufix_fast::operator ++ ();
572  return *this;
573 }
574 
575 template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>
576 inline sc_ufixed_fast<W, I, Q, O, N> &
577 sc_ufixed_fast<W,I,Q,O,N>::operator -- ()
578 {
579  sc_ufix_fast::operator -- ();
580  return *this;
581 }
582 
583 } // namespace sc_dt
584 
585 #endif // __SYSTEMC_EXT_DT_FX_SC_UFIXED_HH__
DEFN_CTORS_T
#define DEFN_CTORS_T(tp)
Definition: sc_ufixed.hh:479
sc_dt::sc_ufixed::operator--
sc_ufixed & operator--()
Definition: sc_ufixed.hh:453
sc_dt::sc_ufix_fast
Definition: sc_ufix.hh:269
sc_dt::sc_ufixed
Definition: sc_ufixed.hh:91
sc_dt::sc_ufixed::sc_ufixed
sc_ufixed(sc_fxnum_observer *=0)
Definition: sc_ufixed.hh:316
sc_dt
Definition: sc_bit.cc:67
sc_ufixed
#define sc_ufixed
Definition: fx_precision_double.h:67
sc_dt::sc_ufix::operator=
sc_ufix & operator=(const sc_ufix &)
Definition: sc_ufix.hh:813
sc_dt::SC_DEFAULT_Q_MODE_
const sc_q_mode SC_DEFAULT_Q_MODE_
Definition: sc_fxdefs.hh:191
sc_dt::sc_fxnum_fast
Definition: sc_fxnum.hh:844
sc_dt::sc_o_mode
sc_o_mode
Definition: sc_fxdefs.hh:117
sc_dt::sc_fxval
Definition: sc_fxval.hh:86
sc_dt::sc_int_base
Definition: sc_int_base.hh:494
sc_dt::sc_ufix::operator++
sc_ufix & operator++()
Definition: sc_ufix.hh:901
DECL_ASN_OP_T
#define DECL_ASN_OP_T(op, tp)
Definition: sc_ufixed.hh:253
sc_dt::sc_signed
Definition: sc_signed.hh:984
DECL_CTORS_T_A
#define DECL_CTORS_T_A(tp)
Definition: sc_ufixed.hh:218
DECL_ASN_OP
#define DECL_ASN_OP(op)
Definition: sc_ufixed.hh:263
sc_dt::sc_ufixed_fast::sc_ufixed_fast
sc_ufixed_fast(sc_fxnum_fast_observer *=0)
Definition: sc_ufixed.hh:467
DECL_CTORS_T_B
#define DECL_CTORS_T_B(tp)
Definition: sc_ufixed.hh:222
DEFN_ASN_OP_T
#define DEFN_ASN_OP_T(op, tp)
Definition: sc_ufixed.hh:531
ArmISA::a
Bitfield< 8 > a
Definition: miscregs_types.hh:62
sc_dt::sc_fxnum_fast_observer
Definition: sc_fxnum_observer.hh:163
sc_dt::uint64
uint64_t uint64
Definition: sc_nbdefs.hh:206
sc_dt::sc_q_mode
sc_q_mode
Definition: sc_fxdefs.hh:91
sc_dt::sc_ufixed_fast::operator--
sc_ufixed_fast & operator--()
Definition: sc_ufixed.hh:608
DEFN_ASN_OP
#define DEFN_ASN_OP(op)
Definition: sc_ufixed.hh:548
sc_dt::sc_fxnum
Definition: sc_fxnum.hh:483
sc_ufix
#define sc_ufix
Definition: fx_precision_double.h:66
sc_dt::sc_fxcast_switch
Definition: sc_fxcast_switch.hh:102
sc_dt::sc_ufix::operator--
sc_ufix & operator--()
Definition: sc_ufix.hh:908
sc_dt::int64
int64_t int64
Definition: sc_nbdefs.hh:205
sc_dt::sc_ufixed_fast
Definition: sc_ufixed.hh:93
sc_dt::sc_ufix
Definition: sc_ufix.hh:100
sc_dt::sc_ufixed::operator=
sc_ufixed & operator=(const sc_ufixed< W, I, Q, O, N > &)
Definition: sc_ufixed.hh:370
sc_dt::sc_uint_base
Definition: sc_uint_base.hh:465
sc_fxval
#define sc_fxval
Definition: fx_precision_double.h:65
sc_dt::sc_fxval_fast
Definition: sc_fxval.hh:376
sc_dt::SC_DEFAULT_O_MODE_
const sc_o_mode SC_DEFAULT_O_MODE_
Definition: sc_fxdefs.hh:192
sc_ufix.hh
sc_dt::sc_ufixed::operator++
sc_ufixed & operator++()
Definition: sc_ufixed.hh:445
sc_dt::sc_unsigned
Definition: sc_unsigned.hh:890
sc_dt::sc_ufixed_fast::operator=
sc_ufixed_fast & operator=(const sc_ufixed_fast< W, I, Q, O, N > &)
Definition: sc_ufixed.hh:524
sc_dt::SC_DEFAULT_N_BITS_
const int SC_DEFAULT_N_BITS_
Definition: sc_fxdefs.hh:193
sc_dt::sc_ufixed_fast::operator++
sc_ufixed_fast & operator++()
Definition: sc_ufixed.hh:600

Generated on Wed Sep 30 2020 14:02:15 for gem5 by doxygen 1.8.17