MMD_Polynomial::MMD_Polynomial( CParseDsrSymbolTable& _smbtable, enum CDsrDataTypes nested_type, long term_c ) : MMD_Object( _smbtable, _smbtable.getTypeTable().makeDataTypeNode( new CDsrDataType_Polynomial( _smbtable.getTypeTable().makeDataTypeNode( nested_type ) ) ) ), term_pow( 8, 0, 8 ), term_coef( 8, 0, 8 ) { var_name = _T(""); if( term_c > 0 ) { long i; CDSRInteger iV( 0 ); CDSRReal rV( 0 ); CDSRComplex cV( 0 ); switch( getType() ) { case DSRDATA_TYPE_INTEGER: for( i = 0; i < term_c; i++ ) { UniWord uw( iV ); term_pow.Add( uw ); term_coef.Add( uw ); } break; case DSRDATA_TYPE_REAL: for( i = 0; i < term_c; i++ ) { UniWord uw1( iV ); UniWord uw2( rV ); term_pow.Add( uw1 ); term_coef.Add( uw2 ); } break; case DSRDATA_TYPE_COMPLEX: for( i = 0; i < term_c; i++ ) { UniWord uw1( iV ); UniWord uw2( cV ); term_pow.Add( uw1 ); term_coef.Add( uw2 ); } break; default: break; } } max_pow = -1; is_normal = 0; }
MMD_Polynomial::MMD_Polynomial( CParseDsrSymbolTable& _smbtable, const QString& x_name, enum CDsrDataTypes nested_type ) : MMD_Object( _smbtable, _smbtable.getTypeTable().makeDataTypeNode( new CDsrDataType_Polynomial( _smbtable.getTypeTable().makeDataTypeNode( nested_type ) ) ) ) , term_pow( 8, 0, 8 ) , term_coef( 8, 0, 8 ) { UniWord uw1( CDSRInteger( 1 ) ); UniWord uw2( CDSRReal( 1.0 ) ); UniWord uw3( CDSRComplex( 1.0 ) ); term_pow.Add( uw1 ); switch( getType() ) { case DSRDATA_TYPE_INTEGER: term_coef.Add( uw1 ); break; case DSRDATA_TYPE_REAL: term_coef.Add( uw2 ); break; case DSRDATA_TYPE_COMPLEX: term_coef.Add( uw3 ); break; default: break; } var_name = x_name; max_pow = -1; is_normal = 0; }
void TestMacros::TestStreams() { I1 i1(0); I2 ie(1); UW1 uw1(2); UW2 uw2(3); TW1 tw1(4); TW2 tw2(5); O1 o1(6); O2 o2(7); }
MMD_Polynomial::MMD_Polynomial( CParseDsrSymbolTable& _smbtable, CDSRComplexStorage is ) : MMD_Object( _smbtable, _smbtable.getTypeTable().makeDataTypeNode( new CDsrDataType_Polynomial( _smbtable.getTypeTable().makeDataTypeNode( DSRDATA_TYPE_COMPLEX ) ) ) ), term_pow( 8, 0, 8 ), term_coef( 8, 0, 8 ) { var_name = _T(""); UniWord uw1( CDSRInteger( 0 ) ); UniWord uw2( is ); term_pow.Add( uw1 ); term_coef.Add( uw2 ); max_pow = -1; is_normal = 0; }
MMD_Polynomial::MMD_Polynomial( CParseDsrSymbolTable& _smbtable, const CDSRArray<CDSRComplex>& src ) : MMD_Object( _smbtable, _smbtable.getTypeTable().makeDataTypeNode( new CDsrDataType_Polynomial( _smbtable.getTypeTable().makeDataTypeNode( DSRDATA_TYPE_COMPLEX ) ) ) ), term_pow( 8, 0, 8 ), term_coef( 8, 0, 8 ) { var_name = _T(""); long cb = 0; for( long i = (long) src.size() - 1; i >= 0; i-- ) { UniWord uw1( CDSRInteger( cb++ ) ); UniWord uw2( src[ i ] ); term_pow.Add( uw1 ); term_coef.Add( uw2 ); } max_pow = (long) src.size() - 1; is_normal = 1; }