SystemC Utillity functions : sc_max, sc_min
SystemC-2.2からあります。
2つの値を比較して、それぞれの値を返す関数になります。
※ただし、sc_logic/sc_bitなどのデータ型には使えません。
定義
- sc_max
template <class T>
const T sc_max( const T& a , const T& b ) { return (( a >= b ) ? a : b ); }
- sc_min
template <class T>
const T sc_min( const T& a , const T& b ) { return (( a <= b ) ? a : b ); }
実験
- サンプルコード
#include <systemc.h> int sc_main(int argc, char* argv[]) { sc_int<10> a, b; sc_int<10> c_max, c_min; a = 10; b = -20; c_max = sc_max(a,b); c_min = sc_min(a,b); cout << "a = " << a.to_string(SC_DEC) << ", b = " << b.to_string(SC_DEC) << endl; cout << "sc_max(a, b) = " << c_max.to_string(SC_DEC) << endl; cout << "sc_min(a, b) = " << c_min.to_string(SC_DEC) << endl; return 0; }
- 実行結果
SystemC 2.3.0-ASI --- Jul 13 2012 06:33:43 Copyright (c) 1996-2012 by all Contributors, ALL RIGHTS RESERVED a = 10, b = -20 sc_max(a, b) = 10 sc_min(a, b) = -20