Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}
Exemplo n.º 3
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);
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
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;
}